[macro-stdexten] ; Standard extension macro ; ${ARG1} - Tech ; ${ARG2} - Extension ; ${ARG3} - VM Box ; Usage : exten => 1000,1,Macro(stdexten,[SIP/IAX2/ZAP],[EXTENSION],[VMBOX]) exten => s,1,GotoIf($[${CALLERID(num)}=${ARG2}]?a|1) exten => s,2,Dial(${ARG1}/${ARG2},20) ; Ring the interface, 20 seconds maximum exten => s,3,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) exten => s-BUSY,1,GotoIf($[${ARG3}=NONE]?:3) ; If no VM just give Congestion for 5 seconds exten => s-BUSY,2,Voicemail(b${ARG3}) exten => s-BUSY,3,Congestion(5) exten => s-BUSY,4,Hangup exten => s-NOANSWER,1,GotoIf($[${ARG3}=NONE]?:3) ; If no VM just give Congestion for 5 seconds exten => s-NOANSWER,2,Voicemail(u${ARG3}) exten => s-NOANSWER,3,Congestion(5) exten => s-NOANSWER,4,Hangup exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer exten => a,1,VoiceMailMain(${ARG3}) ; Extension either called itself or hit * in voicemail. exten => a,2,Congestion(5) exten => a,3,Hangup