All pages
Powered by GitBook
1 of 5

Loading...

Loading...

Loading...

Loading...

Loading...

Соединение нескольких АТС

Объединение двух 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». Сделать это нужно для двух провайдеров.

Отлюкчение использования поля 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-Провайдера-Текщуей-АТС>

Замените теги <ID-Провайдера-Текщуей-АТС>, <ID-Провайдера-Другой-АТС>, <SIP-Порт-Другой-АТС> на свои значения

  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 - это идентификатор провайдера текущей АТС, посмотреть его можно в адресной строке браузера:

ProviderID

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

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

На АТС, где настроен провайдер для исходящих, следует добавить через раздел "Система" -> "Кастомизация системных файлов" в конец файла 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):

Статус на станции MikoPBX в офисе Москвы

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

Статус на станции MikoPBX в офисе Санкт-Петербурга

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

Схема объединения 3 станций MikoPBX

Объединение MikoPBX и FreePBX (IAX)

Инструкция по объединению нескольких АТС

Настройка MikoPBX

  1. Перейдите в раздел "Маршрутизация" -> "Провайдеры телефонии":

Раздел "Провайдеры телефонии"
  1. Создайте нового IAX провайдера:

Новый IAX провайдер
  1. Заполните параметры:

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

  • "Хост или IP адрес" - IP адрес FreePBX.

  • "Логин" - "tmp".

  • "Пароль" - произвольный, сложный пароль.

Сохраните параметры.

Параметры для IAX провайдера
  1. После сохранения параметров, в адресной строке появится идентификатор провайдера. Скопируйте его в раздел "Логин":

Логин

Настройки FreePBX

  1. Перейдите в раздел «Connectivity» - «Trunks» и добавьте новый trunk IAX2

Новый IAX2 Trunk
  1. Перейдите на вкладку "General". Укажите в качестве «Trunk Name» логин, используемый в MIKOPBX (из адресной строки браузера «IAX-TRUNK-1E8B1CFE»)

Поле "Trunk Name"
  1. Перейдите на вкладку «Dialed Number Manipulation Rules» задайте шаблон для исходящих:

Шаблон для исходящих
  1. Перейдите на вкладку iax2 Settings. Заполните поле Trunk Name логин, используемый в MIKOPBX (из адресной строки браузера «IAX-TRUNK-1E8B1CFE»)

Поле "Trunk Name"

Заполните параметр "PEER Details":

type=friend
auth=plaintext
language=ru-ru
qualify=2000
transfer=mediaonly
disallow=all
;username=mikopbx
host=dynamic
trunk=yes
secret=123
allow=alaw&ulaw
Параметр "PEER Details"
  1. Во вкладке «Incoming» заполните поле «Register String» в формате "LOGIN:PASSWORD@IP_FREE_PBX":

Параметр "Register String"

Описание маршрутизации

MikoPBX

  1. Опишите входящий маршрут (см. руководство "Входящие маршруты"). В данном случае, все вызовы будут направлены на внутренний номер 201:

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

При необходимости опишите отдельно на каждый DID свой номер назначения в отдельном маршруте:

Входящая маршрутизация MikoPBX на каждый DID-номер
  1. Опишите исходящую маршрутизацию (см. руководство "Исходящие маршруты"):

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

FreePBX

  1. Перейдите в раздел «Connectivity» - «Inbound Routes», опишите входящий маршрут:

Входящая маршрутизация FreePBX
  1. Перейдите в раздел «Connectivity» - «Outbound Routes», опишите исходящий маршрут:

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

Объединение MikoPBX и FreePBX (PJSIP)

Инструкция по объединению нескольких АТС

Создание провайдера MikoPBX

  1. В MikoPBX перейдите во вкладку "Маршрутизация" -> "Провайдеры телефонии":

Раздел "Провайдеры телефонии"
  1. Создайте нового SIP-провайдера. Для этого нажмите "Подключить SIP":

Элемент "Подключить SIP"
  1. Заполните следующие параметры:

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

  • "Тип учетной записи" - Входящая регистрация

Скопируйте логин и пароль, они понадобятся позже.

Параметры провайдера MikoPBX

Создание транка FreePBX

  1. В интерфейсе FreePBX перейдите в раздел "Connectivity" -> "Trunks":

Раздел "Trunks" FreePBX
  1. Добавьте новый транк, типа "chan_pjsip".

Новый транк в FreePBX
  1. Вставьте логин провайдера из MikoPBX в поле "Trunk Name":

"Trunk Name" FreePBX
  1. Перейдите во вкладку "pjsip Settings" -> "Advanced":

  • В поле «From User» вставьте значение «Логин провайдера MikoPBX»

  • Установите «Trust RPID/PAI» в значение "yes"

  • Установите «Send RPID/PAI» в значение «Send Remote-Party-ID header»

Параметры транка FreePBX
  1. Опишите шаблоны номеров на вкладке «Dialed Number Manipulation Rules»:

Настройка шаблонов номеров FreePBX

Сохраните изменения.

Варианты регистрации

Далее Вам необходимо выбрать один из двух вариантов регистрации:

Регистрация FreePBX на MikoPBX

Вариант регистрации FreePBX на MikoPBX

Регистрация MikoPBX на FreePBX

Вариант регистрации MikoPBX на FreePBX

Устанавите пароль (сложный, произвольный). Он должен быть одинаковый как на MikoPBX, так на FreePBX.

В «расширенных настройках» MikoPBX, в «Дополнительных параметрах» укажите следующие опции:

[endpoint]
trust_id_inbound=yes
send_rpid=yes

Сохраните и примените изменения.

Дополнительные параметры провайдера в MikoPBX

Настройка маршрутизации

  1. Опишите исходящий маршрут (Статья "Исходящая маршрутизация") в MikoPBX:

Настройка исходящей маршрутизации на MikoPBX
  1. Опишите входящий маршрут (Статья "Входящая маршрутизация") в MikoPBX:

Настройка входящей маршрутизации на MikoPBX

При необходимости опишите отдельно на каждый DID свой номер назначения в отдельном маршруте (Если пользователь FreePBX наберет номер 202, то будет направлен на номер 202):

Описание номера назначения для индивидуального DID-номера
  1. Перейдите в раздел «Connectivity» - «Inbound Routes», опишите входящий маршрут в FreePBX:

Настройка входящей маршрутизации на FreePBX
  1. Перейдите в раздел «Connectivity» - «Outbound Routes», опишите исходящий маршрут:

Настройка исходящей маршрутизации на FreePBX

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

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

К примеру при использовании BLF на телефонных аппаратах «Панель телефонии для 1С» Для настройки статусов потребуется:

MikoPBX

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

[internal-hints]
exten => 301,hint,PJSIP/301
exten => 303,hint,PJSIP/303
exten => 302,hint,PJSIP/302

Описываются все внутренние номера, что описаны на FreePBX

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

[SIP-TRUNK-41C1B8B4-devicestate]
type=outbound-publish
server_uri=sip:[email protected]:5060
event=asterisk-devicestate
 
[SIP-TRUNK-41C1B8B4]
type=asterisk-publication
devicestate_publish=SIP-TRUNK-41C1B8B4-devicestate
device_state=yes

[SIP-TRUNK-41C1B8B4]
type=inbound-publication
event_asterisk-devicestate=SIP-TRUNK-41C1B8B4

Замените теги "SIP-TRUNK-41C1B8B4" на ID провайдера MikoPBX, "172.16.156.216" на адрес FreePBX на свои значения

FreePBX

  1. Используйте модуль «Config Edit» для редактирования файлов

  2. Добавьте к файлу «extensions_custom.conf»

Тут следует описать все внутренние номера MikoPBX:

[mikopbx-hints]
exten => 201,hint,PJSIP/201
exten => 202,hint,PJSIP/202
  1. Добавьте к файлу «pjsip_custom.conf»

[SIP-TRUNK-41C1B8B4-devicestate]
type=outbound-publish
server_uri=sip:[email protected]:5060
event=asterisk-devicestate
outbound_auth=SIP-TRUNK-41C1B8B4
 
[SIP-TRUNK-41C1B8B4]
type=asterisk-publication
devicestate_publish=SIP-TRUNK-41C1B8B4-devicestate
device_state=yes
device_state_filter=^PJSIP/

[SIP-TRUNK-41C1B8B4]
type=inbound-publication
event_asterisk-devicestate=SIP-TRUNK-41C1B8B4

Замените теги "SIP-TRUNK-41C1B8B4" на ID провайдера MikoPBX, "172.16.156.216" на адрес FreePBX на свои значения

Опция outbound_auth=SIP-TRUNK-41C1B8B4 актуальна только для случая, когда FreePBX регистрируется на MikoPBX. Передачу статусов удалось настроить только для этого случая.

Объединение MIKOPBX и Grandstream UCM6202

Инструкция по объединению двух АТС

Существует задача: в компании два отдела, один (Администрация) должен работать в рамках АТС Grandstream, другой (Отдел продаж) должен работать с MikoPBX и иметь возможность интеграции с 1C. В рамках данной статьи опишем пример объединения станций, следуя следующим правилам:

  • Администрация- имеет внутренний номерной план 1XX.

  • Отдел продаж - имеет внутренний номерной план 3XX.

  • К Grandstream подключена внешняя линия для звонков в город.

  • MikoPBX должна использовать внешнюю линию Grandstream для звонков в город.

  • Абоненты 1XX должны иметь возможность позвонить абонентам 3XX.

  • Абоненты 3XX должны иметь возможность позвонить абонентам 1XX.

Настройка Grandstream UCM6202

Создание Trunk

  1. Перейдите в раздел «Extensions / Trunk» -«VoIP Trunk», нажмите «Add SIP Trunk». Заполните все необходимые данные:

  • «Provider name» - укажите произвольное имя провайдера, к примеру MikoPBX

  • «Host Name» - укажите IP-адрес Вашей MikoPBX

  • «Transport» - укажем UDP

  • Установите флаг «Keep Original CID»

Нажмите кнопку «Save».

У Вас должен получится подобный список транков:

Настройка исходящих звонков на 2XX

Добавим правило, которое позволит абонентам Grandstream (1XX) звонить на внутренние номера MikoPBX 2XX. Для этого:

Перейдите в раздел «Extensions / Trunk» - «Outbound Routes». Добавьте новый маршрут, укажите для него следующие параметры:

  • Установите «Trunk» в значение «SIP Trunks – MikoPBX»

  • «Calling Rule Name» в значение «MikoPBX» (произвольное, понятное вам значение)

  • «Pattern» в значение:

90000099 - это номер очереди, которую мы позже определим на MikoPBX

  • «Privilege Level» - в данном случае можно установить internal, на MikoPBX нет выхода на город / межгород

Настройка входящих звонков на 1XX

Добавим правило, которое позволит абонентам MikoPBX (2XX) звонить на внутренние номера Grandstream (1XX). Для этого:

Перейдите в раздел «Extensions / Trunk» - «Inbound Routes». Добавьте новый маршрут, укажите для него следующие параметры:

  • Выберите trunk «SIP Trunks – MikoPBX»

  • Добавьте маршрут с Pattern = _1XX

  • Установите «Allowed DID Destination» в значение «Extension»

  • Установите «Default detination» в значение «By DID»

  • Установите «Privilage Level» в значение «internal»

Настройка исходящих на [78]XX

Добавим правило, которое позволит абонентам MikoPBX (2XX) звонить на внешние номера РФ

Перейдите в раздел «Extensions / Trunk» - «Inbound Routes». Добавьте новое правило входящей маршрутизации. Укажите следующие параметры:

  • Выберите trunk «SIP Trunks – MikoPBX»

  • Добавьте маршрут с Pattern = _[78]XXXXXXXXXX

  • Установите флаг «Dial trunk»

  • Установите «Allowed DID Destination» в значение «Extension»

  • Установите «Default detination» в значение «By DID»

  • Установите «Privilage Level» в значение «National»

Итоговый список входящих маршрутов «SIP Trunks – MikoPBX»:

Параметры Extensions

Для того, чтобы на стороне MikoPBX корректно отображался CID в карточке Extension, следует прописать CallerID Number:

Перейдите в раздел «Extensions / Trunk» - «Extension». Заполните параметры на примере скриншота ниже.

IVR

Добавим возможность в IVR звонить на номера MikoPBX (_2XX). Для этого перейдите в раздел «Call Features» - «IVR», создадим / откроем на редактирование IVR:

Выполните следующие действия:

  • Установите «Dial Other Extensions» в значение Yes

  • Установите «Dial Trunk» в значение Yes

  • На вкладке «Key Pressing Events» настройте переадресацию на External number:

90000099 - это номер очереди, которую мы позже определим на MikoPBX

Настройка MikoPBX

Создание провайдера

Перейдите в раздел «Маршрутизация» - «Провайдеры телефонии». Добавьте нового провайдера, со следующими параметрами:

  • «Название провайдера» - произвольное, понятное имя, к примеру Grandstream

  • «Тип учетной записи» - Аутентификация по IP адресу, без пароля

  • «Хост или IP адрес» - адрес АТС Grandstream

Сохраните изменения.

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

Добавим правило, которое позволит абонентам Grandstream (1XX) звонить на внутренние номера MikoPBX 2XX

  1. Перейдите в раздел «Маршрутизация» - «Входящие маршруты»

  2. Создайте новое правило со следующими параметрами:

  • Провайдер» - выберите «Grandstream»

  • «DID» - укажите шаблон «2XX»

  • «Телефонный номер» - «Направить на сотрудника (сопоставить по DID)»

  • «Время в секундах…» укажите значение 300

Сохраните изменения.

Исходящие на 1XX

Добавим правило, которое позволит абонентам MikoPBX (2XX) звонить на внутренние номера Grandstream (1XX)

  1. Перейдите в раздел «Маршрутизация» - «Исходящие маршруты»

  2. Создайте новое правило, со следующими параметрами:

  • Номер начинается с «1».

  • Остальная часть номера состоит из «2».

  • Направить звонок через провайдера «Grandstream».

Исходящие на Городские

  1. Перейдите в раздел «Маршрутизация» - «Исходящие маршруты»

  2. Создайте новое правило, со следующими параметрами:

  • Номер начинается с (7|8).

  • Остальная часть номера состоит из 10.

  • Направить звонок через провайдера «Grandstream».

Входящие на группу

  1. Перейдите в раздел «Телефония» - «Очереди вызовов».

  2. Добавьте очередь с внутренним номером 90000099.

  1. Направьте маршрут по умолчанию на очередь.

На этом настройка завершена!

_2XX
_90000099
Схема поставленной задачи
Параметры создаваемого транка
Список транков
Параметры исходящего маршрута
Параметры правила входящей маршрутизации
Список маршрутов
Пример параметров extension
Раздел IVR
Параметры IVR маршрута
Параметры SIP-провайдера
Параметры правила обработки входящих
Параметры правила обработки входящих
Параметры правила обработки исходящих
Создание очереди вызовов
Маршрут по умолчанию на очередь