Anbindung mit PJSIP
Asterisk-Telefonanlagen
Bei der Open Source Software Asterisk haben Sie die Wahl zwischen dem SIP und dem PJSIP Modul. Dieses Kapitel beschreibt kurz, welches grundsätzliche Vorgehen angewendet werden muss, um Placetel SIP-Trunking auf Basis des PJSIP Moduls an Ihre Telefonanlage anzubinden.
Konfiguration der pjsip.conf
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
[ptel-trunk]
type=registration
transport=transport-udp
outbound_auth=ptel-auth
server_uri=sip:fpbx.de
client_uri=sip:<VoIP-Ziel Username>@fpbx.de
contact_user=<VoIP-Ziel Username>
retry_interval=60
expiration=300
line=yes
endpoint=ptel-trunk
[ptel-auth]
type=auth
auth_type=userpass
password=<VoIP-Ziel Passwort>
username=<VoIP-Ziel Username>
realm=fpbx.de
[ptel-trunk]
type=endpoint
transport=transport-udp
context=from-placetel
disallow=all
allow=alaw
allow=ulaw
outbound_auth=ptel-auth
aors=ptel-trunk
;force_rport=yes
direct_media=no
rewrite_contact=yes
from_user=<VoIP-Ziel Username>
from_domain=fpbx.de
[ptel-trunk]
type=aor
contact=sip:fpbx.de:5060
[ptel-trunk]
type=identify
endpoint=ptel-trunk
match=fpbx.de
Sie können den Asterisk nun neustarten oder auf der Asterisk-CLI mittels pjsip reload oder core reload die Konfiguration neu einlesen. Wir empfehlen einen Neustart des Asterisk. Mittels des Befehles pjsip show registrations überprüfen Sie, ob die Registrierung bei Placetel erfolgreich war. Bitte beachten Sie, dass bei Ihnen gegebenfalls weitere Einstellung zum NAT-Handling notwendig sein könnten.
Ausgehend und Extensions
Um erfolgreich ausgehende Anrufe zu tätigen, setzen Sie vor dem Dial()-Statement in der extensions.ael oder der extensions.conf noch die von Placetel erwarteten SIP-Header.
Theorie
dial => {
Set(PJSIP_HEADER(add,P-Preferred-Identity)=<sip:Rufnummer, die angezeigt werden soll@fpbx.de>);
Set(PJSIP_HEADER(add,P-Asserted-Identity)=<sip:Rufnummer, die für Notrufe sowie rechtlich gültig ist@fpbx.de>);
}
Dial(PJSIP/Rufnummer, die angerufen werden soll@fpbx.de);
Praxis
dial => {
Set(PJSIP_HEADER(add,P-Preferred-Identity)=<sip:0221234567@fpbx.de>);
Set(PJSIP_HEADER(add,P-Asserted-Identity)=<sip:0221234560@fpbx.de>);
}
Dial(PJSIP/089127234@fpbx.de)
Bitte beachten Sie, dass Sie die anzuzeigende Rufnummer mit führender Null angeben müssen, also beispielsweise 0221237237 oder 00412478347. Der PPI, P-Preferred-Identity, Header wird für das FROM Feld verwendet. Falls Sie einen PAI, P-Asserted-Identity, Header mitsenden, setzen wir diesen für die PAI an den Carrier, sofern die Rufnummer in Ihrem Placetel Account existiert. Falls weder PAI noch PPI in Ihrem Placetel Account existieren, setzen wir eine beliebiege Rufnummer aus Ihrem Account als PAI an den Carrier.
Eingehend und Extensions
Eingehende Anrufe gehen in Ihrem Dialplan unter den Extensions Ihres Placetel Benutzernamens ein. Siehe dazu das Beispiel in der pjsip.conf weiter oben. Bei Asterisk haben Sie die Wahl zwischen extensions.ael und extensions.conf. Wir führer daher für beide Varianten kurze Beispiele auf. Mithilfe der Variable ${EXTEN} können Sie im Dialplan Ihres Asterisk bestimmen, an welche Rufnummer ein Anruf gegangen ist, um dann eine entsprechende Weiterleitung zu dem bei Ihnen registrierten Teilnehmer durchzuführen.
extensions.ael
Theorie
context default {
…
}
context from-placetel {
Kennung des VoIP-Ziels => {
Dial(PJSIP/Internes Ziel des Anrufs);
}
}
Praxis
context default {
…
}
context from-placetel {
777z2dsa2 => {
NoOp(Anruf auf: ${EXTEN});
Dial(PJSIP/2000);
}
}
extensions.conf
Theorie
[default]
....
[from-placetel]
exten => Kennung des VoIP-Ziels,1,Dial(PJSIP/Internes Ziel des Anrufs)
Praxis
[default]
....
[from-placetel]
exten => 777z2dsa2,1,NoOp(Anruf auf: ${EXTEN})
exten => 777z2dsa2,2,Dial(PJSIP/2000)