# Нормализация входящего номера телефона

При подключении к MikoPBX более одного провайдера может сложится ситуация, что номер телефона клиентов поступает в различном формате:

* В 7и значном виде - **2293042**
* Через «+», к пример **+79257184444**
* Через «8», к примеру **89257184444**

Появляется необходимость привести все к одному формату.

1. Перейдите в раздел **Маршрутизация** → **Провайдеры телефонии**. Откройте для редактирования учетную запись провайдера для редактирования. Скопируйте в адресной строке **ID провайдера**, через которого абоненты звонят Вам в компанию. Обращаем Ваше внимание, что в нашем примере используется **единственный** провайдер. Если у Вас настроено подключение **нескольких** провайдеров, то ниже описанные действия необходимо выполнить **для каждого провайдера**.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FxBi6rEFAoRwCFRkBCePy%2FProvider-ID.png?alt=media&#x26;token=fba2224e-4365-489f-b1b5-a3121faeeff0" alt=""><figcaption><p>Где найти ID провайдера </p></figcaption></figure>

В нашем примере ID провайдера принимает вид: **SIP-1687947415**

2. Перейдите в раздел **Система** → **Кастомизация системных файлов**.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2FmRoCXGlTdLZsCYDSh3T2%2FcustomizationFiles.png?alt=media&#x26;token=ec18b151-274a-4a56-9e51-17f693db0bb7" alt=""><figcaption><p>Раздел "Кастомизация системных файлов"</p></figcaption></figure>

3. &#x20;Откройте для редактирования конфигурационный файл **extensions.conf**.

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2F0r5QIIDnQKXdcStXZFoD%2FextensionsConf.png?alt=media&#x26;token=234182a2-f8bc-4deb-8804-9afa0032d6c1" alt=""><figcaption><p>Редактирование конфигурационного файла "extensions.conf"</p></figcaption></figure>

4. Выберите режим "**Добавлять в конец файла**". В черное окно добавьте следующий фрагмент кода:

{% code fullWidth="true" %}

```php
[SIP-1687947415-incoming-custom]
exten => _.!,1,NoOp(---)
    ; Отсекаем плюс
    same => n,Set(CALLERID(num)=${REPLACE(CALLERID(num),"+")})
    ; Для 11ти значного номера отсекаем первую цифру и добавляем 7
    same => n,ExecIf($[ ${LEN(${CALLERID(num)})} == 11 ]?Set(CALLERID(num)=7${CALLERID(num):1}))
    ; Для 7ми значного номера добавляем код страны 7 и код города 495
    same => n,ExecIf($[ ${LEN(${CALLERID(num)})} == 7 ]?Set(CALLERID(num)=7495${CALLERID(num)}))
    same => n,return
; Если номер звонящего начинается с 886142 (11 значный), то отрезать код города "886142" 
exten => _.X!/_886142XXXXX,1,Set(CALLERID(num)=${CALLERID(num):5})
    same => n,return
```

{% endcode %}

В выше приведенном фрагменте кода Вам необходимо составить правильное наименование контекста.\
Формат создаваемого контекста:

```php
[ID-ПРОВАЙДЕРА-incoming-custom]
```

* **ID-ПРОВАЙДЕРА** - значение, которое вы сохранили на первом шаге данной инструкции. В нашем примере это **SIP-1687947415.**

<figure><img src="https://3704471835-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MPK4TuzRBnP7rt8htho-887967055%2Fuploads%2F2WVYyNA2obi5LjQljZsR%2FCodeForExtensions.png?alt=media&#x26;token=b5a11edd-2cf5-4216-bf41-5d8e402eb275" alt=""><figcaption><p>Код для exensions.conf</p></figcaption></figure>

{% hint style="danger" %}
Обращаем Ваше внимание, если у Вас в MikoPBX подключено несколько провайдеров, выше описанный фрагмент кода нужно составить для каждого провайдера, учитывая уникальность ID каждого из провайдеров.
{% endhint %}

Если необходимо добавить нормализацию для всех провайдеров сразу, то достаточно описать контекст «**add-trim-prefix-clid-custom**». Пример, все 10ти значным АОН добавить 7ку:

{% code fullWidth="true" %}

```php
[add-trim-prefix-clid-custom]
exten => _.X!,1,ExecIf($[ ${LEN(${CALLERID(num)})} == 10 ]?Set(CALLERID(num)=7${CALLERID(num)}))
	same => n,return
```

{% endcode %}
