Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Общая работа системы

Подсистема 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.
На СОРМ посреднике в параметре Port вкладки "SORM mediator — SSH" нужно настроить значение ssh_port+1

Список доменов, которые будут СОРМ-ироваться и авторизационные данные пользователя подсистемы 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 серверу.
На СОРМ посреднике в параметрах Server IP-address и Secret вкладки "SORM mediator — RADIUS" нужно настроить соответствующие значения IP адреса 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

  1. Декларируем домены:

    domain/declare central_voip 
    domain/declare local.voip 
    domain/declare voip .local
  2. Настраиваем сеть для работы протокола 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]
  3. В центральном домене настраиваем 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
  4. Создаем локальных пользователей в доменах 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 
  5. Декларируем пользователя СОРМ посредника с именем multi и паролем multi для работы с мультисормом.мВ подсистему включены три домена:

    sorm/set aggregate_sorm_settings add multi multi central_voip voip.local local.voip
  6. Настраиваем взаимодействие с СОРМ посредником (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
  7. Создаем контексты маршрутизации с учетом планируемой нумерации («738327(0-1)????» - полные номера абонентов и «73832??????» — городские номера) и планируемых имен бриджей (c2v, c2l, c2v_inter, c2l_inter, v2c, l2c, v2c_inter, l2c_inter). Импортируем контексты маршрутизации.

    Для домена central_voip

     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


     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

     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>


     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>


     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

     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>


     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>


     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
  8. Декларируем бриджи:

    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
  9. Декларируем планы нумерации во всех доменах:

    domain/central_voip/np/declare city 
    domain/local.voip/np/declare city  
    domain/voip.local/np/declare city
  10. Добавляем полные абонентские номера в план нумерации центрального домена:

    domain/central_voip/np/numbers/add city 738327{0-1}000{0-1}
  11. Присваиваем абонентским номерам направления на домены, в которых за ними будут закреплены локальные абоненты:

    domain/central_voip/np/numbers/bind city 7383271000{0-1} --bridge c2l
    domain/central_voip/np/numbers/bind city 7383270000{0-1} --bridge c2v
  12. Настраиваем соответствия между полными и локальными номерами:

    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    
  • Нет меток