Объединение двух MikoPBX

Разбор кейса с объединением двух АТС MikoPBX

Описание примера задачи

В нашем случае-примере компания call-центра имеет два офиса: в Москве и в Санкт-Петербурге. В каждом офисе используется отдельная станция MikoPBX:

  • АТС Москва - 192.168.0.202 - все внутренние номера сотрудников назначены по шаблону 2ХХ (пример - 201, 202, 203, ...)

  • АТС Петербург - 192.168.0.201 - все внутренние номера сотрудников назначены по шаблону 3ХХ (пример - 301, 302, 303, ...)

Для примера используются локальные IP-адреса.

Необходимо объединить эти две АТС, реализовать единый внутренний план номеров: сотрудники из офиса в Москве должны иметь возможность по короткому номеру набрать сотрудников из офиса Санкт-Петербурга и наоборот.

Схематично маршрутизация вызовов представлена на рисунке ниже.

Провайдеры телефонии

  1. Для каждой АТС необходимо добавить учетную запись провайдера. Для её создания необходимо перейти в МаршрутизацияПровайдеры телефонии.

  1. Создайте провайдеров и заполните параметры подключения следующим образом:

Идентификатор провайдера появится в адресной строке только после записи провайдера. Временно в поле «Логин» укажите производное значение. После записи провайдера можно его скорректировать.

  1. В «Расширенные настройки» -> «Переопределение SIP заголовка «From»» - установите флаг «Отключить использование поля fromuser». Сделать это нужно для двух провайдеров.

  1. В «Расширенные настройки» -> «Дополнительные параметры» следует прописать:

[endpoint]
set_var=IGNORE_TIME=1 

Эта опция отключит функционал «Нерабочее время» для всех входящих через этого провайдера.

Исходящая маршрутизация

Необходимо перейти в "Маршрутизация" → "Исходящие маршруты". Опишите исходящие маршруты как на скриншоте ниже:

Входящая маршрутизация

  1. Добавим для каждой АТС одинаковое приложение диалплана, которое будет переадресовывать звонки на внутренние номера . В разделе "Модули" -> "Приложения диалпланов" добавим новое приложение со следующими параметрами:

  • "Название" - произвольное название

  • "Номер для вызова приложения" - произвольный уникальный номер

  • "Тип кода" - Диалплан Asterisk

  1. Перейдите во вкладку "Программный код", добавьте код для обработки звонков:

1, GoTo(internal,${FROM_DID},1)
n, Hangup()
  1. Создайте входящий маршрут для каждой АТС. Для этого перейдите в раздел "Маршрутизация" -> "Входящие маршруты", добавьте новое правила со следующими параметрами:

Переадресация

Первая АТС

Для того, чтобы снять данной ограничение, добавьте через раздел "Система" -> "Кастомизация системных файлов" в конец файла "extensions.conf" следующий код:

[internal-transfer](+)
exten => _2XX,1,Set(__ISTRANSFER=transfer_)
     same => n,Goto(outgoing,${EXTEN},1) 

Это разрешит переадресацию на 2XX номера.

Вторая АТС

На второй АТС, чтобы разрешить переадресацию на 3XX номера добавьте через раздел "Система" -> "Кастомизация системных файлов" в конец файла "extensions.conf" следующий код:

[internal-transfer](+)
exten => _3XX,1,Set(__ISTRANSFER=transfer_)
     same => n,Goto(outgoing,${EXTEN},1) 

Это разрешит переадресацию на 3XX номера.

Статусы абонентов

В некоторых случаях, абонентам одной АТС потребуется знать статусы абонентов другой станции. К примеру при использовании:

  • BLF на телефонных аппаратах

  • «Панель телефонии для 1С»

Для настройки статусов потребуется:

  1. Добавьте на первой АТС через раздел Кастомизация системных файлов в конец файла extensions.conf следующий код:

[internal-hints]
exten => 301,hint,PJSIP/301
exten => 303,hint,PJSIP/303
exten => 302,hint,PJSIP/302
  1. Для каждой АТС добавьте через раздел Кастомизация системных файлов в конец файла pjsip.conf:

[<ID-Провайдера-Текщуей-АТС>-devicestate]
type=outbound-publish
server_uri=sip:<ID-Провайдера-Текщуей-АТС>@<ID-Провайдера-Другой-АТС>:<SIP-Порт-Другой-АТС>
event=asterisk-devicestate
 
[<ID-Провайдера-Текщуей-АТС>]
type=asterisk-publication
devicestate_publish=<ID-Провайдера-Текщуей-АТС>-devicestate
device_state=yes

[<ID-Провайдера-Текщуей-АТС>]
type=inbound-publication
event_asterisk-devicestate=<ID-Провайдера-Текщуей-АТС>
  1. Добавьте на второй АТС через раздел Кастомизация системных файлов в конец файла extensions.conf следующий код:

[internal-hints]
exten => 201,hint,PJSIP/201
exten => 203,hint,PJSIP/203
exten => 202,hint,PJSIP/202

Решение ситуации с одинаковыми номерами на АТС

В идеале, на каждой АТС должен быть свой диапазон номеров SIP и они не должны пересекаться, однако на практике, возможно и наложение. В этом случае можно столкнуться с проблемой звонка с одной АТС на другую: вызов может обрываться.

Проблему можно обойти. Для этого на каждой АТС следует добавить через раздел "Система" -> "Кастомизация системных файлов" в конец файла extensions.conf следующий код:

[ID_PROVIDER-outgoing-custom]
; При исходящем в caller ID добавляем префикс "_" (нижнее подчеркивание)
exten => _X!,1,Set(CALLERID(num)=_${CALLERID(num)})
	same => n,return

[ID_PROVIDER-incoming-custom]
; При входящем удаляем префикс, для корректного отображения callerid
exten => _[0-9*#+]!,1,Set(CALLERID(num)=${CALLERID(num)=:1})
	same => n,return

ID_PROVIDER - это идентификатор провайдера текущей АТС, посмотреть его можно в адресной строке браузера:

Транзитные звонки

В некоторых случаях необходимо разрешить подключенной АТС совершать звонки через подключенных провайдеров.

На АТС, где настроен провайдер для исходящих, следует добавить через раздел "Система" -> "Кастомизация системных файлов" в конец файла extensions.conf следующий код:

[ID_PROVIDER-incoming-custom]
; Входящие от Питера на номера МСК
exten => _[78]XXXXXXXXXX,1,Dial(Local/${FROM_DID}@outgoing,,${TRANSFER_OPTIONS}Kg)
    same => n,return()

ID_PROVIDER - это идентификатор провайдера, через которого подключена удаленная АТС, посмотреть его можно в адресной строке браузера.

Описанное правило принимает вызовы от удаленной АТС.

Если набранный номер соответствует шаблону, то отправляет вызов в исходящие маршруты.

Если исходящий маршрут найдет, то вызов будет направлен через исходящего провайдера.

Итоги. Результаты.

Таким образом мы соединили две АТС! Подтверждением успешного подключения двух станций служит зеленый индикатор напротив учетной записи провайдера:

Для АТС Москва(192.168.0.202):

Для АТС Петербург(192.168.0.201):

Аналогичным образом можно подключить три и даже четыре станции! Нужно понимать, что в случае соединения трех АТС каждая АТС должна иметь не один, а уже два провайдера. Схематично это изобразить можно так:

Last updated

Was this helpful?