[macro-stdexten] exten => s,1,Set(extension=${ARG1}) exten => s,2,GotoIF($[${DB_EXISTS(EXT${extension}/FWDI)}=0]?NOTSETUP|1) exten => s,3,Set(forward=${DB(EXT${extension}/FWDI)}) exten => s,4,GotoIf($[${forward}=NO]?DIAL|1) exten => s,5,Set(type=I) exten => s,6,Goto(FWD-${forward},1) exten => NOTSETUP,1,Background(custom/extensionnotconfigured) exten => NOTSETUP,2,Playback(custom/goodbye) exten => NOTSETUP,3,Hangup exten => FWD-NO,1,GotoIf($[${DIALSTATUS}=CHANUNAVAIL]?4) exten => FWD-NO,2,Congestion(5) exten => FWD-NO,3,Hangup exten => FWD-NO,4,Playback(custom/channelnotresponding) exten => FWD-NO,5,Playback(custom/goodbye) exten => FWD-NO,6,Congestion(5) exten => FWD-NO,7,Hangup exten => FWD-VOICEMAIL,1,Set(box=${DB(EXT${extension}/FWD${type}TARGET)}) exten => FWD-VOICEMAIL,n,Set(msg=${DB(EXT${extension}/FWD${type}DATA)}) exten => FWD-VOICEMAIL,n,Voicemail(${msg}${box}) exten => FWD-VOICEMAIL,n,Playback(custom/goodbye) exten => FWD-VOICEMAIL,n,Hangup exten => FWD-EXTENSION,1,Set(extension=${DB(EXT${extension}/FWD${type}TARGET)}) exten => FWD-EXTENSION,n,Goto(s,2) exten => FWD-EXTERNAL,1,Set(externalnumber=${DB(EXT${extension}/FWD${type}TARGET)}) exten => FWD-EXTERNAL,n,Dial(Local/${externalnumber}@full) exten => FWD-EXTERNAL,n,Playback(custom/goodbye) exten => FWD-EXTERNAL,n,Hangup exten => DIAL,1,Set(dnd=${DB(EXT${extension}/DND)}) exten => DIAL,n,GotoIf($[${dnd}=YES]?DIAL-BUSY|1) exten => DIAL,n,Set(tech=${DB(EXT${extension}/TECH)}) exten => DIAL,n,Dial(${tech}/${extension},15) exten => DIAL,n,Goto(DIAL-${DIALSTATUS},1) exten => DIAL-BUSY,1,Set(forward=${DB(EXT${extension}/FWDB)}) exten => DIAL-BUSY,2,Set(type=B) exten => DIAL-BUSY,3,Goto(FWD-${forward},1) exten => DIAL-NOANSWER,1,Set(forward=${DB(EXT${extension}/FWDU)}) exten => DIAL-NOANSWER,2,Set(type=U) exten => DIAL-NOANSWER,3,Goto(FWD-${forward},1) exten => _DIAL-.,1,Goto(DIAL-NOANSWER,1) ; Treat anything else as no answer exten => a,1,VoicemailMain(${box}) ; Press * during VM message to enter exten => a,n,Hangup