Инструменты пользователя

Инструменты сайта


faq:cid_norm

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

Обратно к инструкциям

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

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

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

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

В нашем примере ID провайдера принимает вид: SIP-PROVIDER-B63EE3497989BF6597FF8C9DEC77EB49.


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


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.

Ниже красным цветом выделен фрагмент, который Вам необходимо изменить.

Обращаем Ваше внимание, если у Вас в 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/cid_norm.txt · Последние изменения: 2023/05/05 08:16 — Портнов Алексей