rendered paste body[general]
static=yes
writeprotect=no
autofallthrough=no
clearglobalvars=no
;
[globals]
DIAL_OPTIONS = t
TRUNK_OPTIONS =
RINGTIMER = 60
OUTMAXCHANS_1 = 105
OUTPREFIX_1 = 011
OUT_1 = SIP/inphonex
;
[inbound]
exten => _52X.,1,Macro(dialout-trunk,1,${EXTEN},,)
exten => _52X.,n,Macro(outisbusy,)
;
[macro-dialout-trunk]
exten => s,1,Set(REALCALLERIDNUM=${CALLERID(number)})
exten => s,n,NoOp(REALCALLERIDNUM is ${REALCALLERIDNUM})
exten => s,n,Set(DIAL_TRUNK=${ARG1})
exten => s,n,Set(DIAL_NUMBER=${ARG2})
exten => s,n,Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS})
exten => s,n,Set(GROUP()=OUT_${DIAL_TRUNK})
exten => s,n,Set(DIAL_TRUNK_OPTIONS=${TRUNK_OPTIONS})
exten => s,n,Set($["${OUTMAXCHANS_${DIAL_TRUNK}}foo" = "foo"])
exten => s,n,GotoIf($[ ${GROUP_COUNT()} > ${OUTMAXCHANS_${DIAL_TRUNK}} ]?chanfull)
exten => s,n,Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER})
exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM},300,${DIAL_TRUNK_OPTIONS})
exten => s,n,Goto(s-${DIALSTATUS},1)
;
exten => s,n(chanfull),Noop(max channels used up)
exten => s,n,Playback(all-circuits-busy-now)
exten => s,n,Playtones(congestion)
exten => s,n,Congestion(20)
;
exten => s-BUSY,1,NoOp(Dial failed due to trunk reporting BUSY - giving up)
exten => s-BUSY,2,Busy(20)
;
exten => s-NOANSWER,1,NoOp(Dial failed due to trunk reporting NOANSWER - giving up)
exten => s-NOANSWER,2,Playtones(congestion)
exten => s-NOANSWER,3,Congestion(20)
;
exten => s-CANCEL,1,NoOp(Dial failed due to trunk reporting CANCEL - giving up)
exten => s-CANCEL,2,Playtones(congestion)
exten => s-CANCEL,3,Congestion(20)
;
exten => h,1,Macro(hangupcall)
exten => t,1,Macro(hangupcall)
;
[macro-hangupcall]
exten => s,1,ResetCDR(w)
exten => s,n,NoCDR()
exten => s,n,Hangup