Правило переадресации (redirectrule)

Описание

Правило переадресации, назначаемое для номеров (учетных записей SIP-пользователей).
Применяется сервером роли B2BUA при совершении вызовов на внутренние номера SIP-пользователей.

Включает в себя несколько видов маршрутизации: абсолютная, по отсутствию зарегистрированных устройств, и по различным неудачным ответам от вызываемых устройств.

Возможно последовательное применение каскадной переадресации A → B → C → D.

Поддерживается фильтрация по номеру инициатора вызова.

Ограничения

  • Коллекция недоступна в мастер-домене.

  • При использовании учетной записи SIP-пользователя в очередях в качестве ресурса одновременная переадресация может вредить принципам очереди.

  • Не касается переадресаций, настроенных на самом SIP-устройстве и инициируемых получением SIP-ответов с кодами `3xx`.

Поля

Структура сущности
{
  "id": uuid,
  "type": str,
  "filter_number": str,
  "tran_number": str,
  "priority": int,
  "enabled": intbool,
  "schedule": str,
  "periods": array<object>,
  "opts": {
    "title": str,
    "comment": str
  },
  "ext": {
    "ct": date,
    "lwt": date
  }
}
Table 1. Поля
Спецификация Описание

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

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

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

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

В случае вызова нескольких устройств учетной записи параллельно, при неудачном исходе из всех полученных кодов SIP-ответов выбирается так называемый наилучший результат: 603, 486, 6xx, 5xx, 4xx.

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

Маска-фильтр номера, которому принадлежит правило переадресации.
Это может быть напрямую указанный номер учетной записи SIP-пользователя – в этом случае правило индивидуального применения.
Но также может быть указана маска поискового фильтра.
Режимы работы фильтра.

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

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

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

Модификатор номера-назначения переадресации.
По умолчанию любое назначенное в поле текстовое значение применяется без модификации, однако если в нем присутствует специальное форматирование, то результат может быть динамически изменен.
Режимы работы модификатора.

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

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

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

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

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

Определяет расписание активности правила.
Рабочее/нерабочее время определяется в настройках текущего домена, либо в родительских доменах вплоть до мастер-домена.
Расписание работы

Поле: periods
Режим: in
Тип: array<object>
По умолчанию: empty

Интервал активности в течение недели.
Применяется в режиме schedule = custom.
Каждый элемент списка охватывает определенный отрезок внутри недели: от времени в конкретный день недели до времени в другой конкретный день недели.
На основе совокупности этих отрезков формируется общее расписание.
Элемент списка еженедельного расписания.

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

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

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

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

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

Поле: opts.tab
Режим: in
Тип: array<object>
По умолчанию: []

Табличные данные для использования фильтров в рамках одной сессии поиска правила.
Каждый объект в списке содержит произвольные поля, которые могут использоваться в маске в виде строки {tab:some_field}.
Подробнее в разделе Режимы работы фильтра, пункт 'Таблица'".

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

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

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

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

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

Типы условий применения правил переадресации

Table 2. Типы условий применения правил переадресации
Значение Описание

"absolute"

Правило переадресации действует всегда. Применяется до начала вызова.

"unregistered"

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

"busy"

Правило переадресации действует после получения ответа, сопоставленного в общих настройках с результатом Занято. По умолчанию код SIP-ответа 486 Busy Here.

"timeout"

Правило переадресации действует после получения истечения допустимого времени вызова (по умолчанию 30 секунд, или установленное в настройках учетной записи SIP-пользователя), либо получении ответа 408 Timeout.

"decline"

Правило переадресации действует после получения ответа, сопоставленного в общих настройках с результатом Отклонено. По умолчанию код SIP-ответа 603 Decline.

"dnd"

Правило переадресации действует после получения ответа, сопоставленного в общих настройках с результатом DND (Do Not Disturb). По умолчанию коды SIP-ответов 404 Not Found, 480 Temporary Unavailable.

"error"

Правило переадресации действует после обнаружения ошибок в ходе вызовов.

"other"

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

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

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

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

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

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

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

  • ? – любой символ кроме точки;

  • $ – любое количество символов до ближайшей точки.

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

Например, XXX – любое трехсимвольное значение.

Таблица

Может применяться подстрока {tab:…​}. С помощью нее можно выделить группу символов в проверяемом значении и сопоставить их с таблицей, встроенной в правило (opts.tab).
Например, {tab:a} - выделение подстроки и сопоставление ее с полем a всех объектов/строк в таблице.
Таблица служет связке нескольких полей фильтров и модификаторов. На основании последовательной проверки фильтров в таблице остается меньшее количество строк с учетом обнаруженных совпадений.
Первая из оставшихся строк служит для применения в модификаторах. При условии что в таблице не осталось строк - правило отклоняется.
Захват символов из проверяемого значения на основе маски может происходить автоматически, либо со строгим указанием длины подстроки:

  • {tab:KEY} - Автоматический захват из проверяемого значения.

  • {tab:KEY:LENGTH} - Захват указанного количества символов из проверяемого значения.

В качестве значений полей в таблице могут применяться:

  • константы;

  • регулярные выражения (для этого необходимо задать значение в формате /reg/EXPRESSION, например /reg/^1[1-4]$);

  • сопоставления с другими полями таблицы (для этого необходимо задать значение в формате /tab/FIELD, например /tab/a). Режим используется для связывания значений различных полей. Например, чтобы разрешить звонки только на собственный ящик голосовой почты. Необходимо строго соблюдать порядок связывания: если поле таблицы, на которое производится ссылка, еще не проверялось и не было заполнено реальным значением другого поля сущности, то сопоставление не пройдет. Порядок проверки полей сущности: filter_number, filter_fromnumber.

  • любое значение, применяемого без регулярного выражения (для этого необходимо задать /any). Режим полезен исключительно при организации прямых сопоставлений со значениями других полей без дополнительных фильтров.

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

Например, {tab:a:3}XXXXX{tab:b} - позволяет выделить в номере 3-символьный код города и сопоставить с полем a в таблице, и одновременно выделить хвост начиная с 9 символа и сопоставить с полем b таблицы.

Regex

К исходному значению применяется шаблон Pattern.

Структура значения regex-шаблона:
/reg/Pattern1.

Например,- значение: "302"
- маска: "/reg/0"
- результат: true.

  • значение: "302"

  • маска: "/reg/^0$"

  • результат: false.

  • значение: "302"

  • маска: "/reg/^302$"

  • результат: true.

  • значение: "302"

  • маска: "/reg/^(301|302|305)$"

  • результат: true.

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

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

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

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

Исходное значение посимвольно с накоплением проходит через указанный модификатор.
Посимвольный модификатор не предусматривает подстановки значений, в качестве результата. Указанное значение воспринимается как константа. Поддерживаются символы 0-9,*,#.

Таблица

Может применяться подстрока {tab:…​}. С помощью нее в модифицируемое значение можно подставить подстроку из указанного поля таблицы (opts.tab).
В качестве источника выступает первая оставшаяся после фильтрации строка в таблице.
Например, {tab:ссс} - подстановка в соответствующую позицию итогового результата значения из поля ccc первой оставшейся строки в таблице.
Если в первой строке/объекте указанное поле отсутствует, то подставляется пустое значение.

Таблица служет связке нескольких полей фильтров и модификаторов. На основании последовательной проверки фильтров в таблице остается меньшее количество строк с учетом обнаруженных совпадений.
Первая из оставшихся строк служит для применения в модификаторах. При условии, что в таблице не осталось строк - правило отклоняется на этапе проверки фильтров.

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

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 могут применяться все стандартные правила регулярных выражений, включая группы захвата, поиск назад, подстановку именованных групп и т.д.

Расписание работы

Table 5. Расписание работы
Значение Описание

"all"

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

"work"

Правило доступно для применения только в рабочее время

"non-work"

Правило доступно для применения только в нерабочее время

"custom"

Правило определяет индивидуальное расписание доступности в поле periods правила

Элемент списка еженедельного расписания

Table 6. Элемент списка еженедельного расписания
Поле Значение Описание

daystart

17

День недели начала отрезка (1 – пн, 7 – вс)

daystop

17

День недели конца отрезка (1 – пн, 7 – вс)

timestart

01440

Время начала отрезка внутри дня в минутах

timestop

01440

Время конца отрезка внутри дня в минутах

См. также

Логические роли

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

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