[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})