Problem:

Ein Vodafone Anlagen-Anschluss Plus soll mit Asterisk(FreePBX) genutzt werden. Dabei wird auf die Verwendung der „PlusBox“ verzichtet.

Lösung:

  1. Internetverbindung mit Zugangsdaten herstellen.
  2. Portweiterleitungen von 5060 & 10000-20000 (SIP&RTP) auf Asterisk Server einrichten.
  3. chan_pjsip auf Port 5060 einrichten.
  4. Zuständigen SBC ermitteln:
    1. SBC-Pool aus OneView-Portal auslesen.
    2. SRV Lookup: _sip._udp.<SBC-Pool>
    3. Bei mehreren Ergebnissen ist die niedrigste Priorität der primäre SBC, alle weiteren dienen als Backup.
  5. PJSIP-Trunk mit folgenden Daten einrichten:
    1. Outbound CallerID: 0<ONK><KOPFNR>0
    2. Authentication: none
    3. Registration: none
    4. SIP-Server: sipt.vf-office.net
    5. SIP-Server Port: 5060
    6. Qualify Frequency: 0
    7. Outbound Proxy: sip:<Primärer SBC>:5060\;lr
    8. From Domain: sipt.vf-office.net
    9. Match (Permit): <Alle Hosts aus dem SBC Pool>
  6. Der Datei extensions_custom.conf folgenden Inhalt anfügen (<ONK> und <KOPFNR> ersetzen!!):

[macro-dialout-trunk-predial-hook]
exten => s,1,NoOp(******************** PRE DIAL HOOK ********************)
exten => s,n,Set(HASH(_SIPHEADERS,P-Preferred-Identity)=<sip${SPRINTF(%c,58)}+49<ONK><KOPFNR>0@sipt.vf-office.net:5060${SPRINTF(%c,59)}user${SPRINTF(%c,61)}phone>)
exten => s,n,Set(HASH(_SIPHEADERS,Privacy)=none)
exten => s,n,MacroExit()

Weitere Informationen gibt es hier: https://www.vodafone.de/media/downloads/pdf/VF-SIP-Trunking-local-gateway-Interface-Specification-V1.0.pdf

Zusatz:

Ein Leser dieses Blogs hat mir freundlicherweise die Konfigurationen für einen reinen Asterisk-Server zur Verfügung gestellt. Vielen Dank für diesen Beitrag.

extensions.conf

[vodafone-out]
; Ausgehender Anruf
exten => _X.,1,Dial(PJSIP/vodafone/sip:${EXTEN}@sipt.vf-office.net,,b(pre-dial-vodafone^addheader^1))
same => n,Hangup()

; Ausgehender Anruf mit +
exten => _+X.,1,Dial(PJSIP/vodafone/sip:${EXTEN}@sipt.vf-office.net,,b(pre-dial-vodafone^addheader^1))
same => n,Hangup()

[pre-dial-vodafone]
exten => addheader,1,Set(PJSIP_HEADER(add,P-Preferred-Identity)=<sip:+49<ONK><KOPFNR>0@sipt.vf-office.net:5060\;user=phone>)
exten => addheader,n,Return()

pjsip.conf

;===============TRANSPORT

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
local_net=<LAN_NET/CIDR> ; CHANGEME
external_media_address=<PUBLIC_IP> ; CHANGEME
external_signaling_address=<PUBLIC_IP> ; CHANGEME

; VODAFONE TRUNK
;===============TRUNK

[vodafone]
type=endpoint
transport=transport-udp
context=vodafone-in
disallow=all
allow=alaw
aors=vodafone
from_user=+49<ONK><KOPFNR>0 ; CHANGEME
from_domain=sipt.vf-office.net
outbound_proxy=sip:<PRIMÄRER SBC>:5060\;lr ; CHANGEME
language=de
tone_zone=de
direct_media=no

[vodafone]
type=aor
contact=sip:sipt.vf-office.net:5060
qualify_frequency=0
outbound_proxy=sip:<PRIMÄRER SBC>:5060\;lr ; CHANGEME

[vodafone]
type=identify
endpoint=vodafone
match=<PRIMÄRER SBC> ; CHANGEME
match=<SEKUNDÄRER SBC> ; CHANGEME