Вектор маршрутизации (route)

Описание

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

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

Ограничения

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

Поля

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

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

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

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

Код вектора

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

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

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

Фильтр на основе среды инициатора звонка

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

Маска-фильтр номера источника.
Проверяется результат модификации правилами на предыдущих шагах маршрутизации.
Изначально на проверку попадает номер источника из поля username заголовка From SIP-запроса INVITE, либо результат более сложного определения номера абонента-инициатора (например sipuser phonenumber, результат применения sipuser extension, правил преобразования callerid на esg и др.).
Режимы работы фильтров.

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

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

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

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

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

Маска-фильтр номера назначения.
Проверяется результат модификации правилами на предыдущих шагах.
Изначально на проверку попадает номер из поля username заголовка To SIP-запроса INVITE.
Режимы работы фильтров.

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

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

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

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

Поле: 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. Среда инициатора звонка
Значение Описание

"inner"

Вектор может быть применен только для звонков, инициированных внутри текущего домена

"outer"

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

"cross"

Вектор может быть применен только для звонков, пришедших из другого домена

"*"

Фильтр не применяется, вектор подходит для всех сред инициаторов звонков

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

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

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

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

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

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

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

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

  • {E} и {e} – пустое значение.

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

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

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

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

"all"

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

"work"

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

"non-work"

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

"custom"

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

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

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

daystart

17

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

daystop

17

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

timestart

01440

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

timestop

01440

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

См. также

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

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

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