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

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

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

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FNXYVTsgF3kK7pMOJqmxe%2FprovidersMikoPBX.jpg?alt=media&#x26;token=9e3d82eb-7dd3-4c5c-99f3-bc9aadf5f519" alt=""><figcaption><p>Раздел "<strong>Провайдеры телефонии</strong>"</p></figcaption></figure>

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

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2F8XFaoPQXNQz6ceWOMRLe%2FconnectSIPMikoPBX.jpg?alt=media&#x26;token=e2349e0b-e0c8-4d2b-819a-3bcdde04ddf7" alt=""><figcaption><p>Элемент "<strong>Подключить SIP</strong>"</p></figcaption></figure>

3. Заполните следующие параметры:

* "**Название провайдера**" - произвольное
* "**Тип учетной записи**" - Входящая регистрация

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

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FoNrVF5o4PPPvaYVZqpfI%2FproviderParametersMikoPBX.jpg?alt=media&#x26;token=c34da9a3-04b7-4654-bd07-b390bafbe4a2" alt=""><figcaption><p>Параметры провайдера MikoPBX</p></figcaption></figure>

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

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

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FHNDtQ9dcwvb0WG6Y69WL%2FTrunksFreePBX.jpg?alt=media&#x26;token=137a4a73-46a9-4e72-b4e3-d84273653a59" alt=""><figcaption><p>Раздел "Trunks" FreePBX</p></figcaption></figure>

2. Добавьте новый транк, типа "**chan\_pjsip**".

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2F1yU0mVIsxQMXGqddEzFQ%2FnewTrunkFreePBX.jpg?alt=media&#x26;token=1434960e-8480-42cd-9782-f15a98231fea" alt=""><figcaption><p>Новый транк в FreePBX</p></figcaption></figure>

3. Вставьте логин провайдера из MikoPBX в поле "**Trunk Name**":

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FbfFBa9Vs3N4yGmBL6BUI%2FtrunkNameFreePBX.jpg?alt=media&#x26;token=a227a8fe-24e2-4046-91d0-510170a85cf3" alt=""><figcaption><p>"Trunk Name" FreePBX</p></figcaption></figure>

4. Перейдите во вкладку "**pjsip Settings**" -> "**Advanced**":

* В поле «**From User**» вставьте значение «**Логин провайдера MikoPBX**»
* Установите «**Trust RPID/PAI**» в значение "**yes"**
* Установите «**Send RPID/PAI**» в значение «**Send Remote-Party-ID header**»

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2F6dRV3DyVguU5QNH5Uypg%2FadditionalParametersTrunkFreePBX.jpg?alt=media&#x26;token=28ef55cd-8e8e-4f32-bcc6-2358bf9e7e52" alt=""><figcaption><p>Параметры транка FreePBX</p></figcaption></figure>

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

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FKbiZ32ksSc9j13MvEp75%2FnumberTe%2Cplates.jpg?alt=media&#x26;token=25db0909-d274-426f-ac95-a0ec3159448b" alt=""><figcaption><p>Настройка шаблонов номеров FreePBX</p></figcaption></figure>

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

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

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

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

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2Fe50VMh7TuSx3llYLcToZ%2FFreePBXMikoPBXReg.jpg?alt=media&#x26;token=1016972a-374e-4edb-a7df-b15909c5d1c7" alt=""><figcaption><p>Вариант регистрации FreePBX на MikoPBX</p></figcaption></figure>

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

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FxjGa9LsUpUqYb6Z2U1qM%2FMikoPBXFreePBXReg.jpg?alt=media&#x26;token=22cad28a-7002-4ca5-acac-7585282cf436" alt=""><figcaption><p>Вариант регистрации MikoPBX на FreePBX</p></figcaption></figure>

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

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

```
[endpoint]
trust_id_inbound=yes
send_rpid=yes
```

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

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FkfWbl2h86dxqVNbDWQMY%2FadvancedOprionsMikoPBXProvider.jpg?alt=media&#x26;token=4e3e3068-1cea-4a87-8bf9-a1abd4de0ef7" alt=""><figcaption><p>Дополнительные параметры провайдера в MikoPBX</p></figcaption></figure>

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

1. Опишите исходящий маршрут ([Статья "Исходящая маршрутизация"](https://docs.mikopbx.com/mikopbx/manual/routing/outbound-routing)) в MikoPBX:

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FQmO18of3E8tVXqOSdJUZ%2FoutgoingFromMikoPBX.jpg?alt=media&#x26;token=1dd054f5-8691-468f-8ebe-dedb57c497ff" alt=""><figcaption><p>Настройка исходящей маршрутизации на MikoPBX</p></figcaption></figure>

2. Опишите входящий маршрут ([Статья "Входящая маршрутизация"](https://docs.mikopbx.com/mikopbx/manual/routing/incoming-routing)) в MikoPBX:

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2F2vSEjhaQBnw8bh464ES7%2FincomingFromMikoPBX.jpg?alt=media&#x26;token=97bafced-28bb-46b8-9e56-7b80937c83a1" alt=""><figcaption><p>Настройка входящей маршрутизации на MikoPBX</p></figcaption></figure>

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

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FDTsrAnIA2PAat9zdYFcx%2FdidIndividualMikoPBX.jpg?alt=media&#x26;token=d7367aa2-3f0b-4f91-831f-fd444555f4d4" alt=""><figcaption><p>Описание номера назначения для индивидуального DID-номера</p></figcaption></figure>

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

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2F0INdTKgvsvxSUOgnoPeA%2FincomingFromFreePBX.jpg?alt=media&#x26;token=3721fa92-79f8-4456-a76c-6ca2331c0842" alt=""><figcaption><p>Настройка входящей маршрутизации на FreePBX</p></figcaption></figure>

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

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FpAVRP1J5HMqE87ZebXdw%2FoutgoingFromFreePBX.jpg?alt=media&#x26;token=962f1556-42a1-4cc0-bf36-7ddaf80fb2b1" alt=""><figcaption><p>Настройка исходящей маршрутизации на FreePBX</p></figcaption></figure>

## Статусы абонентов <a href="#statusy_abonentov" id="statusy_abonentov"></a>

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

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

### MikoPBX <a href="#mikopbx" id="mikopbx"></a>

1. Добавьте **на первой АТС** через раздел [Кастомизация системных файлов](https://docs.mikopbx.com/mikopbx/manual/system/custom-files) в конец файла "**extensions.conf"** следующий текст:

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

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

2. Для **каждой АТС** добавьте через раздел [Кастомизация системных файлов](https://docs.mikopbx.com/mikopbx/manual/system/custom-files) в конец файла "**pjsip.conf":**

```php
[SIP-TRUNK-41C1B8B4-devicestate]
type=outbound-publish
server_uri=sip:SIP-TRUNK-41C1B8B4@172.16.156.216: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
```

{% hint style="success" %}
Замените теги "**SIP-TRUNK-41C1B8B4"** на **ID провайдера MikoPBX**, "**172.16.156.216"** на **адрес FreePBX** на свои значения
{% endhint %}

### FreePBX <a href="#freepbx" id="freepbx"></a>

1. Используйте модуль «**Config Edit**» для редактирования файлов
2. Добавьте к файлу «**extensions\_custom.conf**»

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

```
[mikopbx-hints]
exten => 201,hint,PJSIP/201
exten => 202,hint,PJSIP/202
```

3. Добавьте к файлу «**pjsip\_custom.conf**»

```php
[SIP-TRUNK-41C1B8B4-devicestate]
type=outbound-publish
server_uri=sip:SIP-TRUNK-41C1B8B4@172.16.156.223: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
```

{% hint style="success" %}
Замените теги "**SIP-TRUNK-41C1B8B4"** на **ID провайдера MikoPBX**, "**172.16.156.216"** на **адрес FreePBX** на свои значения
{% endhint %}

{% hint style="danger" %}
Опция **outbound\_auth=SIP-TRUNK-41C1B8B4** актуальна только для случая, когда FreePBX регистрируется на MikoPBX. Передачу статусов удалось настроить только для этого случая.
{% endhint %}
