====== Нормализация входящего номера ====== [[faq:|Обратно к инструкциям]] При подключении к MikoPBX более одного провайдера может сложится ситуация, что номер телефона клиентов поступает в различном формате: * В 7ти значном виде - **2293042** * Через "+", к пример **+79257184444** * Через "8", к примеру **89257184444** Появляется необходимость привести все к одному формату. 1. Перейдите в раздел **Маршрутизация** -> **Провайдеры телефонии**. Откройте для редактирования учетную запись провайдера для редактирования. Скопируйте в адресной строке **ID провайдера**, через которого абоненты звонят Вам в компанию. Обращаем Ваше внимание, что в нашем примере используется **единственный** провайдер Zadarma. Если у Вас настроено подключение **нескольких** провайдеров, то ниже описанные действия необходимо выполнить **для каждого провайдера**.\\ \\ В нашем примере ID провайдера принимает вид: **SIP-PROVIDER-B63EE3497989BF6597FF8C9DEC77EB49**.\\ {{ :providers:2019-02-05_105038.png |}}\\ \\ 2. Перейдите в раздел **Система** -> **Кастомизация системных файлов**.\\ {{ :providers:many_hosts:2019-02-04_173507.png |}}\\ \\ 3. Откройте для редактирования конфигурационный файл **extensions.conf**. Установите режим "**Добавлять в конец файла**".\\ \\ 4. В черное окно добавьте следующий фрагмент кода:\\ [SIP-PROVIDER-B63EE3497989BF6597FF8C9DEC77EB49-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 В выше приведенном фрагменте кода Вам необходимо составить правильное наименование контекста.\\ Формат создаваемого контекста:\\ [ID-ПРОВАЙДЕРА-incoming-custom] * **ID-ПРОВАЙДЕРА** - значение, которое вы сохранили на первом шаге данной инструкции. В нашем примере это **SIP-PROVIDER-B63EE3497989BF6597FF8C9DEC77EB49**. Ниже красным цветом выделен фрагмент, который Вам необходимо изменить.\\ {{ :faq:2019-02-08_164259.png |}}\\ Обращаем Ваше внимание, если у Вас в MikoPBX подключено несколько провайдеров, выше описанный фрагмент кода нужно составить для каждого провайдера, учитывая уникальность ID каждого из провайдеров. Если необходимо добавить нормализацию для всех провайдеров сразу, то достаточно описать контекст "**add-trim-prefix-clid-custom**". Пример, все 10ти значным АОН добавить 7ку: [add-trim-prefix-clid-custom] exten => _.X!,1,ExecIf($[ ${LEN(${CALLERID(num)})} == 10 ]?Set(CALLERID(num)=7${CALLERID(num)})) same => n,return [[faq:|Обратно к инструкциям]]