En effet selon le type de ligne, l'opérateur, la provenance de l'appel, le callerid peut être présenté sous différentes formes: 10 chiffres, 9 chiffres, un zéro de trop, préfixe international malgré que l'appel vienne du même pays.
Ces différences peuvent être gênantes: difficulté de recherche dans les journaux d'appels, multiplication des lignes de dialplan pour gérer les différents formats, etc...
Ce morceau de dialplan permets d'uniformiser le format du callerid:
extensions.conf
Code:
[appels-entrants]
exten => _X.,1,noop(appel entrant)
same => n,Gosub(correction-callerid,1,1)
same => n,Dial(SIP/......)
same => n,hangup()
[correction-callerid]
exten => 1,1,noop(Correction du format du callerid)
; callerid vide
same => n,GotoIf($[${CALLERID(num)} = ""]?fincorrection)
; callerid a neuf chiffres (ex: 155779988, le zero est manquant)
same => n,GotoIf($[${LEN(${CALLERID(num)})} = 9]?neufchiffres)
; callerid avec le prefixe international (ex: 33155779988)
same => n,GotoIf($[${CALLERID(num):0:2} = 33]?debut33)
; callerid avec un zero en trop
same => n,GotoIf($[$[${LEN(${CALLERID(num)})} = 11 ] & $[${CALLERID(num):0:2} = 00]]?onzechiffresdeuxzero)
; callerid deja au bon format, ou autre cas non-pris en charge
same => n,goto(fincorrection)
; les corrections associees
same => n(neufchiffres),Set(CALLERID(num)=0${CALLERID(num)})
same => n(neufchiffres),goto(fincorrection)
same => n(debut33),Set(CALLERID(num)=0${CALLERID(num):2})
same => n(debut33),goto(fincorrection)
same => n(onzechiffresdeuxzero),Set(CALLERID(num)=${CALLERID(num):1})
same => n(onzechiffresdeuxzero),goto(fincorrection)
; affichage du callerid corrige dans la CLI
same => n(fincorrection),NoOP(CALLERID->${CALLERID(num)})
same => n,Return()
- facilité à ajouter des nouvelles corrections dans le contexte [correction-callerid]
- légèreté pour votre dialplan: une simple ligne "gosub..." suffit en début d'appel, pas de redondance de code si vous avez plusieurs contextes entrants.
A vous de rajouter les formats que vous souhaiteriez uniformiser.
Florent



Menu
Utilisateurs actuellement connectés

















Message vBulletin