Code PHP:
general]
language=fr
static=yes
writeprotec=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no
[entrant]
exten=> 5320,1, Answer()
exten=> 5320,n,Gosub(correction-callerid,1,1)
exten=> 5320,n,Queue(accueil,t,,,30)
exten=> 5320,n,Voicemail(300@default)
exten=> 5320,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)=00${CALLERID(num)})
same => n(neufchiffres),goto(fincorrection)
same => n(debut33),Set(CALLERID(num)=00${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()
[sortant]
exten=> _0XXXXXXXXXX,1,Set(CALLERID(all)=" Esat " <476535320>)
exten=> _0.,n,Dial(DAHDI/${1/EXTEN:1})
exten=> _0.,n,Dial(DAHDI/2/${EXTEN:1})
exten=> _0.,n,Dial(DAHDI/4/${EXTEN:1})
exten=> _0.,n,Dial(DAHDI/5/${EXTEN:1})
exten=> _0.,n,Dial(DAHDI/7/${EXTEN:1})
exten=> _0.,n,Dial(DAHDI/8/${EXTEN:1})
exten=> _0.,n,Dial(DAHDI/10/${EXTEN:1})
exten=> _0.,n,Dial(DAHDI/11/${EXTEN:1})
[BLF]
exten=> 300,hint,SIP/300
exten=> 301,hint,SIP/301
exten=> 302,hint,SIP/302
exten=> 303,hint,SIP/303
exten=> 304,hint,SIP/304
exten=> 305,hint,SIP/305
exten=> 306,hint,SIP/306
exten=> 307,hint,SIP/307
exten=> 308,hint,SIP/308
exten=> 309,hint,SIP/309
[interne]
include=> BLF
exten=> 300,1,Answer()
;exten=> 300,n,Wait(1)
exten=> 300,n,Dial(SIP/300,30)
exten=> 300,n,Voicemail(300)
exten=> 300,n,Hangup()
exten=> 301,1,Answer()
exten=> 301,n,Wait(1)
exten=> 301,n,Dial(SIP/301,30)
exten=> 301,n,Voicemail(301)
exten=> 301,n,Hangup()
exten=> 302,1,Answer()
exten=> 302,n,Wait(1)
exten=> 302,n,Dial(SIP/302,30)
exten=> 302,n,Voicemail(302)
exten=> 302,n,Hangup()
exten=> 303,1,Answer()
;exten=> 303,n,Wait(1)
exten=> 303,n,Dial(SIP/303,30,r)
exten=> 303,n,Voicemail(303)
exten=> 303,n,Hangup()
exten=> 304,1,Answer()
exten=> 304,n,Wait(1)
exten=> 304,n,Dial(SIP/304,30)
exten=> 304,n,Voicemail(304)
exten=> 304,n,Hangup()
exten=> 305,1,Answer()
exten=> 305,n,Wait(1)
exten=> 305,n,Dial(SIP/305,30)
exten=> 305,n,Voicemail(305)
exten=> 305,n,Hangup()
exten=> 306,1,Answer()
exten=> 306,n,Wait(1)
exten=> 306,n,Dial(SIP/306,30)
exten=> 306,n,Voicemail(306)
exten=> 306,n,Hangup()
exten=> 307,1,Answer()
exten=> 307,n,Wait(1)
exten=> 307,n,Dial(SIP/307,30)
exten=> 307,n,Voicemail(307)
exten=> 307,n,Hangup()
exten=> 308,1,Answer()
exten=> 308,n,Wait(1)
exten=> 308,n,Dial(SIP/308,30)
exten=> 308,n,Voicemail(308)
exten=> 308,n,Hangup()
exten=> 309,1,Answer()
exten=> 309,n,Wait(1)
exten=> 309,n,Dial(SIP/309,30)
exten=> 309,n,Voicemail(309)
exten=> 309,n,Hangup()
exten => 888,1,Answer()
exten => 888,n,VoiceMailMain(${CALLERIDNUM})
exten => 888,n,Hangup