Конвертация номеров (модификаторы, преобразования к e.164)

Skip to end of metadata
Go to start of metadata

Для расчета стоимости и поиска абонентов по номеру в биллинге мы стараемся держать все номера в едином формате, по рекомендациям e.164, например: 74951122334

С оборудования номера могут приходить в различном формате, например: 84951122334, 4951122334, 1122334, +74951122334 и других, необходимо знать в каком формате может прийти номер с вашей АТС и создать соответствующее правило ковертации.

Правила конвертации создаются для каждой АТС отдельно (т.е если у вас разные коды на разных атс - будет достаточно просто их проставлять). Для просмотра и редактирования правил нужно зайти в Оборудование -> VOIP -> имя вашей АТС -> VOIP_CONVERSION_RULE

Поля записей:

  • Имя - ваш комментарий, для чего вообще делается данное преобразование
  • Порядок выполнения правил - задает порядок выполнения правил (важно учитывать, что если номер был изменен предыдущим правилом - в следующее он придет уже в новом формате, об этом позже)
  • Regexp шаблон для номера - регулярное выражение для номера (применяется как для входящего, так и для исходящего номера по порядку). Советуем ставить якоря ^ в начале и $ в конце, чтобы четко задавать длину номера. Скобками можете указать часть номера, которую нужно сохранить. Если данное поле не будет совпадать с номером - правило не применяется
  • Regexp шаблон для замены номера - трансформация номера. Значение \1 - заменится символами из первых скобок п.3
    Следует сразу отметить, что для трансформации используется функция sub модуля re языка python. https://docs.python.org/2/library/re.html#re.sub Первым параметром идет п.3, вторым п.4, а третьим - номер.
  • Regexp шаблон для поля ama-flags, Regexp шаблон для номера звонящего, Regexp шаблон для номера назначения - регулярные выражения, проверяющие поля у записи звонка. Если они не совпадут - правило не применяется. Пустое значение - результат будет всегда истинным, для проверки на пустоту нужно использовать ^$

Правила применяются по очереди, отсортированной по приоритету (меньше - раньше). По шагам: берется первое правило, применяется для dst (номером телефона является номер назначения звонка), потом применяется для src (номер звонящего), далее берется следующее правило. Если п.3 или п.5 не подходят к звонку - правило пропускается.

При сохранении просит выбрать NAS - выбираем любой, в результате проставится правильный

Примеры

Используются различные кода выхода на линию для абонентов из разных пулов номеров

Используются два кода выхода на линию - "8" и "9". "8" используют абоненты из пула номеров с префиксом 888, а 9 с 999, номера семизначные:

правило1:

п.2 = 1

п.3 = ^(\d{7})$

п.4 = 7999\1

п.5(ama-flags) = 9 (на оборудовании avaya в поле ama-flags записывается номер)


правило 2:

п.2 = 2


п.3 = ^(\d{7})$

п.4 = 7888\1

п.5(ama-flags) = 8

Приходят номера с 8 или вообще без кода страны

правило 1 (для замены 8 на 7):

п.2 = 1

п.3 = ^8(\d{10})$

п.4 = 7\1

правило 2 (проставляем 7):

п.2 = 2


п.3 = ^(\d{10})$

п.4 = 7\1

Аналогично первому примеру, но для кода 8 есть несколько определенных пулов

Аналогично первому примеру, но для кода 8 есть несколько определенных пулов, у которых код города не 888, а 887 (это номера 7887300хххх и 7887400хххх, приходят без кода города):

правило1:

п.2 = 1

п.3 = ^(\d{7})$

п.4 = 7999\1

п.5(ama-flags) = 9 (на оборудовании avaya в поле ama-flags записывается номер)

правило 2:

п.2 = 2

п.3 = ^([34]00\d{4})$

п.4 = 7887\1

п.5(ama-flags) = 8

правило 3:

п.2 = 2

п.3 = ^(\d{7})$

п.4 = 7888\1

п.5(ama-flags) = 8

Преобразование номеров без кода города

Все предыдущие правила отработали, но остались номера без кода города, поступаем так: если один номер идет с кодом, другой без, то назначаем аналогичный код.

правило1 (если номер 7мизначный, а в src номер с кодом).

п.2 = 10


п.3 = ^(\d{7})$

п.4 = 7999\1

п.5(src) = ^7999\d{7}

правило2 (если номер 7мизначный, а в dst номер с кодом).

п.2 = 11

п.3 = ^(\d{7})$

п.4 = 7999\1

п.5(dst) = ^7999\d{7}

правило3 (аналогично для восьмерок).

п.2 = 12

п.3 = ^(\d{7})$

п.4 = 7888\1

п.5(src) = ^7888\d{7}

правило4.

п.2 = 13

п.3 = ^(\d{7})$

п.4 = 7888\1

п.5(dst) = ^7888\d{7}

Метки

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.