rendered paste body[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)