Базовый элемент файла маршрутизации, описывающий параметры контекста маршрутизации.

Структура элемента <context> имеет следующий вид:

<context name="string" domain="string" digitmap="string" np="string" description="string">
</context>
CODE

где

  • name — строка с именем контекста маршрутизации, должна быть уникальной в рамках виртуальной АТС;
  • domain — строка с именем виртуальной АТС, к которой относится контекст маршрутизации;
  • digitmap — маска номера, опциональный параметр, принимает значения:
    • строка с диджитмапом для контекста маршрутизации;
    • auto — диджитмап генерируется автоматически на базе описанных в контексте правил маршрутизации, установлено по умолчанию;
    • none — параметр "digitmap" не указывается.
  • np — имя плана нумерации для текущего контекста маршрутизации (если параметр не указан, то по умолчанию он равен значению default);
  • description — текстовое описание контекста маршрутизации.

Далее в рамках тега <context> между закрывающим и открывающим тегом идет набор тегов, описывающих правила маршрутизации.
Анализ условий срабатывания правил производится в том порядке, в котором они указаны в файле — сверху вниз.

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

Планы нумерации

При входе в контекст маршрутизации, если план нумерации в текущем контексте отличается от плана нумерации в предыдущим контексте (либо при начале маршрутизации), для абонента применяются настройки домена нового плана нумерации (apri, nai, ni, npi, screening). Если абонент А — локальный абонент — то для него так же может поменяться номер (если он задан в свойстве алиаса [numbers] для данного плана нумерации). Таким образом, чтобы сменить план нумерации, необходимо сделать переход из контекста маршрутизации в исходном плане нумерации в контекст маршрутизации — в новом плане нумерации (данный переход выполняется в разделе result при помощи тега <continue />).
Если маршрутизация завершается в плане нумерации, отличном от дефолтного (с именем "default"), с результатом <local />, то маршрутизация смотрит, кому в плане нумерации назначен номер cdpn и идет по одному из следующих путей:

  1. номер назначен на алиас (список алиасов) — в этом случае маршрутизация заканчивается выбором master алиаса;
  2. номер назначен на бридж — в этом случае вызов направляем вызов на бридж;
  3. номер не на кого не назначен — в этом случае пытаемся найти локальный алиас с номером Б. Если он находится — делаем вызов на него; иначе — no_route.

Замечание: команды по управлению планами нумерации находятся по пути: /domain/<ИМЯ_ДОМЕНА>/np/... Чтобы выставить номер для локального абонента в определенном плане нумерации можно воспользоваться командой:

/domain/<ИМЯ_ДОМЕНА>/np/numbers/bind <ИМЯ_ПЛАНА_НУМЕРАЦИИ> <НОМЕР_В_ПЛАНЕ_НУМЕРАЦИИ> --alias <ИМЯ_ВЛАДЕЛЬЦА> <ИМЯ_ГРУППЫ> <ИМЯ_ИНТЕРФЕЙС> <ЛОКАЛЬНЫЙ_НОМЕР> [--master | --passive]
  --master - в случае, если вызов в плане нумерации поступает на номер <НОМЕР_В_ПЛАНЕ_НУМЕРАЦИИ>, то он будет перенаправлен на данного алиаса;

Чтобы выставить номер для бриджа в определенном плане нумерации можно воспользоваться командой:

/domain/<ИМЯ_ДОМЕНА>/np/numbers/bind <ИМЯ_ПЛАНА_НУМЕРАЦИИ> <НОМЕР_В_ПЛАНЕ_НУМЕРАЦИИ> --bridge <ИМЯ_БРИДЖА>

При этом бридж должен идти из домена <ИМЯ_ДОМЕНА> и использовать план нумерации
<ИМЯ_ПЛАНА_НУМЕРАЦИИ>.