|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (20)
просмотр истории страницы!voip_phone_numbers_parser.png|border=0,width=800! |
Для расчета стоимости и поиска абонентов по номеру в биллинге мы стараемся держать все номера в едином формате, по рекомендациям e.164, например: 74951122334 |
... |
Поля записей: |
1. * Имя - ваш комментарий, для чего вообще делается данное преобразование |
|
2. * Порядок выполнения правил - задает порядок выполнения правил (важно учитывать, что если номер был изменен предыдущим правилом - в следующее он придет уже в новом формате, об этом позже) |
|
3. * Regexp шаблон для номера - регулярное выражение для номера (применяется как для входящего, так и для исходящего номера по порядку). Советуем ставить якоря ^ в начале и $ в конце, чтобы четко задавать длину номера. Скобками можете указать часть номера, которую нужно сохранить. Если данное поле не будет совпадать с номером - правило не применяется |
|
4. * Regexp шаблон для замены номера - трансформация номера. Значение \1 - заменится символами из первых скобок п.3 |
|
Следует сразу отметить, что для трансформации используется функция sub модуля re языка python. [https://docs.python.org/2/library/re.html#re.sub] Первым параметром идет п.3, вторым п.4, а третьим - номер. |
* Regexp шаблон для поля ama-flags, Regexp шаблон для номера звонящего, Regexp шаблон для номера назначения - регулярные выражения, проверяющие поля у записи звонка. Если они не совпадут - правило не применяется. Пустое значение - результат будет всегда истинным, для проверки на пустоту нужно использовать \^$ |
|
5. Regexp шаблон для поля ama-flags, Regexp шаблон для номера звонящего, Regexp шаблон для номера назначения - регулярные выражения, проверяющие поля у записи звонка. Если они не совпадут - правило не применяется. Пустое значение - результат будет всегда истинным, для проверки на пустоту нужно использовать \^$ |
Правила применяются по очереди, отсортированной по приоритету (меньше - раньше). По шагам: берется первое правило, применяется для dst (номером телефона является номер назначения звонка), потом применяется для src (номер звонящего), далее берется следующее правило. Если п.3 или п.5 не подходят к звонку - правило пропускается. |
Примеры: |
{note}При сохранении просит выбрать NAS - выбираем любой, в результате проставится правильный{note} |
|
1. У нас есть код выхода на линию 8 и 9. 8 используют абоненты из пула номеров с префиксом 888, а 9 с 999, номера семизначные: |
h2. Примеры h3. Используются различные кода выхода на линию для абонентов из разных пулов номеров Используются два кода выхода на линию - "8" и "9". "8" используют абоненты из пула номеров с префиксом 888, а 9 с 999, номера семизначные: |
{code} правило1: |
... |
{code} |
2. h3. Приходят номера с 8 или вообще без кода страны: |
{code} правило 1 (для замены 8 на 7): |
... |
{code} |
h3. Аналогично первому примеру, но для кода 8 есть несколько определенных пулов |
3. аналогично Аналогично первому примеру, только но для кода 8 есть несколько определенных пулов, у которых код города не 888, а 887 (это номера 7887300хххх и 7887400хххх, приходят без кода города): |
{code} правило1: |
... |
{code} |
h3. Преобразование номеров без кода города |
4. Все предыдущие правила отработали, но остались номера без кода города, поступаем так: если один номер идет с кодом, другой без, то назначаем аналогичный код. |
{code} правило1 (если номер 7мизначный, а в src номер с кодом). |
... |