Hallo zusammen!
Ich habe gerade unseren SIP Trunk umgestellt von DeutschlandLAN auf CompanyFlex. Eigentlich das Gleiche in grün, aber der neue Anschluß ist ganz schön pingelig, und Google hat sich ziemlich gesträubt, Lösungen preiszugeben ... Deshalb will ich meine Ergebnisse hier mal zusammenfassen. Zumal die meisten Hinweise unter der Überschrift "FreePBX" laufen.
Die härteste Nuß war die Rufweiterleitung (Call deflection / Partial rerouting). Die Asterisk-Funktion Transfer() erzeugt ganz korrekt eine SIP-Nachricht mit Status 302 "Moved Temporarily". Nur leider wird der Contact-Header, der das Ziel enthält, von PJSIP verstümmelt, wenn in der Transport-Konfiguration eine external_signaling_address angegeben ist. Und die ist notwendig(?), um normal zu telefonieren. Die Lösung habe ich hier gefunden:
http://lists.digium.com/pipermail/asterisk-dev/2023-April/078822.html
https://issues-archive.asterisk.org/ASTERISK-30451
Der Patch scheint noch nicht in die offiziellen Releases eingeflossen zu sein, also bleibt nur selbst compilieren. (Ich verwende Fedora 40, da ist der aktuelle Stand asterisk 18.12.1)
Weitere Punkte, auf die ich gestoßen bin, wenn auch nicht ganz so esoterisch:
- Die Auflösung der Servernamen funktioniert nur über den Telekom-eigenen Nameserver. Ich betreibe einen eigenen Nameserver (BIND 9.18.24) - keine Ahnung warum der nicht gut genug ist, aber solange der Resolver auf den verweist, tut es nicht. Die Fehlermeldung von Asterisk ist da nicht sehr hilfreich: Die sagt nur, daß auf "REGISTER" keine Antwort eingeht ...
- Abgehende Telefonate brauchen den Header P-Preferred-Identity (oder P-Asserted-Identity).
- Alle Rufnummern müssen im internationalen Format (beginnt mit "+") angegeben werden.
- Die Registrierung braucht als contact_user die "Registrierungsrufnummer" aus den Anmeldedaten. Da hatte ich bislang etwas anderes stehen, um das Sprungziel im Dialplan sprechend zu bezeichnen.
- Der Endpoint braucht den gleichen contact_user, sonst wird für abgehende Gespräche die Nummer der Nebenstelle eingesetzt, und das mag CompanyFlex nicht.
In der Hoffnung, daß das irgendwem weiterhilft ...
- Ulrich
Der Vollständigkeit halber noch meine PJSIP-Konfiguration. Nicht vollständig, nur die für die Telekom relevanten Teile. Die Werte in {} beziehen sich auf die entsprechenden Angaben aus den "Telefonie-Anmeldedaten" im Business Service Portal.
Ich habe gerade unseren SIP Trunk umgestellt von DeutschlandLAN auf CompanyFlex. Eigentlich das Gleiche in grün, aber der neue Anschluß ist ganz schön pingelig, und Google hat sich ziemlich gesträubt, Lösungen preiszugeben ... Deshalb will ich meine Ergebnisse hier mal zusammenfassen. Zumal die meisten Hinweise unter der Überschrift "FreePBX" laufen.
Die härteste Nuß war die Rufweiterleitung (Call deflection / Partial rerouting). Die Asterisk-Funktion Transfer() erzeugt ganz korrekt eine SIP-Nachricht mit Status 302 "Moved Temporarily". Nur leider wird der Contact-Header, der das Ziel enthält, von PJSIP verstümmelt, wenn in der Transport-Konfiguration eine external_signaling_address angegeben ist. Und die ist notwendig(?), um normal zu telefonieren. Die Lösung habe ich hier gefunden:
http://lists.digium.com/pipermail/asterisk-dev/2023-April/078822.html
https://issues-archive.asterisk.org/ASTERISK-30451
Der Patch scheint noch nicht in die offiziellen Releases eingeflossen zu sein, also bleibt nur selbst compilieren. (Ich verwende Fedora 40, da ist der aktuelle Stand asterisk 18.12.1)
Weitere Punkte, auf die ich gestoßen bin, wenn auch nicht ganz so esoterisch:
- Die Auflösung der Servernamen funktioniert nur über den Telekom-eigenen Nameserver. Ich betreibe einen eigenen Nameserver (BIND 9.18.24) - keine Ahnung warum der nicht gut genug ist, aber solange der Resolver auf den verweist, tut es nicht. Die Fehlermeldung von Asterisk ist da nicht sehr hilfreich: Die sagt nur, daß auf "REGISTER" keine Antwort eingeht ...
- Abgehende Telefonate brauchen den Header P-Preferred-Identity (oder P-Asserted-Identity).
- Alle Rufnummern müssen im internationalen Format (beginnt mit "+") angegeben werden.
- Die Registrierung braucht als contact_user die "Registrierungsrufnummer" aus den Anmeldedaten. Da hatte ich bislang etwas anderes stehen, um das Sprungziel im Dialplan sprechend zu bezeichnen.
- Der Endpoint braucht den gleichen contact_user, sonst wird für abgehende Gespräche die Nummer der Nebenstelle eingesetzt, und das mag CompanyFlex nicht.
In der Hoffnung, daß das irgendwem weiterhilft ...
- Ulrich
Der Vollständigkeit halber noch meine PJSIP-Konfiguration. Nicht vollständig, nur die für die Telekom relevanten Teile. Die Werte in {} beziehen sich auf die entsprechenden Angaben aus den "Telefonie-Anmeldedaten" im Business Service Portal.