[Gelöst] Alert Info für interne Nummern

pacetrace

Neuer User
Mitglied seit
1 Nov 2010
Beiträge
51
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,

für unsere Headsets an der Gigaset N510IP möchte ich die Distinctive Ringing Funktion benutzen. Damit die internen Anrufe anders klingeln als die Externen muss die Alert Info für interne Anrufe auf "alert-internal" gesetzt werden.

Ich betreibe ein FreePBX, leider können im GUI keine Header für interne Anrufe gesetzt werden (nur für Inbound Routes und Rufgruppen). Auf Basis dieser Webseite habe ich nun eine Lösung gefunden, ich setze die Altert Info in /etc/asterisk/extensions_override_freepbx.conf.

Das Ganze funktioniert so in der Praxis, ich habe es soeben erfolgreich getestet. Da der Thread schon relativ alt ist möchte ich kurz fragen ob der folgende Code so in Ordnung ist.
Interne Nummern sind von 21 - 99, wobei ich die Zehner (20, 30, ...) für die Rufgruppen verwenden möchte.

Kann jemand von euch kurz drüber schauen ob das so gut ist? Vielen Dank.

Code:
[from-internal]
include => set-alert-if-local
[from-internal-original]
include => from-internal-xfer
include => from-internal-noxfer
include => bad-number
[set-alert-if-local]
exten => _NZ,1,GotoIf($["${CALLERID(num)}" > "99"]?notfromlocal)
exten => _NZ,n,GotoIf($["${CALLERID(num)}" < "20"]?notfromlocal)
exten => _NZ,n,SipAddHeader(Alert-Info: <127.0.0.1>\;info=alert-internal\;x-line-id=0)
exten => _NZ,n(notfromlocal),Goto(from-internal-original,${EXTEN},1)
;The following three lines must not be changed!
exten => _.,1,Goto(from-internal-original,${EXTEN},1)
exten => s,1,Goto(from-internal-original,s,1)
exten => h,1,Macro(hangupcall)





 
Entsprechend Deiner Vorgaben passt das grundsätzlich. Einzig die "Rechenoperation" würde ich anders machen (alles was keine 2 Stellen hat ist nicht intern, 2-Steller nur dann wenn sie >=20 sind):

Code:
[set-alert-if-local]
exten => _NZ,1,GotoIf($[${LEN(${CALLERID(num)})} > 2]?notfromlocal)
exten => _NZ,n,GotoIf($[${LEN(${CALLERID(num)})} = 2 & ${CALLERID(num)} < 20  ]?notfromlocal)
exten => _NZ,1,GotoIf($[${LEN(${CALLERID(num)})} < 2]?notfromlocal)
exten => _NZ,n,SipAddHeader(Alert-Info: <127.0.0.1>\;info=alert-internal\;x-line-id=0)
...
 
Danke für die Antwort abw1oim.
Deine Dialplan macht ja (fast) das Gleiche, was ist der Vorteil von deiner Version? Gibt es Zahlen die nicht erfasst werden?

Warum braucht es eigentliche am Ende drei Zeilen um zum Context "from-internal-original" zurückzuspringen?
 
Der "Trick" ist, dass numerische und nicht-numerische CallerIDs (einschliesslich "leere") sauber unterschieden werden.
Das funktioniert über LEN.

Die letzte Anweisung (die ja für alles gilt, was als Ziel nicht eine interne Extension hatte) dient einfach dazu, die "normalen" Abläufe in FrewePBX sicherzustellen.
Ohne die könnte man u.a. nicht mehr nach extern anrufen.
 
Vielen Dank!
Habe den Code/ Dialplan von oben eingebaut, funktioniert bestens. :)
 
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.