Рабочий контекст для FreePBX. Использует функцию RAND.
[random-trunk-select]
exten => _X.,1,Macro(user-callerid,SKIPTTL,)
exten => _X.,n,Set(_NODEST=)
exten => _X.,n,Macro(record-enable,${AMPUSER},OUT,)
;---
exten => _X.,n,Set(GMIN=2) ;номер первого транка
exten => _X.,n,Set(GMAX=13) ;номер последнего транка
exten => _X.,n,Set(COUNT=$[${GMAX}-${GMIN}+1])
exten => _X.,n,Set(GATE=${RAND(${GMIN},${GMAX})})
exten => _X.,n(noop),Noop(call trying, COUNT= ${COUNT})
exten => _X.,n,GotoIf($[${COUNT} > 0]?:busy)
exten => _X.,n,Set(COUNT=$[${COUNT} - 1])
;---
exten => _X.,n,Macro(dialout-trunk,${GATE},${EXTEN},,)
;---
exten => _X.,n,GotoIf($[${GATE} < ${GMAX}]?add)
exten => _X.,n,Set(GATE=${GMIN})
exten => _X.,n,Goto(noop)
exten => _X.,n(add),Set(GATE=$[${GATE} + 1])
exten => _X.,n,Goto(noop)
;---
exten => _X.,n(busy),Macro(outisbusy,)
ответил
2013-03-18 20:26:27 +0400
Olpag 2024 ● 3 ● 6 ● 30