ENTEGA SIP-Trunk mit FreePBX am Raspberry Pi4

1. Vorwort


Es gibt einige Anbieter am Markt welche für bestimmte Situationen und Personenkreise gute Möglichkeiten bieten. Dies können kostenfreie Möglichkeiten sein, jedoch auch bezahlte Dienste.

In diesem Artikel habe ich viele Dinge niedergeschrieben die mich einiges an Zeit und Ausprobieren gekostet hat ehe ich ein lauffähiges System hatte das meinen Vorstellungen entspricht. Mittlerweile habe ich mein System immer weiter verfeinert.

1.1 Mein Einsatzzweck

  • Ich habe mehrere MSN (feste Rufnummern)
  • ich habe mehrere Telefone
  • diese sollen je nach Nummer einzeln, oder wahlweise klingeln
    Telefon 1 nur bei der einen Nummer
    Telefon 2 und 3 bei einer anderen Nummer

1.2 Meine Ausgangslage

Stand Juli 2026 bietet 3CX die Möglichkeit bis zu 10 Benutzer kostenfrei zu managen. Leider ist die Auswahlliste der unterstützenden Provider eingeschränkt, sodass ich mit meinem gegenwärtigen Provider dort nicht einziehen kann.

Deshalb habe ich mich an das Experiment gewagt mit Hilfe eines Raspberry Pi4 die Kombination Asterisk + FreePBX aufzusetzen. Leider sind die Anleitungen im Netz schwer zu finden, sodass ich hier eine gut laufende Konfiguration wiedergebe. Vielleicht hilft diese dem ein oder anderen?

FreePBX bietet viele Möglichkeiten. Bietet jedoch auch viele Möglichkeiten zu verzweifeln. Wer keine tieferen Kentnnise von Programmierung und Fachsprache hat, dem rate ich die SIP Telefone bspw. an eine FritzBox anzuschließen. Dies ist frustfreier, bietet jedoch nicht ganz so viele Möglichkeiten.

2. verwendetes Material

2.1 Hardware

  • Raspberry Pi4
  • Raspberry Pi4 Gehäuse
  • gesondertes Netzteil (!) mit ausreichend Leistung, Meines hat 5,1V , 15,3W und 3,0A
  • Sata SSD 128GB
  • USB Festplattengehäuse für SATA SSD (achtung, Format muss unterstützt werden !)
  • RJ45 Kabel Kat 5 oder 6
  • Yealink T48S ( Extra Tipp: 2.1.1 Provisioning)

2.1.1 Tipp: Yealink Txx (abschalten Provisioning)

Die Yealink SIP Telefone sind recht günstig im Netz zu erhalten. Bieten einen Vorteil der zugleich jedoch auch ein Nachteil ist:

Die meisten Second-Hand Geräte haben weiterhin ein aktiviertes „Provisioning“. Dies bedeutet, dass man sie einfach irgendwo ans Internet klemmt und das Gerät (ob man will oder nicht) sich DIE Konfiguration vom vorherigen Webserver ziehen möchte. Abschalten kann man dies mit DEM Passwort, welches uns jedoch im Regelfall nicht geläufig ist. Hierfür gibt es einen „Workaround“.

Auf der Homepage von Yealink kann unter Hilfe der Angaben der Seriennummer + MAC-Adresse dies ausschalten. Der Aufkleber befindet sich in aller Regel unterhalb des Telefons. Auf der folgenden Webseite kann man das Provisioning deaktivieren. Hierfür ist ein kostenloser Account nötig:

https://ticket.yealink.com/index

–> Dort das Feld „RPS MAC Removal“ auswählen
–> Auf der folgenden Seite auf „Add+“ klicken und die Daten eingeben

Das System entfernt umgehend. Nach spätestens 10 Minuten sollte es klappen.

Klappt nicht? Ein Hard-Reset auf Werkseinstellungen des Yealink T48S und ähnlichen erreicht ihr darüber, dass ihr am Telefon die Taste „OK“ für mehrere Sekunden gerückt haltet.

2.2 Software

  • Raspberry Pi Imager
  • Debian 12 Bookworm 64Bit
  • FreePBX v.17.x + Asterisk v21.x
  • Bria5 Testumgebung

3. Setup des Raspberry Pi4

Die Einrichtung dauert paar Minuten. Hierzu gibt es einige gute Anleitungen auf Youtube.

Ich habe meine anhand dieser Anleitung aufgesetzt:

TIPP: es gibt verschiedenen Auswahlmöglichkeiten von FreePBX und Asterisk. Wenn man genau nach dieser Anleitung vorgeht klappt es !

Nach dem Aufsetzen wird nach setzen von Passwörtern etc. gefragt. Hier zeige ich folgend nur die Konfiguration meiner lauffähigen Instanz

4. Einstellungen in FreePBX

Wir haken ab dem Punkt ein ab dem Asterisk + FreePBX laufen und bereit sind für die ersten Einstellungen.

Der Reihe nach…

Die relevanten Dinge habe ich ROT marktiert. Bitte beachten, dass ich u.U. Dinge vergessen haben kann.

Bitte beachten, dass die Dinge EXAKT so eingegeben werden. Bspw. bneötigt man bei Outbound Caller ID das Nummerformat „4961..“ während bei Inbound „061…“ stehen muss

4.1 Hauptleitung Amtsleitung / PJSIP Trunks

  • Die Telefonnummer muss unbedingt im Format „496…“ beginnen

  • Der Username ebenfalls im Format „496..“
  • SIP Server = voip.entega-medianet.de
  • Context= from-pstn-toheader

  • from Domain = voip.entega-medianet.de
  • match Permit = 213.157.3.81
  • Send RPID/PAI = Send P-Asserted-Identy header
  • rewrite contact = yes
  • RTP symmetric = yes

4.2 Einstellungen der Inbound Routen

  • Durchwahlnummer = 61…
  • Ziel = Nebenstelle (darunter die entsprechende)

4.3 Einstellungen der Outbound Routen

  • Trunk Sequence for Matched Routes = Reihenfolge der Nummern im Format „496…“

Hier wird es spannend. Jenachdem wie man diese Konfiguriert wird extern die ein oder andere Nummer angezeigt. Der Screenshot zeigt eine mögliche Konfiguration, welche jedoch u.U. eine andere Nummer anzeigen könnte. Mittlerweile habe ich deshalb eine andere Konfiguration gewählt:

*meine eine Nebenstelle ist die 21

prependprefixmatch pattern21
6151prefix[1-9].21
prependprefix00.21
+490[1-9].21
prependprefixmatch patternAnruferkennung

Die andere Nebenstelle habe ich im Grunde identisch bis auf die erste Zeile eingerichtet. Hier habe ich jedoch auf die Nummer der Nebenstelle verzichtet, da alle anderen Telefone über die andere Nummer laufen.

Die Reihenfolge der Outbound Routes lautet bei meiner Konfiguration:
1) Outbound der Nebenstelle 21
2) Outbound ohne fest Nebenstelle

4.4 Einstellungen der Nebenstelle

4.5 Einstellung der Ringgroup

  • Die Option „Send Progress“ muss unbedingt auf „Nein“ stehen. Andernfalls hört der Anrufende kein Klingelton

4.6 Einstellungen –> Asterisk SIP Settings

  • Local Networks: 192.168… (die Adresse des FreePBX !) / 24
  • Local Networks: 192.168.1.0 oder 192.168.2.0.. / 24 je nach Konfiguration ! Hier muss beim letzten Nummernblock der IP eine NULL stehen.

5. Einstellungen im Softphone Bria5

…

6. Einstellungen im Endgerät Yealink T48S

…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert