SetCIDNum: Rufnummer korrigieren

doit

Neuer User
Mitglied seit
28 Apr 2006
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Hallo,

wir haben das Problem, das eingehende Anrufe auf dem Telefon im Format 49XXXXYYYYYYY signalisiert werden. Das Wählen der Nummer klappt so nicht, da die Rufnummer im Format 0XXXXYYYYYY erwartet wird.

Wir haben jetzt folgendes gemacht: SetCIDNum(0${CALLERIDNUM:2}), so
dass die ersten 2 Ziffern abgeschnitten und durch 0 ersetzt werden.

Klappt auch alles sehr gut, nur bekommen wir ab und an Anrufe aus dem AUsland. Eine Schweizernummer kommt im Format +41XXXXYYYYYYY und
schon passt es nicht mehr.

Gibt es eine einfache Möglichkeit das korrekt zu handeln, so dass bei:
nationalen Anrufen 0XXXXYYYYYY und bei internationalen Anrufen: 00LKXXXXYYYYYYYY steht. LK steht für die Länderkennzahl?

Gruß
Annabelle
 
z.B. abgehend jedes Format akzeptieren (aus Anruferliste):

(zuerst nach +lz springen)

Code:
[+lz]

exten => _.,1,GotoIf($[${LEN(${EXTEN})} < 8]?8:2)
exten => _.,2,GotoIf($["${EXTEN:0:3}" = "+49"]?3:4)
exten => _.,3,Goto(wahl,0${EXTEN:3},1)
exten => _.,4,GotoIf($["${EXTEN:0:1}" = "+"]?5:6)
exten => _.,5,Goto(wahl,00${EXTEN:1},1)
exten => _.,6,GotoIf($["${EXTEN:0:2}" = "49"]?7:8)
exten => _.,7,Goto(wahl,0${EXTEN:2},1)
exten => _.,8,Goto(wahl,${EXTEN},1)

[wahl]
...
exten => _X.,1,Dial(...
...
 
Als Ergänzung.

Eingehende Anrufe umsetzen:

Code:
[macro+49]

exten => s,1,GotoIf($[${LEN(${CALLERIDNUM})} < 8]?10:2)
exten => s,2,GotoIf($["${CALLERIDNUM:0:3}" = "+49"]?3:4)
exten => s,3,Set(CALLERID(number)=0${CALLERIDNUM:3})
exten => s,4,GotoIf($["${CALLERIDNUM:0:1}" = "+"]?5:6)
exten => s,5,Set(CALLERID(number)=00${CALLERIDNUM:1})
exten => s,6,GotoIf($["${CALLERIDNUM:0:2}" = "49"]?7:8 )
exten => s,7,Set(CALLERID(number)=0${CALLERIDNUM:2})
exten => s,8,GotoIf($["${CALLERIDNUM:0:[b]3[/b]}" = "[b]069[/b]"]?9:10)  ; Ortsvorwahl entfernen
exten => s,9,Set(CALLERID(number)=${CALLERIDNUM:[b]3[/b]})
exten => s,10,NoOp

Aufruf:

exten => _.,1,Macro(+49)
 
Du hast geschrieben dass nationale Anrufe ohne + als Präfix kommen aber mit 49 und die internationalen Anrufe immer mit +:

; nationaler Anruf
exten => _49.,1,Macro(dialout,0${EXTEN:2})
.
; internationaler Anruf
exten => _+.,1,Macro(dialout,00${EXTEN:1})
.

[macro-dialout]
exten => s,1,DIAL(SIP/${ARG1}..............

Ergänzung, wenn Du eingehende Anrufe manipulieren möchtest:

exten => s,n,GoToIF($["${LEN(${CALLERID(number)})}">"0"]?g_sortieren:g_weiter)
exten => s,n(g_sortieren),GoTo(sortieren,${CALLERID(number)},1)
exten => s,n,(g_weiter),NoOP(keine CallerID)

[sortieren]

; nationaler Anruf
exten => _49.,1,SET(CALLERID(number)=0${EXTEN:2})
.
; internationaler Anruf
exten => _+.,1,SET(CALLERID(number)=00${EXTEN:1})
 
Zuletzt bearbeitet:
Kostenlos!

Statistik des Forums

Themen
248,888
Beiträge
2,303,988
Mitglieder
378,568
Neuestes Mitglied
me2k