[macro-stdexten] ; ; Standard extension macro: ; ${ARG1} - Extension (we could have used ${MACRO_EXTEN} here as well ; ${ARG2} - Device(s) to ring ; Retrieve the Call Forward number if available. exten => s,1,Set(CFIM=${DB(CFIM/${ARG1:-4})}) ; ; Dial the appropriate number depending on whether the Call Forward exten => s,n,GotoIf($["${vmbox}"!=""]?s-NoCFIM,1) exten => s,n,Set(_vmbox=${MACRO_EXTEN:-4}) exten => s,n,GotoIf($["${CFIM}"!=""]?s-CFIM,1:s-NoCFIM,1) ; ; Hangup. exten => s,n,Hangup ; ; Dial Call Forward number & return. exten => s-CFIM,1,SetCIDName(Forwarded From ${vmbox}) exten => s-CFIM,n,Dial(Local/${CFIM},30,Ttr) exten => s-CFIM,n,GosubIf($[${DIALSTATUS}=NOANSWER]?s-NOANSWER,1:s-BUSY,1) exten => s-CFIM,n,Hangup ; Dial actual extension & return. exten => s-NoCFIM,1,Dial(${ARG1},30,Ttr) exten => s-NoCFIM,n,GosubIf($[${DIALSTATUS}=NOANSWER]?s-NOANSWER,1:s-BUSY,1) exten => s-NoCFIM,n,Hangup ; ; Unavailable voicemail message if there is no answer. exten => s-NOANSWER,1,Voicemail(u${vmbox}) exten => s-NOANSWER,n,Return ; Busy voicemail message for any DIALSTATUS other than NOANSWER (or ANSWER). exten => s-BUSY,1,Voicemail(b${vmbox}) exten => s-BUSY,n,Return