[forwarding-menu] exten => s,1,Answer exten => s,2,Wait(1) exten => s,3,Background(custom/forwardingmenu) exten => s,4,Set(TIMEOUT(digit)=3) exten => s,5,Set(TIMEOUT(response)=15) ; 1 - Immediate exten => 1,1,Set(fwdtype=I) exten => 1,2,Goto(forwarding-type,s,1) ; 2 - Busy exten => 2,1,Set(fwdtype=B) exten => 2,2,Goto(forwarding-type,s,1) ; 3 - Unavailable exten => 3,1,Set(fwdtype=U) exten => 3,2,Goto(forwarding-type,s,1) exten => i,1,Playback(custom/pleasetryagain) exten => i,2,Goto(s,3) exten => t,1,Playback(custom/goodbye) exten => t,2,Hangup [forwarding-type] exten => s,1,Answer exten => s,2,Wait(1) exten => s,3,Background(custom/forwardingtypemenu) exten => s,4,Set(TIMEOUT(digit)=3) exten => s,5,Set(TIMEOUT(response)=15) ; 1 - None exten => 1,1,DBput(EXT${fwdsource}/FWD${fwdtype}=NO) exten => 1,n,DBput(EXT${fwdsource}/FWD${fwdtype}TARGET=NO) exten => 1,n,DBput(EXT${fwdsource}/FWD${fwdtype}DATA=NO) exten => 1,n,Playback(custom/forwardingtype${fwdtype}) exten => 1,n,Playback(custom/removed) exten => 1,n,Playback(custom/goodbye) exten => 1,n,Hangup ; 2 - Voicemail exten => 2,1,Goto(forwarding-voicemail,s,1) ; 3 - Extension exten => 3,1,Goto(forwarding-extension,s,1) ; 4 - External exten => 4,1,Goto(forwarding-external,s,1) exten => i,1,Playback(custom/pleasetryagain) exten => i,2,Goto(s,3) exten => t,1,Playback(custom/goodbye) exten => t,2,Hangup [forwarding-voicemail] exten => s,1,Answer exten => s,2,Wait(1) exten => s,3,Playback(custom/entervoicemailbox) exten => s,4,Read(fwdvmbox) exten => s,5,Gotoif($[${LEN(${fwdvmbox})}<1]?100) exten => s,6,Background(custom/forwardtovmbox) exten => s,7,SayDigits(${fwdvmbox}) exten => s,8,Background(custom/press1toaccept) exten => s,9,Background(custom/press2tochange) exten => s,10,Set(TIMEOUT(digit)=3) exten => s,11,Set(TIMEOUT(response)=15) exten => s,100,Playback(custom/pleasetryagain) exten => s,101,Goto(s,3) ; 1 - Accept exten => 1,1,Goto(forwarding-voicemail-playmsg,s,1) ; 2 - Change exten => 2,1,Goto(s,3) exten => i,1,Playback(custom/pleasetryagain) exten => i,2,Goto(s,3) exten => t,1,Playback(custom/goodbye) exten => t,2,Hangup [forwarding-voicemail-playmsg] exten => s,1,Answer exten => s,2,Wait(1) exten => s,3,Background(custom/selectmsgtoplay) exten => s,4,Set(TIMEOUT(digit)=3) exten => s,5,Set(TIMEOUT(response)=15) ; None exten => 1,1,Set(fwdvmplaymsg=) exten => 1,2,Goto(forwarding-voicemail-set,s,1) ; Busy exten => 2,1,Set(fwdvmplaymsg=b) exten => 2,2,Goto(forwarding-voicemail-set,s,1) ; Unavailable exten => 3,1,Set(fwdvmplaymsg=u) exten => 3,2,Goto(forwarding-voicemail-set,s,1) exten => i,1,Playback(custom/pleasetryagain) exten => i,2,Goto(s,3) exten => t,1,Playback(custom/goodbye) exten => t,2,Hangup [forwarding-voicemail-set] exten => s,1,Answer exten => s,n,DBput(EXT${fwdsource}/FWD${fwdtype}=VOICEMAIL) exten => s,n,DBput(EXT${fwdsource}/FWD${fwdtype}TARGET=${fwdvmbox}) exten => s,n,DBput(EXT${fwdsource}/FWD${fwdtype}DATA=${fwdvmplaymsg}) exten => s,n,Playback(custom/forwardingtype${fwdtype}) exten => s,n,Playback(custom/configured) exten => s,n,Playback(custom/goodbye) exten => s,n,Hangup [forwarding-extension] exten => s,1,Answer exten => s,2,Wait(1) exten => s,3,Background(custom/enterextension) exten => s,n,Read(fwdextension) exten => s,n,Gotoif($[${LEN(${fwdextension})}<>4]?100) exten => s,n,Gotoif($[${fwdextension}<1000]?100) exten => s,n,Gotoif($[${fwdextension}>8999]?100) exten => s,n,DBput(EXT${fwdsource}/FWD${fwdtype}=EXTENSION) exten => s,n,DBput(EXT${fwdsource}/FWD${fwdtype}TARGET=${fwdextension}) exten => s,n,DBput(EXT${ARG1}/FWD${ARG2}DATA=NO) exten => s,n,Playback(custom/forwardingtype${fwdtype}) exten => s,n,Playback(custom/settoextension) exten => s,n,SayDigits(${fwdextension}) exten => s,n,Playback(custom/configured) exten => s,n,Playback(custom/goodbye) exten => s,n,Hangup exten => s,100,Playback(custom/pleasetryagain) exten => s,101,Goto(s,3) [forwarding-external] exten => s,1,Answer exten => s,2,Wait(1) exten => s,3,Background(custom/enterextension) exten => s,n,Read(fwdexternal) exten => s,n,Gotoif($[${LEN(${fwdexternal})}<2?100) exten => s,n,Gotoif($[${fwdexternal:1:1}<>9]?100) exten => s,n,DBput(EXT${fwdsource}/FWD${fwdtype}=EXTERNAL) exten => s,n,DBput(EXT${fwdsource}/FWD${fwdtype}TARGET=${fwdexternal}) exten => s,n,DBput(EXT${fwdsource}/FWD${fwdtype}DATA=NO) exten => s,n,Playback(custom/forwardingtype${fwdtype}) exten => s,n,Playback(custom/settoexternal) exten => s,n,SayDigits(${fwdexternal}) exten => s,n,Playback(custom/configured) exten => s,n,Playback(custom/goodbye) exten => s,n,Hangup exten => s,100,Playback(custom/pleasetryagain)