[general] static=yes writeprotect=no autofallthrough=yes clearglobalvars=no priorityjumping=no [globals] CONSOLE=Console/dsp IAXINFO=guest TRUNK=Zap/g2 SIP101=SIP/101 SIP102=SIP/102 SIP103=SIP/103 TRUNKMSD=1 [dundi-e164-local] include => dundi-e164-canonical include => dundi-e164-customers include => dundi-e164-via-pstn [dundi-e164-switch] switch => DUNDi/e164 [dundi-e164-lookup] include => dundi-e164-local include => dundi-e164-switch exten => s,1,Goto(${ARG1},1) include => dundi-e164-lookup [iaxtel700] exten => _91700XXXXXXX,1,Dial(IAX2/${IAXINFO}@iaxtel.com/${EXTEN:1}@iaxtel) [trunkint] exten => _9011.,1,Macro(dundi-e164,${EXTEN:4}) exten => _9011.,n,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}) [trunkld] exten => _91NXXNXXXXXX,1,Macro(dundi-e164,${EXTEN:1}) exten => _91NXXNXXXXXX,n,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}) [trunklocal] exten => _9NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}) [trunktollfree] exten => _91800NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}) exten => _91888NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}) exten => _91877NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}) exten => _91866NXXXXXX,1,Dial(${TRUNK}/${EXTEN:${TRUNKMSD}}) [international] ignorepat => 9 include => longdistance include => trunkint [longdistance] ignorepat => 9 include => local include => trunkld [local] ignorepat => 9 include => default include => parkedcalls include => trunklocal include => iaxtel700 include => trunktollfree include => iaxprovider [macro-stdexten]; exten => s,1,Dial(${ARG2},60,t) ; Ring the interface, 20 seconds maximum exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) exten => s-NOANSWER,1,Voicemail(u${ARG1}) ; If unavailable, send to voicemail w/ unavail announce exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start exten => s-BUSY,1,Voicemail(b${ARG1}) ; If busy, send to voicemail w/ busy announce exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into VoicemailMain [macro-stdPrivacyexten]; exten => s,1,Dial(${ARG2},20|p) ; Ring the interface, 20 seconds maximum, call screening option (or use P for databased call screening) exten => s,2,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) exten => s-NOANSWER,1,Voicemail(u${ARG1}) ; If unavailable, send to voicemail w/ unavail announce exten => s-NOANSWER,2,Goto(default,s,1) ; If they press #, return to start exten => s-BUSY,1,Voicemail(b${ARG1}) ; If busy, send to voicemail w/ busy announce exten => s-BUSY,2,Goto(default,s,1) ; If they press #, return to start exten => s-DONTCALL,1,Goto(${ARG3},s,1) ; Callee chose to send this call to a polite "Don't call again" script. exten => s-TORTURE,1,Goto(${ARG4},s,1) ; Callee chose to send this call to a telemarketer torture script. exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer exten => a,1,VoicemailMain(${ARG1}) ; If they press *, send the user into VoicemailMain [demo] exten => s,1,Wait,1 ; Wait a second, just for fun exten => s,n,Answer ; Answer the line exten => s,n,Set(TIMEOUT(digit)=5) ; Set Digit Timeout to 5 seconds exten => s,n,Set(TIMEOUT(response)=10) ; Set Response Timeout to 10 seconds exten => s,n(restart),BackGround(demo-congrats) ; Play a congratulatory message exten => s,n(instruct),BackGround(demo-instruct) ; Play some instructions exten => s,n,WaitExten ; Wait for an extension to be dialed. exten => 2,1,BackGround(demo-moreinfo) ; Give some more information. exten => 2,n,Goto(s,instruct) exten => 3,1,Set(LANGUAGE()=fr) ; Set language to french exten => 3,n,Goto(s,restart) ; Start with the congratulations exten => 101,1,Macro(stdexten,101,${SIP101}) exten => 102,1,Macro(stdexten,102,${SIP102}) exten => 103,1,Macro(stdexten,103,${SIP103}) exten => 104,1,Macro(stdexten,104,SIP/104) exten => 105,1,Macro(stdexten,105,SIP/105) exten => 106,1,Macro(stdexten,106,SIP/106) exten => 201,1,Macro(stdexten,201,IAX2/201) exten => 202,1,Macro(stdexten,202,IAX2/202) exten => 1000,1,Goto(default,s,1) exten => 1234,1,Playback(transfer,skip) ; "Please hold while..." ; (but skip if channel is not up) exten => 1234,n,Macro(stdexten,1234,${CONSOLE}) exten => 1235,1,Voicemail(u1234) ; Right to voicemail exten => 1236,1,Dial(Console/dsp) ; Ring forever exten => 1236,n,Voicemail(u1234) ; Unless busy exten => #,1,Playback(demo-thanks) ; "Thanks for trying the demo" exten => #,n,Hangup ; Hang them up. exten => t,1,Goto(#,1) ; If they take too long, give up exten => i,1,Playback(invalid) ; "That's not valid, try again" ; ; Create an extension, 600, for evaulating echo latency. ; exten => 600,1,Playback(demo-echotest) ; Let them know what's going on exten => 600,n,Echo ; Do the echo test exten => 600,n,Playback(demo-echodone) ; Let them know it's over exten => 600,n,Goto(s,6) ; Start over [default] ; ; Give voicemail at extension 8500 ; exten => 8500,1,VoicemailMain exten => 8500,n,Goto(s,6) exten => 322564001,1,Dial(SIP/102,60,Ttr) exten => 322564001,2,Voicemail(s102) exten => 322564001,3,Hangup() exten => 344316501,1,Dial(SIP/101,60,TtrA(dinc)) exten => 344316501,2,Voicemail(s101) ; aqui funciona, ele não diz "please leave your message" exten => 344316501,3,Hangup() exten => 101,1,Macro(stdexten,101,${SIP101}) exten => 101,2,Voicemail(s101) ; tentei usar aqui o (s102) mas mesmo assim não vai! exten => 102,1,Macro(stdexten,102,${SIP102}) exten => 102,2,Voicemail(s102) ; tentei usar aqui o (s102) mas mesmo assim não vai! exten => 103,1,Macro(stdexten,103,${SIP103}) exten => _99X.,1,Dial(SIP/tmaisdan/${EXTEN:2},60) exten => _99X.,2,Hangup() exten => _88X.,1,Dial(SIP/tmaisedu/${EXTEN:2},60) exten => _88X.,2,Hangup() exten => _77X.,1,Dial(SIP/outinx/${EXTEN:2},60) exten => _77X.,2,Hangup() exten => _66X.,1,Dial(SIP/outinx2/${EXTEN:2},60) exten => _66X.,2,Hangup() exten => _77X.,2,Hangup()