[globals] PHONE1=SIP/4000 PHONE2=SIP/4001 PHONE3=SIP/4002 PHONE4=SIP/4003 PHONE5=SIP/4004 PHONE6=SIP/4005 PHONE7=SIP/4006 PHONE8=SIP/4007 PHONE9=SIP/4008 [macro-stdexten]; ; ; Standard extension macro: ; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well ; ${ARG2} - Device(s) to ring ; exten => s,1,Dial(${ARG1},20,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${ARG2}) ; If unavailable, send to voicemail w/ unavail announce exten => s-NOANSWER,2,Goto(s,1) ; If they press #, return to start exten => s-BUSY,1,Voicemail(b${ARG2}) ; 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(${ARG2}) ; If they press *, send the user into VoicemailMain ; ; Create an extension, 600, for evaluating 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 ; ; Give voicemail at extension 8500 ; exten => 8500,1,VoicemailMain exten => 8500,n,Goto(s,6) exten => 8600,1,Answer exten => 8600,n,MusicOnHold() [incoming] exten => include => mainmenu [mainmenu] ; ; Example "main menu" context with submenu ; include => internal exten => s,1,Answer ;exten => s,n,WaitExten exten => s/4258820921,n,Queue(support|tT|||300) ;exten => s,n,Wait,2 exten => s,n,Queue(support) exten => i,1,Background(invalid) exten => i,n,Goto(mainmenu,s,2) exten => t,1,Background(oops1) exten => t,n,Goto(mainmenu,s,2) ;support queue [support] exten => 2000,1,Ringing exten => 2000,n,Queue(support|tT|||300) exten => t,1,Dial(SIP/4000) [submenu] exten => s,1,Ringing ; Make them comfortable with 2 seconds of ringback exten => s,n,Wait,2 exten => s,n,Background(submenuopts) ; "Thanks for calling the sales department. Press 1 for steve, 2 for..." exten => s,n,WaitExten exten => 1,1,Goto(default,steve,1) exten => 2,1,Goto(default,mark,2) [default] ; include => outbound ;Dennis exten => 4000,1,Macro(stdexten,${PHONE1},4000) ;Brian exten => 4001,1,Dial(SIP/4001,20) exten => 4001,n,Voicemail(u4001) ;David exten => 4002,1,Dial(SIP/4002) exten => 4002,n,Voicemail(u4002) ;JohnR exten => 4003,1,Dial(SIP/4003) exten => 4003,n,Voicemail(u4003) ;Tim exten => 4004,1,Dial(SIP/4004) exten => 4004,n,Voicemail(u4004) exten => 1000,1,Goto(mainmenu,s,1) ; ; Give voicemail at extension 8500 ; exten => 8500,1,VoicemailMain exten => 8500,n,Goto(s,6) ;Listen to Music on Hold exten => 8600,1,Answer exten => 8600,n,MusicOnHold() ;Dial SAVPBX SIP Extension [internal] exten => _40XX,1,Dial(SIP/${EXTEN}) exten => _50XX,1,Dial(IAX2 [outbound] exten => _XXXXXXX,1,Dial(Zap/G0/${EXTEN}) exten => _1NXXNXXXXXX,1,Dial(Zap/G0/${EXTEN})