Оглавление |
---|
Общая работа системы
Подсистема MultiSORM позволяет СОРМ-ировать несколько виртуальных АТС (доменов) как одну, что позволяет скрыть от пульта СОРМ внутреннюю структуру ECSS-10.
...
Маршрутизация вызовов между доменами и на внешнее городское направление осуществляется через центральный домен, а маршрутизация между абонентами домена — локально внутри домена. В результате, если вызов идет на город, абонент будет СОРМ-ироваться по полному номеру центрального домена, если вызов осуществляется внутри локального домена или между локальными доменами, то вызов будет СОРМ-ироваться по локальному короткому номеру.
Конфигурирование подсистемы MultiSORM
При конфигурировании подсистемы MultiSORM подразумеваем, что локальные и центральный домены уже созданы. В локальных доменах созданы локальные абоненты с короткой нумерацией, а в центральном домене создан SIP-транк для выхода на городское направление.
Настройка глобальных параметров СОРМ
Для подключения СОРМ посредника подсистема MultiSORM использует ssh порт, на единицу больший, чем указано в параметре ssh_port.
...
- User — имя пользователя подсистемы MultiSORM;
- Password — пароль пользователя подсистемы MultiSORM;
- DOMAIN_1..DOMAIN_N — имя локального или центрального домена.
Настройка локальных параметров СОРМ домена
В каждом домене, используемом подсистемой MultiSORM необходимо включить функциональность СОРМ и настроить взаимодействие с СОРМ посредником.
...
Примечание |
---|
На СОРМ посреднике в параметрах Server IP-address и Secret вкладки "SORM mediator — RADIUS" нужно настроить соответствующие значения IP адреса RADIUS-сервера и секретного ключа. |
Создание контекстов маршрутизации
Необходимо для каждого домена создать контексты маршрутизации, в которых учесть планируемую нумерацию и имена бриджей для взаимодействия между центральным и локальными доменами. Сами бриджи будут создаваться позже.
Созданные контексты импортируются командой:
...
- <host> - имя хоста, на котором необходимо импортировать шаблон контекста маршрутизации;
- <file> - имя файла с шаблоном контекста маршрутизации, который необходимо установить.
Декларация бриджей
Для взаимодействия между центральным и локальными доменами необходимо создать бриджи. Для каждого домена создается один бридж для выхода на городское направление по полной нумерации и один бридж для взаимодействия между доменами через центральный домен по короткой нумерации.
Бридж декларируется командой:
...
- <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_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
Раскрыть title ctx_default_routing.xml <?xml version="1.0" encoding="UTF-8"?>
<context xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ecss_routing.xsd" name="default_routing" digitmap="(*[0-9*][0-9*].#|#[0-9*][0-9*].#|*#[0-9*][0-9*].#|1xx.|10xx.)">
<rule name="to_voip">
<conditions>
<cgpn digits="??????"/>
<cdpn digits="2?????"/>
</conditions>
<result>
<external>
<trunk value="bridge:c2v_inter"/>
</external>
</result>
</rule>
<rule name="to_local">
<conditions>
<cgpn digits="??????"/>
<cdpn digits="3?????"/>
</conditions>
<result>
<external>
<trunk value="bridge:c2l_inter"/>
</external>
</result>
</rule>
<rule name="to_local_city_users">
<conditions>
<cgpn digits="???????????"/>
<cdpn digits="738327(0-1)????"/>
</conditions>
<actions>
<called sorm_ni="local"/>
<calling sorm_ni="local"/>
</actions>
<result>
<continue context="ctx_city"/>
</result>
</rule>
<rule name="to_gorod">
<conditions>
<cgpn digits="???????????"/>
<cdpn digits="73832??????"/>
</conditions>
<actions>
<calling sorm_ni="local"/>
<called sorm_ni="local"/>
</actions>
<result>
<external>
<trunk value="trunk1"/>
</external>
</result>
</rule>
</contextРаскрыть title ctx_city.xml <?xml version="1.0" encoding="UTF-8"?> <context xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ecss_routing.xsd" name="ctx_city" np="city" digitmap="(*[0-9*][0-9*].#|#[0-9*][0-9*].#|*#[0-9*][0-9*].#|1xx.|10xx.)"> <rule name="to_local_city_users"> <result> <local/> </result> </rule> </context>
Без форматирования domain/central_voip/routing/import ecss1 ctx_default_routing.xml domain/central_voip/routing/import ecss1 ctx_city.xml
Для домена local.voip
Раскрыть title ctx_default_routing.xml <?xml version="1.0" encoding="UTF-8"?> <context xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ecss_routing.xsd" name="default_routing" digitmap="(*[0-9*][0-9*].#|#[0-9*][0-9*].#|*#[0-9*][0-9*].#|1xx.|10xx.)"> <rule name="local_calls"> <conditions> <cdpn digits="3?????"/> <cgpn digits="??????"/> </conditions> <actions> <called sorm_ni="private"/> <calling sorm_ni="private"/> </actions> <result> <local/> </result> </rule> <rule name="other_departments"> <conditions> <cdpn digits="??????"/> <cgpn digits="3?????"/> </conditions> <actions> <called sorm_ni="private"/> <calling sorm_ni="private"/> </actions> <result> <external> <trunk value="bridge:l2c_inter"/> </external> </result> </rule> <rule name="to_city_bridge"> <conditions> <cdpn digits="73832??????"/> <cgpn digits="3?????"/> </conditions> <actions> <called sorm_digits="{1,2,3,4,5,6,7,8,9,10,11}" sorm_ni="local"/> <calling sorm_digits="{1,2,3,4,5,6}" sorm_ni="private"/> </actions> <result> <continue context="to_city"/> </result> </rule> <rule name="local_from_bridge"> <conditions> <cdpn digits="3?????"/> <cgpn digits="73832??????"/> </conditions> <actions> <called sorm_ni="private"/> <calling sorm_ni="local"/> </actions> <result> <local/> </result> </rule> </context>
Раскрыть title ctx_city.xml <?xml version="1.0" encoding="UTF-8"?> <context xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ecss_routing.xsd" name="to_city" np="city" digitmap="(*[0-9*][0-9*].#|#[0-9*][0-9*].#|*#[0-9*][0-9*].#|1xx.|10xx.)"> <rule name="to_city_bridge"> <result> <external> <trunk value="bridge:l2c"/> </external> </result> </rule> </context>
Раскрыть title ctx_from_bridge.xml <?xml version="1.0" encoding="UTF-8"?> <context xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ecss_routing.xsd" name="from_l2c" np="city" digitmap="(*[0-9*][0-9*].#|#[0-9*][0-9*].#|*#[0-9*][0-9*].#|1xx.|10xx.)"> <rule name="local_from_bridge"> <conditions> <cdpn digits="73832??????"/> <cgpn digits="73832??????"/> </conditions> <actions> <called sorm_ni="private"/> <calling sorm_ni="local"/> </actions> <result> <local/> </result> </rule> </context>
Без форматирования 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
Раскрыть title ctx_default_routing_multi.xml <?xml version="1.0" encoding="UTF-8"?> <context xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ecss_routing.xsd" name="default_routing" digitmap="(*[0-9*][0-9*].#|#[0-9*][0-9*].#|*#[0-9*][0-9*].#|1xx.|10xx.)"> <rule name="local_calls"> <conditions> <cgpn digits="??????"/> <cdpn digits="2?????"/> </conditions> <actions> <calling sorm_ni="private"/> <called sorm_ni="private"/> </actions> <result> <local/> </result> </rule> <rule name="other_departments"> <conditions> <cgpn digits="2?????"/> <cdpn digits="3?????"/> </conditions> <actions> <calling sorm_ni="private"/> <called sorm_ni="private"/> </actions> <result> <external> <trunk value="bridge:v2c_inter"/> </external> </result> </rule> <rule name="to_city_bridge"> <conditions> <cgpn digits="2?????"/> <cdpn digits="73832??????"/> </conditions> <actions> <calling sorm_digits="{1,2,3,4,5,6}" sorm_ni="private"/> <called sorm_digits="{1,2,3,4,5,6,7,8,9,10,11}" sorm_ni="local"/> </actions> <result> <continue context="to_city"/> </result> </rule> <rule name="local_from_bridge"> <conditions> <cgpn digits="73832??????"/> <cdpn digits="2?????"/> </conditions> <actions> <called sorm_ni="private"/> <calling sorm_ni="local"/> </actions> <result> <local/> </result> </rule> </context>
Раскрыть title ctx_to_city_multi.xml <?xml version="1.0" encoding="UTF-8"?> <context xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ecss_routing.xsd" name="to_city" np="city" digitmap="(*[0-9*][0-9*].#|#[0-9*][0-9*].#|*#[0-9*][0-9*].#|1xx.|10xx.)"> <rule name="to_city_bridge"> <result> <external> <trunk value="bridge:v2c"/> </external> </result> </rule> </context>
Раскрыть title ctx_from_br_multi.xml <?xml version="1.0" encoding="UTF-8"?> <context xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="ecss_routing.xsd" name="from_v2c" np="city" digitmap="(*[0-9*][0-9*].#|#[0-9*][0-9*].#|*#[0-9*][0-9*].#|1xx.|10xx.)"> <rule name="local_from_bridge"> <conditions> <cgpn digits="73832??????"/> <cdpn digits="73832??????"/> </conditions> <actions> <called sorm_ni="private"/> <calling sorm_ni="local"/> </actions> <result> <local/> </result> </rule> </context>
Без форматирования 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