Правило преобразования CallerId и CalledId (provider_callerid)
Описание
Правило преобразования CallerId и CalledId для учетных записей провайдеров SIP-телефонии.
Применяется в качестве адаптера внешних и внутреннего номерных планов. В частности при модификации CallerId внутренних абонентов для отправки наружу происходит адаптация во внешний номерной план, а при модификации CallerId внешних абонентов для отправки внутрь системы происходит адаптация к внутреннему номерному плану, то есть подготовка данных к процессу маршрутизации.
Обнаруженное правило модификации применяется для модификации и From username (number), и To username (number). В случае необходимости разделить модификации для сокращения количества правил, в качестве модификатора для To может быть применен специальный указатель "priority" (сначала применяется правило для FromNumber, а затем ищется и применяется правило для ToNumber, но с priority большим или равным исходному правилу и с фильтром по уже измененному FromNumber).
Настроенная совокупность правил преобразования CallerId может быть протестирована через диагностическое API. Однако следует иметь в виду, что существует разница применения в тесте и в звонке за счет того, что в звонке номер To берется из Request-Uri, а также при совпадении значения с username учетной записи сущности, в качестве номера для модификации подставляется пустая строка.
Поля
{
"id": uuid,
"priority": int,
"dir": str,
"idprovider": uuid,
"providercode": str,
"fromdomain": str,
"fromnumber": str,
"tonumber": str,
"modfromdisplay": str,
"modfromnumber": str,
"modtonumber": str,
"ext": {
"ct": date,
"lwt": date
},
"opts": {
"title": str,
"comment": str
}
}
Спецификация | Описание |
---|---|
Поле: |
Идентификатор. Может быть задан при создании, иначе генерируется системой. |
Поле: |
Приоритет правила. Меньшее значение означает более высокий приоритет. |
Поле: |
Фильтр по направлению изменения. |
Поле: |
Фильтр по идентификатору провайдера SIP-телефонии. Чтобы задать конкретного провайдера, очистите предварительно маску в поле 'providercode'. |
Поле: |
Маска-фильтр для кода провайдера SIP-телефонии. |
Поле: |
Маска-фильтр адреса/домена инициатора звонка (заголовок From SIP-запроса INVITE). |
Поле: |
Маска-фильтр номера/username инициатора звонка (заголовок From SIP-запроса INVITE). |
Поле: |
Маска-фильтр номера/username назначения (заголовок To SIP-запроса INVITE). |
Поле: |
Режим работы модификаторов from_username, from_displayname, to_username. Возможные варианты:
|
Поле: |
Модификатор имени инициатора звонка. Результат попадает на вход процесса представления. |
Поле: |
Модификатор номера инициатора звонка. Результат попадает на вход процесса маршрутизации звонка. |
Поле: |
Модификатор номера назначения звонка. Результат применения попадает на вход процесса маршрутизации звонка. |
Поле: |
Код служебного сценария модификации номеров CallerId и CalledId.
Переменные должны быть созданы в сценарии с указанными именами. В соответствии с выбранным для учетной записи провайдера режима проброса запросов ReInvite сценарий, равно как и строковые модификаторы, может применяться при изменении данных абонента с одной из сторон. В качестве стартовых параметров в сценарий передаются:
|
Поле: |
|
Поле: |
Произвольный заголовок |
Поле: |
Произвольный комментарий |
Поле: |
Табличные данные для использования фильтров (и модификаторов) в рамках одной сессии поиска правила. |
Поле: |
Позволяет расширять состав произвольными ключами и значениями |
Поле: |
Время создания объекта |
Поле: |
Время последней модификации объекта |
Направление применения правила
Значение | Описание |
---|---|
|
В сторону от внутреннего абонента к внешнему. Правило применяется к данным внутреннего абонента при передаче их в сторону внешнего абонента. |
|
В сторону от внешнего абонента к внутреннему. Правило применяется к данным внешнего абонента при передаче их в сторону внутреннего абонента. |
Режимы работы фильтров
Режим | Описание |
---|---|
|
Подвергаемое проверке соответствия значение посимвольно проводится через фильтр.
При необходимости указать один из служебных символов как целевой, его следует заключать в квадратные скобки, например |
|
Может применяться подстрока
В качестве значений полей в таблице могут применяться: Применение табличного модификатора допускается в комбинации с другими управляющими командами посимвольного режима. Например, |
|
К исходному значению применяется шаблон Pattern. Структура значения regex-шаблона: Например,- значение:
При формировании шаблонов Pattern могут применяться все стандартные правила регулярных выражений. |
|
Подвергаемое проверке соответствия значение - целое числовое и входит в указанный диапазон числовых значений. Структура значения dia-шаблона: Например,- значение: |
Режимы работы модификаторов
Режим | Описание |
---|---|
|
Исходное значение посимвольно с накоплением проходит через указанный модификатор.
Например,- значение: |
|
Может применяться подстрока Таблица служет связке нескольких полей фильтров и модификаторов. На основании последовательной проверки фильтров в таблице остается меньшее количество строк с учетом обнаруженных совпадений. Применение табличного модификатора допускается в комбинации с другими управляющими командами посимвольного режима. |
|
К исходному значению применяется шаблон Pattern с опциями Opts, и обнаруженный(-ые) блок(-и) заменяется(-ются) на шаблон Replace. Общая структура значения regex-модификатора: Опции могут быть опущены, либо содержать любую комбинацию из символов:
Например,- значение: При формировании шаблонов Pattern и Replace могут применяться все стандартные правила регулярных выражений, включая группы захвата, поиск назад, подстановку именованных групп и т.д. |
|
Режим реализован в задаче #192. (1) Ищется правило R1 по начальным From и To. (2) Из него применяется модификатор к From. (3) Если модификатор To равен 'priority=X', где X - любое неотрицательное число, то (3.1.1) ищется новое правило R2 по новому From и начальному To, с приоритетом, начиная с указанного X. (3.1.2) модификатор To из правила R2 применяется к начальному To. (3.2) иначе применяется модификатор To правила R1 к начальному To. Алгоритм построении компактного набора правил преобразования CallerId и CalledId может быть следующим: (1) Действовать как обычно. (2) Если возникает потребность сократить M*N правил до M+N, то (2.1) Выделить M правил модификации From с высокими приоритетами, в них установить в значения модификаторов To в значения 'priority=X'. (2.2) Создать еще N правил, где фильтры From соответствуют результату модификации From, либо (2.3) В случае, когда для определенных значений не требуется модификация From, то либо сразу модифицировать To, либо указывать priority=X, где X больше приоритета текущего правила. |
См. также
-
Статья: Провайдеры телефонии
-
Коллекция: Учетные записи провайдеров телефонии