Подсистема СОРМ-концентратор позволяет СОРМировать несколько виртуальных АТС (доменов) как одну, что позволяет скрыть от пульта СОРМ внутреннюю структуру ECSS-10. Режим работы SORM-концентратор схож с MultiSORM, но отличия присутствуют. Основное отличие между этими двумя режимами работы: в MultiSORM предполагается установление соединения между абонентами разных доменов и выхода на внешнюю сеть через центральный домен, а в случае SORM-концентратор все домены равнозначны (выход на сеть может быть с локального домена, соединение между доменами устанавливается напрямую), и данный режим предполагает использования правил адаптации в каждом домене. В случае использования MultiSORM достаточно создания правил адаптации в центральном домене (все звонки проходят через него).
При использовании подсистемы СОРМ-концентратор СОРМ-посредник подключается ко всем доменам, где авторизуется по имени и паролю. При прохождении процедуры авторизации подсистема СОРМ-концентратор проверяет конфигурацию доменов подключенных к подсистеме. Если подсистема СОРМ-концентратор не смогла подключить хотя бы один из доменов по причине, что он не существует либо имеет некорректные настройки для взаимодействия с СОРМ-посредником, то авторизация будет неуспешной даже несмотря на то, что авторизационные имя и пароль будут верными. При успешной авторизации подсистема СОРМ-концентратор переходит в режим передачи команд, полученных от СОРМ-посредника в подключенные домены. Команда транслируется сразу во все подключенные домены и, если хотя бы из одного получен положительный ответ, то он передается на СОРМ-посредник.
Например, от СОРМ-посредника принята команда №5 «постановка на контроль». Она транслируется во все домены, подключенные к подсистеме СОРМ-концентратор и, если хотя бы один домен поставил принятый в команде номер на контроль, то значит, что команда выполнена успешно. В случае, если от всех доменов получен отрицательный ответ, на СОРМ-посредник будет протранслирован отрицательный ответ.
Абоненты доменов ставятся на контроль по короткому номеру со значностью, принятой в данном домене, как абоненты данной станции. Подсистема СОРМ-концентратор для своей работы требует одного ограничения — локальные номера во всех подключенных доменах должны быть уникальными, то есть номера из одного домена не должны присутствовать в других.
Маршрутизация вызовов между доменами осуществляется через бриджи, маршрутизация между абонентами одного домена — локально внутри домена, а маршрутизация на выход в город прописывается в каждом домене индивидуально. В этом и заключается основное отличие от MultySORM, в котором выход на внешнюю сеть реализован только в одном узловом домене. В данном случае требуется создавать правила маршрутизации, правила модификации, и, самое важное в данном разделе, правила Адаптации, в каждом домене индивидуально. Если вызов идет на город, абонент будет СОРМироваться по полному номеру, если вызов осуществляется внутри локального домена или между локальными доменами, то вызов будет СОРМироваться по локальному короткому номеру.
При конфигурировании подсистемы СОРМ-концентратор подразумевается, что локальные и центральный домены уже созданы. В локальных доменах созданы локальные абоненты с короткой нумерацией, а в центральном домене создан SIP-транк для выхода на городское направление.
Для подключения СОРМ-посредника подсистема СОРМ-концентратор использует ssh-порт, на единицу больший, чем указано в параметре ssh_port.
| На СОРМ-посреднике в параметрах "Порт" нужно настроить значения порта (ssh+1) 7778. Параметр ssh_port настраивается командой:
|

Для взаимодействия СОРМ-посредника с программным коммутатором в режиме СОРМ-концентратор необходимо настроить следующие параметры:
Проверка лицензирования протокола СОРМ в лицензии 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] |
Для автоматического добавления доменов без повторной постановки абонента на контроль и без перезапуска СОРМ существуют шаблоны доменов. Задаются они следующими командами:
sorm/set aggregate_sorm_settings add multi1 multi1 *sorm/set aggregate_sorm_settings add multi1 multi1 * -test| Символ звездочка ( * ) может встречаться только один раз в шаблоне одного домена. |
Количество заранее созданных доменов не должно превышать значения "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>
Либо создайте правила маршрутизации через веб-интерфейс с использованием приложения Менеджер маршрутизации:


Декларируйте домены с помощью команды:
domain/declare test_domain domain/declare Local32 domain/declare Local52 |
Или через веб-интерфейс:
Настройте сеть для работы протокола 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] |

В центральном домене настройте 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 |

Создайте локальных пользователей в доменах 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 |

Декларируйте пользователя СОРМ-посредника с именем multi1 и паролем multi1 для работы с СОРМ-концентратором. В подсистему включены два домена (ограничено лицензией, параметром channels on SORM mediator=2):
sorm/set aggregate_sorm_settings add multi1 multi1 test_domain Local32 |
Настройте взаимодействие с СОРМ-посредником (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 |
Для домена test_domain
<?xml version="1.0" encoding="UTF-8"?> |
Для домена 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 |
Декларируйте бриджи:
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 |
