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

Подсистема СОРМ-концентратор позволяет СОРМировать несколько виртуальных АТС (доменов) как одну, что позволяет скрыть от пульта СОРМ внутреннюю структуру ECSS-10. Режим работы SORM-концентратор схож с MultiSORM, но отличия присутствуют. Основное отличие между этими двумя режимами работы: в MultiSORM предполагается установление соединения между абонентами разных доменов и выхода на внешнюю сеть через центральный домен, а в случае SORM-концентратор все домены равнозначны (выход на сеть может быть с локального домена, соединение между доменами устанавливается напрямую), и данный режим предполагает использования правил адаптации в каждом домене. В случае использования MultiSORM достаточно создания правил адаптации в центральном домене (все звонки проходят через него).

При использовании подсистемы СОРМ-концентратор СОРМ-посредник подключается ко всем  доменам, где авторизуется по имени и паролю. При прохождении процедуры авторизации подсистема СОРМ-концентратор проверяет конфигурацию доменов подключенных к подсистеме. Если подсистема СОРМ-концентратор не смогла подключить хотя бы один из доменов по причине, что он не существует либо имеет некорректные настройки для взаимодействия с СОРМ-посредником, то авторизация будет неуспешной даже несмотря на то, что авторизационные имя и пароль будут верными. При успешной авторизации подсистема СОРМ-концентратор переходит в режим передачи команд, полученных от СОРМ-посредника в подключенные домены. Команда транслируется сразу во все подключенные домены и, если хотя бы из одного получен положительный ответ, то он передается на СОРМ-посредник.

Например, от СОРМ-посредника принята команда №5 «постановка на контроль». Она транслируется во все домены, подключенные к подсистеме СОРМ-концентратор и, если хотя бы один домен поставил принятый в команде номер на контроль, то значит, что команда выполнена успешно. В случае, если от всех доменов получен отрицательный ответ, на СОРМ-посредник будет протранслирован отрицательный ответ.

Абоненты доменов ставятся на контроль по короткому номеру со значностью, принятой в данном домене, как абоненты данной станции. Подсистема СОРМ-концентратор для своей работы требует одного ограничениялокальные номера во всех подключенных доменах должны быть уникальными, то есть номера из одного домена не должны присутствовать в других.

Маршрутизация вызовов между доменами осуществляется через бриджи, маршрутизация между абонентами одного домена — локально внутри домена, а маршрутизация на выход в город прописывается в каждом домене индивидуально. В этом и заключается основное отличие от MultySORM, в котором выход на внешнюю сеть реализован только в одном узловом домене. В данном случае требуется создавать правила маршрутизации, правила модификации, и, самое важное в данном разделе, правила Адаптации, в каждом домене индивидуально. Если вызов идет на город, абонент будет СОРМироваться по полному номеру, если вызов осуществляется внутри локального домена или между локальными доменами, то вызов будет СОРМироваться по локальному короткому номеру.

Конфигурирование подсистемы СОРМ-концентратор

При конфигурировании подсистемы СОРМ-концентратор подразумевается, что локальные и центральный домены уже созданы. В локальных доменах созданы локальные абоненты с короткой нумерацией, а в центральном домене создан SIP-транк для выхода на городское направление.

Настройка глобальных параметров СОРМ

Для подключения СОРМ-посредника подсистема СОРМ-концентратор использует ssh-порт, на единицу больший, чем указано в параметре ssh_port.

На СОРМ-посреднике в параметрах "Порт" нужно настроить значения порта (ssh+1) 7778.

Параметр ssh_port настраивается командой:

sorm/set ssh_port <value>

  • <value> — значение порта в диапазоне 1-65535. По умолчанию значение данного параметра равно 7777, то есть по умолчанию подсистема
    Сорм концентратор будет использовать порт 7778.

Для взаимодействия СОРМ-посредника с программным коммутатором в режиме СОРМ-концентратор необходимо настроить следующие параметры:

Проверка лицензирования протокола СОРМ в лицензии ECSS-10 выполняется командой:

/cluster/storage/ds1/licence/current-limits

Значение параметра СОРМ "enabled" должно быть "true". Количество каналов "channels on SORM mediator" указывает количество доменов, которые могут быть добавлены в группу СОРМирования.

SORM                                                  
 enabled                                              true
 channels on SORM mediator                            2

В текущем примере необходимо добавить только два домена.

Список доменов, которые будут СОРМироваться и авторизационные данные пользователя подсистемы СОРМ-концентратор (имя/пароль) настраиваются командой (имена доменов вносится через пробел):

/sorm/set aggregate_sorm_settings add <User> <Password> <DOMAIN_1> [<DOMAIN_2> ...[<DOMAIN_N>]]

sorm/set aggregate_sorm_settings add <User> <Password> <DOMAIN_1> [<DOMAIN_2> ...[<DOMAIN_N>]]

где:

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

abf@[megaco1@ecss1#ECSS-3.16-TEST-3]:/$ sorm/set aggregate_sorm_settings add multi1 multi1  test_domain Local32         
Property "aggregate_sorm_settings" successfully changed from: 

   to
User: multi1; Password: multi1; Domains: ["test_domain","Local32"].

[exec at: 12.03.2024 09:55:46, exec time: 207ms, otp: 24, nodes: core1@ecss1 v.3.16.3.1459]
abf@[megaco1@ecss1#ECSS-3.16-TEST-3]:/$ sorm/info                                                                           
┌───────────────────────┬──────────────────────────────────────────────────────────────────┐
│       Property        │                              Value                               │
├───────────────────────┼──────────────────────────────────────────────────────────────────┤
│aggregate_sorm_settings│User: multi1; Password: multi1; Domains: ["test_domain","Local32"]│
│ssh_dir                │/etc/ecss/ssh                                                     │
│ssh_listen_interface   │0.0.0.0                                                           │
│ssh_port               │7777                                                              │
└───────────────────────┴──────────────────────────────────────────────────────────────────┘

[exec at: 12.03.2024 09:55:49, exec time: 38ms, otp: 24, nodes: core1@ecss2 v.3.16.3.1459]

Для автоматического добавления доменов без повторной постановки абонента на контроль и без перезапуска СОРМ существуют шаблоны доменов. Задаются они следующими командами:

Символ звездочка ( * ) может встречаться только один раз в шаблоне одного домена.


Количество заранее созданных доменов не должно превышать значения "channels on SORM mediator".


abf@[ds1@ecss1#ECSS-3.16-TEST-3]:/$ sorm/set aggregate_sorm_settings add multi1 multi1 *
Property "aggregate_sorm_settings" successfully changed from: 

   to
User: multi1; Password: multi1; Domains: ["*"].

[exec at: 11.03.2024 09:07:10, exec time: 187ms, otp: 24, nodes: core1@ecss1 v.3.16.3.1415]
abf@[ds1@ecss1#ECSS-3.16-TEST-3]:/$ sorm/info                                          
┌───────────────────────┬──────────────────────────────────────────────┐
│       Property        │                    Value                     │
├───────────────────────┼──────────────────────────────────────────────┤
│aggregate_sorm_settings│User: multi1; Password: multi1; Domains: ["*"]│
│ssh_dir                │/etc/ecss/ssh                                 │
│ssh_listen_interface   │0.0.0.0                                       │
│ssh_port               │7777                                          │
└───────────────────────┴──────────────────────────────────────────────┘

[exec at: 11.03.2024 09:08:44, exec time: 39ms, otp: 24, nodes: core1@ecss2 v.3.16.3.1415]

При необходимости для удаления записи СОРМ-концентратор используется команда:

sorm/set aggregate_sorm_settings remove <User>

где:

Настройка локальных параметров СОРМ-домена

В каждом домене, используемом подсистемой СОРМ-концентратор, необходимо включить функциональность СОРМ и настроить взаимодействие с СОРМ-посредником.

Для включения функциональности СОРМ используется параметр "enabled", которому необходимо установить значение "true".

Параметр настраивается командой:

domain/<DOMAIN_N>/sorm/set enabled true

где:

Для взаимодействия с СОРМ-посредником в каждом домене добавляем RADIUS-сервер и секретный ключ для взаимодействия с ним. IP-адрес СОРМ-посредника является IP-адресом RADIUS-сервера.

RADIUS-сервер добавляется командой:

domain/<DOMAIN_N>/sorm/set radius_servers add <IP address> <secret>

где:

На СОРМ-посреднике в параметрах "Server IP-address" и "Secret" вкладки "SORM mediator — RADIUS" нужно настроить соответствующие значения IP-адреса RADIUS-сервера и секретного ключа.

Конфигурация отобразится следующим образом:

abf@[megaco1@ecss1#ECSS-3.16-TEST-3]:/$ domain/Local32/sorm/info 
┌─────────────────────────────┬───────┬────────────────────────┐
│          Property           │Domain │         Value          │
├─────────────────────────────┼───────┼────────────────────────┤
│adaptation                   │Local32│undefined               │
│b_digits_mode                │Local32│user                    │
│b_no_ni_check                │Local32│false                   │
│city_prefix_70               │Local32│9                       │
│enabled                      │Local32│true                    │
│full_dial_number             │Local32│true                    │
│password                     │Local32│                        │
│platform_id                  │Local32│999                     │
│prikaz                       │Local32│268                     │
│private_phone_prefix         │Local32│791312                  │
│radius_servers               │Local32│"10.0.20.154": "1234567"│
│send_optional_cf_notification│Local32│false                   │
│strict_intercity_numbers     │Local32│true                    │
│strict_private_numbers       │Local32│false                   │
└─────────────────────────────┴───────┴────────────────────────┘

[exec at: 12.03.2024 12:39:33, exec time: 121ms, otp: 24, nodes: core1@ecss1 v.3.16.3.1459]
abf@[megaco1@ecss1#ECSS-3.16-TEST-3]:/$ domain/test_domain//sorm/info 
┌─────────────────────────────┬───────────┬────────────────────────┐
│          Property           │  Domain   │         Value          │
├─────────────────────────────┼───────────┼────────────────────────┤
│adaptation                   │test_domain│sorm                    │
│b_digits_mode                │test_domain│user                    │
│b_no_ni_check                │test_domain│false                   │
│city_prefix_70               │test_domain│9                       │
│enabled                      │test_domain│true                    │
│full_dial_number             │test_domain│true                    │
│password                     │test_domain│                        │
│platform_id                  │test_domain│999                     │
│prikaz                       │test_domain│268                     │
│private_phone_prefix         │test_domain│791312                  │
│radius_servers               │test_domain│"10.0.20.154": "1234567"│
│send_optional_cf_notification│test_domain│false                   │
│strict_intercity_numbers     │test_domain│true                    │
│strict_private_numbers       │test_domain│false                   │
└─────────────────────────────┴───────────┴────────────────────────┘

[exec at: 12.03.2024 12:48:01, exec time: 36ms, otp: 24, nodes: core1@ecss1 v.3.16.3.1459]

Выполните проверку:

abf@[megaco1@ecss1#ECSS-3.16-TEST-3]:/$ sorm/check-connection Local32 
Success: there are 2 connections to the SORM adapter:
SORM IP: 10.0.20.154
SORM IP: 10.0.20.154

[exec at: 12.03.2024 12:54:52, exec time: 39ms, otp: 24, nodes: core1@ecss1 v.3.16.3.1459]
abf@[megaco1@ecss1#ECSS-3.16-TEST-3]:/$ sorm/check-connection test_domain 
Success: there are 2 connections to the SORM adapter:
SORM IP: 10.0.20.154
SORM IP: 10.0.20.154

[exec at: 12.03.2024 12:55:20, exec time: 51ms, otp: 24, nodes: core1@ecss2 v.3.16.3.1459]

Создание контекстов маршрутизации

Декларация бриджей

Для взаимодействия между  доменами необходимо создать бриджи. 

Бридж декларируется командой:

/bridge/declare <name> <strict> <bandwidth> <DOMAIN_A> <np_a> <iface_a> <tg_a> <routing_ctx_a> <DOMAIN_B> <np_b> <iface_b> <tg_b> <routing_ctx_b>

Второй вариант — создание бриджа через веб-интерфейс (приложение Менеджер бриджей):

Для каждого домена создатйте контексты маршрутизации, в которых учесть планируемую нумерацию и имена бриджей для взаимодействия между центральным и локальными доменами

Созданные контексты импортируются командой:

domain/DOMAIN_N/routing/import <host> <file>

Либо создайте правила маршрутизации через веб-интерфейс с использованием приложения Менеджер маршрутизации:

Пример настройки базы данных для проверки подсистемы СОРМ-концентратор

  1. Декларируйте домены с помощью команды:

    domain/declare test_domain 
    domain/declare Local32 
    domain/declare Local52

    Или через веб-интерфейс:

  2. Настройте сеть для работы протокола SIP (IP_SET voip.local.set1 создан ранее):

    domain/Local22/sip/network/set ip_set [local22]
    domain/Local32/sip/network/set ip_set [local32]
    domain/local52/sip/network/set ip_set [local52]
    domain/test_domain/sip/network/set ip_set [test_set]

  3. В центральном домене настройте SIP-транк с именем trunkА на городское направление. IP-адрес городской АТС — 10.0.20.31, протокол SIP работает на порте 5060:

    domain/test_domain/trunk/sip/declare default_routing sip trunkA test_set static 10.0.20.31 5060 sip-proxy 5060

  4. Создайте локальных пользователей в доменах Local22/Local32/Local52:

    domain/Local22/sip/user/declare default_routing subscriber 22003@local22 alias-as-user qop_authentication login-as-user 22003
    domain/Local22/sip/user/declare default_routing subscriber 22005@local22 alias-as-user qop_authentication login-as-user 22005
    domain/Local32/sip/user/declare default_routing subscriber 32003@local32 alias-as-user qop_authentication login-as-user 32003
    domain/Local32/sip/user/declare default_routing subscriber 32005@local32 alias-as-user qop_authentication login-as-user 32005
    domain/Local52/sip/user/declare default_routing subscriber 52003@local52 alias-as-user qop_authentication login-as-user 52003
    domain/Local52/sip/user/declare default_routing subscriber 52005@local52 alias-as-user qop_authentication login-as-user 52005 

  5. Декларируйте пользователя СОРМ-посредника с именем multi1 и паролем multi1 для работы с СОРМ-концентратором. В подсистему включены два домена (ограничено лицензией, параметром channels on SORM mediator=2):

    sorm/set aggregate_sorm_settings add multi1 multi1 test_domain Local32


  6. Настройте взаимодействие с СОРМ-посредником (IP-адрес — 10.0.20.154, секретный ключ — 1234567) для всех доменов:

    domain/Local32/sorm/set enabled true
    domain/Local32/sorm/set radius_servers add 10.0.20.154 1234567
    domain/test_domain/sorm/set enabled true
    domain/test_domain/sorm/set radius_servers add 10.0.20.154 1234567


  7. Создайте контексты маршрутизации с учетом планируемой нумерации («791312????» — полные номера абонентов и «8??????????» — городские номера) и планируемых имен бриджей (bridge:32a, bridge:52a, bridge:32b). Импортируйте контексты маршрутизации.

    Для домена test_domain

    <?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="local32">
    <conditions>
    <cgpn digits="?????"/>
    <cdpn digits="32???"/>
    </conditions>
    <actions>
    <cgpn digits="791312{1,2,3,4,5}"/>
    </actions>
    <result>
    <external>
    <trunk value="bridge:32a"/>
    </external>
    </result>
    </rule>
    <rule name="32_11n">
    <conditions>
    <cgpn digits="?????"/>
    <cdpn digits="7913123????"/>
    </conditions>
    <actions>
    <cgpn digits="791312{1,2,3,4,5}"/>
    <cdpn digits="{7,8,9,10,11}"/>
    </actions>
    <result>
    <external>
    <trunk value="bridge:32a"/>
    </external>
    </result>
        </rule>
    <rule name="local52">
    <conditions>
    <cgpn digits="?????"/>
    <cdpn digits="52???"/>
    </conditions>
    <actions>
    <cgpn digits="791312{1,2,3,4,5}"/>
    </actions>
    <result>
    <external>
    <trunk value="bridge:52a"/>
    </external>
    </result>
    </rule>
    <rule name="52_11n">
    <conditions>
    <cgpn digits="?????"/>
    <cdpn digits="7913125????"/>
    </conditions>
    <actions>
    <cgpn digits="791312{1,2,3,4,5}"/>
    <cdpn digits="{7,8,9,10,11}"/>
    </actions>
    <result>
    <external>
    <trunk value="bridge:52a"/>
    </external>
    </result>
    </rule>
        <rule name="trunkA">
          <conditions>
            <cgpn digits="?????"/>
            <cdpn digits="8%"/>
          </conditions>
          <actions>
    <cgpn nai="nationalNumber" digits="91312{1,2,3,4,5}" ni="private"/>
    <cdpn digits="{%}" nai="nationalNumber" ni="intercity"/>
    </actions>
          <result>
            <external>
              <trunk value="trunkA"/>
            </external>
          </result>
        </rule>
      </context

    Для домена Local32

    <?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="32????"/> 
          </conditions> 
          <result> 
            <local/> 
          </result> 
        </rule> 
        <rule name="central"> 
          <conditions> 
            <cdpn digits="%"/> 
          </conditions>
          <result> 
            <external> 
              <trunk value="bridge:32b"/> 
            </external> 
          </result> 
        </rule> 
      </context>


    domain/Local32/routing/import ecss1 Local32.xml
    domain/test_domain/routing/import ecss1 default_routing.xml


  8. Декларируйте бриджи:

    bridge/declare Local32 false unbounded test_domain test bridge:32a tg:32 default_routing Local32 default bridge:32b tg:32 default_routing        
    bridge/declare Local22 false unbounded test_domain test bridge:22a tg:22 default_routing Local22 default bridge:22b tg:22 default_routing 
    bridge/declare Local52 false unbounded test_domain test bridge:52a tg:52 default_routing Local52 default bridge:52b tg:52 default_routing