Код: Выделить всё
;[macro-dialout-trunk-predial-hook]
;exten => s,1,Verbose(0, -----ASR-ASR-ASR-ASR-ASR---------)
;same => n,Noop(${DIAL_TRUNK},${OUTNUM},${CALLERID(number)})
;same => n,AGI(trunk_hook.php,${OUTNUM},${CALLERID(number)})
;same => n,Set(var_trunk_operator=${trunk_operator})
;same => n,Set(var_trunk_region=${trunk_region})
;same => n,Set(var_trunk_operatorID=${trunk_operatorID})
;same => n,Set(var_trunk_outrt=${trunk_outrt})
;same => n,GotoIf($["${trunk_outrt}" = "pusto"]?pusto:gonext)
;same => n(pusto),MacroExit()
;same => n(gonext),Noop(${var_trunk_operator},${var_trunk_region},${var_trunk_operatorID},${var_trunk_outrt},${OUTNUM})
;same => n,Goto(${var_trunk_outrt},${OUTNUM},1) ; тут совершаю звонок по нужному мне из AGI outrt-x машруту
;same => n,MacroExit()
Поменять логику балансировки в примере на нужную через запрос по AGI.You can use an agi or in the dialplan like this:
Add in extensions_custom.conf
[distribute-pstn-trunks]
;pstn trunk are number 2 and 3
exten => _0XXXXXXXXX,1,Set(COUNT=${DB(test/count)})
;increment
exten => _0XXXXXXXXX,n,SetVar(COUNT=$[${COUNT} + 1])
exten => _0XXXXXXXXX,n,SetVar(COUNT=${IF($[ ${COUNT} = 4]?2:${COUNT})})
exten => _0XXXXXXXXX,n,Set(DB(test/count)=${COUNT})
exten => _0XXXXXXXXX,n,NoOp(Number dialed is ${EXTEN} by trunk pstn ${COUNT})
exten => _0XXXXXXXXX,n,Macro(dialout-trunk,${COUNT},${EXTEN},,)
exten => _0XXXXXXXXX,n,Macro(outisbusy,)
Adapt it to your config.
Then create a custom trunk : Local/$OUTNUM$@distribute-pstn-trunks
Use the custom trunk in your outbound routes…
Done.
При чём тут CALLERID?skynetyar писал(а):Вот ${CALLERID(number)} тот саймый уже определенный транк через который пойдет вызов
Код: Выделить всё
[outbound-allroutes]
include => outbound-allroutes-custom
include => outrt-9 ;
include => outrt-16 ;
include => outrt-8 ;
include => outrt-5 ;
include => outrt-11 ;
include => outrt-10 ;
include => outrt-12 ;
include => outrt-13 ;
include => outrt-17 ;
exten => foo,1,Noop(bar)
Код: Выделить всё
[from-internal-custom]
exten _X.,1,Macro(dialout-trunk-custom,outbound-allroutes,${EXTEN})
Код: Выделить всё
[from-internal-custom]
exten _X.,1,Macro(dialout-trunk-custom,outbound-allroutes,${EXTEN})
Код: Выделить всё
В AGI $trunk_outrt=outrt-9
same => n,Set(var_trunk_outrt=${trunk_outrt})
same => n,Goto(${var_trunk_outrt},${OUTNUM},1)
Код: Выделить всё
same => n,Goto(${outrt-9 ,79066358080,1)
Код: Выделить всё
same => n,AGI(trunk_hook.php,${OUTNUM},${CALLERID(number)})
Код: Выделить всё
WARNING[21747][C-00027834]: pbx.c:4467 __ast_pbx_run: Channel 'PJSIP/703-00042a78' sent to invalid extension but no invalid handler: context,exten,priority=outrt-10,79066358080,2