Code:
exten => s,1,Wait(2) ; 2s pour dentifier le callerid
exten => s,n,Answer()
exten => s,n,NoOp(${CALLERID(num)}) ; Extraction callerid
include => ivr_fr
include => outgoing
;======================================================
;Routage personalise (detection du callerid)
;======================================================
exten => s,n,GotoIf($["${CALLERID(num):0:3}" = "001"]?30) ; USA (detection 3 first digits)
exten => s,n,GotoIf($["${CALLERID(num):0:4}" = "0034"]?60) ; ESPAGNE (detection 4 first digits)
exten => s,n,GotoIf($["${CALLERID(num)}" = ""]?150) ; numeros masques
exten => s,n,Goto(s,150) ; Tous les autres cas non traites
exten => s,28,Set(CALLERID(num)=${CALLERID(num):2}) ; Mise en forme ne IP => suppression de "00".
exten => s,29,Set(CALLERID(num)=001${CALLERID(num)}) ; Mise en forme ne IP => insertion de "001".
exten => s,30,Playback(serveur_asterisk_bonjour)
exten => s,31,Playback(hello_you)
exten => s,32,Goto(ivr_fr,s,1)
exten => s,60,Goto(ivr_esp,s,1)
exten => s,150,Goto(ivr_fr,s,1)
;======================================================
[ivr_fr]
;======================================================
exten => s,1,Read(NUM,milly_accueil123,1,skip,2,2) ; Read (variable, soundfile, maxdigits, option, attempts, timeout)
exten => s,n,Goto(${NUM},1)
exten => s,n,Playback(vm-goodbye)
exten => s,n,Hangup()
exten => i,1,Playback(pbx-invalid)
exten => i,2,Goto(s,1)
exten => t,1,Playback(vm-goodbye)
exten => t,n,Hangup()
exten => 1,1,Playback(vm-extension&digits/1)
exten => 1,n,Goto(199,1)
exten => 2,1,Playback(vm-extension&digits/2)
exten => 2,n,Goto(299,1)
exten => 3,1,Playback(vm-extension&digits/3)
exten => 3,n,Goto(300,1)
;======================================================
[ivr_esp]
;======================================================
exten => s,1,Dial(${POSTE200},30) ; r1 pour ring cadence et caller id DECT
exten => s,n,VoiceMail(${POSTE200VOICE}) ; ,u pour unavailable msg
exten => s,n,Hangup()
;_______________________________________________________
; 100
exten => 100,1,Dial(${POSTE100},20)
exten => 100,n,VoiceMail(${POSTE100VOICE})
exten => 100,n,Hangup()
;_______________________________________________________
; 300 - all extensions
exten => 300,1,Dial(${POSTE100}&${POSTE200},30)
exten => 300,n,Playback(vm-nobodyavail)
exten => 300,n,Hangup()
exten => 300,n,Goto(s,1)