All pastes #33194 Raw Edit

Mine

public text v1 · immutable
#33194 ·published 2005-12-10 17:16 UTC
rendered paste body
[macro-stdexten]

exten => s,1,Set(extension=${ARG1})
exten => s,2,DBget(forward=EXT${extension}/FWDI)
exten => s,3,GotoIf($[${forward}=NO]?DIAL|1)
exten => s,4,Set(type=I)
exten => s,5,Goto(fwd-${forward},1)
exten => s,103,Macro(setup-extension,${extension})
exten => s,104,Goto(DIAL,1)

exten => fwd-NO,1,Playback(custom/goodbye)
exten => fwd-NO,n,Hangup

exten => fwd-VOICEMAIL,1,DBGet(box=EXT${extension}/FWD${type}TARGET)
exten => fwd-VOICEMAIL,n,DBGet(msg=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,DBGet(extension=EXT${extension}/FWD${type}TARGET)
exten => fwd-EXTENSION,n,Goto(s,2)

exten => fwd-EXTERNAL,1,DBGet(externalnumber=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,DBGet(dnd=EXT${extension}/DND)
exten => DIAL,n,GotoIf($[${dnd}=YES]?DIAL-BUSY|1)
exten => DIAL,n,DBGet(tech=EXT${extension}/TECH)
exten => DIAL,n,Dial(${tech}/${extension},15)
exten => DIAL,n,Goto(DIAL-${DIALSTATUS},1) 

exten => DIAL-BUSY,1,DBGet(forward=EXT${extension}/FWDB)
exten => DIAL-BUSY,2,Set(type=B)
exten => DIAL-BUSY,3,Goto(fwd-${forward},1)

exten => DIAL-NOANSWER,1,DBGet(forward=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

[macro-setup-extension]

exten => s,1,Set(theexten=${ARG1})
exten => s,n,DBput(EXT${theexten}/TECH=SIP)
exten => s,n,DBput(EXT${theexten}/HASVM=NO)
exten => s,n,DBput(EXT${theexten}/VMBOX=0)
exten => s,n,DBput(EXT${theexten}/DND=NO)

exten => s,n,DBput(EXT${theexten}/FWDI=NO)
exten => s,n,DBput(EXT${theexten}/FWDITARGET=NO)
exten => s,n,DBput(EXT${theexten}/FWDIDATA=NO)

exten => s,n,DBput(EXT${theexten}/FWDB=NO)
exten => s,n,DBput(EXT${theexten}/FWDBTARGET=NO)
exten => s,n,DBput(EXT${theexten}/FWDBDATA=NO)

exten => s,n,DBput(EXT${theexten}/FWDU=NO)
exten => s,n,DBput(EXT${theexten}/FWDUTARGET=NO)
exten => s,n,DBput(EXT${theexten}/FWDUDATA=NO)