Anrufe nach Ländercode sortieren (Ländervorwahl)

dileso

Neuer User
Mitglied seit
8 Jan 2008
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich möchte gerne in meinem Asterisk eingehende Rufe anhand des Ländercodes sortieren.
Auf einer Rufnummer kommen nationale und internationale Anrufe an. Damit nicht jeder das gesammte Voicemenu durchlaufen muss, würde ich gerne anhand des Ländercodes die Anrufer an die Teams verteilen.
Ich habe bereits festgestellt, dass die nationalen Anrufe mit 00xxxxx anfangen und die internationalen mit 000YYxxxxx oder direkt mit dem Ländercode YYxxxxxxx (Y=Ländercode)
Leider gelingt es mir nicht in eine gotoif Abfrage eine Expression wie _00[1-9].
einzufügen. Sowie ich verstanden habe sollte der Befehl aber doch reguläre Ausdrücke verstehen oder?

Hat jeman eine Idee wie ich das Problem lösen kann?
Vielen Dank
 
Zuletzt bearbeitet:
Geht auch ohne REGEX - mit Deinen Angaben im Prinzip so:

Code:
exten => _X.,1,GotoIf($["${EXTEN:0:3}" = "000"]?inter)
exten => _X.,n,GotoIf($["${EXTEN:0:2}" = "00"]?national)
exten => _X.,n,Goto(inter)
exten => _X.,n(national),NoOp(Nationales Gespräch)
exten => _X.,n(inter),NoOp(Internationales Gespräch)

Nun kann man natürlich die einzelnen Countrycodes bzw. NDCs von Deutschland weiter auseinandernehmen, man könnte es aber eben auch erst einmal vereinheitlichen, wenn Du dannn einheitlich nach einer standardisierten Ländertabelle mit rückwahlfähigen Rufnummern arbeiten willst:

Code:
exten => _X.,1,GotoIf($["${EXTEN:0:3}" = "000"]?inter)
exten => _X.,n,GotoIf($["${EXTEN:0:2}" = "00"]?national)
exten => _X.,n,Goto(inter,000${EXTEN})
exten => _X.,n(national),NoOp(Nationales Gespräch)
exten => _X.,n(national),Goto(inter1,00049${EXTEN:2})
exten => _X.,n(inter),NoOp(Internationales Gespräch)
exten => _X.,n(inter),Goto(inter1)
exten => _X.,n(inter1),NoOp(Rufnummer rückwahlfähig standardisiert)
exten => _X.,n(inter1),NoOp(${EXTEN})

(Ist jetzt nur aus dem Kopf, kann es gerade nicht testen, sollte jedoch im Prinzip funktionieren ;))

Jetzt könntest Du die Call-Distribution mit einer entsprechenden einheitlichen Ländertabelle machen, die EXTENS wären jetz alle im Format

000<CC><NDC><SN>

und damit nach der von Dir geschilderten Anlagenlogik einerseits rückwahlfähig, andererseits einheitlich auswertbar im Hinblick auf das Herkunftsland/-gebiet.
 
Hallo abw1oim,
vielen Dank für den Lösungsansatz. Leider geht’s nicht ganz so weil
${EXTEN:0:3} beinhaltet ja die Rufnummer die Angerufen wurde und nicht die des Anrufers.
Aber mit deinem Ansatz und ${CALLERID(num):0:3} geht es.

Vielen Dank :)

exten => main,1,NoOp(Caller-ID: ${CALLERID(num)})
exten => main,n,GotoIf($["${CALLERID(num):0:5}" = "00033"]?hotline,FR,1)
exten => main,n,GotoIf($["${CALLERID(num):0:2}" = "33"]?hotline,FR,1)
exten => main,n,GotoIf($["${CALLERID(num):0:5}" = "00034"]?hotline,ES,1)
exten => main,n,GotoIf($["${CALLERID(num):0:2}" = "34"]?hotline,ES,1)
exten => main,n,GotoIf($["${CALLERID(num):0:5}" = "00044"]?hotline,EN,1)
exten => main,n,GotoIf($["${CALLERID(num):0:2}" = "44"]?hotline,EN,1)
exten => main,n,GotoIf($["${CALLERID(num):0:5}" = "00031"]?hotline,NL,1)
exten => main,n,GotoIf($["${CALLERID(num):0:2}" = "31"]?hotline,NL,1)
exten => main,n,GotoIf($["${CALLERID(num):0:5}" = "00039"]?hotline,IT,1)
exten => main,n,GotoIf($["${CALLERID(num):0:2}" = "39"]?hotline,IT,1)
; uns so weiter…

; alle anderen internationalen
exten => main,n,GotoIf($["${CALLERID(num):0:3}" = "000"]?international)

; und die lokalen (deutschen)
exten => main,n,GotoIf($["${CALLERID(num):0:2}" = "00"]?hotline,DE,1)
 
Das ist mir auf die Schnelle passiert, Asche auf mein Haupt ;)

Du hast natürlich völlig recht, dass es die CALLERID(num) braucht ...
 
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.