Asterisk chan_sip am Vodafone Business IP Anlagenanschluss

VoIP

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/

Schreibe einen Kommentar

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

Nach oben