<context>
Базовый элемент файла маршрутизации, описывающий параметры контекста маршрутизации.
Структура элемента <context> имеет следующий вид:
<context name="string" domain="string" digitmap="string" np="string" description="string">
</context>
где
- name — строка с именем контекста маршрутизации, должна быть уникальной в рамках виртуальной АТС;
- domain — строка с именем виртуальной АТС, к которой относится контекст маршрутизации;
- digitmap — маска номера, опциональный параметр, принимает значения:
- строка с диджитмапом для контекста маршрутизации;
- auto — диджитмап генерируется автоматически на базе описанных в контексте правил маршрутизации, установлено по умолчанию;
- none — параметр "digitmap" не указывается.
- np — имя плана нумерации для текущего контекста маршрутизации (если параметр не указан, то по умолчанию он равен значению default);
- description — текстовое описание контекста маршрутизации.
Далее в рамках тега <context> между закрывающим и открывающим тегом идет набор тегов, описывающих правила маршрутизации.
Анализ условий срабатывания правил производится в том порядке, в котором они указаны в файле — сверху вниз.
Планы нумерации
При входе в контекст маршрутизации, если план нумерации в текущем контексте отличается от плана нумерации в предыдущим контексте (либо при начале маршрутизации), для абонента применяются настройки домена нового плана нумерации (apri, nai, ni, npi, screening). Если абонент А — локальный абонент — то для него так же может поменяться номер (если он задан в свойстве алиаса [numbers] для данного плана нумерации). Таким образом, чтобы сменить план нумерации, необходимо сделать переход из контекста маршрутизации в исходном плане нумерации в контекст маршрутизации — в новом плане нумерации (данный переход выполняется в разделе result при помощи тега <continue />).
Если маршрутизация завершается в плане нумерации, отличном от дефолтного (с именем "default"), с результатом <local />, то маршрутизация смотрит, кому в плане нумерации назначен номер cdpn и идет по одному из следующих путей:
- номер назначен на алиас (список алиасов) — в этом случае маршрутизация заканчивается выбором master алиаса;
- номер назначен на бридж — в этом случае вызов направляем вызов на бридж;
- номер не на кого не назначен — в этом случае пытаемся найти локальный алиас с номером Б. Если он находится — делаем вызов на него; иначе — no_route.
Замечание: команды по управлению планами нумерации находятся по пути: /domain/<ИМЯ_ДОМЕНА>/np/... Чтобы выставить номер для локального абонента в определенном плане нумерации можно воспользоваться командой:
/domain/<ИМЯ_ДОМЕНА>/np/numbers/bind <ИМЯ_ПЛАНА_НУМЕРАЦИИ> <НОМЕР_В_ПЛАНЕ_НУМЕРАЦИИ> --alias <ИМЯ_ВЛАДЕЛЬЦА> <ИМЯ_ГРУППЫ> <ИМЯ_ИНТЕРФЕЙС> <ЛОКАЛЬНЫЙ_НОМЕР> [--master | --passive] --master - в случае, если вызов в плане нумерации поступает на номер <НОМЕР_В_ПЛАНЕ_НУМЕРАЦИИ>, то он будет перенаправлен на данного алиаса;
Чтобы выставить номер для бриджа в определенном плане нумерации можно воспользоваться командой:
/domain/<ИМЯ_ДОМЕНА>/np/numbers/bind <ИМЯ_ПЛАНА_НУМЕРАЦИИ> <НОМЕР_В_ПЛАНЕ_НУМЕРАЦИИ> --bridge <ИМЯ_БРИДЖА>
При этом бридж должен идти из домена <ИМЯ_ДОМЕНА> и использовать план нумерации
<ИМЯ_ПЛАНА_НУМЕРАЦИИ>.