All pastes #394431 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-03-14 09:57 UTC
rendered paste body
let's say your providers are set to variables like VOIPOUT1 VOIPOUT2 VOIPOUT3 etc

[macro-voip_call]
exten => s,1,set(CALLERID(num)=55555555555)
exten => s,n,set(PROV_COUNT=1)
exten => s,n(start),dial(${VOIPOUT${PROV_COUNT}}/${ARG1},60)
exten => s,n,Goto(s-${DIALSTATUS},1) ; Jump based on status

exten => s-BUSY,1,playback(busy)
exten => s-BUSY,n,wait(10)
exten => s-BUSY,n,hangup

exten => s-NOANSWER,1,hangup

;if the DIALSTATUS var comes back as CHANUNAVAIL or anything else
;that can possibly be resolved by using a different provider...

exten => _s-.,1,set(PROV_COUNT=$[${PROV_COUNT}+1])
exten => _s-.,n,gotoif($[${PROV_COUNT}<4]?s,start)
exten => _s-.,n,playback(please-hold)
exten => _s-.,n,macro(pots_call,${ARG1})