Маршрутизация входящего вызова в другой транк. Перенаправление звонков между транками в FreePBX 14
Столкнулся недавно с задачей по маршрутизации звонков между несколькими FreePBX соединенными SIP-транками. Необходимо вызов пришедший из одного SIP-транка на определенный номерной план передать в другой SIP-транк.
Имеется три АТС на базе FreePBX (13, 14) — FreePBX «A» (номерной план 1ХХ), FreePBX «B» (номерной план 2ХХ), FreePBX «C» (номерной план 3ХХ). Которые соединены между собой SIP-транками следующим образом:
FreePBX «A» <—-SIP TRUNK «A»—-> FreePBX «B» <—-SIP TRUNK «B»—-> FreePBX «C»
Для наглядности рассмотрим к примеру ситуацию когда необходимо дозваниваться с FreePBX «A» (1ХХ) до абонентов находящихся в FreePBX «С» (3ХХ) и в обратном направлении.
Можно конечно решить задачу соединив отдельным SIP-транком FreePBX «A» и FreePBX «С», но рассмотрим другой вариант, когда к примеру нет возможности соединить их на прямую, тогда в этом случае посредником для звонков будет выступать FreePBX «B», т.к. он имеет связь по SIP-транку с FreePBX «С» и FreePBX «A».
Заходим на FreePBX «B» в файл /etc/asterisk/extensions_custom.conf добавляем обработки:
[from-pstn-custom] ; Перевод на FreePBX "C" exten => _3XX,1,Goto(outbound-allroutes,${EXTEN},1) ; Перевод на FreePBX "A" exten => _1XX,1,Goto(outbound-allroutes,${EXTEN},1)
[stextbox id=’info’]Как это работает — контекст внешних вызовов from-pstn-custom принимает звонок на 3XX или 1XX и передает его сразу в контекст outbound-allroutes, где далее будет определен необходимый исходящий маршрут для вызова.[/stextbox]
Контекст outbound-allroutes содержит в себе все правила исходящей маршрутизации, посмотреть эту секцию можно в файле /etc/asterisk/extensions_additional.conf:
[outbound-allroutes] include => outbound-allroutes-custom include => outrt-3 ; Russia include => outrt-4 ; Ukraine include => outrt-5 ; Belarus include => outrt-6 ; FreePBX "A" include => outrt-7 ; FreePBX "C" exten => foo,1,Noop(bar) ;--== end of [outbound-allroutes] ==--;
Вместо контекста outbound-allroutes можно указать конкретные исходящие маршруты, для 3XX — outrt-6, а для 1ХХ — outrt-6. В случае указания outbound-allroutes, то поиск подходящего исходящего маршрута будет перебором по очереди.
Обсуждение
Нет комментариев.