[macro-stdexten]; ; ; Standard extension macro: ; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well ; ${ARG2} - Device(s) to ring ; exten => s,1,NoOp exten => s,n,GotoIf($["${TOXXXCLIENT}" != ""]?clientok:dodial) exten => s,n(clientok),SET(__TRANSFER_CONTEXT=cli${TOXXXCLIENT}-trusted) exten => s,n,GotoIf($["${TOXXXUSER}" != ""]?userok:dodial) exten => s,n(userok),SET(XXXFM=${ODBC_XXXFOLLOWMEPRE(${TOXXXCLIENT}, ${TOXXXUSER}, ${CALLERID(number)})}) exten => s,n,GotoIf($["${XXXFM}" != ""]?dofm:dodial) exten => s,n(dodial),Dial(${ARG2},20) ; Ring the interface, 20 seconds maximum exten => s,n,Goto(s-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER) exten => s,n(dofm),Goto(fm,1) exten => s-NOANSWER,1,NoOp exten => s-NOANSWER,n,GotoIf($["${TOXXXCLIENT}" != ""]?clientok:dovm) exten => s-NOANSWER,n(clientok),GotoIf($["${TOXXXUSER}" != ""]?userok:dovm) exten => s-NOANSWER,n(userok),SET(XXXFM=${ODBC_XXXFOLLOWMEPOST(${TOXXXCLIENT}, ${TOXXXUSER}, ${CALLERID(number)})}) exten => s-NOANSWER,n,GotoIf($["${XXXFM}" != ""]?dofm:dovm) exten => s-NOANSWER,n(dovm),Voicemail(${ARG1},u) ; If unavailable, send to voicemail w/ unavail announce exten => s-NOANSWER,n,Hangup ; If they press #, return to start exten => s-NOANSWER,n(dofm),Goto(fm,1) exten => s-BUSY,1,NoOp exten => s-BUSY,n,GotoIf($["${TOXXXCLIENT}" != ""]?clientok:dovm) exten => s-BUSY,n(clientok),GotoIf($["${TOXXXUSER}" != ""]?userok:dovm) exten => s-BUSY,n(userok),SET(XXXFM=${ODBC_XXXFOLLOWMEPOST(${TOXXXCLIENT}, ${TOXXXUSER}, ${CALLERID(number)})}) exten => s-BUSY,n,GotoIf($["${XXXFM}" != ""]?dofm:dovm) exten => s-BUSY,n(dovm),Voicemail(${ARG1},b) ; busy announce exten => s-BUSY,n,Hangup ; If they press #, return to start exten => s-BUSY,n(dofm),Goto(fm,1) 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 exten => fm,1,NoOp exten => fm,n,Answer exten => fm,n,FollowMe(${XXXFM}) exten => fm,n,Voicemail(${ARG1},u) exten => fm,n,Hangup