Правило представления (representative)

Описание

Правило представления номера одной учетной записи SIP-пользователя другим учетным записям SIP-пользователей, применяемое при кросс-доменных звонках.
Позволяет определить, какой номер инициатора звонка увидит абонент из другого домена. И соответственно, куда будет направлен обратный вызов при нажатии REDIAL.
Применяется в случаях организации общего номерного плана у нескольких доменов.

Процесс поиска представления состоит из трех последовательных этапов, каждый из которых в случае успеха прерывает процесс, а в случае неудачи передает управление следующему этапу.
(1) В домене вызываемого абонента ищется подходящее CROSS правило.
(2) В домене инициатора звонка ищется подходящее INNER правило.
(3) В домене первого уровня (относительно мастер-домена) ищется подходящее GLOBAL правило.
В случае неудачи на всех этапах, подставляется номер "undefined".
Правила настройки глобального номерного плана должны ориентироваться на приведенную последовательность этапов.

Настроенная совокупность правил представления может быть протестирована через диагностическое API.

Ограничения

  • Сущность недоступна в мастер-домене.

Поля

Структура сущности
{
  "id": uuid,
  "priority": int,
  "dir": str,
  "ofdomain": str,
  "ofusername": str,
  "ofnumber": str,
  "fordomain": str,
  "forusername": str,
  "fornumber": str,
  "action": str,
  "modifier": str,
  "opts": {
    "title": str,
    "comment": str
  },
  "ext": {
    "ct": date,
    "lwt": date
  }
}
Table 1. Поля
Спецификация Описание

Поле: id
Режим: inout
Тип: uuid
По умолчанию: generated

Идентификатор. Может быть задан при создании, иначе генерируется системой «R».

Поле: priority
Режим: in
Тип: int
По умолчанию: required

Приоритет. Меньшее значение означает более высокий приоритет.

Поле: dir
Режим: in
Тип: str
По умолчанию: "*"

Фильтр по направлению применения.
В соответствии с приведенным в описании процессом поиска правил представления каждое направление привязывает правило к конкретному этапу его применения.

Поле: ofdomain
Режим: in
Тип: str
По умолчанию: "*"

Маска-фильтр домена инициатора звонка.
Не применяется на втором этапе поиска правил представления.
Режимы работы фильтров.

Поле: ofusername
Режим: in
Тип: str
По умолчанию: "*"

Маска-фильтр username инициатора звонка.
Режимы работы фильтров.

Поле: ofnumber
Режим: in
Тип: str
По умолчанию: "*"

Маска-фильтр номера инициатора звонка.
Режимы работы фильтров.

Поле: fordomain
Режим: in
Тип: str
По умолчанию: "*"

Маска-фильтр домена вызываемого абонента.
Не применяется на первом этапе поиска правил представления.
Режимы работы фильтров.

Поле: forusername
Режим: in
Тип: str
По умолчанию: "*"

Маска-фильтр username вызываемого абонента.
Режимы работы фильтров.

Поле: fornumber
Режим: in
Тип: str
По умолчанию: "*"

Маска-фильтр номера вызываемого абонента.
Режимы работы фильтров.

Поле: action
Режим: in
Тип: str
По умолчанию: "apply"

Действие, определяемое правилом.

Поле: modifier
Режим: in
Тип: str
По умолчанию: "T"

Модификатор номера источника.
Используется если поле action = "apply".
Режимы работы модификатора.

Поле: opts
Режим: in
Тип: object
Составное поле

Поле: opts.title
Режим: in
Тип: str
По умолчанию: empty

Произвольный заголовок

Поле: opts.comment
Режим: in
Тип: str
По умолчанию: empty

Произвольный комментарий

Поле: ext
Режим: inout
Тип: object
Составное поле

Позволяет расширять состав произвольными ключами и значениями

Поле: ext.ct
Режим: out
Тип: date
По умолчанию: generated

Время создания объекта

Поле: ext.lwt
Режим: out
Тип: date
По умолчанию: generated

Время последней модификации объекта

Варианты фильтров по направлению применения

Table 2. Варианты фильтров по направлению применения
Значение Описание

"cross"

Правило применяется только на первом этапе. Производит представление учетных записей других доменов для текущего домена

"inner"

Правило применяется только на втором этапе. Производит представление учетных записей текущего домена для других доменов

"global"

Правило применяется только на третьем этапе. Имеет смысл только в доменах первого уровня (относительно мастер-домена). Производит представление учетных записей произвольных доменов другим доменам.

"*"

Правило применяется на всех этапах

Режимы работы фильтров

Table 3. Режимы работы фильтров
Режим Описание

Посимвольный

Подвергаемое проверке соответствия значение посимвольно проводится через фильтр.
Могут применяться следующие спец-символы и сочетания:

  • X – любой символ;

  • * – все оставшиеся символы;

  • {F} и {f} – значение username целиком;

  • {T} и {t} – значение To username целиком;

  • {E} и {e} – пустое значение.
    При необходимости указать один из служебных символов как целевой, его следует заключать в квадратные скобки, например [X].

Например, XX[X] – любое трехсимвольное значение, с символом X на конце.

Действия

Table 4. Действия
Значение Описание

"apply"

Применяет правило представления

"abort"

Прерывает текущий этап поиска и передает управление на следующий этап

Режимы работы модификатора

Table 5. Режимы работы модификатора
Режим Описание

Посимвольный

Исходное значение посимвольно с накоплением проходит через указанный модификатор.
Допускается применение следующих спец-символов и сочетаний:

  • X – захватить текущий символ;

  • / в сочетании c X – исключить текущий символ из результата, например /XXX/ исключает 3 текущих символа;

  • * – захватить все оставшиеся символы;

  • [ в сочетании с ] – включить в результат служебный символ, расположенный между скобками, например [X];

  • {F} и {f} – включить в результат значение username инициатора звонка;

  • {T} и {t} – включить в результат значение username вызываемого абонента;

  • {E} и {e} – (включить в результат пустое значение;

  • любой другой символ захватывается в результат в соотстствующую ему позицию.

Например,- значение: "123456"
- модификатор: "/X/XX5[*]67{E}8*T"
- результат: "235*678456123456".

Regex

К исходному значению применяется шаблон Pattern с опциями Opts, и обнаруженный(-ые) блок(-и) заменяется(-ются) на шаблон Replace.
Результат может снова быть подан на следующую операцию Regex-модификации, и так далее конечное число раз.

Общая структура значения regex-модификатора:
/reg/Pattern1/Replace1/Opts1 /reg/Pattern2/Replace2/Opts2 …​.

Опции могут быть опущены, либо содержать любую комбинацию из символов:

  • i – case-insensitive

  • g – global.

Например,- значение: "qwerty,qwerty"
- модификатор: "/reg/t/E/g /reg/qwer/a/"
- результат: "aEy,qwerEy".

При формировании шаблонов Pattern и Replace могут применяться все стандартные правила регулярных выражений, включая группы захвата, поиск назад, подстановку именованных групп и т.д.

См. также

Функциональные роли

  • b2b проводит маршрутизацию и применение правил представления.

  • esg проводит маршрутизацию и применение правил представления.

  • mdc и sdc производят поиск правил представления.