Общая работа системы
Подсистема MultiSORM позволяет СОРМ-ировать несколько виртуальных АТС (доменов) как одну, что позволяет скрыть от пульта СОРМ внутреннюю структуру ECSS-10.
Рисунок 1 - Организация подключения пульта СОРМ к подсистеме MultiSORM
При использовании подсистемы MultiSORM СОРМ посредник подключается к центральному домену, где авторизуется по имени и паролю. При прохождении процедуры авторизации подсистема MultiSORM проверяет конфигурацию доменов подключенных к подсистеме. Если подсистема MultiSORM не смогла подключить хотя бы один из доменов по причине, что он не существует, либо имеет некорректные настройки для взаимодействия с СОРМ посредником, то авторизация будет неуспешной даже несмотря на то, что авторизационные имя и пароль будут верными. При успешной авторизации подсистема MultiSORM переходит в режим передачи команд полученных от СОРМ посредника в подключенные домены, включая центральный. Команда транслируется сразу во все подключенные домены и если хотя бы из одного получен положительный ответ, то он передается на СОРМ посредник.
Например, от СОРМ посредника принята команда №5 «постановка на контроль». Она транслируется во все домены, подключенные к подсистеме MultiSORM и если хотя бы один домен поставил принятый в команде номер на контроль, то значит, что команда выполнена успешно. В случае, если от всех доменов получен отрицательный ответ, - на СОРМ посредник будет протранслирован отрицательный ответ.
Абоненты центрального домена ставятся на контроль по полному номеру (11 знаков начиная с семерки согласно 268 приказа) как абоненты сети (абонент сети с полным номером, междугородный), а абоненты остальных доменов, подключенных к центральному, - по локальному короткому номеру со значностью принятой в данном домене, как абоненты данной станции. Подсистема MultiSORM для своей работы требует одного ограничения - локальные номера во всех подключенных доменах должны быть уникальными, то есть номера из одного домена не должны присутствовать в других.
Маршрутизация вызовов между доменами и на внешнее городское направление осуществляется через центральный домен, а маршрутизация между абонентами домена — локально внутри домена. В результате, если вызов идет на город, абонент будет СОРМ-ироваться по полному номеру центрального домена, если вызов осуществляется внутри локального домена или между локальными доменами, то вызов будет СОРМ-ироваться по локальному короткому номеру.
Конфигурирование подсистемы MultiSORM
При конфигурировании подсистемы MultiSORM подразумеваем, что локальные и центральный домены уже созданы. В локальных доменах созданы локальные абоненты с короткой нумерацией, а в центральном домене создан SIP-транк для выхода на городское направление.
Настройка глобальных параметров СОРМ
Для подключения СОРМ посредника подсистема MultiSORM использует ssh порт, на единицу больший, чем указано в параметре ssh_port.
Параметр настраивается командой:
sorm/set ssh_port <value>
- <value> — значение порта в диапазоне 1-65535. По умолчанию значение данного параметра равно 7777, то есть по умолчанию подсистема MultiSORM будет использовать порт 7778.
Список доменов, которые будут СОРМ-ироваться и авторизационные данные пользователя подсистемы MultiSORM (имя/пароль) настраиваются командой:
sorm/set aggregate_sorm_settings add <User> <Password> <DOMAIN_1> [<DOMAIN_2> ...[<DOMAIN_N>]]
Для автоматического добавления доменов без повторной постановки абонента на контроль и без перезапуска СОРМ существуют шаблоны доменов. Задаются они следующими командами:
- подключение всех доменов
sorm/set aggregate_sorm_settings add test3 1234 *
- подключение всех доменов за исключением одного (например, test)
sorm/set aggregate_sorm_settings add test3 1234 * -test
При необходимости для удаления пользователя используется команда:
sorm/set aggregate_sorm_settings remove <User>
- User — имя пользователя подсистемы MultiSORM;
- Password — пароль пользователя подсистемы MultiSORM;
- DOMAIN_1..DOMAIN_N — имя локального или центрального домена.
Настройка локальных параметров СОРМ домена
В каждом домене, используемом подсистемой MultiSORM необходимо включить функциональность СОРМ и настроить взаимодействие с СОРМ посредником.
Для включения функциональности СОРМ используется параметр enabled
, которому необходимо установить значение true
.
Параметр настраивается командой:
domain/DOMAIN_N/sorm/set enabled true
- DOMAIN_N — имя локального или центрального домена.
Для взаимодействия с СОРМ посредником в каждом домене добавляем RADIUS-сервер и секретный ключ для взаимодействия с ним. IP-адрес СОРМ посредника является IP-адресом RADIUS сервера.
RADIUS сервер добавляется командой:
domain/DOMAIN_N/sorm/set radius_servers add <IP address> <secret>
- DOMAIN_N — имя локального или центрального домена;
- <IP address> - IP адрес RADIUS сервера;
- <secret> - секретный ключ для доступа к RADIUS серверу.
Создание контекстов маршрутизации
Необходимо для каждого домена создать контексты маршрутизации, в которых учесть планируемую нумерацию и имена бриджей для взаимодействия между центральным и локальными доменами. Сами бриджи будут создаваться позже.
Созданные контексты импортируются командой:
domain/DOMAIN_N/routing/import <host> <file>
- <host> - имя хоста, на котором необходимо импортировать шаблон контекста маршрутизации;
- <file> - имя файла с шаблоном контекста маршрутизации, который необходимо установить.
Декларация бриджей
Для взаимодействия между центральным и локальными доменами необходимо создать бриджи. Для каждого домена создается один бридж для выхода на городское направление по полной нумерации и один бридж для взаимодействия между доменами через центральный домен по короткой нумерации.
Бридж декларируется командой:
/bridge/declare <name> <duplex> <strict> <capacity> <DOMAIN_A> <np_a> <iface_a> <tg_a> <routing_ctx_a> <DOMAIN_B> <np_b> <iface_b> <tg_b> <routing_ctx_b>
- <name> - уникальное имя bridge-интерфейса (строка, без пробелов) в рамках ECSS-10;
- <duplex> - режим работы bridge:
- true - двунаправленный;
- false - однонаправленный;
- <strict> - режим проверки номеров, проходящих через бридж:
- true - проверка включена (при вызове из <DOMAIN_A> -> <DOMAIN_B> будет проверка, что номер абонента B существует в плане нумерации <NP_B> в домене B; при вызове из <DOMAIN_B> -> <DOMAIN_A> будет проверка, что номер абонента А существует в плане нумерации <NP_B> домена B);
- false - проверка выключена;
- <capacity> - количество одновременно активных вызовов на заданном bridge-интерфейсе, принимает значения:
- любое положительное число;
- unbounded - количество не ограничено;
<DOMAIN_A> / <DOMAIN_B> - имя первой/второй виртуальной АТС, с которой устанавливает соединение bridge;
<np_a> / <np_b> - план нумерации первой/второй виртуальной АТС, с которой устанавливает соединение bridge;
<iface_a> / <iface_b> - имя интерфейса первой/второй виртуальной АТС, через который будет осуществляться взаимодействие с bridge-интерфейсом;
<tg_a> / <tg_b> - идентификатор транк-группы для интерфейса первой/второй виртуальной АТС;
<routing_ctx_a> / <routing_ctx_b> - контекст маршрутизации по умолчанию для интерфейса первой/второй виртуальной АТC.
Настройка планов нумерации в доменах
В каждом домене необходимо создать план нумерации. В центральном домене это делается для осуществления вызовов с городского направления в локальные домены, а в локальных доменах для осуществления вызовов на городское направление через центральный домен.
План нумерации добавляется командой:
domain/DOMAIN_N/np/declare <numplan>
- DOMAIN_N — имя локального или центрального домена;
- <numplan> - имя плана нумерации.
Дальше необходимо добавить полные абонентские номера в план нумерации центрального домена. Данное действие выполняется командой:
domain/DOMAIN_N/np/numbers/add <numplan> <numbers>
- DOMAIN_N — имя локального или центрального домена;
- <numplan> - имя плана нумерации;
- <numbers> - полные 11 значные абонентские номера.
В центральном домене необходимо присвоить полным абонентским номерам направления на локальные домены, в которых за ними будут закреплены локальные абоненты. Данное действие выполняется командой:
domain/DOMAIN_N/np/numbers/bind <numplan> <numbers> --bridge <bridge>
- DOMAIN_N — имя локального или центрального домена;
- <numplan> - имя плана нумерации;
- <numbers> - полные 11-значные абонентские номера;
- <bridge> - имя бриджа, через который осуществляется выход на локальный домен.
В локальных доменах необходимо настроить соответствия между полными и локальными номерами. Данное действие выполняется командой:
domain/DOMAIN_N/np/numbers/bind <numplan> <numbers> --alias <local_numbers> [<group> <IfaceRange>] [--master | --passive]
- DOMAIN_N — имя локального или центрального домена;
- <numplan> - имя плана нумерации;
- <number> - полные 11-значные абонентские номера;
- <local_number> - локальные абонентские номера доменов;
- <group> - группа локального абонента, опциональный параметр;
- <IfaceRange> - интерфейс локального абонента, опциональный параметр:
--master - команда определяет локальный номер "мастером", возможен только один "мастер";
--passive - команда определяет локальный номер "не мастером", установлено по умолчанию.
Пример настройки подсистемы MultiSORM
Декларируем домены:
domain/declare central_voip domain/declare local.voip domain/declare voip .local
Настраиваем сеть для работы протокола SIP (IP_SET voip.local.set1 создан ранее:
domain/local.voip/sip/network/set ip_set [voip.local.set1] domain/voip.local/sip/network/set ip_set [voip.local.set1] domain/central_voip/sip/network/set ip_set [voip.local.set1]
В центральном домене настраиваем SIP транк с именем trunk1 на городское направление. IP-адрес городской АТС 192.168.118.119, протокол SIP работает на порте 5060.
domain/central_voip/trunk/sip/declare default_routing central_voip trunk1 voip.local.set1 static 192.168.118.119 5060 sip-proxy 5060
Создаем локальных пользователей в доменах voip.local и local.voip:
domain/local.voip/sip/user/declare default_routing local.voip 300001@local.voip alias-as-user qop_authentication login-as-user 300001 domain/local.voip/sip/user/declare default_routing local.voip 300000@local.voip alias-as-user qop_authentication login-as-user 300000 domain/local.voip/sip/user/declare default_routing voip.local 200100@voip.local alias-as-user qop_authentication login-as-user 200100 domain/local.voip/sip/user/declare default_routing voip.local 200119@voip.local alias-as-user qop_authentication login-as-user 200119
Декларируем пользователя СОРМ посредника с именем multi и паролем multi для работы с мультисормом.мВ подсистему включены три домена:
sorm/set aggregate_sorm_settings add multi multi central_voip voip.local local.voip
Настраиваем взаимодействие с СОРМ посредником (IP адрес 192.168.118.203, секретный ключ 2testing123) для всех доменов:
domain/central_voip/sorm/set enabled true domain/central_voip/sorm/set radius_servers add 192.168.118.203 2testing123 domain/local.voip/sorm/set enabled true domain/local.voip/sorm/set radius_servers add 192.168.118.203 2testing123 domain/voip .local/sorm/set enabled true domain/voip .local/sorm/set radius_servers add 192.168.118.203 2testing123
- Создаем контексты маршрутизации с учетом планируемой нумерации («738327(0-1)????» - полные номера абонентов и «73832??????» — городские номера) и планируемых имен бриджей (c2v, c2l, c2v_inter, c2l_inter, v2c, l2c, v2c_inter, l2c_inter). Импортируем контексты маршрутизации.
Для домена central_voip
domain/central_voip/routing/import ecss1 ctx_default_routing.xml domain/central_voip/routing/import ecss1 ctx_city.xml
Для домена local.voip
domain/local.voip/routing/import ecss1 ctx_default_routing.xml domain/local.voip/routing/import ecss1 ctx_city.xml domain/local.voip/routing/import ecss1 ctx_from_bridge.xml
Для домена voip.local
domain/voip.local/routing/import ecss1 ctx_default_routing_multi.xml domain/voip.local/routing/import ecss1 ctx_to_city_multi.xml domain/voip.local/routing/import ecss1 ctx_from_br_multi.xml
Декларируем бриджи:
bridge/declare c2v true true unbounded central_voip city bridge:c2v tg:c2v default_routing voip.local city bridge:v2c tg:v2c from_v2c bridge/declare c2l true true unbounded central_voip city bridge:c2l tg:c2l default_routing local.voip city bridge:l2c tg:l2c from_l2c bridge/declare c2l_inter true false unbounded central_voip default bridge:c2l_inter tg:c2l default_routing local.voip default bridge:l2c_inter tg:l2c default_routing bridge/declare c2v_inter true false unbounded central_voip default bridge:c2v_inter tg:c2v default_routing voip.local default bridge:v2c_inter tg:v2c default_routing
Декларируем планы нумерации во всех доменах:
domain/central_voip/np/declare city domain/local.voip/np/declare city domain/voip.local/np/declare city
Добавляем полные абонентские номера в план нумерации центрального домена:
domain/central_voip/np/numbers/add city 738327{0-1}000{0-1}
Присваиваем абонентским номерам направления на домены, в которых за ними будут закреплены локальные абоненты:
domain/central_voip/np/numbers/bind city 7383271000{0-1} --bridge c2l domain/central_voip/np/numbers/bind city 7383270000{0-1} --bridge c2v
Настраиваем соответствия между полными и локальными номерами:
domain/voip.local/np/numbers/bind city 73832700000 --alias 200100 voip.local 053eb7f6f8c37df5 --master domain/voip.local/np/numbers/bind city 73832700001 --alias 200119 voip.local 053eb7fae721975f --master domain/local.voip/np/numbers/bind city 73832710000 --alias 300000 local.voip f4c06b4a996e9e6e --master domain/local.voip/np/numbers/bind city 73832710001 --alias 300001 local.voip f4c068ee409afa6c --master