Правила замены адресов
При составлении правил замены адресов используются регулярные выражения.
Примеры составления правил замены адресов:
-
пример 1:
Есть внешний абонент с номером 94951234567, где 4951234567 — сам номер абонента, а 9 — используемый префикс.
При вызове этого абонента из мероприятия, префикс 9 необходимо вырезать. Для этого создается следующее правило замены параметра ТО исходящего VVoIP-звонка:
-
регулярное выражение поиска
^9(\d{10})$
— по исходящим VVoIP-вызовам ищет номера, в параметре TO которых есть номера начинающиеся на 9 и следующие после нее еще 10 любых цифр -
регулярное выражение замены
^9(\d{10})$
— определяет выражение, которое будет заменено в параметре ТО исходящего VVoIP-вызова на значение, указанное в строке замены. Данное выражение ищет номера, начинающиеся на 9 и следующие после нее еще 10 любых цифр -
строка замены
$1
— строка, на которую заменяется значение в параметре ТО, которое попало под регулярное выражение замены. В данной строке замены$1
— переменная, в которой в данном случае содержится заключенное в скобках выражение(\d{10})
-
-
пример 2:
В Платформе IVA MCU есть мероприятие с ID 4444. Внешняя система настроена таким образом, чтобы маршрутизировать все вызовы, начинающиеся на 123, на Платформу IVA MCU. Таким образом внешний абонент осуществляет вызов в формате sip:1234444@domain.test, где 1234444 — <user_part>.
При звонке этого абонента в конференцию необходимо на стороне Платформы IVA MCU вырезать данный префикс 123. Для этого создается следующее правило замены параметра ТО входящего VVoIP звонка:
-
регулярное выражение поиска
123(.*)
— по входящим VVoIP-вызовам ищет те, в которых в части <user_part> параметра ТО есть номера, начинающиеся с префикса 123 -
регулярное выражение замены
123(.*)
— определяет выражение, которое будет заменено в части <user_part> параметра ТО входящего VVoIP-вызова на значение указанное в строке замены. Данное выражение ищет номера, начинающиеся на 123 -
строка замены
$1
— строка, на которую заменяется значение в части <user_part> параметра ТО, которое попало под регулярное выражение замены. В данной строке замены$1
— переменная, в которой в данном случае содержится заключенное в скобках выражение(.*)
-
-
пример 3:
В Платформе IVA MCU есть мероприятие с ID 4444. Внешняя система настроена таким образом, чтобы маршрутизировать все вызовы, начинающиеся на 777, на Платформу IVA MCU. Таким образом внешний абонент производит вызов по номеру 7774444.
Также во внешней системе при совершении вызова на Платформу IVA MCU к номеру абонента добавляется префикс 9. Таким образом Платформа IVA MCU видит вызов от абонента с номером 91234, где 1234 — номер абонента, а 9 — используемый префикс.
Необходимо, чтобы для всех абонентов, номер которых начинается на 9, в случае если вызов происходит на номер мероприятия, начинающийся на 777, этот префикс 777 обрезался. Для этого создается следующее правило маршрутизации:
-
направление вызова — от незарегистрированных пользователей
-
фильтр адреса TO
sip:777(\d{4})@domain.test
— выражение, которое по входящим VVoIP-вызовам ищет те, в параметре TO которых есть sip:777, затем любые четыре цифры и @domain.test -
модификация адреса TO
sip:$1@domain.test
— строка, на которую заменяется значение в параметре TO, которое попало под регулярное выражение, прописанное в фильтре адреса TO.$1
— переменная, в которой в данном случае содержится заключенное в скобках выражение(\d{4})
-
фильтр адреса FROM
9(\d{4})
— выражение, которое по входящим VVoIP-вызовам ищет те, в параметре FROM которых есть номер, начинающийся на 9 и следующие после нее 4 любых цифры -
действие — По умолчанию
-
-
пример 4:
Необходимо запретить вызовы от незарегистрированных пользователей на номера, в которых содержится больше 12 цифр. Для этого создается следующее правило маршрутизации:
-
направление вызова — от незарегистрированных пользователей
-
фильтр адреса TO
sip:(\d{12,})@domain.test
— выражение, которое по входящим VVoIP-вызовам ищет те, в параметре TO которых есть sip:, затем любые двенадцать или более цифр и @domain.test -
действие — Отклонить
-

Синтаксис регулярных выражений
Синтаксис регулярных выражений основан на использовании символов <([{\^-=$!|]})?*+.>
, которые можно комбинировать с буквенными символами.
В зависимости от роли символы можно разделить на несколько групп:
-
метасимволы для обозначения количества символов (квантификаторы), квантификатор всегда следует после символа или группы символов
Метасимволы для поиска совпадений границ строк или текста:
Метасимвол | Назначение |
---|---|
|
начало строки |
|
конец строки |
Метасимволы для поиска символьных классов:
Метасимвол | Назначение |
---|---|
|
цифровой символ |
|
нецифровой символ |
|
символ пробела |
|
непробельный символ |
|
буквенно-цифровой символ или знак подчеркивания |
|
любой символ, кроме буквенного, цифрового или знака подчеркивания |
|
любой символ |
Метасимволы для группировки символов:
Метасимвол | Назначение |
---|---|
|
любой из перечисленных (а, б, или в) |
|
любой, кроме перечисленных (не а, б, в) |
|
слияние диапазонов (латинские символы от a до z без учета регистра) |
|
объединение символов (от a до d и от m до p) |
|
пересечение символов (символы d, e, f) |
|
вычитание символов (символы а, d-z) |
Метасимволы для обозначения количества символов (квантификаторы):
Метасимвол | Назначение |
---|---|
|
один или отсутствует |
|
ноль или более раз |
|
один или более раз |
|
n раз |
|
n раз и более |
|
не менее n раз и не более m раз |