[Frage] Abhänig von Rufnummer unterschiedliche ISP-Registrare nutzen

Diani

Neuer User
Mitglied seit
20 Dez 2016
Beiträge
26
Punkte für Reaktionen
0
Punkte
1
Hallo,

ich habe Asterisk 14.2.0 aufgesetzt und drei Rufnummern. Jetzt möchte ich gerne im Dialplan erreichen, dass abhängig von der Ressource PJSIP/63110, PJSIP/63111 oder PJSIP/63112 die entsprechende Regristrierung/Channel bei dem Provider genutzt wird - also beim Angerufenen auf die richtige Rufnummer angezeigt wird.
Momentan wird nur die erste Extension "telekom_63110_out" aus der extension.conf verwendet.
Ausschnitte aus der extension.conf:
Code:
exten => _+49ZXX!.,1,Dial(PJSIP/telekom_63110_out/sip:0${EXTEN:3}@tel.t-online.de,60)
exten => _+49ZXX!.,n,Hangup()
exten => _+49ZXX!.,1,Dial(PJSIP/telekom_63111_out/sip:0${EXTEN:3}@tel.t-online.de,60)
exten => _+49ZXX!.,n,Hangup()
exten => _+49ZXX!.,1,Dial(PJSIP/telekom_63112_out/sip:0${EXTEN:3}@tel.t-online.de,60)
exten => _+49ZXX!.,n,Hangup()

Ausschnitte aus der pjsip.conf:
Code:
[63110]
type=endpoint
transport=transport-udp
context=internalsip
disallow=all
allow=g722
allow=alaw
direct_media=no
auth=auth63110
aors=63110

[63111]
type=endpoint
transport=transport-udp
context=internalsip
disallow=all
allow=g722
allow=alaw
direct_media=no
auth=auth63111
aors=63111

[63112]
type=endpoint
transport=transport-udp
context=internalsip
disallow=all
allow=g722
allow=alaw
direct_media=no
auth=auth63112
aors=63112

[telekom_63110_out]
type=aor
contact=sip:[email protected]

[telekom_63111_out]
type=aor
contact=sip:[email protected]

[telekom_63112_out]
type=aor
contact=sip:[email protected]

Ich habe mir überlegt, ob es nicht eine Variable gibt, aus der man auslesen kann, welche PISIP-Ressource den Channel öffnen will. Mit dieser Information stelle ich mir vor mit Hilfe der GotoIF()-Anweisung und einem Label zu der passenden Extension zuverweisen.
Gibt es eine solche Variable? Oder wie lässt sich dieses Szenario sonst realisieren?

Vielen Dank

- - - Aktualisiert - - -

Das ist offensichtlich die Variable ${CALLERID(name)}
 
Viele Wege führen nach Rom, oder zum richtigen Peer.

- Jeder Nebenstelle einen eigenen Context zuweisen.
- In der pjsip.conf mit set_var das zugeordnete Peer als Variable setzen und diese im Dial auswerten (mein Favorit).
- Abhängig von der CALLERID(num) mit IF() das jeweilige Peer als Variable setzen und diese im Dial auswerten.
- GotoIf abhängig von der CALLERID(num).
- exten => Muster/Callerid, bei dieser Schreibweise mit den Prios aufpassen, es gibt die jeweilige Prio dann mehrfach, weil sie für alle Callerids gleich sein muss.
- Bei 1:1 Beziehungen das Peer so nennen, wie die CALLERID(num) der Nebenstelle und diese direkt ins Dial einbauen.
 
Danke für die zusätzlichen Informationen. Ich habe das zwei Nummern wie folgt vor Deinem Posting gelöst:
Code:
; Ortsnetz
exten => _Z.,1,GotoIf($[${CALLERID(num)}=63111]?dial89517:dial63112)
exten => _Z.,n(dial63111),Dial(PJSIP/telekom_63111_out/sip:${EXTEN}@tel.t-online.de,60)
exten => _Z.,n,Hangup()
exten => _Z.,n(dial63112),Dial(PJSIP/telekom_63112_out/sip:${EXTEN}@tel.t-online.de,60)
exten => _Z.,n,Hangup()

Frage, was ich erst checken werde, ist die dritte Nummer mit dem Peer 63110 ob das dann auch noch geht:
Code:
; Ortsnetz
exten => _Z.,1,GotoIf($[${CALLERID(num)}=63111]?dial89517:GotoIf($[${CALLERID(num)}=63112]?dial63112:dial63110)
exten => _Z.,n(dial63110),Dial(PJSIP/telekom_63110_out/sip:${EXTEN}@tel.t-online.de,60)
exten => _Z.,n,Hangup()
exten => _Z.,n(dial63111),Dial(PJSIP/telekom_63111_out/sip:${EXTEN}@tel.t-online.de,60)
exten => _Z.,n,Hangup()
exten => _Z.,n(dial63112),Dial(PJSIP/telekom_63112_out/sip:${EXTEN}@tel.t-online.de,60)
exten => _Z.,n,Hangup()
 
Zuletzt bearbeitet von einem Moderator:
GotoIfs verschachteln geht nicht, Du könntest allenfalls ein If in das GotoIf einbauen:

GotoIf($[${CALLERID(num)}=63111]?dial63111:${If($[${CALLERID(num)}=63112]?dial63112:dial63110)})

Aber in Deinem Fall würde ein einfaches Goto(dial${CALLERID(num)}) auch reichen.
 
Danke für die Informationen. Ich habe jetzt die Variante "Context" gewählt. Da muss ich das meiste zwar doppelt einfügen, mit dem GotoIf() wird das dann doch zu verschachtelt. Und "mit set_var das zugeordnete Peer als Variable setzen" habe ich noch nicht ganz verstanden, bzw. nichts dazu als Beispiele gefunden.
 
Zuletzt bearbeitet von einem Moderator:
Man kann in der pjsip.conf mit set_var=outbound=12345 Variablen setzen, die dann als Channel-Variable zur Verfügung stehen. Im Dialplan reicht eine Zeile mit Dial(PJSIP/telekom_${outbound}_out/${EXTEN}) für alle.
 

Statistik des Forums

Themen
244,692
Beiträge
2,216,637
Mitglieder
371,311
Neuestes Mitglied
agl7
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.