[macro-phone] exten => s,1,set(GROUP()=${MACRO_EXTEN}) exten => s,2,gotoif($["${REALTIME_FIELD(sippeers,NAME,${MACRO_EXTEN},CALLLIMIT)}" = ""]?4) exten => s,3,gotoif($[ ${GROUP_COUNT()} > ${REALTIME_FIELD(sippeers,NAME,${MACRO_EXTEN},CALLLIMIT)}]?20:4) exten => s,4,Set(ContactNum=${REALTIME_FIELD(sippeers,NAME,${MACRO_EXTEN},FULLCONTACT)}) exten => s,5,Set(ContactNum=${CUT(ContactNum,@,1)}) exten => s,6,Set(ContactNum=${CUT(ContactNum,:,2)}) exten => s,7,gotoif($["${ContactNum}" = ""]?10) exten => s,8,Dial(SIP/${MACRO_EXTEN}/${ContactNum},60,r) exten => s,9,Goto(${DIALSTATUS},15) exten => s,10,Dial(SIP/${MACRO_EXTEN}/${MACRO_EXTEN},60,r) exten => s,11,Goto(${DIALSTATUS},15) exten => ANSWER,15,Hangup(16) exten => CANCEL,15,Hangup(21) exten => NOANSWER,15,Hangup(19) exten => BUSY,15,Hangup(17) exten => CONGESTION,15,Hangup(18) exten => CHANUNAVAIL,15,Hangup(27) exten => DONTCALL,15,Hangup(20) exten => TORTURE,15,Hangup(21) exten => INVALIDARGS,15,Hangup(111) exten => s,20,Hangup(17) [macro-phone] ; old version exten => s,1,set(GROUP()=${MACRO_EXTEN}) exten => s,2,gotoif($["${REALTIME_FIELD(sippeers,NAME,${MACRO_EXTEN},CALLLIMIT)}" = ""]?4) exten => s,3,gotoif($[ ${GROUP_COUNT()} > ${REALTIME_FIELD(sippeers,NAME,${MACRO_EXTEN},CALLLIMIT)}]?10:4) exten => s,4,Dial(SIP/${MACRO_EXTEN}/${MACRO_EXTEN},60,r) exten => s,n,Goto(${DIALSTATUS},5) exten => ANSWER,5,Hangup(16) exten => CANCEL,5,Hangup(21) exten => NOANSWER,5,Hangup(19) exten => BUSY,5,Hangup(17) exten => CONGESTION,5,Hangup(18) exten => CHANUNAVAIL,5,Hangup(27) exten => DONTCALL,5,Hangup(20) exten => TORTURE,5,Hangup(21) exten => INVALIDARGS,5,Hangup(111) exten => s,10,Hangup(17) ;exten => a,1,VoicemailMain(${MACRO_EXTEN}@default) ;exten => *8,1,PickUP() [macro-limit] exten => s,1,gotoif($["${REALTIME_FIELD(sippeers,NAME,${CHANNEL(PEERNAME)},CALLLIMIT)}" = ""]?4) exten => s,2,set(GROUP(busy_out)=${CHANNEL(PEERNAME)}) exten => s,3,gotoif($[ $[${GROUP_COUNT(${CHANNEL(PEERNAME)}@busy_out)} + ${GROUP_COUNT(${CHANNEL(PEERNAME)}@busy_in)}] > ${REALTIME_FIELD(sippeers,NAME,${CHANNEL(PEERNAME)},CALLLIMIT)}]?7:4) exten => s,4,gotoif($["${REALTIME_FIELD(sippeers,NAME,${MACRO_EXTEN},CALLLIMIT)}" = ""]?8) exten => s,5,set(GROUP(busy_in)=${MACRO_EXTEN}) exten => s,6,gotoif($[ $[${GROUP_COUNT(${MACRO_EXTEN}@busy_out)} + ${GROUP_COUNT(${MACRO_EXTEN}@busy_in)}] > ${REALTIME_FIELD(sippeers,NAME,${MACRO_EXTEN},CALLLIMIT)}]?7:8) exten => s,7,Hangup(17) exten => s,8,NoOp(${CHANNEL(PEERNAME)},$[${GROUP_COUNT(${CHANNEL(PEERNAME)}@busy_out)} + ${GROUP_COUNT(${CHANNEL(PEERNAME)}@busy_in)}]) exten => s,9,NoOp(${MACRO_EXTEN},$[${GROUP_COUNT(${MACRO_EXTEN}@busy_out)} + ${GROUP_COUNT(${MACRO_EXTEN}@busy_in)}]) [disconnect] exten => h,1,Goto(${DIALSTATUS},2) exten => ANSWER,2,Hangup(16) exten => CANCEL,2,Hangup(21) exten => NOANSWER,2,Hangup(19) exten => BUSY,2,Hangup(17) exten => CONGESTION,2,Hangup(18) exten => CHANUNAVAIL,2,Hangup(27) exten => DONTCALL,2,Hangup(20) exten => TORTURE,2,Hangup(21) exten => INVALIDARGS,2,Hangup(111) exten => h,2,Hangup(16) [limit-call] exten => _[0-9*#]!,1,Macro(limit) [phones] exten => _2XX,2,Macro(phone) [long-distance] ;exten => _8XXXXXXXXXX,2,Dial(SIP/interlink/7${EXTEN:1}) ;exten => _810XXXXXXXXXX[0-9]!,2,Dial(SIP/interlink/${EXTEN:3}) exten => _NNXXXXXXXXX,2,Dial(SIP/interlink/${EXTEN}) exten => _+NNXXXXXXXXX,2,Dial(SIP/interlink/${EXTEN}) exten => _ZXXXXXXXXX[0-9]!,2,Dial(SIP/interlink/${EXTEN}) [helpdesks] ;exten => _88X[0-9]!,2,Dial(SIP/interlink/7${EXTEN:1}) ;exten => _81[0-9]!,2,Dial(SIP/interlink/7${EXTEN:1}) exten => _88X[0-9]!,2,Dial(SIP/interlink/${EXTEN}) exten => _81[0-9]!,2,Dial(SIP/interlink/${EXTEN}) [local] exten => _ZXXXX,2,Dial(SIP/interlink/${EXTEN}) [emergency] exten => _0Z,2,Dial(SIP/interlink/${EXTEN}) exten => _112,2,Dial(SIP/interlink/${EXTEN}) [users] include => limit-call include => emergency include => phones include => local include => long-distance include => helpdesks include => disconnect [stations] include => limit-call include => phones include => disconnect [drop-all] exten => _[0-9+*#A-Za-z]!,1,Hangup(34)