rendered paste body[macro-stdexten]
;
; Standard extension macro (with smart call forwarding):
; ${ARG1} - Extension(we could have used ${MACRO_EXTEN} here as well
; ${ARG2} - Device(s) to ring
;
exten => s,1,DBget(temp=CFIM/${ARG1}) ; Get CFIM key, if not existing, goto 102
exten => s,2,Dial(${temp}|30|TtWf) ; Unconditional forward then dial normal extensions
exten => s,3,Dial(${ARG2}|12|TtWf) ; 12sec timeout
exten => s,4,NoOP(choose voicemail or cellphone)
exten => s,5,NoOP
exten => s,6,NoOP
exten => s,7,Wait(1)
exten => s,8,NoOP
exten => s,9,DBget(other=xtra_exten/${ARG2})
exten => s,10,Set(dial_arg=${ARG2}&${other})
exten => s,11,NoOP
exten => s,12,NoOP
exten => s,13,NoOp
exten => s,14,NoOP
exten => s,15,DBget(temp=cell/${ARG2}) ; if no cell number, goto 112
exten => s,16,NoOP
exten => s,17,NoOP
exten => s,18,NoOP
exten => s,19,NoOP
exten => s,20,Dial(${dial_arg}&${line2}/${temp}|25|TtW)
exten => s,21,NoOP
exten => s,22,NoOP
exten => s,23,NoOP
exten => s,24,NoOP
exten => s,25,Voicemail(u${ARG1})
; No CFIM key
exten => s,102,NoOP(argument1 ${ARG1})
exten => s,103,NoOP(argument2 ${ARG2})
exten => s,104,DBget(temp=dnd/${ARG2},TtWf) ; check to see if dnd is on, if not goto 205
exten => s,105,NoOP(do not disturb is set, going to voicemail)
exten => s,106,Voicemail(b${ARG1})
exten => s,107,hangup
; No CFBS key - voicemail ?
exten => s,108,Voicemail(u${ARG1})
;no answer on the cellphone
exten => s,109,Voicemail(b${ARG1})
exten => s,110,Set(dial_arg=${ARG2})
exten => s,111,goto(s,15)
; no answer at extention, no cell number in database
exten => s,116,Dial(${dial_arg}|25|TtWf) ; 25 sec timeout
exten => s,117,Voicemail(u${ARG1})
exten => s,118,hangup
; DND not set
exten => s,205,Goto(s,3)
; cell phone busy
exten => s,121,Voicemail(b${ARG1})
exten => s,122,hangup
exten => i,1,NoOP(how did we get here ${EXTEN})
exten => i,2,NoOP
exten => i,3,NoOP(from ${MACRO_PRIORITY})
exten => i,4,goto(${MACRO_PRIORITY})