Правило преобразования 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
}
}
Спецификация | Описание |
---|---|
Поле: |
Идентификатор. Может быть задан при создании, иначе генерируется системой «R». |
Поле: |
Приоритет правила. Меньшее значение означает более высокий приоритет. |
Поле: |
Фильтр по направлению изменения. |
Поле: |
Фильтр по идентификатору провайдера SIP-телефонии. |
Поле: |
Маска-фильтр для кода провайдера SIP-телефонии. |
Поле: |
Маска-фильтр адреса/домена инициатора звонка (заголовок From SIP-запроса INVITE). |
Поле: |
Маска-фильтр номера/username инициатора звонка (заголовок From SIP-запроса INVITE). |
Поле: |
Маска-фильтр номера/username назначения (заголовок To SIP-запроса INVITE). |
Поле: |
Модификатор имени инициатора звонка. Результат попадает на вход процесса представления. |
Поле: |
Модификатор номера инициатора звонка. Результат попадает на вход процесса маршрутизации звонка. |
Поле: |
Модификатор номера назначения звонка. Результат применения попадает на вход процесса маршрутизации звонка. |
Поле: |
|
Поле: |
Произвольный заголовок |
Поле: |
Произвольный комментарий |
Поле: |
Позволяет расширять состав произвольными ключами и значениями |
Поле: |
Время создания объекта |
Поле: |
Время последней модификации объекта |
Направление применения правила
Значение | Описание |
---|---|
|
В сторону от внутреннего абонента к внешнему. Правило применяется к данным внутреннего абонента при передаче их в сторону внешнего абонента. |
|
В сторону от внешнего абонента к внутреннему. Правило применяется к данным внешнего абонента при передаче их в сторону внутреннего абонента. |
Режимы работы фильтров
Режим | Описание |
---|---|
|
Подвергаемое проверке соответствия значение посимвольно проводится через фильтр.
|
Режимы работы модификаторов
Режим | Описание |
---|---|
|
Исходное значение посимвольно с накоплением проходит через указанный модификатор.
Например,- значение: |
|
К исходному значению применяется шаблон 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 больше приоритета текущего правила. |