Code:
[general]
static=yes
writeprotect=no
clearglobalvars=no
[globals]
CONSOLE=Console/dsp ; Console interface for demo
IAXINFO=guest ; IAXtel username/password
TRUNK=DAHDI/G2 ; Trunk interface
TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0)
[work]
include => parkedcalls
exten => 01XXXX7980,1,Ringing(1)
exten => 01XXXX7980,2,Set(CALLERIN=${CALLERID(num)})
exten => 01XXXX7980,3,Answer
exten => 01XXXX7980,4,GotoIf($[${DB_EXISTS(6001/NUMCF)} & ${DB(6001/NUMCF)} != 6001]?5:8)
exten => 01XXXX7980,5,Set(NUMCF=${DB(6001/NUMCF)})
exten => 01XXXX7980,6,Set(CALLERID(num)=${CALLERIN})
exten => 01XXXX7980,7,Transfer(SIP/${NUMCF}@work)
exten => 01XXXX7980,8,Goto(work,6001,1)
exten => 01XXXX7980,9,Hangup(16)
exten => 01XXXX7985,1,Ringing(1)
exten => 01XXXX7985,2,Answer
exten => 01XXXX7985,3,GotoIf($[${DB_EXISTS(6002/NUMCF)} & ${DB(6002/NUMCF)} != 6002]?4:6)
exten => 01XXXX7985,4,Set(NUMCF=${DB(6002/NUMCF)})
exten => 01XXXX7985,5,Transfer(SIP/${NUMCF}@work)
exten => 01XXXX7985,6,Goto(work,6002,1)
exten => 01XXXX7985,7,Hangup(16)
exten => 01XXXX7908,1,Ringing(1)
exten => 01XXXX7908,2,Answer
exten => 01XXXX7908,3,GotoIf($[${DB_EXISTS(6003/NUMCF)} & ${DB(6003/NUMCF)} != 6003]?4:6)
exten => 01XXXX7908,4,Set(NUMCF=${DB(6003/NUMCF)})
exten => 01XXXX7908,5,Transfer(SIP/${NUMCF}@work)
exten => 01XXXX7908,6,Goto(work,6003,1)
exten => 01XXXX7908,7,Hangup(16)
exten => 01XXXX7885,1,Ringing(1)
exten => 01XXXX7885,2,Answer
exten => 01XXXX7885,3,GotoIf($[${DB_EXISTS(6004/NUMCF)} & ${DB(6004/NUMCF)} != 6004]?4:6)
exten => 01XXXX7885,4,Set(NUMCF=${DB(6004/NUMCF)})
exten => 01XXXX7885,5,Transfer(SIP/${NUMCF}@work)
exten => 01XXXX7885,6,Goto(work,6004,1)
exten => 01XXXX7885,7,Hangup(16)
exten => _6XXX,1,Dial(SIP/${EXTEN},20,tT)
exten => _6XXX,2,VoiceMail(${EXTEN}@work)
;Num�ro de la boite vocale
exten => 600,1,VoiceMailMain(@work)
;Num�ro pour le transfert on
exten => *55,1,Goto(ivr-transfer-on,s,1)
;Num�ro pour le transfert off
exten => #55,1,Goto(ivr-transfer-off,s,1)
exten => _0[12345679]XXXXXXXX,1,Answer()
exten => _0[12345679]XXXXXXXX,2,Wait(1)
exten => _0[12345679]XXXXXXXX,3,Dial(SIP/vers-ovh/${EXTEN})
exten => _0[12345679]XXXXXXXX,4,Hangup()
;Les appels entrants font sonner le 6001 (John DOE) et si pas r�ponses au bout de 20 secondes transfert sur sa boite vocale.
[depuis-ovh]
exten => s,1,Answer
exten => s,2,Set(CALLERIN=${CUT(CUT(SIP_HEADER(To),@,1),:,2)})
exten => s,3,GotoIf($[${CALLERIN}=01XXXX7888]?4:8)
exten => s,4,Set(HEURE=${IFTIME(07:00-19:00,mon-fri,*,*?OUVERT:FERME)})
exten => s,5,GotoIf($[${HEURE}=OUVERT]?6:7)
exten => s,6,Goto(ivr-01XXXX7888,s,1)
exten => s,7,VoiceMail(8000@work)
exten => s,8,Goto(work,${CALLERIN},1)
;IVR pour la gestion des transfert d'appel
[ivr-transfer-on]
exten => s,1,Answer()
exten => s,2,agi(googletts.agi, "Veuillez saisir les 10 chiffres au maximum du num�ro de transfert",fr,any)
exten => s,3,Read(digit,,10,1)
exten => s,4,Set(DB(${CALLERID(num)}/NUMCF)=${digit})
exten => s,5,Wait(2)
exten => s,6,agi(googletts.agi, "Votre transfert est actif sur le num�ro suivant",fr,any)
exten => s,7,SayDigits(${digit})
exten => s,8,Hangup()
[ivr-transfer-off]
exten => s,1,Answer()
exten => s,2,Set(DB(${CALLERID(num)}/NUMCF)=${CALLERID(num)})
exten => s,3,agi(googletts.agi, "Votre transfert est � pr�sent inactif",fr,any)
exten => s,4,Hangup()
;IVR du menu global du 0185087888
[ivr-0185087888]
exten => s,1,Answer()
exten => s,2,agi(googletts.agi, "Bienvenue chez XXXXXXXX !",fr,any)
exten => s,3,agi(googletts.agi, "Pour joindre le service apr�s vente, tapez 1", fr, any)
exten => s,4,agi(googletts.agi, "Pour joindre le service commercial, tapez 2", fr, any)
exten => s,5,agi(googletts.agi, "Pour joindre le service informatique, tapez 3", fr, any)
exten => s,6,agi(googletts.agi, "Pour toute autre demande, tapez 4", fr, any)
exten => s,7,WaitExten()
exten => 1,1,Goto(sav,s,1)
exten => 2,1,Goto(commercial,s,1)
exten => 3,1,Goto(informatique,s,1)
exten => 4,1,Goto(autre,s,1)
exten => _[5-9#],1,Goto(ivr-0185087888,s,2)
exten => t,1,Goto(ivr-0185087888,s,2)
[sav]
exten => s,1,Answer()
exten => s,2,Wait(1)
exten => s,3,Dial(SIP/6002,20,tT)
exten => s,4,Dial(SIP/6001,20,tT)
exten => s,5,VoiceMail(8000@work)
exten => s,6,Hangup()
[commercial]
exten => s,1,Answer()
exten => s,2,Wait(1)
exten => s,3,Dial(SIP/6002,20,tT)
exten => s,4,Dial(SIP/6001,20,tT)
exten => s,5,VoiceMail(8000@work)
exten => s,6,Hangup()
[informatique]
exten => s,1,Answer()
exten => s,2,Wait(1)
exten => s,3,Dial(SIP/6003,20,tT)
exten => s,4,Dial(SIP/6001,20,tT)
exten => s,5,VoiceMail(8000@work)
exten => s,6,Hangup()
[autre]
exten => s,1,Answer()
exten => s,2,Wait(1)
exten => s,3,Dial(SIP/6002,20,tT)
exten => s,4,Dial(SIP/6003,20,tT)
exten => s,5,Dial(SIP/6001,20,tT)
exten => s,6,VoiceMail(8000@work)
exten => s,7,Hangup()
mon users.conf :