[macro-exten-vm] exten => s,1,Macro(user-callerid) exten => s,n,Set(FROMCONTEXT=exten-vm) exten => s,n,Set(TRANSFER_CONTEXT=ext_local) exten => s,n,Set(VMBOX=${ARG1}) exten => s,n,Set(EXTTOCALL=${ARG2}) exten => s,n,Set(CFUEXT=${DB(CFU/${EXTTOCALL})}) exten => s,n,Set(RT=${IF($[$["${VMBOX}"!="novm"] | $["foo${CFUEXT}"!="foo"]]?${RINGTIMER}:"")}) exten => s,n,Macro(record-enable,${EXTTOCALL},IN) exten => s,n,GotoIf($["${CHANNEL:0:5}" = "Local"]?dolocaldial,1) ; if the channel is Local exten => s,n,Macro(dial,${RT},${DIAL_OPTIONS},${EXTTOCALL}) exten => s,n,GosubIf($[$["${DIALSTATUS}"="NOANSWER"] & $["foo${CFUEXT}"!="foo"]]?docfu,1) ; check for CFU in use on no answer exten => s,n,NoOp(Voicemail is '${VMBOX}') exten => s,n,GotoIf($["${VMBOX}" = "novm"]?s-${DIALSTATUS},1) ; no voicemail in use for this extension exten => s,n,NoOp(Sending to Voicemail box ${EXTTOCALL}) exten => s,n,Macro(vm,${VMBOX},${DIALSTATUS}) ; Local channel should try to ring the phone only then come back out ; i.e. it's wrong for it to Answer the call in any way (including Congestion ; and stop the initiating dialplan from being returned to) exten => dolocaldial,1,Macro(dial,,${DIAL_OPTIONS},${EXTTOCALL}) exten => dolocaldial,n,NoOp(Returned to dolocaldial with DIALSTATUS '${DIALSTATUS}') ; Try the Call Forward on No Answer / Unavailable number exten => docfu,1,Set(RTCFU=${IF($["${VMBOX}"!="novm"]?${RINGTIMER}:"")}) exten => docfu,n,Dial(Local/${CFUEXT}@from-internal/n,${RTCFU},${DIAL_OPTIONS}) exten => docfu,n,Return ; Extensions with no Voicemail box reporting BUSY come here exten => s-BUSY,1,NoOp(Extension is reporting BUSY and not passing to Voicemail)exten => s-BUSY,n,Busy() exten => s-BUSY,n,Wait(60) exten => s-BUSY,n,Congestion() ; Anything but BUSY comes here exten => _s-.,1,Congestion()