SCROLL
Среднее время на прочтение: 1 мин.

Маршрутизация входящего вызова в другой транк. Перенаправление звонков между транками в 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, то поиск подходящего исходящего маршрута будет перебором по очереди.

Обсуждение

0 комментариев

Нет комментариев.