Vodafone, Vodafone,
das hat Nerven gekostet. Ein Kunde mit Asterisk Telefonanlage wurde im Zuge der ISDN-Abschaltung auf einen „Vodafone IP Anlagenanschluss“ umgestellt. Leider liefert Vodafone weder Konfigurationsbeispiele für gängige Telefonanlagen. Nach einer ziemlichen Frickel-Odyssee habe ich eine funktionierende Konfiguration hinbekommen, die ich Euch nicht vorenthalten möchte.
Als Dokumentation bietet Vodafone diese sehr allgemein gehaltene Schnittstellenbeschreibung:
https://www.vodafone.de/media/downloads/pdf/ip-anlagen-anschluss-schnittstellenbesch.pdf
Außerdem bekommt man von Vodafone folgende Zugangsdaten zum gebuchten Anschluss:
Rufnummernblock: 0211 - 1234567 0,9 (also 0211-12345670-9) SIP-Username/s: (02111234567) SIP-Domain-Name: kundenname.ngn.vodafone.de PBX-IP: (eigene statische externe IP Adresse) 1.2.3.4 SBC-IP: (IP des Vodafone SIP proxys) 5.6.7.8 Port: 5060 Transport-Protokoll: StaticTCP
IP des Asterisk im LAN: 10.10.10.10
Routerkonfiguration
Tief in der Schnittstellendokumentation verborgen findet sich der RTP-Portrange der für die Audio-Kanäle benötigt wird. Dieser ist bei Vodafone leider nicht wie bei vielen anderen SIP-Anbietern 10000-10xxx sondern 55000-Anzahl der Sprachkanäle*2. In meinem Fall waren 5 Sprachkanäle gebucht worden also ist der korrekte Portrange 55.000-55010.
Die SIP-Signalisierung findet per TCP statt.
Als Ergebnis kam ich zu folgendem Portmapping im Router:
TCP 5060 Eingehend auf 1.2.3.4 -> 10.10.10.10:5060 UDP 55000-55010 eingehend auf 1.2.3.4 -> 10.10.10.10:55000-55010
Zusätzlich habe ich QoS im Router für 10.10.10.10 aktiviert um die Datenpakete der Telefonanlage gegenüber dem anderen Traffic aus dem LAN zu priorisieren.
Asterisk
;/etc/asterisk/rtp.conf ;Vodafone RTP-Range konfigurieren rtpstart=55000 rtpend=55010
#/etc/asterisk/sip.conf [general] ;TCP Transport für SIP in Asterisk aktivieren tcpenable=yes tcpbindaddr=10.10.10.10 ;NAT konfigurieren externaddr=1.2.3.4 media_address=1.2.3.4 localnet=10.10.10.0/255.255.255.0 ;Vodafone erwartet eine Expirytime von mindestens 1800 ansonsten ist keine Verbindung möglich maxexpiry=2000 minexpiry=1800 defaultexpiry=1800 directmedia=no canreinvite=no ;Der Kontext ist notwendig, damit andere SIP-Anrufe an die Anlage nicht irgendwo im Dialplan landen, ;wo man sie nicht haben will. Alternativ kann man auch mit permit/deny Regeln die IP-Adressen einschränken, ;die ASterisk kontaktieren dürfen. context=leer [leer] [vodafone-in-peer] type=peer context=vodafone-in host=5.6.7.8 ;habe hier udp dringelassen, da vodafone angeblich auch udp als fallback anbietet, ;tcp ist aber notwendig, ohne hat es nicht funktioniert transport=tcp,udp disallow=all allow=g722 allow=alaw allow=ulaw [vodafone-out-peer] type=peer defaultuser=02111234567 host=5.6.7.8 transport=tcp,udp disallow=all nat=force_rport,comedia directmedia=no qualify=no disallow=all allow=g722 allow=alaw allow=ulaw
;/etc/asterisk/extensions.conf [vodafone-in] ;test-extension für einen eingehenden Anruf im Rufnummernblock. Hier für die Blocknummer "0" exten => +4921112345670,1,Answer() ; Asterisks Echo Test. Man hört sich selbst, wenn man in den Hörer spricht und alles geklappt hat exten => +4921112345670,n,Echo() exten => +4921112345670,n,Hangup() ;test-extension für einen ausgehenden Anruf [vodafone-out] ;vodafone erwartet das Setzen eines P-Asserted-Identity Headers. ;Weitere Details in der Schnittstellenbeschreibung ;Hier dringend selbst noch mal die Schnittstellenbeschreibung ;studieren, da die Lokalisierung von Notrufen über diesen Wert realisiert wird ;ich selbst habe es noch nicht testen können und weiss nicht, ob Notrufe so funktionieren, ;normale Gespräche funktionieren. exten => 1,1,SipAddHeader(P-Asserted-Identity: <sip:+4921112345670@kundenname.ngn.vodafone.de:5060\;user=phone>) ;Setzen der CLIP (Absenderrufnummer, Vodafone erlaubt hier jede beliegbige Nummer, ;nach TeleKG darf man aber nur eigene oder Weitergeleitete Nummern nutzen ;) ;Auf Protokoll-Ebene wird hier der From: Header im SIP-Dialog gesetzt exten => 1,n,Set(CALLERID(num)=+4921112345670) ;Ausgehender Anruf an eine von Euch gewählte Testnummer exten => 1,n,Dial(SIP/+498001234567@vodafone-out-peer)
Ich komme nicht um den Gedanken herum, dass Vodafone sehr gerne eigenen Service und Telefonanlagen verkaufen möchte und es „Drittanbietern“ möglichst schwer gemacht werden soll, indem man kleine Details anders macht als alle anderen und gleichzeitig nur eine sehr allgemeine Dokumentation liefert.
Das wars. Geholfen haben mir diese Posts von Leuten die ähnliche Probleme hatten. Vielen Dank an alle!
https://www.ip-phone-forum.de/threads/vodafone-ip-anlagenanschluss-%C3%BCber-chan_sip-einbinden.305595/
https://www.pascom.net/forum/t/vodafone-anlagenanschluss-keine-ausgehenden-anrufe/2026/5
https://steffenschiffel.de/asterisk-und-vodafone-anlagen-anschluss-plus-trunk/