Установка ECSS10 3.14.16 на Astra Linux, в закрытом контуре, на одиночный сервер
Первоначальная установка системы на одном сервере
Исходные данные
Конфигурация системы с одним сервером
Исходные данные
В данном разделе использованы специфичные для данного продукта термины, ознакомиться с ними можно здесь.
Техническое задание:
Требуется интеграция программного коммутатора 5 класса ECSS-10 (SSW) на 1-м физическом сервере с поддержкой SIP со следующими параметрами на нагрузку:
- Максимальное количество абонентов 15000 (MUL — Max user limit);
- Максимальное количество одновременных соединений 2000 (MCL — Max call limit);
- Количество сетевых интерфейсов ethernet — 3/5.
По техническому заданию требуется определить аппаратную платформу.
Полоса пропускания СПД
Требуемая полоса пропускания СПД не менее 1000Mb/s
Пример составления аппаратных требований:
Пример разнесения составляющих по адресному пространству | ||||
Имя сервера (хоста) | Роль | Интерфейс | Адрес/Маска | Порт |
|---|---|---|---|---|
Статические адреса программного коммутатора | ||||
ecss1 | Адрес сервера | eth0 | 192.168.56.40/24 | 2000 |
ecss1 | Адрес протокольного адаптера | int.20 (voip) | 10.0.20.10/24 | 5000 |
ecss1 | Адрес шлюза | eth0 | 192.168.56.1 | - |
Виртуальные адреса программного коммутатора | ||||
| ecss1 | Адрес ядра (ecss-core) | lo | 127.0.0.1/24 | 5000 |
| ecss1 | Адрес медиа-сервера (ecss-media-server (MSR)) | lo | 127.0.0.1/24 | 5000 |
| Заполнить данные параметры для SSW из проектного технического задания | ||||
Имя сервера (хоста) | Роль | Интерфейс | Адрес/Маска | Порт |
|---|---|---|---|---|
Статические адреса программного коммутатора | ||||
ecss1 | Адрес сервера | 2000 | ||
ecss1 | Адрес протокольного адаптера | 5000 | ||
ecss1 | Адрес шлюза | - | ||
Виртуальные адреса программного коммутатора | ||||
| ecss1 | Адрес ядра (ecss-core) | lo | 127.0.0.1/24 | 5000 |
| ecss1 | Адрес медиа-сервера (ecss-media-server (MSR)) | lo | 127.0.0.1/24 | 5000 |
Включение в сеть
Топологию включения сервера в сеть для обеспечения резервирования рекомендуется делать с использованием 2-х коммутаторов. Пример на рисунке ниже.

Рисунок 1 — Схема организации связи
Вариант 1. Схема active-backup
Коммутаторы связаны между собой в erps-кольцо.
Все 4 физических сетевых интерфейса каждого сервера объединяются в 1 агрегированный линк (bond). Агрегация портов сервера настраивается в режиме active-backup, т.е. в работе всегда находится только 1 сетевой интерфейс. Сетевые интерфейсы каждого сервера попарно включены в коммутаторы, на которых агрегация портов (port-channel) также настраивается в режиме active-backup. Например, eth1 и eth2 каждого сервера включаются в первый коммутатор (port-channel 1 и 2), а eth3 и eth4 (port-channel 3 и 4) — во второй.
Вариант 2. Схема LACP
Коммутаторы связаны между собой в стек. Стек должен логически работать как один коммутатор, способный обеспечивать агрегацию портов в режиме LACP между разными физическими коммутаторами. Пример — коммутаторы MES-3124 со специализированной прошивкой.
Все 4 физических сетевых интерфейса также объединяются в 1 агрегированный линк (bond). Агрегация портов сервера настраивается в режиме 802.3ad. Создаются агрегированные группы сетевых карт с одинаковой скоростью и дуплексом. При таком объединении передача задействует все каналы в активной агрегации согласно стандарту IEEE 802.3ad. Выбор того, через какой интерфейс необходимо отправлять пакет, определяется политикой. По умолчанию это XOR-политика, можно использовать «xmit_hash» политику. Подробнее — в разделе Приложение Е. Netplan.
Требования:
- Поддержка Ethtool в драйвере для получения информации о скорости и дуплексе на каждом сетевом интерфейсе;
- Поддержка на коммутаторе стандарта IEEE 802.3ad;
Сетевые интерфейсы сервера также попарно включены в коммутаторы, на которых агрегация портов (port-channel) тоже настраивается в режиме LACP. Например, eth1 и eth2 каждого сервера включаются в первый коммутатор (port-channel 1 и 2), а eth3 и eth4 (port-channel 3 и 4) — во второй.
Последовательность установки SSW ECSS10 без резервирования с одним сервером
Установка SSW ECSS10 состоит из 2-х основных частей :
Подготовительной - Установка ОС Astra Linux 1.7, обновлений пакетов OC Astra Linux 1.7 , установка дополнительных пакетов программ, подготовка сетевых интерфейсов, /etc/hosts, ssh-keygen
- Установка приложений Eltex ECSS10
Подготовительный этап
В этом разделе приведено описание инсталляции операционной системы, а также необходимых и дополнительных пакетов. Система ECSS-10 версии 3.14 работает под управлением ОС Astra Linux 1.7.
Предварительные требования
- Установочный загрузочный носитель с дистрибутивом операционной системы ;
- Подготовленный сервер с обновленным BIOS, ILO (если есть), подключенная сеть для доступа ;
- Выставленный первый приоритет загрузки с установочного носителя — USB Flash или CD/DVD в BIOS;
- Достаточный объем дискового пространства и памяти в соответствии с проектом.
Установка ОС
Для установки ОС необходимо выполнить следующее:
- После загрузки с установочного носителя выбрать "Графическая установка" или "Установка".
- Согласится с лицензионным соглашением.
- Выбрать раскладку клавиатуры.
Выбрать сетевой интерфейс для подключения к сети Интернет.
- Установить имя компьютера (рекомендованы ecss1)
- Настроить пользователя- администратора.
- Создать партиции на диске в соответствии с таблицей 1 (разметка диска - Вручную).
- В процессе установке , не создавать раздел swap . При напоминании о пропуске раздела , подтвердить , что установка выполняется без создания swap. (см рис. 1)
- Установить часовой пояс.
- Установить OpenSSH server (активизировать пункт : "Средства удаленного подключения SSH" см рис. 2).
- Выбрать уровень защищенности, который используется в вашем проекте (в примере будем использовать вариант "Воронеж" см рис.3)
- Дополнительные настройки ОС - по умолчанию(см рис.4)
- Перезагрузить успешно установленную ОС

рис 1
рис 2
рис 3
рис 4
рис 5
рис 6
рис 7
В примере на рис 8/9 создание партиции /boot (остальные создаются аналогичным образом)
рис 8
рис 9
рис 10
рис 11
рис 12
В зависимости от вашей лицензии выберете вариант установки Орел/ Воронеж/ Смоленск (рис 13/14/15)
рис 13
рис 14
рис 15
рис 16
рис 17
При работе через консоль выбрать Integrity Level 63 (администратор)
рис 18
Таблица 1 — Вариант размещения информации в файловой системе на физических носителях для серверов
| 1 | Загрузочный раздел операционной системы (создается автоматически) | boot | raid 1:hdd1,hdd2 | boot | /boot | ext4 | 1 Gb | Первичный |
| 2 | Корневой раздел операционной системы | root | raid 1:hdd1,hdd2 | root | / | ext4 | 30 Gb | Логический |
| 3 | Информация локальных баз данных | mnesia | raid 1:hdd1, hdd2 | mnesia | /var/lib/ecss | ext4 | 30 Gb | Логический |
| 4 | Распределенная БД для хранения медиаресурсов | glusterfs | raid 1:hdd1, hdd2 или hdd3 | glusterfs | /var/lib/ecss/restfs | ext4 | Max Gb | Логический |
| 5 | Журналы функционирования подсистем ОС | log | raid 1:hdd1,hdd2 или hdd3 | log | /var/log | ext4 | 20 Gb | Логический |
| 6 | Логический раздел для mysql базы | mysql | raid 1:hdd1,hdd2 или hdd3 | mysql | /var/lib/mysql | ext4 | 30Gb | Логический |
| 7 | Журналы функционирования подсистем ECSS | ecss_log | raid 1:hdd1,hdd2 или hdd3 | ecss_log | /var/log/ecss | ext4 | 20 Gb | Логический |
| 8 | Базы данных | ecss_db | raid 1:hdd1,hdd2 или hdd3 | ecss_db | /var/lib/ecss-mysql | ext4 | 100–400 Gb* | Логический |
| 9 | Файлы пользователя | home | raid 1:hdd1,hdd2 или hdd3 | home | /home | ext4 | 10 Gb | Логический |
* Рекомендуемое значение для серий Light, Light+, Midi — 100 Gb. Рекомендуемое значение для серии Heavy — 200 Gb, Super Heavy — 400 Gb.
Для работы системы необходимо как минимум 256 Gb свободного пространства.
На серверах системы необходимо настроить параметр "hostname".
На всех серверах системы желательно указать одинаковое имя пользователя (любое, кроме ssw). Лицензия ECSS-10 привязывается к ключу eToken/ruToken и к имени компьютера (hostname). Системный пользователь ssw создается при инсталляции пакета ecss-user.
Рекомендуемое значение hostname — ecss1;
Проверка установки ОС
Проверка в основном сводится к правильности создания разделов диска и наличия доступа по ssh.
Для вывода информации о состоянии дискового пространства введите команду df -h. Она покажет общее и занятое место в разделах. Размеры разделов должны соответствовать проекту и введенным значениям при установке.
Для проверки доступа по ssh с машины, находящейся в одной подсети со вновь установленным сервером, нужно выполнить команду:
ssh <user>@<IP_ecss>
где:
- <user> — имя пользователя, заданного при установке(для примера eltex);
- <IP_ecss> — IP-адрес хоста, заданного при установке.
Настройка /etc/hosts
посмотреть можно командой cat /etc/hosts
изменить/добавить командой sudo nano /etc/hosts
sudo nano /etc/hosts
ecss1:
127.0.0.1 localhost 10.0.10.40 ecss1
Конфигурация репозиториев
После установки для обновления будет использоваться только образ DVD диска, загрузка с репозитория отключена. Давайте разрешим обновление пакетов с локального репозитория Eltex.
Копируем образ репозитория Eltex в локальную директорию.
на удаленном хосте
scp eltex_repo_latest.tar.gz eltex@10.0.20.40:/home/eltex
на удаленном хосте
scp eltex_repo_gpg.key eltex@10.0.20.40:/home/eltex
И распаковываем архив.
пример:
tar -xzf eltex_repo_latest.tar.gz
перемещаем директорию с Eltex пакетами в /var/spool/:
sudo mv eltex_repo_latest /var/spool/
добавляем ключ :
sudo apt-key add eltex_repo_gpg.key
Редактируем source.list:
echo "deb file:/var/spool/eltex_repo 1.7_x86-64 contrib main non-free" | sudo tee -a /etc/apt/sources.list
Изменение приоритета репозиториев
Для установки Erlang и Nodejs из репозитория Eltex, необходимо изменить приоритет репозиториев для данных пакетов.
Добавить в файл /etc/apt/preferences.d/erlang строки:
на обоих хостах
sudo sh -c "echo -e 'Package: erlang*\nPin: version 2:24.3*\nPin-Priority: 1000' >> /etc/apt/preferences.d/erlang"
Package: erlang* Pin: version 2:24.3* Pin-Priority: 1000
Добавить в файл /etc/apt/preferences.d/nodejs строки:
на обоих хостах
sudo sh -c "echo -e 'Package: nodejs*\nPin: version 14.20.0-1nodesource1*\nPin-Priority: 1000' >> /etc/apt/preferences.d/nodejs"
Package: nodejs*Pin: version 14.20.0-1nodesource1*Pin-Priority: 1000
Выполнить обновление:
sudo apt update
"Оптимизация" Операционной Системы
Выставить параметры ОС в режим производительности
Используем утилиту cpufrequtils.
sudo apt install cpufrequtils
по умолчанию после инсталляции ОС использует режим "ondemand" - "по запросу" (производительность CPU по запросу приложений, экономит электроэнергию , но ниже производительность):
cat /etc/init.d/cpufrequtils | grep GOVERNOR=
в выходном сообщении системы , режим работы по умолчанию после инсталляции - "ondemand" :
GOVERNOR="ondemand"
Установить режим - результативность/производительность - в файле /etc/init.d/cpufrequtils значение "ondemand" заменить на "performance"
sudo sed -i 's/GOVERNOR="ondemand"/GOVERNOR="performance"/g' /etc/init.d/cpufrequtils
Перезапустить утилиту:
sudo /etc/init.d/cpufrequtils restart
Затем выполнить команду:
sudo systemctl daemon-reload
Улучшение работы высоконагруженных серверов
Улучшить работу высоконагруженных серверов можно увеличив лимит открытых файлов.
Для установки лимита открытых файлов необходимо:
Проверить текущий лимит командой:
ulimit -a
Результат :
eltex@ecss1:~$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 15515 max locked memory (kbytes, -l) 65536 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 15515 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
Данного лимита ( open files 1024 ) недостаточно для нормальной работы высоконагруженных серверов.
Установить лимит открытых файл для каждого пользователя:
sudo sed -i '55i\* soft nproc 65536\n* hard nproc 131072\n* soft nofile 65536\n* hard nofile 131072\nroot - memlock unlimited' /etc/security/limits.conf
# /etc/security/limits.conf##Each line describes a limit for a user in the form:##<domain> <type> <item> <value>##Where:#<domain> can be:# - a user name# - a group name, with @group syntax# - the wildcard *, for default entry# - the wildcard %, can be also used with %group syntax,# for maxlogin limit# - NOTE: group and wildcard limits are not applied to root.# To apply a limit to the root user, <domain> must be# the literal username root.##<type> can have the two values:# - "soft" for enforcing the soft limits# - "hard" for enforcing hard limits##<item> can be one of the following:# - core - limits the core file size (KB)# - data - max data size (KB)# - fsize - maximum filesize (KB)# - memlock - max locked-in-memory address space (KB)# - nofile - max number of open files# - rss - max resident set size (KB)# - stack - max stack size (KB)# - cpu - max CPU time (MIN)# - nproc - max number of processes# - as - address space limit (KB)# - maxlogins - max number of logins for this user# - maxsyslogins - max number of logins on the system# - priority - the priority to run user process with# - locks - max number of file locks the user can hold# - sigpending - max number of pending signals# - msgqueue - max memory used by POSIX message queues (bytes)# - nice - max nice priority allowed to raise to values: [-20, 19]# - rtprio - max realtime priority# - chroot - change root to directory (Debian-specific)##<domain> <type> <item> <value>#
#* soft core 0#root hard core 100000#* hard rss 10000#@student hard nproc 20#@faculty soft nproc 20#@faculty hard nproc 50#ftp hard nproc 0#ftp - chroot /ftp#@student - maxlogins 4* soft nproc 65536* hard nproc 131072* soft nofile 65536* hard nofile 131072root - memlock unlimited
# End of file
Настройка сетевых интерфейсов
Получение адресов на сетевых интерфейсах по DHCP недопустимо на серверах ECSS.
Сетевые настройки необходимо выполнять с помощью Netplan.
По умолчанию в Astra Linux пакет netplan не установлен.
Установить пакеты для обслуживание функции netplan:
sudo apt install -y dialog libssl1.0.0 netplan.io
Сейчас можно выполнить конфигурацию netplan:
sudo nano /etc/netplan/ecss.yaml
Пример netplan для режима active-backup
| Netplan для интерфейсов сервера ecss1 (/etc/netplan/ecss.yaml) |
|---|
BASH
|
В случае использования QinQ, для используемых интерфейсов, рекомендуется установить значение mtu=1600.
Следующие настройки bonds обязательны для сервера ECSS10, чтобы схема работала верно:
mode: active-backup - задаёт режим работы, когда один из линков выбирается активным, а остальные остаются в резерве;
primary-reselect-policy: failure - указывает, что выбирать новый активный линк следует только тогда, когда текущий активный линк переходит в состоянии аварии. Это позволяет избежать лишних переключений;
gratuitous-arp: 5 - при смене активного линка в сторону коммутатора отправляются пять запросов gratuitous ARP, чтобы обновить на нём таблицу коммутации. Способствует более быстрому переключению;
all-slaves-active: true - заставляет принимать входящие кадры на backup интерфейсах. Таким образом балансировка трафика на MESе не мешает работе. Данные в сторону сервера идут со всех линков, а сервер отправляет данные только с active линка;
mii-monitor-interval: 100 - активирует мониторинг линков через интерфейс MII и указывает интервал опроса в 100 мс;
up-delay: 1000 - указывает считать поднявшийся интерфейс доступным для работы не сразу, а сделать задержку в одну секунду после того, как интерфейс поднялся. Необходимо для того, чтобы избежать лишних переключений в случае, когда порт "прыгает" несколько раз из состояния "включено" в состояние "выключено" и обратно.
fail-over-mac-policy: active - требуется для корректной работы в виртуальных машинах mac на каждом интерфейсе индивидуальный (в данных примерах не установлен, но был протестирован при создании документации)
Пример netplan для режима 802.3ad
| Netplan для интерфейсов сервера ecss1 (/etc/netplan/ecss.yaml) |
|---|
BASH
|
В случае использования QinQ ,для используемых интерфейсов, рекомендуется установить значение mtu=1600.
Так же проверить отсутствие в каталоге /etc/netplan/ других файлов, если другие файлы присутствуют , то их нужно переместить в другой каталог или удалить, в противном случае возможна некорректная настройка сетевых интерфейсов и некорректная работа SSW.
ls -la /etc/netplan/
Применить, установленные параметры командой:
sudo netplan apply
Просмотреть получившиеся настройки можно при помощи команд sudo ifconfig или ip a:
Для применения новых сетевых настроек необходимо выполнить команду netplan apply. Перезапуск сети или системы не требуется. Подробнее про настройки netplan см. в Приложении Е. Netplan.
Инсталляция необходимого ПО
Установка дополнительных пакетов программ
Для работы SSW, потребуются дополнительные пакеты ПО не установленные в Astra Linux по умолчанию, но доступные в репозитории Eltex.
sudo apt install ntp iptables tcpdump vlan dnsmasq aptitude atop ethtool htop mc screen ssh tftpd sngrep tshark gnuplot libgraph-easy-perl debconf-utils ncdu
Список обязательного сервисного программного обеспечения:
sudo apt install ntp tcpdump vlan dnsmasq
| ntp | NTP-сервер |
| tcpdump | сниффер пакетов |
| vlan | управление VLAN |
| dnsmasq | легковесный DNS/DHCP-сервер |
Список рекомендуемого диагностического и вспомогательного программного обеспечения:
sudo apt install aptitude atop ethtool htop mc screen ssh tftpd sngrep tshark gnuplot libgraph-easy-perl debconf-utils iotop ncdu
| aptitude | установка программ из репозиториев, рекомендуется использовать вместо программы apt/apt-get |
| atop | мониторинг загрузки хоста с функцией периодического сохранения информации в файлы |
| ethtool | просмотр статистики сетевых интерфейсов |
| htop | мониторинг процессов |
| mc | файловый менеджер |
| screen | мультиплексор терминалов |
| ssh | сервер и клиент SSH |
| tftpd | TFTP-сервер |
| sngrep | трассировка sip |
| tshark | консольный аналог wireshark |
| gnuplot | вывод графиков статистики |
| libgraph-easy-perl | Perl-модуль для преобразования или рендеринга графиков (в ASCII, HTML, SVG или через Graphviz) |
| debconf-utils | набор утилит для работы с базой debconf |
| iotop | инструмент для мониторинга использования ввода-вывода (IO) на диске в реальном времени в Linux |
| ncdu | утилита для поиска больших директорий в системе Linux |
Для просмотра установленных пакетов выполнить следующую команду (данный пункт является необязательным: его можно выполнить, если не уверены, что какие-то пакеты установлены):
sudo dpkg --get-selections
Перед началом установки пакетов ecss , нужно убедится в соответствии полосы пропускания СПД необходимым требованиям.
Для этого выполнить команду sudo ethtool <имя интерфейса> для всех физических интерфейсов.
sudo ethtool net.20Settings for net.20: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Auto-negotiation: on Port: Twisted Pair PHYAD: 0 Transceiver: internal MDI-X: off (auto) Link detected: yes
Проверить значение следующих параметров:
Advertised auto-negotiation: Yes
Speed: 1000Mb/s (не менее)
Duplex: Full
Инсталляция пакетов ECSS
Предварительные требования
- Установленная и обновленная операционная система Astra Linux;
- Отсутствие в системе пользователя с именем ssw;
- Разбиение дискового пространства в соответствии с рекомендациями;
- Настроенная сеть;
- Установленный набор необходимых пакетов;
- Наличие локального файла репозитория Eltex.
установка пакетов deb
┌ версия ПО ECSS. Сейчас в заявке на сертификацию она заявлена как 3.
| Мы её менять не будем до следующей сертификации или │ выпуска принципиально новой версии системы. │ │ ┌ версия System Release. Общая версия для всех компонент входящих в конкретный релиз.
| | Меняем её централизовано, когда
│ │ принимаем решение о выпуске нового релиза. Релизы между собой обычно не совместимы.
┌─┴┐ ┌──┴─┐
ECSS.SysRel.SubMaj.SubMin
└──┬─┘ └──┬─┘
│ └ версия Subsystem minor. Минорную версию подсистемы устанавливает разработчик подсистемы. | Минорную версию
│ меняем при добавлении патча. Как правило, минорные версии в рамках одной мажорной версии
│ совместимы между собой и отличаются в рамках конкретных патчей.
│
└ версия Subsystem major. Мажорная версия устанавливается разработчиком подсистемы. Мажорную версию подсистемы необходимо менять при внесении в подсистему существенных изменений.
Утилита установки пакетов APT анализирует версию пакета слева направо, то есть мы имеем пакет 14.14.7.7 ,
в репозитории находятся пакеты
14.14.7.8
14.14.7.9
14.14.8.1
14.14.20 -14.14.28
то при выполнении команды sudo apt install имя пакета → будет автоматически проверен и установлен пакет 14.14.28 , так как он самый последний, анализ будет выполнен по 3-й позиции (major), анализ по 4-й (minor) выполнен не будет (аналогичным образом будет выполнятся команда sudo apt upgrade).
В случае если для конкретной ситуации требуется перейти с версии 14.14.7.7 на версию 14.14.7.9 , стандартная команда → sudo apt upgrade , нам не поможет, так как будет выбран самый новый пакет, в данной ситуации нам необходимо в явном виде указать какую версию пакета мы хотим установить, в данном примере мы должны выбрать команду → sudo apt install имя пакета=14.14.7.9 . Обычно это необходимо для тестирования определенного патча, для стандартных обновлений достаточно выбора привычной команды установки/обновления пакета
В ходе установки пакетов ECSS нужно будет ответить на ряд вопросов для формирования необходимой конфигурации. Для автоматической загрузки требуемых настроек можно воспользоваться командами из пакета debconf-utils.
Описание и примеры использования при работе с debconf приведены в Приложении В. Debconf.
Для инсталляции системы ECSS-10 необходимо устанавливать пакеты в порядке, в котором они описаны ниже в документации.
Инсталляция обязательных пакетов
Установка ecss-mysql
Первым необходимо установить пакет ecss-mysql.
Перед установкой необходимо убедиться, что в системе не установлен mysql-сервер, и папка /var/lib/mysql/ пуста.
При установке mysql на отдельную, выделенную, партицию, автоматически создается директория "/var/lib/mysql/lost+found" она будет мешать установке mysql-server.
Удалите все содержимое директории "/var/lib/mysql/" следующей командой:
sudo rm -R /var/lib/mysql/
при появлении следующего сообщения, не обращайте внимания.
sudo rm -R /var/lib/mysql/ rm: cannot remove '/var/lib/mysql/': Device or resource busy
Это нормальное сообщение системы.
Для установки MySQL-сервера выполните команду:
sudo apt install ecss-mysql
Перед установкой пакета ecss-mysql будет предложено настроить переменные окружения для сервисов в dnsmasq.
Настройщик предложит выбрать разделы для настройки, не выбираем ничего просто нажать Enter.
Настройка пакета ecss-mysql
При инсталляции пакета будут запрошены следующие данные:
| Вопросы ecss-mysql | Ответы для ecss1 |
|---|---|
| IP маски для прав MySQL таблиц, разделенные пробелами: | 127.0.0.% (значение по умолчанию) |
| Путь до внешней data-директории, где будут создаваться таблицы баз данных: | /var/lib/ecss-mysql (значение по умолчанию) |
| Логин пользователя (Login for MySQL root) | root (значение по умолчанию) |
| Пароль пользователя MySQL (Password for MySQL root) | password (необходимо ввести) |
| IP маска сервиса ecss-address-book для прав MySQL таблиц: | 127.0.0.% (значение по умолчанию) |
для Elph
В случае использования в составе Элтекс решения Elph-Descktop / Elph-Mobile. И нахождения серверов Elph в подсетях отличных от подсети SSW.
Необходимо при ответе на вопрос "IP маски для прав MySQL таблиц, разделенные пробелами" добавить не только подсеть для mysql, но и IP адрес или подсеть для серверов Elph-api / Elph-chat. В случае если подсети для Elph-api и Elph-chat , необходимо указать каждую из них.
В качестве разделителя обязательно использовать "пробел"
Для примера:
| Вопросы ecss-mysql | Ответы для ecss1 |
|---|---|
| IP маски для прав MySQL таблиц, разделенные пробелами: (IP masks for MySQL permission, separated by spaces) | 127.0.0.% 192.168.1.% (необходимо ввести) или 127.0.0.% 192.168.1.248 (необходимо ввести) или 127.0.0.% 192.168.1.248 10.1.100.5 (необходимо ввести) |
ВАЖНО
В случае последующей коррекции IP-адресов следует использовать команду:
sudo dpkg-reconfigure ecss-mysql
Базы данных mysql, используемых системой ECSS-10, после установки будут храниться по пути /var/lib/ecss-mysql. Проверяем наличие компонентов в указной папке:
ls -la /var/lib/ecss-mysql/
ls -la /var/lib/ecss-mysql/ total 44 drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_address_book drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_audit drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_calls_db drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_dialer_db drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_meeting_db drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_numbers_db drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_statistics drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_subscribers drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 ecss_system drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 history_db drwxr-xr-x 2 mysql mysql 4096 дек 1 13:34 web_conf
Проверяем, что сервер запущен:
systemctl status mysql.service
Результат:
systemctl status mysql.service
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/mysql.service.d
└─override.conf
Active: active (running) since Wed 2024-10-09 09:18:07 +07; 4min 27s ago
Main PID: 2246 (mysqld)
Tasks: 30 (limit: 4637)
Memory: 279.2M
CPU: 1.210s
CGroup: /system.slice/mysql.service
└─2246 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
Попробуйте войти в базу данных MySQL под логином (<LOGIN>), с паролем (<PASSWORD>), указанным при установке (root/root):
sudo mysql -uroot -proot
В случае корректной установки откроется CLI MySQL-сервера.
Можно сразу посмотреть список созданных БД:
mysql>
SHOW DATABASES;
Результат:
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | ecss_address_book | | ecss_audit | | ecss_calls_db | | ecss_dialer_db | | ecss_meeting_db | | ecss_numbers_db | | ecss_statistics | | ecss_subscribers | | ecss_system | | history_db | | mysql | | performance_schema | | sys | | web_conf | +--------------------+
Чтобы выйти из CLI MySQL, выполните команду "exit".
В целях безопасности логин root разрешено использовать только для входа с локального хоста.
Настройка dns-резолвинга
Для корректной работы системы, после установки пакета ecss-node требуется скорректировать дефолтные установки dns-резолвинга. Для этого:
В файле /etc/resolv.conf изменить параметр nameserver установленный системой по умолчанию на 127.0.0.1 (если строк nameserver несколько - остальные удалить/закомментировать):
sudo nano /etc/resolv.conf
domain eltex.loc search eltex.loc nameserver 127.0.0.1
В Astra Linux после перезагрузки файл /etc/resolv.conf приводится к исходному виду, поэтому его нужно сделать неизменяемым:
sudo chattr +i /etc/resolv.conf
Для доступа к репозиториям AstraLinux и Элтекс нужно указать локальный DNS или глобальный (для примера 8.8.8.8 или 77.88.8.8)
Добавить в файл /etc/dnsmasq.d/ecss строки server=<Ipadd DNS сервера> (в примере 77.88.8.8) :
sudo sh -c "echo 'server=77.88.8.8' >> /etc/dnsmasq.d/ecss"
Перезапустить сервис:
sudo systemctl restart dnsmasq.service
Установка ecss-node
Установка обязательного пакета ecss-node включает в себя установку и первоначальную настройку основных подсистем ("ecss-core" "ecss-pa-sip" "ecss-ds" "ecss-mediator" "ecss-mycelium").
В системе уже должен быть установлен пакет ecss-mysql
Для установки пакета ecss-node выполните команду :
sudo apt install ecss-node
Во время установки пакета создается пользователь ssw, от имени которого запускаются все сервисы ecss*. Создаются необходимые каталоги, выполняется настройка DNS, идет настройка SSL-сертификатов.
Настройка сертификатов
Скопировать с другого сервера ecss10 (ecss1) можно при условии: пользователь (с которым вы работаете) должен быть добавлен в группу ssw. Для этого, на первом ноде (с которого будете копировать сертификат (ecss1)) выполните команду sudo usermod -a -G ssw <Имя_пользователя> (для примера sudo usermod -a -G ssw support)
При установке будут заданы вопросы по сертификатам.
Способы конфигурирования сертификатов:
Ручной (manual)
При выборе ручного способа конфигурации сертификатов откроется окно с информацией о том, что установка может быть продолжена после помещения файлов ecss10.{pem,crt,key} в /etc/ecss/ssl. Также данное окно может открыться по достижении конца установки. Поместите необходимые файлы в требуемую директорию и начните процесс установки заново (перезапустите установку). Если все действия были выполнены верно — установка завершится, и можно будет продолжить установку системы.
Сгенерировать самоподписанный сертификат (generate)
При выборе данного способа будут сгенерированы следующие вопросы:
Страна (RU)
Область (Novosibirsk)
Город (Novosibirsk)
Организация (ELTEX)
Структурный узел (IMS)
Имя сертификата (ecss10)
Почта (ssw-team@eltex.loc)
Количество дней жизни сертификата
Пароль для корневого приватного ключа
Алгоритм шифрования для ключа
Сложность ключа
Сложность для параметров Диффи-Хеллмана
Дополнительные имена, за которые отвечает сертификат (на примере офиса — это ssw1.eltex.loc, ssw2.eltex.loc, ssw.eltex.loc), перечисленные через пробел (для последнего уровня можно wildcard)
Чем выше сложность ключа, тем дольше будет установка (dhparam при сложности 8192 на машине средней производительности занимает около часа). При отсутствии особых требований к безопасности можно оставить значение по умолчанию. После чего отобразится уведомление, что необходимо убрать приватный корневой ключ в безопасное место.
В систему установится ecss10root.crt (при копировании также пытается скачать ecss10root.crt, либо если при ручной установке был помещён данный файл). Если уже имеются сертификаты, то никаких действий не будет произведено. В конце также проверяется валидность сертификата.
Чтобы сгенерировать новый сертификат, необходимо удалить ecss10.{pem,crt,key} и ecss10root.{crt,key} (из директории "/etc/ecss/ssl/" ), после чего сделать dpkg-reconfigure ecss-user.
В ходе инсталляции будут задаваться вопросы, необходимые для формирования конфигурационных файлов.
| Вопросы ecss-node | Ответы |
|---|---|
| Использовать настройки по умолчанию для БД (Set DB config to default ?) | Yes (значение по умолчанию) |
| Взводить аварию ECSS-10 при заполнении раздела MySQL (Set alarm true when MYSQL DB overloads) | Yes (необходимо выбрать) |
| Внешний NTP сервер (External NTP servers through a space) | ntp.ubuntu.com (значение по умолчанию) Ввести один или несколько серверов через пробел, используемых на объекте |
| NTP: Вы хотите использовать настройки для кластера? (NTP: Do you want use settings for cluster ?) | No (необходимо выбрать) |
| NTP: Вы хотите определить сети вручную, у которых должен быть доступ до ntp? (NTP: Do you want to define manually which networks should have access to ntp?) | Yes (необходимо выбрать) |
| NTP: Сети, у которых должен быть доступ до ntp через пробел: | 10.0.10.0|255.255.255.0 (необходимо ввести) Ввести список подсетей, из которых будет доступ к данному NTP-серверу. |
| Установить утилиты для работы с cdr | No (значение по умолчанию) |
DNS
В ходе установки пакета ecss-node выполняется конфигурирование внутренних DNS-адресов. При установке, в зависимости от текущей конфигурации системы, может отобразиться сообщение:
See "systemctl status dnsmasq.service" and "journalctl -xe" for details. invoke-rc.d: initscript dnsmasq, action "start" failed. ● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Такой вывод в ходе установки является нормальным и не свидетельствует о проблемах. Главное, чтобы после окончания установки ecss-node dnsmasq.service был активен.
Пример:
systemctl status dnsmasq.service
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-09-24 20:52:03 +07; 2 weeks 3 days ago
Main PID: 10914 (dnsmasq)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/dnsmasq.service
└─10914 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,19036,8,2,49aac11d7b6f6446702e54a1607371607a1a41
Sep 24 20:52:03 ecss1 systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server...
Sep 24 20:52:03 ecss1 dnsmasq[10890]: dnsmasq: syntax check OK.
Sep 24 20:52:03 ecss1 systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Проверить статус сервисов следующей командой:
systemctl is-active ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium
В случае статуса "active" продолжаем дальше, в случае статуса "inactive" выполнить команду "sudo systemctl restart ecss-<имя пакета>"
systemctl is-active ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium active active active active active
Установка паспорта и лицензий
Под паспортом системы ECSS-10 понимается связь определенной инсталляции (SSW_ID) с USB-ключом. Паспорт гарантирует, что заказчик не сможет запустить больше подсистем DS с заданным SSW_ID, чем количество USB-ключей. Система без паспорта не работает.
Лицензионный ключ содержит в себе информацию о лицензионных ограничениях. Информация привязана к определенному SSW_ID. Позволяет добавлять лицензионные ограничения к определенной инсталляции системы ECSS-10. Если не добавлено ни одной лицензии, то действуют ограничения по умолчанию. Например, по умолчанию разрешено не более двух одновременных вызовов. Добавляя лицензию, можно расширить это количество до произвольных значений.
<licence> — последовательность цифр, букв и других символов без кавычек, следующая за строкой Licence: в файле лицензии.
<passport> — последовательность цифр, букв и других символов без кавычек, следующая за строкой Passport: в файле лицензии.
Если данные лицензии и паспорта будут введены корректно, то система выдаст подтверждение: ОК.
ВАЖНО
Перед началом работы проверьте наличие Token в системе.
Для проверки работы токена можно использовать приложение pkcs11-tool. Возможно проверить следующее:
Вывести общую информацию для ключа:
- для eToken:
pkcs11-tool --module /usr/lib/libeToken.so -I Cryptoki version 2.1 Manufacturer SafeNet, Inc. Library eToken PKCS#11 (ver 8.1) Using slot 0 with a present token (0x0)
- для Рутокен:
pkcs11-tool --module /usr/lib/ecss/ecss-ds/lib/lpm_storage-<VERSION>/priv/x64/librtpkcs11ecp.so -I Cryptoki version 2.20 Manufacturer Aktiv Co. Library Rutoken ECP PKCS #11 library (ver 1.5) Using slot 0 with a present token (0x0)
Расположение модуля для Рутокен может отличаться в зависимости от версии подсистемы DS. В общем случае файл располагается в /usr/lib/ecss/ecss-ds/lib/lpm_storage-<ВЕРСИЯ ПОДСИСТЕМЫ>/priv/x64/librtpkcs11ecp.so
Для проверки можно использовать общую команду pkcs11-tool --module $(find /usr/lib/ecss/ecss-ds/lib/ -name librtpkcs11ecp.so | head -n1) -L
Перейдите в CLI - CoCon:
на ecss1 пароль - password
ssh admin@localhost -p 8023
ssh admin@localhost -p 8023 The authenticity of host '[localhost]:8023 ([127.0.0.1]:8023)' can't be established. RSA key fingerprint is SHA256:/reVfo2jbltLDwNpZbiLvibXBwaWJbfSChd1M7wm1nc. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '[localhost]:8023' (RSA) to the list of known hosts. admin@localhost's password: password
Проверьте состояние системы:
/system-status Checking... ┌─┬───────────────┬───────────────────────────┬───────────────┬────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes│Uptime│ ├─┼───────────────┼───────────────────────────┼───────────────┼────────────┼──────┤ │ │core1@ecss1 │ecss-core-3.14.16.0.414 │core1@ecss1 │not running │6m 38s│ │ │ds1@ecss1 │ecss-ds-3.14.16.0.414 │ds1@ecss1 │ds1@ecss1 │6m 39s│ │ │md1@ecss1 │ecss-mediator-3.14.16.0.414│md1@ecss1 │md1@ecss1 │6m 39s│ │ │mycelium1@ecss1│ecss-mycelium-3.14.16.0.414│mycelium1@ecss1│not running │6m 38s│ │ │sip1@ecss1 │ecss-pa-sip-3.14.16.0.414 │sip1@ecss1 │sip1@ecss1 │6m 39s│ └─┴───────────────┴───────────────────────────┴───────────────┴────────────┴──────┘
Чтобы узлы системы смогли встать в работу, надо сконфигурировать систему указав имена хостов на которых развёрнуты ecss-сервисы.
Команда в коконе: system/clusters/set [<host1>, <host2>, ... <hostN>]. В случае одного хоста указать [ecss1] (в примере имя хоста "ecss1"):
выполняется в CoCon
/system/clusters/set [ecss1]
Выйти из CoCon (выполнить команду "exit"), перезапустить ecss сервисы командой:
sudo systemctl restart ecss-*
Перейдите в CLI CoCon:
на ecss1 пароль - password
ssh admin@localhost -p 8023
Далее необходимо загрузить паспорт и лицензии в систему (паспорт и лицензию получить в Eltex):
выполняется в CoCon
/cluster/storage/ds1/licence/set-passport <ssw passport>
ok
/cluster/storage/ds1/licence/add <ssw licence>
ok
Выйти из CoCon ("exit"),
Перезапустить ecss сервисы командой:
sudo systemctl restart ecss-mycelium
sudo systemctl restart ecss-ds
выполнить проверку лицензий, для этого зайти в CoCon :
на ecss1 пароль - password
ssh admin@localhost -p8023
проверить наличие лицензией:
выполняется в CoCon
/cluster/storage/ds1/licence/list-licence
Видим активную лицензию №1 (не ECSS DEFAULT)
/cluster/storage/ds1/licence/list-licence ┌──┬───────────────────┬────────────┬──────┬─────────────────────┬────────────────────┬────────────┐ │Id│Creation date(UTC) │ SSW ID │Active│ Description │Expiration date(UTC)│ Time left │ ├──┼───────────────────┼────────────┼──────┼─────────────────────┼────────────────────┼────────────┤ │1 │31.10.2024 14:16:00│ECSS TEST │* │Eltex Test softswitch│31.12.2025 23:59:59 │338d 13h 46m│ │0 │ │ECSS DEFAULT│ │Default licence │ │ │ └──┴───────────────────┴────────────┴──────┴─────────────────────┴────────────────────┴────────────┘
Выйти из CoCon ("exit").
Так же требуется выполнить конфигурацию для Sip адаптера , выполнив следующую команду:
на обоих хостах
sudo systemctl edit ecss-pa-sip.service
Добавить в конфигурационный файл следующие данные:
[Service] LimitNOFILE=65536
Перезагрузите конфигурацию
sudo systemctl daemon-reload
Актуализировать конфигурационный файл, выполнив перезагрузку сервера:
sudo reboot
Установка остальных пакетов ecss и их настройка
Далее выполните установку всех необходимых пакетов (подробнее по установке необходимых и дополнительных пакетов в разделе "Инсталляция пакетов ECSS"):
Установка пакета ecss-restfs и его настройка
sudo apt install ecss-restfs
Установка ecss-restfs. В ходе установки нужно будет ответить на ряд вопросов для создания необходимых конфигурационных файлов. Также инсталлятор предложит установить и настроить пакет Text2speech от Yandex.
| Вопросы ecss-restfs | Ответы для ecss1 |
|---|---|
| Хотите ли вы использование функции Text To Speeh (Use TTS service) | No (значение по умолчанию) |
| Хотите настроить сервис телефонной книги (Configure phone book) | No (значение по умолчанию) |
| Хотите настроить сервис распознавания речи (Configure speech recognition service) | No (значение по умолчанию) |
| Ничего не выбирать | Ok (необходимо выбрать) |
после установки пакета ecss-restfs проверьте наличие wav файлов авто-информатора в директории /var/lib/ecss/restfs/system/sounds/ командой:
ls -la /var/lib/ecss/restfs/system/sounds/
наличие wav файлов в указной выше директории говорит о корректности установки пакета ecss-restfs.
Проверить доступность этих файлов извне, для этой проверки выполним команду:
wget http://ecss1:9990/system/sounds/ai_you.wav
wget http://ecss1:9990/system/sounds/ai_you.wav --2025-09-16 08:27:36-- http://ecss1:9990/system/sounds/ai_you.wav Распознаётся ecss1 (ecss1)… 10.0.10.41 Подключение к ecss1 (ecss1)|10.0.10.41|:9990... соединение установлено. HTTP-запрос отправлен. Ожидание ответа… 200 OK Длина: 11670 (11K) [audio/x-wav] Сохранение в: «ai_you.wav» ai_you.wav.1 100%[========================================================================================>] 11,40K --.-KB/s за 0s 2025-09-16 08:27:36 (81,5 MB/s) - «ai_you.wav» сохранён [11670/11670]
проверочные файлы можно удалить
rm ai_you.wav
Установка media-server и web-conf пакетов ecss и их настройка
media
sudo apt install ecss-media-server
Для медиасервера (ecss-media-server/MSR) возможно начальное конфигурирование с записью параметров в файл конфигурации,
для этого нужно провести конфигурацию transport bind-addr,mcc bind-addres:
| Вопросы ecss-media-server | Ответы для ecss1 |
|---|---|
| [ MSR SIP ] Введите bind-ip адрес (Enter) | 10.0.20.40 (необходимо ввести) |
| [MSR Control-Channel] Введите bind-ip-адрес | 10.0.20.40 (необходимо ввести) |
web
sudo apt install ecss-web-conf
Web-конфигуратор позволяет сделать управление системой более наглядным и комфортным. Установка web-конфигуратора не является обязательной, но рекомендуется.
Также при установке пакета ecss-web-conf автоматически устанавливается пакет ecss-subsriber-portal-ui. Приложение "Портал абонента" системы ECSS-10 позволяет абонентам системы самостоятельно управлять услугами, просматривать информацию по совершенным вызовам, активным конференциям, а также настраивать собственные IVR-скрипты для входящих вызовов. Описание работы веб-конфигуратора приведено в разделе "Портал абонента".
| Вопросы ecss-web-conf | Ответы для ecss1 |
|---|---|
| IP-адрес или имя хоста сервера БД MySQL на котором будет развернута БД web-conf(Input IP address or hostname of MySQL db for web-conf DB) | 127.0.0.1 (значение по умолчанию) |
| Порт доступа к серверу БД MySQL на котором будет развернута БД web-conf (Input port of MySQL db for web-conf DB | 3306 (значение по умолчанию) |
| IP-адрес или имя хоста на котором установлен ECSS-10 для доступа к http_terminal\'y(Input IP address or hostname for ECSS-10 with http_terminal) | 127.0.0.1 (значение по умолчанию) |
| Порт ECSS-10 http_terminal\'a (Input port SSW http_terminal) | 9999 (значение по умолчанию) |
| Логин ECSS-10 http_terminal\'a (Input login for SSW http_terminal) | admin (значение по умолчанию) |
| Пароль ECSS-10 http_terminal\'a (Input password for SSW http_terminal) | password (необходимо ввести) |
| Включить интеграция с Elph proxy? | No (необходимо выбрать) |
После формирования конфигураций по умолчанию переходим в директорию, в которой находятся файлы конфигурации и производим их проверку:
cd /etc/ecss/ecss-media-server/
cat config.xml
cat conf.d/default.xml
Конфигурация для msr: файл - config.xml, в директории conf.d файл default.xml.
По своей сути default.xml — это дополнение config.xml, которое определяет секцию аккаунтов. Это сделано для того, чтобы после обновлений пакета данная конфигурация оставалась неизменной. Вид config.xml представлен здесь: файл конфигурации.
<?xml version="1.0" encoding="utf-8"?>
<config date="02:30:33 07.12.2023">
<general log-level="3" log-rotate="yes" max-calls="8192" max-in-group="512" load-sensor="media" load-delta="10" calls-delta="100" spool-dir-size="100M" log-name="msr.log" log-path="/var/log/ecss/media-server" use-srtp="disabled" enable-ice-transport="no" ice-update="no" aggressive-ice="yes" stun-server="" suspicious-mode="no"/>
<transport bind-addr="10.0.20.40" port="5040" transport="udp+tcp"/>
<!-- By default configured public TURN-server -->
<turn-server use-turn="no" host="numb.viagenie.ca" user="webrtc@live.com" password="muazkh"/>
<media mixer-clock-rate="8000" use-vad="no" cng-level="0" jb-size="60" rtcp-timeout="0" rtp-timeout="350" udp-src-check="no" cn-multiplier="3" port-start="12000" port-range="2048" tias-in-sdp="no" thread-cnt="2" vid-enc-threads="2" vid-dec-threads="2" video-conf-layout="evenly" keyframe-interval="1000" vid-decode-delay="100" silence-threshold="-30" dtmf-flash-disable="no" video-dscp="0" other-dscp="0" dummy-video-src="/usr/share/ecss-media-server/video/dummy_video.yuv" video-enc-width="640" video-enc-height="360" finalsilence="1000" rtcp-stat-dump="yes" silent-codec-switch="yes"/>
<codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g729="0" speex="0" l16="0" g7221="0" opus="0" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
<accounts>
<!-- <dynamic msr_name="msr.name"
realm="sip:127.0.0.1:5000"
dtmf_mode="rfc+inband+info"
auth_name="user"
auth_password="password" /> -->
</accounts>
<pbyte>
<mcc bind-addr="10.0.20.40" port="5700"/>
</pbyte>
<conf_dir path="/etc/ecss/ecss-media-server/conf.d"/>
<rtp>
<auto addr-v4=""/>
</rtp>
</config>
По умолчанию после инсталляции ECSS-10 активизирует только кодеки — pcma, pcmu, g722, h264, h263-1998, t38. Остальные имеют статус =0 = выкл. Если требуется активировать остальные кодеки, в редакторе nano измените приоритет с 0 на цифру приоритета (уровень приоритета не должен повторятся для сервиса audio/video/fax)
sudo nano /etc/ecss/ecss-media-server/config.xml
строчку -
<codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g729="0" speex="0" l16="0" g7221="0" opus="0" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
привести к виду -
<codec pcma="1" pcmu="2" ilbc="6" gsm="4" g722="3" g729="5" speex="7" l16="8" g7221="9" opus="10" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
Недопустимо указывать у разных кодеков одинаковый приоритет, для примера g722="5" g729="5". В этом случае media-server не сможет работать корректно.
За исключением "0" - выключено.
Рассмотрим секцию аккаунтов (файл default.xml):
cat /etc/ecss/ecss-media-server/conf.d/default.xml
После инсталляции пакетов в фале будет указан ip-add 127.0.0.1.
<?xml version="1.0"?>
<config>
<accounts>
<dynamic msr_name="msr.ecss1" realm="sip:127.0.0.1:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password"/>
</accounts>
</config>
Требуется указать в конфигурации, реальный IP-add.
Необходимо привести содержимое файла к виду указанному снизу (в примере ecss1 имеет IP-add 10.0.20.40):
на обоих хостах
sudo nano /etc/ecss/ecss-media-server/conf.d/default.xml
| Настройка msr для ecss1 (/etc/ecss/ecss-media-server/conf.d/default.xml) |
|---|
Проверить на корректность данных.
BASH
|
Указываем текущие настройки, согласно которым происходит регистрация msr на core.
Основными параметрами здесь являются: msr_name и realm:
- msr_name — параметр, определяющий название msr. (рекомендуется задавать msr. и к какому хосту он принадлежит, например msr.ecss1);
- realm — определяет адрес для регистрации на ядре. Точка входа по умолчанию — порт 5000.
Описание настройки остальных сервисов приведено в разделе "Инсталляция дополнительных необязательных пакетов".
Дальнейшая настройка
snpmd
Настройка SNMP описана в разделе "Управление и мониторинг по протоколу SNMP".
Настройка безопасности. SSH
Выполните настройку сервера SSH:
sudo nano /etc/ssh/sshd_config
Укажите в конфигурационном файле порт и адрес, по которому можно обратиться к серверу:
| Настройка ssh для ecss1 (/etc/ssh/sshd_config) |
|---|
# This is the sshd server system-wide configuration file. See # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with Port 2000 <...> |
Перезапустите ssh:
sudo systemctl restart ssh.service
Перезагрузка хоста
sudo reboot
Первоначальная конфигурация системы с помощью web-конфигуратора
Исходные данные
- Установка системы завершена;
- Система готова к дальнейшей настройке;
- Интерфейсы запущены.
Рекомендуется использовать последние доступные версии браузеров. Рекомендуемые к использованию браузеры: Яндекс, Chrome.
Для начала конфигурации системы необходимо зайти в web-конфигуратор по адресу http://<Ipadd SSW>.
Для определения и регистрации в системе планируются:
- Абоненты с номерами 42001, 42002 , 42003, 42004 ,42005, 42006, 42007, 42008, 42009, 42010;
- Транк в сторону шлюза.
Подготовка к работе

Рисунок 3 — Вход в web-конфигуратор (окно авторизации)
В окне авторизации необходимо ввести значения, определенные при установке web-конфигуратора.
Стандартные значения для авторизации:
Логин: admin
Пароль: password
После входа в систему будет видна основная рабочая область с иконками приложений, а также строка состояния с доступными опциями, в частности:
- 1 — выход из системы;
- 2 — выбор домена;
- 3 — выбор языка.

Рисунок 4 — Вид рабочей области web-конфигуратора
Создание учетной записи оператора
После авторизации для повышения безопасности при эксплуатации программного коммутатора рекомендуется создание учетных записей для операторов, а также сменить пароль для пользователя admin.
Для создания новой учетной записи оператора используется приложение "Управление пользователями" ("User manager"):

Рисунок 5 — Вид приложения "Управление пользователями"
Нажмите кнопку "Добавить"
. В открывшемся окне требуется определить новую учетную запись, для этого:
- В поле "Имя" введите логин учетной записи, например "test";
- В поле "Пароль" и "Подтверждение" введите пароль для пользователя, например "testpassword";
- Определите уровень прав доступа для пользователя через выбор текущих разрешений или с помощью ролей, например ecss-user. Описание можно посмотреть в разделе "Управление пользователями".

Рисунок 6 — Диалоговое окно создания учетной записи оператора

Рисунок 7 — Вид приложения с созданной учетной записью оператора
Для смены пароля рядом с названием пользователя нажмите на кнопку редактировать. В появившемся диалоговом окне введите:
1. Старый пароль (для пользователя "admin" по умолчанию паролем является "password");
2. Новый пароль;
3. Подтвердите новый пароль.

Рисунок 8 — Диалоговое окно редактирования учетной записи
Добавление медиа-ресурсов.
Для того чтобы начать работу с медиа-сервером сразу после его регистрации, необходимо активировать сетевые интерфейсы MSR. Приложение web-конфигуратора "Сетевые окончания MSR" ("MSR registrars") служит для настройки медиа-ресурсов.


Рисунок 9 — Сетевые окончания MSR
Установить ipадрес для приема соединений от медиасервера, изменив значение 0.0.0.0 на реальные адреса MSR:


Рисунок 10 — Установка IP-add регистратора MSR
Создание IP-set (sip-транспорта) и присвоение его к домену
IP-set — совокупность одного или нескольких IP-адресов из одной подсети и списка слушающих UDP/TCP-портов, которые будут открыты SIP-адаптером на данных адресах.
Для настройки интерфейса необходимо открыть приложение "Кластеры ("Clusters").

Рисунок 11 — Вид приложения "Кластеры"
Для создания новой группы IP-адресов (IP-set) выделите кластер SIP-адаптера "sip1" и нажмите на кнопку "Свойства кластера" (или нажмите на иконку кластера двойным щелчком левой кнопки мыши).
В появившемся диалоговом окне перейдите на вкладку "Транспорт". Далее нажмите кнопку "Добавить". Появится новая группа, для редактирования полей двойным щелчком кнопки мыши нажмите на нужное:
1. Переименуйте группу адресов (IP-set), например "test_set";
2. Задайте порт, по которому будет происходить обращение к домену, например 5060;
3. Разверните вновь созданную группу нажатием на треугольник слева от названия группы;
4. Определите адрес для ноды SIP-адаптера, согласно примеру конфигурации. Для системы без резервирования укажите 10.0.20.31:

Рисунок 12 — Вид приложения "Кластеры/Транспорт"
Для системы с резервированием укажите 10.0.20.31 и 10.0.20.32:

Рисунок 13 — Вид приложения "Кластеры/Транспорт" для кластера
Нажмите кнопку "Сохранить" для применения настроек.
Создание домена
Домен - Виртуальная PBX внутри нашего SSW. Таких виртуальных PBX может быть создано необходимое для проекта кол-во.
Для создания домена необходимо войти в приложение "Домены" ("Domain"). В открывшемся окне требуется создать домен, для этого:
1. Нажмите кнопку "Добавить домен":

Рисунок 14 — Добавление домена в систему
2. В появившемся диалоговом окне доступны следующие настройки:
- Имя (Name) — индивидуальное имя виртуальной АТС;
- Профиль услуг (SS profile) — системный профиль дополнительных услуг. Этот профиль будет скопирован с тем же именем во вновь создаваемый домен и для всех услуг из этого профиля будет автоматически разрешён доступ через access-list;
- IVR профиль (IVR profile) — профиль IVR, заданный в приложении "Редактор IVR ограничений".
Введите название домена, например "test_domain";
3. Нажмите кнопку "Ок":

Рисунок 15 — Определение настроек нового домена
4. Нажмите кнопку "Обновить"
в приложении.
Созданный домен будет отображаться в текущей конфигурации:

Рисунок 16 — Отображение созданного домена
Для редактирования текущего домена его необходимо выбрать в системе. Для перехода в домен воспользуйтесь опцией выбора домена (см. пункт 2 на рисунке "Вид рабочей области web-конфигуратора").
После выбора домена, согласно текущей конфигурации системы, станут доступны все приложения:

Рисунок 17 — Отображение приложений в текущей конфигурации системы
Для того чтобы привязать группу адресов к домену, необходимо вернуться в приложение "Домены" ("Domain"), выделить домен и перейти в настройки нажатием на кнопку "Свойства домена" или двойным нажатием левой кнопки мыши на домен.
В настройках списка откройте ветку "SIP", в ней "SIP транспорт", далее выберите в поле IP set созданную группу адресов. Нажмите кнопку "Сохранить" для применения настроек.

Рисунок 18 — Окно настройки для SIP транспорта
Выбрать требуемые услуги для созданного домена, которые будут использоваться (для примера для абонентского домена транковые услуги не востребованы , и наоборот для транзитного домена не нужно указывать услуги для абонента).

Рисунок 19 — После создания нового домена, услуги отсутствуют.
- Выбрать приложение "Управление услугами"
- Выбрать колонку "Установленные услуги" (услуги указанные в лицензии для SSW)
- Выбрать необходимые для указанного домена услуги
- Сохранить конфигурацию

Рисунок 20 — Выбор услуг для абонентов / транков нового домена.

Рисунок 21 — Список услуг теперь доступных для абонентов нового домена.
Создание абонентов
Для создания и редактирования параметров абонентов в системе используется приложение "Карточка абонента" ("Subscriber card").

Рисунок 22 — Вид приложения "Карточка абонента"
В конфигурации возможно создание SIP-абонентов и виртуальных абонентов.
Для пользователей, имеющих физическое окончание, используется функционал SIP-абонента, в то время как виртуальный абонент используется тогда, когда нужна функциональность без физических окончаний. Например, номер для обращения к ivr-скрипту.
Для создания новых абонентов нужно нажать на кнопку "Добавить".
В появившемся диалоговом окне укажите следующие параметры:
- Имя интерфейса — номер или группа номеров, который присваивается абоненту, например {42001-42010};
- Контекст — контекст маршрутизации, выбираем тот, который создали, например "test_name", или по умолчанию - "default_routing";
- Группа интерфейсов — имя группы объединяющей нескольких абонентов, для примера "sip";
- Алиас как пользователь — настройка, которая связывает номер сущности, алиас и пользователя одним и тем же названием, в примере настройка активирована;
- Авторизация — порядок проверки подлинности прав пользователя на доступ к данным, в примере используется"register";
- Логин — использую настройку номер как логин для простоты;
- Пароль — можно задать или использовать сгенерированный системой.

Рисунок 23 — Пример создания 10 абонентов в домене "test_domain"


Рисунок 24 — Пример добавления услуг для абонента
Создание и применение контекстов маршрутизации для домена
Маршрутизация отвечает за поиск номера и последующую адресацию вызова. Для корректной работы системы должен быть настроен как минимум один контекст маршрутизации.
Настройка маршрутизации осуществляется в приложении "Менеджер маршрутизации" ("Routing manager") .

Рисунок 25 — Вид приложения "Менеджер маршрутизации"
В качестве примера создадим контекст, а затем несколько правил в нём, для этого:
1. В левой части окна в разделе "Контекст" нажмите на кнопку "Создать контекст"
;
2. В открывшемся диалоговом окне обозначьте имя контекста, а также тип контекста — пустой контекст:
Рисунок 26 — Вид приложения "Менеджер маршрутизации" добавление нового контекста маршрутизации
3. Нажмите "Сохранить контекст"
;
Создадим 4 правила в данном контексте:
- rule1 — правило для выхода на транк TAU-72;
- rule2 — правило локальной маршрутизации для номеров 42001-42005;
- rule3 — правило для выхода в ivr;
- rule4 — правило-исключение.
Для создания нового правила нужно выделить созданный контекст и нажать кнопку "Создать правило". В появившемся окне нужно ввести название правила. Затем сохранить вновь созданные правила.

Рисунок 27 — Создание правила контекста маршрутизации

Рисунок 28 — Определение правил
На данный момент не определен транк, чтобы можно было сослаться на него в правиле, однако можно задать номера, по которым будет производится выборка.
Нажав на правило rule1, перейдем в нижнюю часть экрана, в которой располагаются области для редактирования контекста маршрутизации. Условно определим, что выборка для выхода на транк будет проводиться по признакам номера вызываемого абонента (CDPN), а номера в транке должны начинаться с цифры 4.
Функционально контекст маршрутизации делится на три части:
- Условия ("Condition") — раздел, определяющий выражения для выборки по предложенным признакам;
- Действия ("Action") — раздел, выполняющий преобразование признаков номеров к конкретному значению;
- Результат ("Result") — раздел, завершающий маршрутизацию и определяющий её результат.
rule1: Для выхода на транк нужно правильно отредактировать каждую часть:
- В разделе условий перейти на вкладку CDPN. Ввести номера телефонов, которые находятся за транком в поле "Номер". Например, чтобы определить номера с 42006 по 42007, нужно ввести условие: 420(6-7);
- В разделе действий перейти на вкладку CDPN. Ввести маску для изменения номера в поле "Номер". Например, чтобы добавить число 4 перед номером, нужно заполнить поле следующим выражением: 4{1,2,3,4,5};
- Нажать кнопки "Сохранить правило" и "Сохранить контекст" для применения изменений.
Чтобы настроить поле результата, нужно определить транк в системе, поэтому к настройке данного правила вернемся чуть позже.
Таким же образом нужно настроить оставшиеся правила.
Для rule2:
- В разделе условий, во вкладке CDPN ввести номера телефонов, которые находятся за транком в поле "Номер". Например, чтобы определить номера со 42001 по 42005, ввести условие 420(1-5);
- В разделе результата определить результат как локальный (т.е. локальная маршрутизация);
- Нажать кнопки "Сохранить правило" и "Сохранить контекст" для применения изменений.
Для rule 3 допустим, что абоненты с номерами 108, 109 и 110 попадают в ivr-скрипт–информатор, прежде чем звонить далее.
- В разделе условий, во вкладке CGPN ввести номера телефонов, по которым будет выборка в поле "Номер", например 420(10,08-09).
- Нажать кнопки "Сохранить правило" и "Сохранить контекст" для применения изменений.
Чтобы настроить поле результата, нужно определить в системе ivr-скрипт, поэтому к настройке данного правила вернемся чуть позже.
Для rule 4 мы определяем правило-исключение — это правило, которое работает в случае, если любые другие правила не срабатывают.
- По умолчанию данное правило создается в системе в контексте default_routing. В условиях на вызываемый номер прописывается символ %, а результатом является локальная маршрутизация, однако, если мы назначаем абоненту контекст, отличный от default_routing, в конце рекомендуется создавать это правило.

Рисунок 29 — Пример настроек контекста маршрутизации
Создание транка
Для создания и редактирования параметров транка в системе используется приложение "Менеджер транков" ("Trunk manager") .

Рисунок 30 — Вид приложения "Менеджер транков"
Для определения транка в системе нужно нажать на кнопку "Создать транк"
, в появившемся диалоговом окне определить параметры:
- Имя — назначить название транка, по которому его можно идентифицировать в системе;
- Контекст — применить ранее созданный контекст маршрутизации test_name;
- Группа — выбрать группу интерфейсов, созданную при определении абонентов "test.group";
- Группа IP-адресов (IP-set) — созданная на домене группа адресов "test_set";
- Регистрация — если используется транковая, то нужно включить данный параметр, в примере она не используется;
- Хост [:порт] — IP-адрес назначения транка — 10.0.3.100;
- Порт для приёма — транспортный порт, на котором будет слушаться трафик с транка, соответствует порту, назначенному на группу IP-адресов.

Рисунок 31 — Создание транка
Создание IVR-скрипта
Для создания IVR используется приложение "IVR-редактор" ("IVR editor").

Рисунок 32 — Вид приложения "IVR-редактор"
Для создания скрипта нужно нажать на кнопку "Добавить"
, выбрать тип скрипта (в данном случае будет скрипт на входящие вызовы), в диалоговом окне указать название скрипта, например "test_ivr".
После создания скрипта в основном окне редактора появится блок-схема.
В качестве примера составим скрипт, который при срабатывании проигрывает вызывающему абоненту заранее записанную фразу, а затем продолжает вызов.
Пример скрипта приведен на рисунках ниже. Здесь используются блоки Info и Dial.
- Блок Info — блок, который проигрывает сообщения до момента ответа пользователя. В качестве записанной фразы используется генератор тонов:

Рисунок 33 — Вид рабочей области IVR с настройками блока "Info"
- Блок dial — блок, который совершает вызов на заданный номер. Чтобы продолжить вызов, нужно применить предопределенную переменную CDPN:

Рисунок 34 — Вид рабочей области IVR
Завершение настройки маршрутизации
Для завершения настройки маршрутизации нужно войти в приложение "Менеджер маршрутизации" ("Routing manager") и в правилах rule1 и rule3 настроить соответствующие результаты маршрутизации, для этого:
- rule1: в разделе "Результат" выберите подпункт "внешний". В таблице "Направления" в поле "Значение" добавьте созданный ранее транк, после чего сохраните правило
. - rule3: В разделе "Результат" выберите подпункт "ivr" и в поле скрипт добавьте созданный ранее ivr-скрипт, после чего сохраните правило и контекст
.

Рисунок 35 — Вид контекста маршрутизации
Первоначальная конфигурация системы через интерфейс командной строки (CLI)
Добавление медиа-ресурсов в интерфейсе командной строки (CLI)
Для возможности использования медиаресурса и установления соединений , необходимо выполнить активизацию в команде создания медиаресурса - /system/media/resource/declare (параметр "is active"=true) или /system/media/resource/set (параметр "active"=true), если при создании активизация не была выполнена. Так же можно выполнить активизацию через веб интерфейс , приложение - сетевые окончания MSR (MSR-registrars).
Зайдите в CLI - CoCon:
ssh admin@localhost -p 8023
password: password
Медиаресурс — это описание параметров медиасервера, необходимых для работы с ним.
declare
Команда для объявления подключения медиасервера к ECSS-10.
Для работы в режиме предварительно настроенной системы можно заранее прописать медиаресурсы, информация о которых известна.
Для этого необходимо создать описание известных медиасерверов с указанием всех параметров, что позволить начать работу с медиасервером сразу после его регистрации.
Команда для создания конфигурации медиасервера:
Путь команды:
/system/media/resource/declare
Синтаксис:
declare <node> by_contact <contact> <zone> <site> <is active>
или
declare <node> by_iface <msr> <acc_id> <iface> <zone> <site> <is active>
Параметры:
<node> — имя ноды core;
<contact> — contact uri декларируемого медиаресурса;
<zone> — логическая зона обслуживания MSR;
<site> — идентификатор сети обслуживания MSR;
<is active> — состояние активности медиаресурса, значения true/false;
<msr> — имя MSR;
<acc_id> — номер идентификатор ресурса;
<iface> — название интерфейса.
Установить связь MSR- и Core-подсистем. Для этого выполнить команду:
/system/media/resource/declare core1@ecss1 contact net.20@msr.ecss1 default local true
/system/media/resource/info core1@ecss1 net.20@msr.ecss1 Media resource specific for node core1@ecss1: ┌─┬─────────────────┬─────────────────────┐ │F│ Parameter │ Value │ ├─┼─────────────────┼─────────────────────┤ │r│ Contact │ net.20@msr.ecss1 │ │r│ Status │ registered │ │r│ Cc-status │ connected │ │r│ Cc-status uptime│ 01:42:53 │ │r│ Cc-id │ cb6599 │ │r│ Address │ 10.0.20.41:5700 │ │r│ Register time │ 2025/09/15 17:18:58 │ │r│ Expired │ 122 │ │r│ Iface │ net.20(10.0.20.41) │ │ │ Active │ true │ │ │ Zone │ default │ │ │ Site │ local │ │r│ MSR version │ 3.14.16.0.190 │ │r│ MSR load │ 0 │ │r│ MSR perf coef │ 1.0 │ └─┴─────────────────┴─────────────────────┘ Legend: Column F - means Flag, values r - flag for readonly parameter
результат / список
/system/media/resource/list all
All media resource selected list specific:
┌─────────────┬───────────┬───────────────┬───────────┬──────┬────────┬───────────┬───────────┬─────────────────┬────────┬────────────┬────────┬─────────┬───────┬──────────────────┬────────────┬─────────┐
│ Node │ MSR │ MSR │ MSR │ MSR │ Cc-id │ Cc-status │ Cc-uptime │ Cc-address │ Iface │ Iface │ Active │ Zone │ Site │ Contact │ Status │ Expired │
│ │ │ version │ perf coef │ load │ │ │ │ │ name │ addr │ │ │ │ │ │ │
├─────────────┼───────────┼───────────────┼───────────┼──────┼────────┼───────────┼───────────┼─────────────────┼────────┼────────────┼────────┼─────────┼───────┼──────────────────┼────────────┼─────────┤
│ core1@ecss1 │ msr.ecss1 │ 3.14.16.0.190 │ 1.0 │ 0 │ cb6599 │ connected │ 01:40:12 │ 10.0.20.40:5700 │ net.20 │ 10.0.20.40 │ true │ default │ local │ net.20@msr.ecss1 │ registered │ 163 │
└─────────────┴───────────┴───────────────┴───────────┴──────┴────────┴───────────┴───────────┴─────────────────┴────────┴────────────┴────────┴─────────┴───────┴──────────────────┴────────────┴─────────┘
Добавление управления регистратором для MSR медиа менеджера в интерфейсе командной строки (CLI)
/system/media/registrar/ - команды управления регистратором для MSR медиа менеджера
set
Команда для изменения общих и индивидуальных параметров.
Путь команды:
/system/media/registrar/set
Синтаксис настройки общих параметров:
set common <FIELD> <VALUE>
Параметры:
<FIELD> - имя настраиваемого параметра;
<VALUE> - значение настраиваемого параметра
Где- common - тип выставляемого параметра;
- <common parameter> - общий параметр медиарегистратора для всех нод: registration-timeout;
- private - тип выставляемого параметра;
- <node name> - имя ноды на которой находится медиарегистратор;
- <private parameter> - параметр медиарегистратора, который выставляется на <node name>: is-active, listen-interface & listen-port.
Cписок параметров доступных для настройки:
- is-active - позволяет включить или выключить регистратор (false - деактивирует регистратор, регистратор перестает принимать SIP трафик);
- listen-interface - имя интерфейса, который использует регистратор;
- listen-port - порт, на котором регистратор принимает запросы на регистрацию (по умолчанию 5000);
- registration-timeout - таймер перерегистрации, диапазон значений от 60 до 86400.
В общих параметрах доступна настройка времени регистрации, по умолчанию установлено 60 секунд.
Пример:
Установить время регистрации 60 секунд:
/system/media/registrar/set common registration-timeout 60 Common parameter registration-timeout set to 60.
Синтаксис настройки индивидуальных параметров:
system/media/registrar/set private <CORE> <FIELD> <VALUE>
Параметры:
<CORE> - нода ядра, для которой настраивается Registrar-сервер;
<FIELD> - имя настраиваемого параметра;
<VALUE> - значение настраиваемого параметра.
Настраиваемые параметры:
- is-active - активен ли Registrar-сервер, принимает значения true | false;
- listen-ip - ip-адрес, на котором Registrar-сервер будет принимать соединения (по умолчанию 0.0.0.0);
- listen-port - сетевой порт, на котором Registrar-сервер будет принимать соединения (по умолчанию 5000).
Установить ipадрес для приема соединений от медиасервера:
/system/media/registrar/set private core1@ecss1 listen-ip 10.0.20.40 Private parameter listen-ip set to 10.0.20.41 at node core1@ecss1.
/system/media/registrar/info Common parameters: ┌───────────────────────────┬───────┐ │ Parameter │ Value │ ├───────────────────────────┼───────┤ │ registration-timeout, sec │ 180 │ └───────────────────────────┴───────┘ Private parameters: ┌─────────────┬─────────┬───────────┬────────────┬─────────────┐ │ Node │ Status │ Is-active │ Listen-ip │ Listen-port │ ├─────────────┼─────────┼───────────┼────────────┼─────────────┤ │ core1@ecss1 │ active │ true │ 10.0.20.40 │ 5000 │ └─────────────┴─────────┴───────────┴────────────┴─────────────┘
После того как все сервисы будут запущены, ноды какое-то время будут устанавливать связь. Как только все ноды загрузятся , при выполнении запроса system-status, последует вывод следующей информации:
/system-status
Checking...
┌─┬───────────────┬────────────────────────────┬──────────────────────┬───────────────┬───────┐
│ │ Node │ Release │ Erlang nodes │ Mnesia nodes │Uptime │
├─┼───────────────┼────────────────────────────┼──────────────────────┼───────────────┼───────┤
│ │core1@ecss1 │ecss-core-3.14.16.0.1558 │core1@ecss1 │not running │22m 58s│
│ │ds1@ecss1 │ecss-ds-3.14.16.0.1558 │ds1@ecss1 │ds1@ecss1 │22m 58s│
│ │md1@ecss1 │ecss-mediator-3.14.16.0.1558│md1@ecss1 │md1@ecss1 │22m 58s│
│ │mycelium1@ecss1│ecss-mycelium-3.14.16.0.1558│mycelium1@ecss1 │not running │22m 58s│
│ │sip1@ecss1 │ecss-pa-sip-3.14.16.0.1558 │sip1@ecss1 │sip1@ecss1 │22m 59s│
└─┴───────────────┴────────────────────────────┴──────────────────────┴───────────────┴───────┘
All services are started.
Active media resource selected list specific:
┌─────────────┬───────────┬───────────────┬───────────┬───────────┐
│ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │
│ │ │ version │ │ │
├─────────────┼───────────┼───────────────┼───────────┼───────────┤
│ core1@ecss1 │ msr.ecss1 │ 3.14.16.0.190 │ connected │ 00:00:10 │
└─────────────┴───────────┴───────────────┴───────────┴───────────┘
В примере выше видно, что ноды вошли в кластер и MSR зарегистрировались на ноде ecss-core.
Создание и настройка группы SIP-IP-адресов (IP-set)
IP-set — совокупность одного или нескольких IP-адресов из одной подсети и списка слушающих UDP/TCP-портов, которые будут открыты SIP-адаптером на данных адресах.
Произведите настройку адаптера SIP согласно ТЗ:
выполняется в CoCon
/cluster/adapter/sip1/sip/network/set ip_set test_set node-ip node = sip1@ecss1 ip = 10.0.20.40
выполняется в CoCon
/cluster/adapter/sip1/sip/network/set ip_set test_set listen-ports list = [5060]
Результат:
/cluster/adapter/sip1/sip/network/set ip_set test_set node-ip node = sip1@ecss1 ip = 10.0.20.40 Property "ip_set" successfully changed from: to test_set: no ports set test_set: sip1@ecss1 10.0.20.40 test_set: dscp 0. /cluster/adapter/sip1/sip/network/set ip_set test_set listen-ports list = [5060] Property "ip_set" successfully changed from: test_set: no ports set test_set: sip1@ecss1 10.0.20.40 test_set: dscp 0 to test_set: 5060 test_set: sip1@ecss1 10.0.20.40 test_set: dscp 0
Создание Домена и подключение IP-set
Создайте Домен (виртуальную АТС) и присвойте ему созданную выше группу (IP-set) настроек SIP-адаптера (команды выполняются в CoCon):
/domain/declare test_domain --add-domain-admin-privileges --add-domain-user-privileges
New domain test_domain is declared
/domain/test_domain/sip/network/set ip_set [test_set]
Property "ip_set" successfully changed from:
[]
to
["test_set"].
Добавление услуг
Установка всех услуг указных в лицензии:
/cluster/storage/ds1/ss/install ds1@ecss1 ss_*
Successfully installed: /var/lib/ecss/ss/ss_dnd.xml
Successfully installed: /var/lib/ecss/ss/ss_clir.xml
...
Successfully installed: /var/lib/ecss/ss/ss_chunt.xml
После установки в систему всех услуг, администратор системы должен открыть доступ на управление услугами оператору Домена (виртуальной АТС). Для этого используются команду:
Разрешить оператору Домена (виртуальной АТС) "test_domain" управлять всеми услугами :
/cluster/storage/ds1/ss/access-list add test_domain *
Supplementary services successfully added in the domain test_domain.
Для возможности применения пакета услуг у абонентов сразу после создания, необходимо настроить политику применения лицензионных пакетов услуг (детальную информацию вы можете посмотреть здесь )
Создать политику применения лицензии с именем -"new_sub"
выполняется в CoCon user/pw admin/password
/domain/test_domain/ss/licence/politics/declare new_sub "Задаются при создании абонента"
Задать имя пакета услуг дополнительных сервисов, для этого использовать следующие команды :
выполняется в CoCon user/pw admin/password
/cluster/storage/ds1/licence/show-licence 1
нас интересует следующая информация :
/cluster/storage/ds1/licence/show-licence 1
SSW ID < Имя SSW ID >
Description Лицензия для тестирования.
. . .
Supplementary Services licence package(s)
name 'ECSS-FULL+'
limit 600000
description "Весь пакет услуг"
SS list [1,2,3,4,5]
. . .
имя пакета услуг в примере "ECSS-FULL+".
Добавить в созданную политику пакет лицензионных услуг с именем "ECSS-FULL+", именно так он описан в лицензии:
выполняется в CoCon user/pw admin/password
/domain/test_domain/ss/licence/politics/package-add new_sub ECSS-FULL+
Пакет добавлен, но в настоящий момент политика не активна (не может быть применена к абоненту). Для активации политики new_sub выполнить следующую команду:
выполняется в CoCon user/pw admin/password
/domain/test_domain/ss/licence/politics/activate new_sub
Теперь при создании абонентов можем использовать дополнительные услуги.