Kopfnummer eines Anrufers überprüfen

VOIPdani

Mitglied
Mitglied seit
8 Aug 2005
Beiträge
432
Punkte für Reaktionen
0
Punkte
0
Hallo!

Ich habe folgendes Problem: Ich möchte nur die Kopfnummer eines Anrufers überprüfen. Die Durchwahl ist im ersten Schritt unrelevant.

Meine Prüfung sieht wie folgt aus wenn ich die gesamte Rufnummer prüfe:
Code:
exten => 913,1,GotoIfTime(8:00-17:00|mon-fri|*|*?2)
exten => 913,2,GotoIf($[${CALLERIDNUM} = 7236335144]?3:5)
exten => 913,3,SetCallerID(723633517900${CALLERIDNUM:9})
exten => 913,4,Dial(${OUTBOUND}/06645466xxx)
exten => 913,5,Hangup

Dies funktioniert wunderbar. Aber ich möchte diese Prüfung natürlich nicht für jeden MA einer bestimmten Firma einrichten, sondern ich will eben nur die Kopfnummer überprüfen.

Mein Lösungsansatz im Kopf hätte wie folgt ausgesehen:
Code:
exten => 913,1,GotoIfTime(8:00-17:00|mon-fri|*|*?2)
exten => 913,2,GotoIf($[${CALLERIDNUM} = 72363351XX]?3:5)
exten => 913,3,SetCallerID(723633517900${CALLERIDNUM:9})
exten => 913,4,Dial(${OUTBOUND}/06645466xxx)
exten => 913,5,Hangup

Funktioniert aber nicht!

Ein weiterer Lösungsansatz wäre die letzten Stellen der CALLERIDNUM weg zu schneiden. Aber da weiß ich nicht wie ich das anstellen soll. Ich kenne nur CALLERIDNUM:2 um die beiden ersten Stellen der CALLERIDNUM weg zu schneiden...

Kann mir da jemand von euch weiterhelfen?

Lg Dani
 
/usr/src/asterisk/doc/README.variables schrieb:
REMOVING CHARACTERS FROM STRING
-------------------------------

The format for removing characters from a variable can be expressed as:

${variable_name[:eek:ffset[:length]]}

If you want to remove the first N characters from the string assigned
to a variable, simply append a colon and the number of characters to
remove from the beginning of the string to the variable name.

;Remove the first character of extension, save in "number" variable
exten => _9X.,1,Set(number=${EXTEN:1})

Assuming we've dialed 918005551234, the value saved to the 'number' variable
would be 18005551234. This is useful in situations when we require users to
dial a number to access an outside line, but do not wish to pass the first
digit.

If you use a negative offset number, Asterisk starts counting from the end
of the string and then removes everything before the new position. The following
example will save the numbers 1234 to the 'number' variable, still assuming
we've dialed 918005551234.

;Remove everything before the last four digits of the dialed string
exten => _9X.,1,Set(number=${EXTEN:-4})

We can also limit the number of characters from our offset position that we
wish to use. This is done by appending a second colon and length value to the
variable name. The following example will save the numbers 555 to the 'number'
variable.

;Only save the middle numbers 555 from the string 918005551234
exten => _9X.,1,Set(number=${EXTEN:5:3})

The length value can also be used in conjunction with a negative offset. This
may be useful if the length of the string is unknown, but the trailing digits
are. The following example will save the numbers 555 to the 'number' variable,
even if the string starts with more characters than expected (unlike the
previous example).

;Save the numbers 555 to the 'number' variable
exten => _9X.,1,Set(number=${EXTEN:-7:3})

If a negative length value is entered, it is ignored and Asterisk will match
to the end of the string.
 
Die Länge einer Variablen kriegst Du mit LEN() raus. Davon ziehst Du einfach 2 ab :wink:

verwendete_stellen=LEN(${NUMMER})-2
 
Danke für eure kompetenten Antworten, ich konnte mein Problem damit lösen!
 
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.