Обновление с версии 3.17.1 на 3.18 Astra Linux одиночный сервер
Варианты выполнения обновления
Использование одиночного сервера для SSW не предусматривает резервирования. Поэтому выполнить обновление на новую версию без прерывания трафика не представляется возможным.
Выполнить обновление можно двумя путями.
Первый вариант – остановить трафик и на рабочем SSW выполнить обновление PostgreSQL и обновление всех пакетов ecss, а затем активировать сервис и запустить трафик. Преимущество такого варианта – простая процедура обновления. Недостаток – более продолжительное время прерывания трафика.
Процедура выполнения первого варианта обновления.
Второй вариант – на отдельном хосте (физическом или виртуальном) выполнить полную новую установку ОС и затем установку SSW с использованием временных IP адресов. Во время установки так же потребуется выполнить копирование баз данных (Mnesia +PostgreSQL) со старого хоста на новый. По окончанию установки нового SSW выполняется замена временных IP адресов на адреса старого SSW ( в этот момент старый SSW отключается) и конфигурация файлов MSR. После этого новый SSW начинает обслуживать трафик. Преимущество такого варианта – минимальное время прерывания трафика. Недостаток – более сложная и длительная процедура обновления.
Процедура выполнения второго варианта обновления.
Вы можете выбрать один либо другой вариант обновления.
ECSS-10 в версии 3.17 поддерживает два типа лицензирования – файловая лицензия (с использованием токена или без него) и ELM-лицензия. В зависимости от типа лицензирования при обновлении будут выполняться разные команды.
Проверить, какой тип используется на вашем ssw, можно следующей командой:
выполняется в CoCon
/cluster/storage/ds1/licence/list-licence
При использовании файловой лицензии вывод будет:
файловая лицензия
/cluster/storage/ds1/licence/list-licence
┌──┬───────────────────┬────────────┬──────┬───────────────────┬────────────────────┬────────────┐
│Id│Creation date(UTC) │ SSW ID │Active│ Description │Expiration date(UTC)│ Time left │
├──┼───────────────────┼────────────┼──────┼───────────────────┼────────────────────┼────────────┤
│1 │31.10.2025 14:16:00│ECSS 010070 │* │Eltex SC softswitc │31.12.2026 23:59:59 │224d 21h 31m│
│0 │ │ECSS DEFAULT│ │Default licence │ │ │
└──┴───────────────────┴────────────┴──────┴───────────────────┴────────────────────┴────────────┘
При использовании ELM-лицензии вывод будет:
ELM лицензия
/cluster/storage/ds1/licence/list-licence
┌──┬───────────────────┬────────────┬──────┬────────────────┬────────────────────┬────────────┐
│Id│Creation date(UTC) │ SSW ID │Active│ Description │Expiration date(UTC)│ Time left │
├──┼───────────────────┼────────────┼──────┼────────────────┼────────────────────┼────────────┤
│1 │02.12.2025 13:51:39│ECSS2000000 │* │ECSS ELM License│02.12.2026 13:51:39 │364d 11h 47m│
│0 │01.01.1990 00:00:00│ECSS DEFAULT│ │Default licence │ │ │
└──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────┘
Внимание
Перед выполнением процедуры обновления – выполнить полный «бэкап» (см. «Регламентное обслуживание и резервное копирование»).
Если нужны последние данные биллинга, то необходимо финализировать текущую cdr и скачать cdr-файлы на удаленный сервер:
/domain/test_domain/cdr/make_finalize_cdr Created file(s): cdr_20260522_11_51_16_1_c.csv
Первый вариант
- Необходимо замаскировать все ноды на сервере, отключите автозапуск нод:
на ecss1
sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sormCODEПри выполнении приложенной команды будет уведомление.
Warning: The unit file, source configuration file or drop-ins of ecss-ds.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-mycelium.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-mediator.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-core.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-pa-sip.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Данные сообщения не является ошибкой. Продолжать выполнение процедуры.
- Актуализировать репозиторий ssw:
на ecss1
sudo sh -c "echo deb [arch=amd64] http://archive.eltex.org/ssw/jammy/3.18 stable main extras external > /etc/apt/sources.list.d/eltex-ecss10-stable.list"CODE - Выполнить обновление пакетов:
на ecss1
sudo apt updateCODEЕсли вы видите такое сообщение системы:
W: http://archive.eltex.org/ssw/jammy/3.18/dists/unstable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
Выполните следующую команду:
на обоих хостах
sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.dCODE - Обновление PostgreSQL:
- Выключить docker-контейнер:
на ecss2
sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml downCODEПример:sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down [+] down 2/2 ✔ Container ecss-postgres-bdr-ssw-postgres-container-1 Removed ✔ Network ecss-postgres-bdr-ssw_default Removed
- Удалить старый deb-пакет, т. к опция upgrade не поддержана:
на ecss2
sudo apt remove ecss-postgres-bdr-sswCODE!!Важно!!
Выполнить именно remove, а не purge, т. к remove сохраняет директорию volumes c таблицами нашей БД.
Пример:sudo apt remove ecss-postgres-bdr-ssw Чтение списков пакетов… Готово . . . Следующие пакеты будут УДАЛЕНЫ: ecss-postgres-bdr-ssw . . . Хотите продолжить? [Д/н] y Удаляется ecss-postgres-bdr-ssw (17.1.0.59+ssw) …
- Установить новый deb-пакет:
на ecss2
sudo apt install ecss-postgres-bdr-sswCODE!!Важно!!
Во время установки будут заданы вопросы как при первоначальной установке:
Ответы должны точно соответствовать указанным в процедуре, иначе будет выполнена попытка создать новую базу данных и установка завершится ошибкой.Вопрос Ответ Пример Текущий IP-адрес сетевого интерфейса.
10.0.10.41 (необходимо выбрать) 
Установка в кластере?
Выберите <Да>, если пакет устанавливается на узле кластера.Нет (необходимо выбрать) 
При успешной установке на этапе поднятия репликации увидим:
sudo apt install ecss-postgres-bdr-ssw . . . ================== Create databases ================== Database ecss_storekeeper_db already exists, skipping... Database web_conf already exists, skipping... Extension btree_gist already exists, skipping... Extension bdr already exists, skipping... =================================== Creating Postgres Exporter Schema =================================== Node IP: localhost psql:/srv/ecss/ecss-postgres-bdr-ssw/schema.sql:1: NOTICE: schema "postgres_exporter" already exists, skipping CREATE SCHEMA GRANT CREATE FUNCTION CREATE VIEW GRANT CREATE FUNCTION CREATE VIEW GRANT psql:/srv/ecss/ecss-postgres-bdr-ssw/schema.sql:28: NOTICE: extension "pg_stat_statements" already exists, skipping CREATE EXTENSION CREATE FUNCTION CREATE VIEW GRANT . . . ======================================================= ======================================================= ecss-postgres-bdr-ssw successfully installed/updated! ======================================================= ======================================================= ┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓ ┳┓┳┓┳┓ ┏┓┏┓┓ ┏ ┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓ ┣┫┃┃┣┫ ┗┓┗┓┃┃┃ ┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛ ┻┛┻┛┛┗ ┗┛┗┛┗┻┛CODE - После установки проверить, что подтянулся новый image и стартовал docker, выполнить команду:
на ecss2
sudo docker psCODEПример:
sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bf73743d3e09 git.eltex.loc:4567/ecss/ecss-postgresbdr:3.18 "/docker-entrypoint.…" About a minute ago Up About a minute 0.0.0.0:5439->5432/tcp, [::]:5439->5432/tcp ecss-postgres-bdr-ssw-postgres-container-1CODE
- Выключить docker-контейнер:
- Обновление пакета ecss-dns-env:
на ecss1
sudo apt install ecss-dns-envCODE
После обновления нужно актуализировать конфигурацию, выполнив команду. Ответы на вопросы аналогичны процедуре инсталляции:на ecss1
sudo dpkg-reconfigure ecss-dns-envCODE - Выполните обновление пакета ecss-user:
При обновлении нужно применить новые конфигурационные файлы (подтверждением -Y).
на ecss1
sudo apt install ecss-userCODE - Выполните обновление пакета ecss-utils:
на ecss1
sudo apt install ecss-utilsCODE Установить пакет License Provider:
на ecss2
sudo apt install ecss-license-providerCODEПри установке пакета ecss-license-provider будут заданы вопросы:
Вопросы Ответы Примеры Адрес для соединения cLicense Provider:
License Provider listen ip:0.0.0.0 (значение по умолчанию) 
Порт для соединения c License Provider:
License Provider listen port:4321 (значение по умолчанию) 
Выберите уровень логирования:
Log level:info (значение по умолчанию),
возможные варианты: debug, error, info
Ключ-имя кластера резервирования:
License Provider cluster key:указать уникальное имя
ecss-lm-cluster (значение по умолчанию)Менеджеры с одинаковыми именами попытаются собраться в кластер и резервировать друг друга.
Какие службы должны быть перезапущены? ecss-license-provider.service (значение по умолчанию)

Данные сохраняются в файле - /etc/ecss/ecss-license-provider/config.env:
ECSS_LM_HOST=0.0.0.0 ECSS_LM_PORT=4321 ECSS_LM_LOG_LEVEL=info RELEASE_COOKIE=ecss-abf-lm-cluster
Конфигурация License Provider (LP)
Сервис ecss-license-provider использует два конфигурационных файла: /etc/ecss/ecss-license-provider/config.env и /etc/ecss/ecss-license-provider/config.yaml.
В файл config.env информация сохраняется в момент установки пакета ecss-license-provider.
Сonfig.yaml файл содержит основные настройки для подключения к ELM-серверу, откуда брать лицензии, какие лицензии, и куда их потом передавать, все это нужно сконфигурировать вручную.
Для заполнения данных полей откройте файл конфигурации ecss-elm-adapter используемого в версии 3.17 /etc/ecss/ecss-elm-adapter/config.env:информация в файле после установки
elm_addresses: [] licenses: [] ecss_nodes: []CODEна ecss2
сat /etc/ecss/ecss-elm-adapter/config.env ELM_HOST=elm.eltex-co.ru ELM_PORT=8099 ECSS_PRODUCT_ID=ECSS2000000 ECSS_LICENSE_KEY=ssw987654 LOG_LEVEL=info LICENCE_FAIL_TIMER_SECONDS=10 LICENCE_PULL_TIMER_SECONDS=360CODEВ поле elm_adresses нужно прописать список серверов ELM, к которым мы хотим подключаться для получения лицензий. Первый адрес в списке используется как основной. Дополнительные строки с адресами работают как резерв.
пример:
- "elm.eltex-co.ru:8099"
- "192.168.111.22:8099"
- "elm-3.eltex.loc:8099"
Дальше задаются сами лицензии в поле licenses.- id может быть любой, главное чтоб был уникальный у каждой лицензии. Влияет только на адрес лицензии на самом License Provider (например 0, 1, 2, 3).
- kind. Для SSW поддерживается только SSW (заглавными буквами).
- type выбирается как elm, если запрашивать данную лицензию нужно с ELM-сервера. Если нужно использовать файловую лицензию SSW, то тип выбирается как ecss_license.
- при elm типе необходимо задать поля license_key и product_id для идентификации лицензии.
- при ecss_license типе задается поле license, содержащее ключ статичной лицензии.
Параметры license_key = ECSS_LICENSE_KEY и product_id = ECSS_PRODUCT_ID должны быть согласованы с данными, ранее загруженными на ELM-сервере.
Блок ecss_nodes.
В нем нужно задать данные сервисов, которые будут получать лицензию. Сервис задается тремя параметрами:
- id - идентификатор сервиса. В случае с SSW должен совпадать с ECSS_ID лицензируемого SSW.
- kind - тип лицензируемого сервиса. по аналогии с блоком лицензий, поддерживаются типы SSW и AUP. Для SSW поддерживается только SSW.
- license_id - идентификатор лицензии, которая будет отправляться на данный сервис. Соответствует идентификаторам лицензии из блока licenses.
Два SSW с разными ECSS_ID не могут получить одну и ту же лицензию, конфигурация с таким распределением будет помечена некорректной.
Кроме того, два SSW с одинаковыми ECSS_ID не смогут одновременно получать одну и ту же лицензию с одного License Provider, поэтому крайне важно корректно устанавливать свой ECSS_ID и делать его уникальным как минимум в зоне видимости используемого License Provider.Формат ECSS_ID.
Начинается и заканчивается обязательно латинской буквой или цифрой, в теле же могут использоваться точки и тире.[A-Za-z0-9][A-Za-z0-9.-][A-Za-z0-9]
Пример: файла config.yaml на основе данных из файла /etc/ecss/ecss-elm-adapter/config.env
elm_addresses: - "elm.eltex-co.ru:8099" licenses: - id: 0 kind: SSW type: elm license_key: "ssw987654" product_id: "ECSS2000000" ecss_nodes: - id: eltex1.test kind: ssw license_id: 0CODEВыполнить перезагрузку сервиса ecss-license-provider.service для обновления конфигурации из файла /etc/ecss/ecss-license-provider/config.yaml следующей командой:
если кластер, то на обоих хостах
sudo systemctl restart ecss-license-provider.serviceCODE- Выполните обновление пакета ecss-node:
на ecss1
sudo apt install ecss-nodeCODEВо время установки будет предложено настроить параметры, необходимые для формирования конфигурационных файлов, примеры ответов следует ниже.
Вопросы ecss-node Ответы для ecss1 Пример Cookie для ноды core:
ecss-core (значение по умолчанию)
Рекомендуется заменить на уникальное значение

Cookie для ноды ds:
ecss-ds (значение по умолчанию)
Рекомендуется заменить на уникальное значение

Cookie для ноды mediator:
ecss-mediator (значение по умолчанию)
Рекомендуется заменить на уникальное значение

Cookie для ноды pa-sip:
ecss-pa-sip (значение по умолчанию)
Рекомендуется заменить на уникальное значение

Cookie для ноды mycelium:
ecss-mycelium (значение по умолчанию)
Рекомендуется заменить на уникальное значение

Cookie для ноды sorm:
ecss-sorm (значение по умолчанию)
Рекомендуется заменить на уникальное значение

Использовать текущую версию файла настройки?
No (значение по умолчанию)

При обновлении нужно применить новые конфигурационные файлы (подтверждением -Y).
- Включите ноды.
Включить сервисы ssw следующими командами:на ecss1
sudo systemctl unmask ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sormCODEна ecss1
sudo systemctl enable ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sormCODE - Запуск SSW на ecss1. Запустите следующие сервисы:
ecss-myceliumecss-dsна ecss1
sudo systemctl start ecss-myceliumCODEecss-coreна ecss1
sudo systemctl start ecss-dsCODEecss-mediatorна ecss1
sudo systemctl start ecss-coreCODEна ecss1
sudo systemctl start ecss-mediatorCODEЕсли лицензия поддерживает СОРМ3, то запустить также сервис ecss-sorm.
на ecss1
sudo systemctl start ecss-sormCODEПока не следует запускать PA-SIP!
- Проверьте статус сервисов, для этого выполните в CoCon команду system-status:выполняется в CoCon
/system-status Checking... ┌─┬───────────────┬────────────────────────┬───────────────┬────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes│Uptime│ ├─┼───────────────┼────────────────────────┼───────────────┼────────────┼──────┤ │ │core1@ecss1 │ecss-core-3.18.0.271 │core1@ecss1 │not running │14m 4s│ │ │ds1@ecss1 │ecss-ds-3.18.0.271 │ds1@ecss1 │ds1@ecss1 │14m 4s│ │ │md1@ecss1 │ecss-mediator-3.18.0.271│md1@ecss1 │md1@ecss1 │14m 4s│ │ │mycelium1@ecss1│ecss-mycelium-3.18.0.271│mycelium1@ecss1│not running │14m 4s│ │ │sorm1@ecss1 │ecss-sorm-3.18.0.271 │sorm1@ecss1 │not running │14m 5s│ └─┴───────────────┴────────────────────────┴───────────────┴────────────┴──────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼────────────┼───────────┼───────────┤ │ core1@ecss1 │ msr.ecss1 │ 3.17.1.1.7 │ connected │ 00:43:03 │ └─────────────┴───────────┴────────────┴───────────┴───────────┘
- Режимы лицензирования.
В случае использования файлового лицензирования
Никаких дополнительных действий выполнять не требуется.
/cluster/storage/ds1/licence/list-licence ┌──┬───────────────────┬────────────────┬──────┬────────────────────────────────────────────┬────────────────────┬────────────┐ │Id│Creation date(UTC) │ SSW ID │Active│ Description │Expiration date(UTC)│ Time left │ ├──┼───────────────────┼────────────────┼──────┼────────────────────────────────────────────┼────────────────────┼────────────┤ │1 │31.10.2025 14:16:00│ECSS 010070 │* │Eltex SC softswitch │31.12.2026 23:59:59 │224d 21h 31m│ │0 │ │ECSS DEFAULT │ │Default licence │ │ │ └──┴───────────────────┴────────────────┴──────┴────────────────────────────────────────────┴────────────────────┴────────────┘
Выполнить конфигурацию подключения SSW к License Provider следующей командой в CoCon, (в примере License Provider установлен на хосте ecss1, IPadd хостов 10.0.10.41. Значение порта из файла /etc/ecss/ecss-license-provider/config.env по умолчанию 4321):
выполняется в CoCon
/system/licence/manager/set --hosts [https://10.0.10.41:4321]CODEПосле выполнения проверить статус подключения командой:
выполняется в CoCon
/system/licence/manager/show-status ┌───────────────────────┬───────┬─────┐ │ Host │Current│Alive│ ├───────────────────────┼───────┼─────┤ │https://10.0.10.41:4321│* │true │ └───────────────────────┴───────┴─────┘CODEХост должен иметь статус alive=true. И быть "current".
- Current - отображает к какому хосту подключён SSW. Если есть подключение, указывается *, если нет - ничего не указано.
- Alive - отображает статус доступности хоста (healthcheck).
Подключение к License Manager
Отсутствие подключения к License Provider \ ELM будет равноценно отсутствию доступа к токену, что приведёт к критическим авариям, переходу в аварийный режим по истечению которого, если связь не будет восстановлена, система перейдёт на Default-лицензию.
Данное поведение применимо только при работе в elm-режиме.
Если статус к одному из хостов License Provider показан current, можно посылать запрос на загрузку лицензии на SSW командой:
выполняется в CoCon
/cluster/storage/ds1/licence/requestCODEtype=elm
/cluster/storage/ds1/licence/request Licence received [******* ] 6s 2ms Success: Licence parameters appliedCODEtype=elm
/cluster/storage/ds1/licence/list-licence ┌──┬───────────────────┬────────────┬──────┬────────────────┬────────────────────┬────────────────────┬─────────┐ │Id│Creation date(UTC) │ SSW ID │Active│ Description │Comm. Exp. Date(UTC)│Expiration date(UTC)│Time left│ ├──┼───────────────────┼────────────┼──────┼────────────────┼────────────────────┼────────────────────┼─────────┤ │1 │14.04.2026 11:18:34│ECSS2000000 │* │ECSS ELM License│09.04.2027 16:26:34 │06.06.2026 10:49:12 │1d 6h 59m│ │0 │01.01.1990 00:00:00│ECSS DEFAULT│ │Default licence │ │ │ │ └──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────────────┴─────────┘CODE- Обновление пакета ecss-restfs.Принять все новые конфигурационные файлы, выбирая Y.
на ecss1
sudo apt install ecss-restfsCODE - Обновление пакета ecss-media-server.Выполните обновление:
Media Server анализирует конфигурацию в файлах находящихся в директории /etc/ecss/ecss-media-server/. В версии 3.17 реализована новая функция контроля приоритетности кодеков. Если по какой то причине в нескольких файлах присутствует секция "codec", в которой несколько раз прописывается один и тот же кодек, то после обновления возникнет конфликт, и Media Server работать не будет.
Поэтому в конфигурационных файлах одного Media Server не должно быть конфликтов по приоритетам кодеков (запись об одном кодеке должна быть одна и не повторяться в других файлах). Решение, на какие именно фалы требуется сконфигурировать, остается на усмотрение администратора системы.
Принять все новые конфигурационные файлы, выбирая Y.
Актуализируйте конфигурацию:на ecss1
sudo apt install ecss-media-serverCODEна ecss1
sudo dpkg-reconfigure ecss-media-serverCODE - Обновление пакета ecss-media-resources:
на ecss1
sudo apt install ecss-media-resourcesCODE - Обновление пакета ecss-web-conf
на ecss1
sudo apt install ecss-web-confCODE Обновление пакета ecss-teleconference-ui
на ecss1
sudo apt install ecss-teleconference-uiCODEОбновление пакета ecss-crm-server
на ecss1
sudo apt install ecss-crm-serverCODEОбновление пакета ecss-cc-ui
на ecss1
sudo apt install ecss-cc-uiCODEОбновление пакета ecss-call-api
на ecss1
sudo apt install ecss-call-apiCODEОбновление пакета ecss-peeper-client
на ecss1
sudo apt install ecss-peeper-clientCODE- Запустите ecss-pa-sip :Проверьте статус сервисов командой /system-status :
на ecss1
sudo systemctl start ecss-pa-sipCODEВыполните проверку переезда активных регистраций на обновленный хост. Для этого выполните контроль зарегистрированных абонентов на SSW. Выполните команду в CoCon:выполняется в CoCon
/system-status Checking... ┌─┬───────────────┬────────────────────────┬───────────────┬────────────┬───────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes│Uptime │ ├─┼───────────────┼────────────────────────┼───────────────┼────────────┼───────┤ │ │core1@ecss1 │ecss-core-3.18.0.271 │core1@ecss1 │not running │54m 27s│ │ │ds1@ecss1 │ecss-ds-3.18.0.271 │ds1@ecss1 │ds1@ecss1 │54m 27s│ │ │md1@ecss1 │ecss-mediator-3.18.0.271│md1@ecss1 │md1@ecss1 │54m 27s│ │ │mycelium1@ecss1│ecss-mycelium-3.18.0.271│mycelium1@ecss1│not running │54m 27s│ │ │sip1@ecss1 │ecss-pa-sip-3.18.0.271 │sip1@ecss1 │sip1@ecss1 │54m 27s│ │ │sorm1@ecss1 │ecss-sorm-3.18.0.271 │sorm1@ecss1 │not running │54m 27s│ └─┴───────────────┴────────────────────────┴───────────────┴────────────┴───────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬──────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼──────────┼───────────┼───────────┤ │ core1@ecss1 │ msr.ecss1 │ 3.18.0.7 │ connected │ 00:01:17 │ └─────────────┴───────────┴──────────┴───────────┴───────────┘CODEвыполняется в CoCon
/domain/test_domain/sip/user/registered sip * 450 make users list ... [**********************************************************************] 28mks 450 users information read ... [**********************************************************************] 1ms Executed on the sip1@ecss1 ┌───────────────┐ │ elements: 436 │ └───────────────┘CODE - После выполнения обновления проверьте работу всех сервисов SSW.
Второй вариант
Исходные данные
На момент установки использовать временные IP адреса (в примере 10.0.10.51/10.0.20.51). На последних шагах временные адреса будут заменены на реальные IP адреса SSW версии 3.17 (в примере 10.0.10.41/10.0.20.41).
Исходные данные
В данном разделе использованы специфичные для данного продукта термины, ознакомиться с ними можно здесь.
Требуется интеграция программного коммутатора 5 класса ECSS-10 (SSW) на 1 физическом сервере с поддержкой SIP со следующими параметрами на нагрузку:
- Максимальное количество абонентов – 15000 (MUL — Max user limit);
- Максимальное количество одновременных соединений — 2000 (MCL — Max call limit);
- Резервирование системы не требуется;
- Количество сетевых интерфейсов ethernet — 4.
По техническому заданию требуется определить аппаратную платформу.
Актуальная информация с требованиями к серверам, которые должны использоваться для работы комплекса ECSS-10.
| № | Требования к серверам SSW | Серия Light+ | Серия Midi | Серия Heavy | Серия Супер Heavy | Серия Top (1) |
|---|---|---|---|---|---|---|
| 1 | Характеристики системы | |||||
| 1.1 | Максимальное количество абонентов | 5000 | 10000 | 20000 | 40000 | - |
| 1.2 | Максимальная нагрузка одновременных соединений class 5 | 800 | 1500 | 3000 | 6000 | - |
| 1.3 | Максимальная нагрузка одновременных соединений class 4 | 2400 | 4500 | 9000 | 20000 | 80000 |
| 2 | Характеристики сервера | |||||
| 2.1 | Марка | HP (Lenovo) | HP (Lenovo) | HP (Lenovo) | HP (Lenovo) | HP /Lenovo /Depo |
| 2.2 | Серия | DL20 Gen10/DL 360 Gen10 (SR530) | DL360 Gen10 (SR530/SR630) | DL360 Gen10 (SR630) | DL360 Gen10 (SR630) | DL360 Gen10 /SR650 V2 /Storm 3450 |
| 2.3 | Процессор | Intel Xeon 4214 | Intel Xeon 5220 | Intel Xeon 6240 | Intel Xeon 8268 | Intel Xeon 8380 |
| 2.4 | Количество процессоров | 1 | 1 | 2 | 2 | 2 |
| 2.5 | Оперативная память | 16 Gb | 24 Gb | 32 Gb | 64 Gb | 1024 Gb |
| 2.6 | HDD | От 3X500 SATA (от 7200 rpm) | От 3x300 Gb SAS (от 10000 rpm) | От 3x600 Gb SAS (от 10000 rpm) 2x150Gb SSD | От 6x800 Gb SSD, 2x300Gb M.2 SSD | От 6x1.2 Tb SSD, 2x300Gb M.2 SSD |
| 2.7 | RAID | no raid board | HW Raid, от 1Gb cache+battery | HW Raid, от 1Gb cache+battery | HW Raid, от 2Gb Flash cache, поддержка RAID-5 | HW Raid, от 2Gb Flash cache, поддержка RAID-5 |
| 3 | Дополнительные комплектующие сервера (в базовый комплект не входят) | |||||
| 3.1 | Лицензия на удалённое управление | по желанию | + | + | + | + |
| 3.2 | Резервный источник питания | по желанию | + | + | + | + |
| 3.3 | Организация хранилища записей разговоров | Дополнительные HDD, объединенные в RAID-5 | Лицензия на HW Raid с поддержкой RAID-5, дополнительные HDD для хранения записей | Лицензия на HW Raid с поддержкой RAID-5, дополнительные HDD для хранения записей | Лицензия на HW Raid с поддержкой RAID-5, дополнительные HDD для хранения записей | Лицензия на HW Raid с поддержкой RAID-5, дополнительные HDD для хранения записей |
Полоса пропускания СПД
Требуемая полоса пропускания СПД не менее 1000Mb/s
Минимальные требования при установке ECSS-10 на виртуальные машины*
| № | Требования к серверам SSW | Уровень Light (2)(3) | Уровень Light+ | Уровень Midi | Уровень Heavy | Уровень Супер Heavy | Уровень Top (1) |
|---|---|---|---|---|---|---|---|
| 1 | Характеристики системы | ||||||
| 1.1 | Максимальное количество абонентов | 1000 | 5000 | 10000 | 20000 | 40000 | - |
| 1.2 | Максимальная нагрузка одновременных соединений class 5 | 250 | 800 | 1500 | 3000 | 6000 | - |
| 1.3 | Максимальная нагрузка одновременных соединений class 4 | 1000 | 4500 | 9000 | 20000 | 80000 | - |
| 2 | Характеристики сервера | ||||||
| 2.4 | Количество ядер/потоков (vCore) | 8С | 12С/24T | 18С/36T | 36С/72T | 48С/96T | 80С/160T и более |
| 2.5 | Частота процессора | от 2.4 Ghz | от 3 Ghz | от 3Ghz | от 3.6 Ghz | от 3.4 Ghz | от 3.2 Ghz |
| 2.6 | Оперативная память | 8 Gb | 16 Gb | 24 Gb | 32 Gb | от 64 Gb | от 512 Gb |
| 2.7 | HDD | От 50 GB, 75 IOPS | От 500 GB SATA (от 7200 rpm, от 75 IOPS) | От 500 Gb SAS (от 10000 rpm, 170 IOPS) | От 500 Gb SAS (от 10000 rpm, 170 IOPS) и 150Gb SSD | от 800 Gb SSD и 300Gb M.2 SSD | От 1.2 Tb SSD и 300Gb M.2 SSD |
C - core, они же ядра
T - thread = поток, vCore
(1) — серия Top на текущий момент рассчитана для реализации контроллера транковых шлюзов (работа по 4 классу).
(2) — уровень Light применяется только для расчета виртуальных машин, для физических серверов минимальная рекомендуемая конфигурация — Light+.
(3) — уровень Light является минимальным рекомендуемым. При запросе расчета ВМ для малого числа абонентов (до 1000: 100, 200...) используем его.
*Если на системе планируется использование таких сервисов как КЦ, запись разговоров, видео-вызовы, то необходимо согласовать требования с технической поддержкой
Устройство | Требуемый ресурс | Серия аппаратного продукта | |
|---|---|---|---|
MCL | MUL | ||
Сервер 1 | 2500 | 15000 | Heavy |
После определения по требованиям проекта составляем предварительную сетевую карту.
Пример разнесения составляющих по адресному пространству для одной ноды:
Имя сервера (хоста) | Роль | Интерфейс | Адрес | Адрес вашего проекта | Порт |
|---|---|---|---|---|---|
Статические адреса программного коммутатора | |||||
ecss1 | Адрес сервера | net.10 (mgm) | 10.0.10.51/24 | - | |
ecss1 | Адрес протокольного адаптера | net.20 (voip) | 10.0.20.51/24 | - | |
ecss1 | Адрес шлюза | net.10 (mgm) | 10.0.10.1 | - | |
ecss1 | Адреса DNS-серверов | net.10 (mgm) | 172.16.0.1, 8.8.8.8 | - | |
Внутренние адреса программного коммутатора | |||||
ecss1 | Адрес ядра (ecss-core) | lo | 10.0.10.51/24 | 5000 | |
ecss1 | Адрес медиасервера (ecss-media-server (MSR)) | lo | 10.0.10.51/24 | 5040 | |
Включение в сеть
Топологию включения сервера в сеть для обеспечения резервирования рекомендуется делать с использованием 2-х коммутаторов.
Рисунок 1 — Схема организации связи
Установка ОС
Подготовительный этап
В этом разделе приведено описание инсталляции операционной системы, а также необходимых и дополнительных пакетов. Система ECSS-10 версии 3.18 работает под управлением ОС Astra Linux 1.8.






Таблица 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 | 10 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 | Журналы функционирования подсистем ECSS | ecss_log | raid 1:hdd1,hdd2 или hdd3 | ecss_log | /var/log/ecss | ext4 | 20 Gb | Логический |
| 7 | Базы данных | ecss_db | raid 1:hdd1,hdd2 или hdd3 | ecss_db | /srv/ecss/ecss-postgres-bdr-ssw/ | ext4 | 100–400 Gb* | Логический |
| 8 | Файлы пользователя | 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;
"Оптимизация" Операционной Системы
Выставить параметры ОС в режим производительности
Используем утилиту cpufrequtils.
sudo apt install cpufrequtils
по умолчанию после инсталляции Ubuntu использует режим "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
Отключить SWAP
Ubuntu сервер SSW работает в реальном масштабе времени , поэтому все необходимые данные должны находится в оперативной памяти, использование файла подкачки (swap-файл - /swap. img) может привести к увеличению времени обработки вызовов приложения SSW ECSS10 , что недопустимо. Swap - отключаем.
Выполнить последовательно три команды:
Отключение Swap:
sudo swapoff -a
Удалить файл swap.img.
sudo rm /swap.img
Закомментировать строку - /swap.img none swap sw 0 0 - в файле /etc/fstab - выполнив команду "sudo nano /etc/fstab"
привести ее к виду # /swap.img none swap sw 0 0
либо удалить эту строчку (/swap.img none swap sw 0 0)
sudo nano /etc/fstab
Для проверки выполните команду free -h:
free -h
Размер Swap равен 0 - то есть он выключен
free -h
total used free shared buff/cache available
Mem: 3,9G 110M 3,2G 820K 535M 3,5G
Swap: 0B 0B 0B
Установка часового пояса
При инсталляции Ubuntu-22 не предлагается установить часовой пояс(по умолчанию устанавливается время UTC). Его нужно установить вручную (для корректной работы системы тарификации , работ по расписанию и т.д. ), например:
sudo timedatectl set-timezone Asia/Novosibirsk
Улучшение работы высоконагруженных серверов
Улучшить работу высоконагруженных серверов можно увеличив лимит открытых файлов.
Для установки лимита открытых файлов необходимо:
Проверить текущий лимит командой:
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
ВАЖНО
Установку пакетов требуется делать НЕ из-под пользователя ssw.Обновление программного обеспечения операционной системы
- Для установки системы ECSS-10 необходимо добавить репозиторий ELTEX:
на новом ssw
sudo sh -c "echo 'deb [arch=amd64] http://archive.eltex.org/ssw/1.8_x86-64/3.18 stable main extras external' >> /etc/apt/sources.list.d/eltex-ecss10-stable.list"BASHДалее необходимо выполнить импорт ключа командой:
на новом ssw
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 33CB2B750F8BB6A5BASHИзменение приоритета репозиториев
Для установки Erlang, Nodejs и Elixir из репозитория 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"CODEPackage: 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"CODEPackage: nodejs*
Pin: version 14.20.0-1nodesource1*
Pin-Priority: 1000Добавить в файл /etc/apt/preferences.d/elixir строки:
на обоих новых хостах
sudo sh -c "echo -e 'Package: elixir*\nPin: version 1.14*\nPin-Priority: 1000' >> /etc/apt/preferences.d/elixir"CODEPackage: elixir*
Pin: version 1.14*
Pin-Priority: 1000Выполнить обновление:
на обоих новых хостах
sudo apt updateCODEЕсли вы видите такое сообщение системы:
W: http://archive.eltex.org/ssw/jammy/3.18/dists/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
Выполните следующую команду:
на новом ssw
sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.dCODEна новом ssw
sudo apt upgradeBASH Настройка сети
Согласно параметрам, заданным в техническом задании, выполним сетевые настройки. В данном примере считается, что необходимая операционная система уже установлена.
Рекомендуется разделять трафик, используемый в разных целях. Например, трафик управления и трафик VoIP. Для этого создаются 2 или более vlan. При небольшой нагрузке для простоты можно обойтись и одним vlan, но это будет в будущем доставлять неудобства при снятии дампов трафика и его анализе. В соответствии с техническим заданием на vlan настраиваются IP-адреса самого хоста, шлюзы, DNS и маршрутизация в другие сети.
В данном примере согласно ТЗ будем использовать адреса:
- 10.0.10.51/24 — для управления, vlan 10;
- 10.0.20.51/24 — для VoIP.
Внутри серверной платформы существует адресная структура и используются внутренние адреса для взаимодействия между подсистемами (нодами) в кластере. Например, внутренний адрес для кластера на одном сервере 127.0.0.1, при этом ядро (ecss-core) взаимодействует с сервером обработки мультимедиа-данных (ecss-media-server). Их взаимодействие происходит с использованием одного и того же адреса, но у каждой программной части свой транспортный порт: ecss-core — 5000, ecss-msr — 5040.
Для всех нод кластера определяется единый адрес для обращения к базе данных, например адрес 127.0.0.1. Таким образом, выполняется условие единообразия, при котором все ноды кластера имеют полностью одинаковые данные о текущем состоянии динамических составляющих программного коммутатора (например, история вызовов).
Сначала настраиваются сетевые интерфейсы. Для их настройки будем использовать утилиту netplan.
По умолчанию в Astra Linux пакет netplan не установлен.
Установить пакеты для обслуживание функции netplan:
на обоих новых хостах
sudo apt install -y dialog libssl1.0.0 netplan.ioCODEДанная утилита позволяет настроить сетевую конфигурацию и затем загрузить ее в систему с помощью сетевого менеджера networkd или NetworkManager.
sudo nano /etc/netplan/ecss_netplan.yamlBASHВсе другие файлы из этого каталога обязательно нужно переместить в другое место или удалить.
В конфигурациях для каждого хоста в первую очередь мы объявляем секцию ethernets, в которой описываются существующие в системе ethernet-интерфейсы, используемые в дальнейшем. Для каждого интерфейса необходимо отключить использование динамического распределения адресов (DHCP).
Далее настраиваются vlan, на которых опционально определяются шлюзы для связи с внешним миром и адреса DNS-серверов, а также непосредственно IP-адреса для каждого интерфейса.
ВАЖНО
Обратите внимание, что во время редактирования netplan необходимо соблюдать правила разметки YAML:
- Обязательное наличие минимум двух пробелов перед каждой строкой (кроме network);
- Каждая подсекция дополнительно сдвигается на 2 пробела:
→ Секция |network
→ Подсекция |_'_'bonds:
→ Подсекция описания секции bonds |_'_'_'_'bonded_one:
→ и т.д. |_'_'_'_'...
- Перед знаком ":" нет пробела, после — один пробел;
- Перед знаком "-" количество пробелов такое, как будто начинается новый подраздел, после — один пробел.
Пример настройки файла ecss-netplan.yaml для варианта включения active-backup
# Netplan для хоста ecss1 программного коммутатора # Обратите внимание на обязательное наличие минимум двух пробелов в каждой строке и секции (кроме строки секции network) network: version: 2 # Версия netplan renderer: networkd # Исполнитель конфигураций netplan ethernets: # Раздел описания интерфейсов ethernet enp0s3: # Название интерфейса ВМ к интернет dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса dhcp6: no addresses: [192.168.56.51/24] enp0s8: # Название интерфейса для SSW dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса dhcp6: no vlans: net.10: # Интерфейс управления id: 10 link: enp0s3 addresses: [10.0.10.51/24] net.20: # Интерфейс для VoIP id: 20 link: enp0s8 addresses: [10.0.20.51/24]Так же рекомендуется проверить отсутствие в каталоге /etc/netplan/ еще каких либо файлов, если другие файлы присутствуют , то их нужно переместить в другой каталог или удалить, в противном случае возможна некорректная настройка сетевых интерфейсов и некорректная работа SSW.
Применим установленные параметры командой:
sudo netplan applyBASHНа серверах системы необходимо настроить параметр "hostname".
На всех серверах системы желательно указать одинаковое имя пользователя (любое, кроме ssw). Лицензия ECSS-10 привязывается к ключу eToken/ruToken и к имени компьютера (hostname), поэтому необходимо использовать стандартные значения. Системный пользователь ssw создается при инсталляции пакета ecss-user.
Если используется один сервер, рекомендуемое значение hostname — ecss1;
Другие имена хостов возможны только при согласовании проекта, это потребуется для генерации лицензий.Указать имя хоста: ecss1 в файле /etc/hostname:
sudo nano /etc/hostnameCODEУказать реальный Ipadd и имя хоста используемое в настоящий момент (для примера 10.0.10.51 ecss1) в файле /etc/hosts:
127.0.0.1 localhost # Адрес локальной петли, используется некоторыми сервисами ecss 10.0.10.51 ecss1 # Адрес хостаCODE
Установка и настройка программного обеспечения
установка пакетов 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 . Обычно это необходимо для тестирования определенного патча, для стандартных обновлений достаточно выбора привычной команды установки /обновления пакета
Устанавливаем все предложенные пакеты:
sudo apt install iptables tcpdump vlan dnsmasq aptitude atop ethtool htop mc minicom mtr-tiny nmap pptpd screen ssh tftpd-hpa sngrep tshark gnuplot debconf-utils keepalived attr bridge-utils ncdu wget rsync
Список обязательного сервисного программного обеспечения:
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 |
Данное программное обеспечение не требуется для работы системы ECSS-10, однако может упростить сервисное обслуживание системы и её отдельных компонентов со стороны инженеров эксплуатации и техподдержки.
Перед началом установки пакетов 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-dns-env
Выполнить следующую команду:
sudo apt install -y ecss-dns-env
Настройщик предложит выбрать разделы для настройки по вопросам ниже. Нужно выбрать broker. (для примера 10.0.10.51)
| Вопрос ecss-dns-env | Ответы для ecss1 | |
|---|---|---|
| [Primary broker] Введите адрес ([Primary broker] Enter ip) | 10.0.10.51 (необходимо ввести) |
|
| [Secondary broker] Введите адрес ([Secondary broker] Enter ip) | 10.0.10.51 (необходимо ввести) |
|
ВАЖНО
В случае последующей коррекции IP-адресов следует использовать команду:
sudo dpkg-reconfigure ecss-dns-env
Установка Postgres
Примечание
Перед установкой ecss-postgres-bdr-ssw в системе, в apt sources, должен быть добавлен docker для этого выполнить следующие команды:
на новом ssw
sudo install -m 0755 -d /etc/apt/keyrings
на новом ssw
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
на новом ssw
sudo chmod a+r /etc/apt/keyrings/docker.asc
на новом ssw
sudo sh -c "echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu jammy stable' >> /etc/apt/sources.list.d/docker.list"
на новом ssw
sudo apt update && sudo apt upgrade
Установка пакета ecss-postgres-bdr-ssw
Выполнить установку пакета ecss-postgres-bdr-ssw:
на новом ssw
sudo apt install ecss-postgres-bdr-ssw
При конфигурации пакета ecss-postgres-bdr-ssw будут заданы вопросы:
| Вопросы ecss-postgres-bdr-ssw | Ответы для ecss1 | Пример |
|---|---|---|
| Текущий IP-адрес сетевого интерфейса (Выбрать адрес ранее используемый MySQL). | Выбрать из списка IP-адрес для работы с Postgres |
|
| Установка в кластере? | No (необходимо выбрать) |
|
. . . ================== Create databases ================== CREATE DATABASE CREATE DATABASE CREATE EXTENSION CREATE EXTENSION =================================== Creating Postgres Exporter Schema =================================== Node IP: localhost CREATE SCHEMA GRANT CREATE FUNCTION CREATE VIEW GRANT CREATE FUNCTION CREATE VIEW GRANT CREATE EXTENSION CREATE FUNCTION CREATE VIEW GRANT ======================================================= ======================================================= ecss-postgres-bdr-ssw successfully installed/updated! ======================================================= ======================================================= ┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓ ┳┓┳┓┳┓ ┏┓┏┓┓ ┏ ┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓ ┣┫┃┃┣┫ ┗┓┗┓┃┃┃ ┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛ ┻┛┻┛┛┗ ┗┛┗┛┗┻┛
Настройка dns-резолвинга
Для корректной работы системы, после установки пакета ecss-node требуется скорректировать дефолтные установки dns-резолвинга. Для этого:
В файле /etc/resolv.conf изменить параметр nameserver установленный системой по умолчанию на 127.0.0.1 (если строк nameserver несколько - остальные удалить/закомментировать):
на новом ssw_ecss1
sudo nano /etc/resolv.conf
search eltex.loc nameserver 127.0.0.1
В Astra Linux после перезагрузки файл /etc/resolv.conf приводится к исходному виду, поэтому его нужно сделать неизменяемым:
на новом ssw_ecss1
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) :
на новом ssw_ecss1
sudo sh -c "echo 'server=8.8.8.8' >> /etc/dnsmasq.d/ecss"
В файле /etc/dnsmasq.d/nameserver указать параметры nameserver-ов используемых в локальной сети (в примере server=127.0.0.1 и server=172.16.0.1):
на новом ssw_ecss1
sudo nano /etc/dnsmasq.d/nameserver
server=127.0.0.1 server=172.16.0.1
Перезапустить сервис:
на новом ssw_ecss1
sudo systemctl restart dnsmasq.service
В случае использования файлового лицензирования
На данном шаге никаких дополнительных действий выполнять не требуется.
Установить пакет License Provider:
на ecss2
sudo apt install ecss-license-provider
При установке пакета ecss-license-provider будут заданы вопросы:
| Вопросы | Ответы | Примеры |
|---|---|---|
Адрес для соединения cLicense Provider: | 0.0.0.0 (значение по умолчанию) |
|
| Порт для соединения c License Provider: License Provider listen port: | 4321 (значение по умолчанию) |
|
| Выберите уровень логирования: Log level: | info (значение по умолчанию), возможные варианты: debug, error, info |
|
| Ключ-имя кластера резервирования: License Provider cluster key: | указать уникальное имя
Менеджеры с одинаковыми именами попытаются собраться в кластер и резервировать друг друга.
|
|
Данные сохраняются в файле - /etc/ecss/ecss-license-provider/config.env:
ECSS_LM_HOST=0.0.0.0 ECSS_LM_PORT=4321 ECSS_LM_LOG_LEVEL=info RELEASE_COOKIE=ecss-abf-lm-cluster
Конфигурация License Provider (LP)
Сервис ecss-license-provider использует два конфигурационных файла: /etc/ecss/ecss-license-provider/config.env и /etc/ecss/ecss-license-provider/config.yaml.
В файл config.env информация сохраняется в момент установки пакета ecss-license-provider.
Сonfig.yaml файл содержит основные настройки для подключения к ELM-серверу, откуда брать лицензии, какие лицензии, и куда их потом передавать, все это нужно сконфигурировать вручную.
информация в файле после установки
elm_addresses: []
licenses: []
ecss_nodes: []
на старом SSW
сat /etc/ecss/ecss-elm-adapter/config.env
ELM_HOST=elm.eltex-co.ru
ELM_PORT=8099
ECSS_PRODUCT_ID=ECSS2000000
ECSS_LICENSE_KEY=ssw987654
LOG_LEVEL=info
LICENCE_FAIL_TIMER_SECONDS=10
LICENCE_PULL_TIMER_SECONDS=360
В поле elm_adresses нужно прописать список серверов ELM, к которым мы хотим подключаться для получения лицензий. Первый адрес в списке используется как основной. Дополнительные строки с адресами работают как резерв.
пример:
- "elm.eltex-co.ru:8099"
- "192.168.111.22:8099"
- "elm-3.eltex.loc:8099"
Дальше задаются сами лицензии в поле licenses.
- id может быть любой, главное чтоб был уникальный у каждой лицензии. Влияет только на адрес лицензии на самом License Provider (например 0, 1, 2, 3).
- kind. Для SSW поддерживается только SSW (заглавными буквами).
- type выбирается как elm, если запрашивать данную лицензию нужно с ELM-сервера. Если нужно использовать файловую лицензию SSW, то тип выбирается как ecss_license.
- при elm типе необходимо задать поля license_key и product_id для идентификации лицензии.
- при ecss_license типе задается поле license, содержащее ключ статичной лицензии.
Параметры license_key = ECSS_LICENSE_KEY и product_id = ECSS_PRODUCT_ID должны быть согласованы с данными, ранее загруженными на ELM-сервере.
Блок ecss_nodes.
В нем нужно задать данные сервисов, которые будут получать лицензию. Сервис задается тремя параметрами:
- id - идентификатор сервиса. В случае с SSW должен совпадать с ECSS_ID лицензируемого SSW.
- kind - тип лицензируемого сервиса. по аналогии с блоком лицензий, поддерживаются типы SSW и AUP. Для SSW поддерживается только SSW.
- license_id - идентификатор лицензии, которая будет отправляться на данный сервис. Соответствует идентификаторам лицензии из блока licenses.
Кроме того, два SSW с одинаковыми ECSS_ID не смогут одновременно получать одну и ту же лицензию с одного License Provider, поэтому крайне важно корректно устанавливать свой ECSS_ID и делать его уникальным как минимум в зоне видимости используемого License Provider.
ECSS_ID указанный в файле /etc/ecss/ecss-license-provider/config.yaml, должен совпадать с ECSS_ID ( идентификатор ECSS-узла) которое указываем при установке пакета ecss-node
При обновлении, имя нового ECSS-узла (ECSS_ID) нужно обязательно указывать отличное от имени старого ECSS-узла. В противном случае при их совпадении сервис ecss-mycelium не активируется.
Формат ECSS_ID.
Начинается и заканчивается обязательно латинской буквой или цифрой, в теле же могут использоваться точки и тире.
[A-Za-z0-9][A-Za-z0-9.-][A-Za-z0-9]
Пример: файла config.yaml на основе данных из файла /etc/ecss/ecss-elm-adapter/config.env
elm_addresses:
- "elm.eltex-co.ru:8099"
licenses:
- id: 0
kind: SSW
type: elm
license_key: "ssw987654"
product_id: "ECSS2000000"
ecss_nodes:
- id: test.update
kind: ssw
license_id: 0
Выполнить перезагрузку сервиса ecss-license-provider.service для обновления конфигурации из файла /etc/ecss/ecss-license-provider/config.yaml следующей командой:
на новом ssw_ecss1
sudo systemctl restart ecss-license-provider.service
Установка ecss-node
Установка обязательного пакета ecss-node включает в себя установку и первоначальную настройку основных подсистем.
В системе уже должен быть установлен пакет ecss-postgres-bdr-ssw
Для установки пакета ecss-node выполните команду:
на новом ssw
sudo apt install -y ecss-node
Во время установки пакета создается пользователь ssw, от имени которого запускаются все сервисы ecss*. Создаются необходимые каталоги, выполняется настройка DNS, идет настройка SSL-сертификатов.
При установке также будет установлен пакет ecss-user
Во время установки будет предложено настроить параметры, необходимые для формирования конфигурационных файлов, примеры ответов следует ниже.
| Вопросы ecss-user | Ответы для ecss1 | Пример |
|---|---|---|
Хотите ли вы использовать стандартные настройки? | Yes (значение по умолчанию) |
|
| Вопросы ecss-node | Ответы для ecss1 | Пример |
Идентификатор ECSS-узла в формате DNS (Настройка имени кластера): (любое уникальное имя, в примере test.update) При обновлении, имя нового ECSS-узла нужно обязательно указывать отличное от имени старого ECSS-узла. В противном случае при их совпадении сервис ecss-mycelium не активируется. Идентификатор ECSS-узла должен совпадать с ECSS_ID указанном в файле конфигурации провайдера лицензий - /etc/ecss/ecss-license-provider/config.yaml.
| test.update (необходимо ввести) Формат ECSS_ID. [A-Za-z0-9][A-Za-z0-9.-][A-Za-z0-9] |
|
| Хотите ли вы использовать стандартные настройки? | Yes (значение по умолчанию) |
|
| Вопросы ecss-user | Ответы для ecss1 | Пример |
| Максимальный размер несжатого дампа в байтах. | 8G (значение по умолчанию) |
|
| Максимальный размер сжатого дампа в байтах. | 2G (значение по умолчанию) |
|
| Максимальный размер, который может занять каталог /var/lib/systemd/coredump: | default (значение по умолчанию) |
|
| Минимальный объем свободного дискового пространства в байтах. | 30G (значение по умолчанию) |
|
Сохраните в безопасное место и удалите файл /etc/ecss/ssl/ecss10root.key! | Ok (значение по умолчанию) |
|
Cookie для ноды core: | ecss-core (необходимо ввести) |
|
Cookie для ноды ds: | ecss-ds (необходимо ввести) |
|
Cookie для ноды mediator: | ecss-mediator (необходимо ввести) |
|
Cookie для ноды pa-sip: | ecss-pa-sip (необходимо ввести) |
|
Cookie для ноды mycelium: | ecss-mycelium (необходимо ввести) |
|
Cookie для ноды sorm: | ecss-sorm (необходимо ввести) |
|
Проверяем состояние синхронизации, используется команда ntpq –p . Если использовать дополнительный ключ –n, вместо имени сервера будет указан IP-адрес:
ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*185.125.190.56 17.253.28.253 2 u 45 64 1 83.893 +0.470 2.177
Останавливаем сервисы выполнив команду:
на новом ssw_ecss2
sudo systemctl stop ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium
Создать backup для oasys (скопировать БД Mnesia со старого на новый ecss1), выполнить следующие команды:
на новом ssw
cd /var/lib/ecss/oasys/
на новом ssw
sudo rsync -a <Ваш_пользователь>@<IP_add_старого_сервера>:/var/lib/ecss/oasys/Mnesia.ds1@ecss1/ Mnesia.ds1@ecss1/
на новом ssw
sudo rsync -a <Ваш_пользователь>@<IP_add_старого_сервера>:/var/lib/ecss/oasys/Mnesia.md1@ecss1/ Mnesia.md1@ecss1/
на новом ssw
cd ~
Перезапустить сервисы SSW:
на новом ssw
sudo systemctl restart ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium
Если лицензия поддерживает СОРМ3, то запустить также сервис ecss-sorm.
на новом ssw
sudo systemctl start ecss-sorm
Проверить статус сервисов, для этого выполнить в CoCon команду system-status:
/system-status Checking... ┌─┬───────────────┬─────────────────────────┬───────────────┬────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes│Uptime│ ├─┼───────────────┼─────────────────────────┼───────────────┼────────────┼──────┤ │ │core1@ecss1 │ecss-core-3.18.0.271 │core1@ecss1 │not running │3m 55s│ │ │ds1@ecss1 │ecss-ds-3.18.0.271 │ds1@ecss1 │ds1@ecss1 │4m 40s│ │ │md1@ecss1 │ecss-mediator-3.18.0.271 │md1@ecss1 │md1@ecss1 │3m 50s│ │ │mycelium1@ecss1│ecss-mycelium-3.18.0.271 │mycelium1@ecss1│not running │5m 28s│ │ │sip1@ecss1 │ecss-pa-sip-3.18.0.271 │sip1@ecss1 │sip1@ecss1 │3m 45s│ │ │sorm1@ecss1 │ecss-sorm-3.18.0.271 │sorm1@ecss1 │not running │1m 55s│ └─┴───────────────┴─────────────────────────┴───────────────┴────────────┴──────┘
Режимы лицензирования.
Лицензирование с использованием файловой лицензии
В случае использования файлового лицензирования
Никаких дополнительных действий выполнять не требуется.
/cluster/storage/ds1/licence/list-licence ┌──┬───────────────────┬────────────────┬──────┬────────────────────────────────────────────┬────────────────────┬────────────┐ │Id│Creation date(UTC) │ SSW ID │Active│ Description │Expiration date(UTC)│ Time left │ ├──┼───────────────────┼────────────────┼──────┼────────────────────────────────────────────┼────────────────────┼────────────┤ │1 │31.10.2025 14:16:00│ECSS 010070 │* │Eltex SC softswitch │31.12.2026 23:59:59 │224d 21h 31m│ │0 │ │ECSS DEFAULT │ │Default licence │ │ │ └──┴───────────────────┴────────────────┴──────┴────────────────────────────────────────────┴────────────────────┴────────────┘
Лицензирование с использованием ELM сервиса
Выполнить конфигурацию подключения SSW к License Provider следующей командой в CoCon, (в примере License Provider установлен на хосте ecss1, IPadd хостов 10.0.10.51. Значение порта из файла /etc/ecss/ecss-license-provider/config.env по умолчанию 4321):
выполняется в CoCon
/system/licence/manager/set --hosts [https://10.0.10.51:4321]
После выполнения проверить статус подключения командой:
выполняется в CoCon
/system/licence/manager/show-status
┌───────────────────────┬───────┬─────┐
│ Host │Current│Alive│
├───────────────────────┼───────┼─────┤
│https://10.0.10.51:4321│* │true │
└───────────────────────┴───────┴─────┘
Хост должен иметь статус alive=true. И быть "current".
- Current - отображает к какому хосту подключён SSW. Если есть подключение, указывается *, если нет - ничего не указано.
- Alive - отображает статус доступности хоста (healthcheck).
Подключение к License Manager
Отсутствие подключения к License Provider \ ELM будет равноценно отсутствию доступа к токену, что приведёт к критическим авариям, переходу в аварийный режим по истечению которого, если связь не будет восстановлена, система перейдёт на Default-лицензию.
Данное поведение применимо только при работе в elm-режиме.
Если статус к одному из хостов License Provider показан current, можно посылать запрос на загрузку лицензии на SSW командой:
выполняется в CoCon
/cluster/storage/ds1/licence/request
type=elm
/cluster/storage/ds1/licence/request
Licence received
[******* ] 6s 2ms
Success: Licence parameters applied
type=elm
/cluster/storage/ds1/licence/list-licence
┌──┬───────────────────┬────────────┬──────┬────────────────┬────────────────────┬────────────────────┬─────────┐
│Id│Creation date(UTC) │ SSW ID │Active│ Description │Comm. Exp. Date(UTC)│Expiration date(UTC)│Time left│
├──┼───────────────────┼────────────┼──────┼────────────────┼────────────────────┼────────────────────┼─────────┤
│1 │14.04.2026 11:18:34│ECSS2000000 │* │ECSS ELM License│09.04.2027 16:26:34 │06.06.2026 10:49:12 │1d 6h 59m│
│0 │01.01.1990 00:00:00│ECSS DEFAULT│ │Default licence │ │ │ │
└──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────────────┴─────────┘
Установка пакетов ecss-restf, ecss-media-server, ecss-web-conf
Далее устанавливаются пакеты ecss-restf затем ecss-media-server, ecss-media-resources, , ecss-web-conf и другие в любом порядке:
ecss-restfs
на новом ssw
sudo apt install -y ecss-restfs
Установка ecss-restfs.
При его установке будет предложено настроить конфигурацию при помощи вопросов: , также инсталлятор предложит установить и настроить пакет Text2speech от Yandex.
| Вопросы ecss-restfs | Ответы |
|---|---|
Использование функции TTS (Use TTS service) | No (значение по умолчанию) |
Настройка телефонной книги (Configure phone book) | No (значение по умолчанию) |
Настроить сервис определения речи (Configure speech recognition service) | No (значение по умолчанию) |
Ничего не выбирать | Ok |
после установки пакета ecss-restfs проверьте наличие wav файлов автоинформатора в директории /var/lib/ecss/restfs/system/sounds/ командой :
ll /var/lib/ecss/restfs/system/sounds/
наличие порядка 140 wav файлов в указной выше директории говорит о корректности установки пакета ecss-restfs
Отсутствия wav файлов в указной выше директории, говорит о проблеме при установки пакета ecss-restfs. Для ее решения выполните команду:
sudo apt --fix-broken install
и повторите команду проверки:
ll /var/lib/ecss/restfs/system/sounds/
осталось проверить доступность этих файлов извне, для этой проверки выполним команду:
wget http://ecss1:9990/system/sounds/ai_you.wav
wget http://ecss1:9990/system/sounds/ai_you.wav
--2026-04-18 17:43:29-- http://ecss1:9990/system/sounds/ai_you.wav
Resolving ecss1 (ecss1)... 127.0.1.1, 10.0.10.51
Connecting to ecss1 (ecss1)|127.0.1.1|:9990... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11670 (11K) [audio/x-wav]
Saving to: ‘ai_you.wav’
ai_you.wav 100%[========================================================================================>] 11,40K --.-KB/s in 0s
2026-04-18 17:43:29 (301 MB/s) - ‘ai_you.wav’ saved [11670/11670]
проверочный файл можно удалить
rm ai_you.wav
Перенести записи разговоров со старого сервера на новый, выполнив следующую команду:
на новом ecss1
sudo rsync -a <ваш_пользователь>@<IP_add_старого_ecss1>:/var/lib/ecss/restfs/domain/ /var/lib/ecss/restfs/domain/
Пример:
abf@ecss1:/var/lib/ecss/restfs/domain$ ls -la /var/lib/ecss/restfs/domain
итого 8
drwxr-xr-x 2 www-data www-data 4096 апр 22 18:21 .
drwxr-xr-x 7 www-data www-data 4096 мая 28 15:07 ..
abf@ecss1:/var/lib/ecss/restfs/domain$ sudo rsync -a abf@10.0.10.10:/var/lib/ecss/restfs/domain/ /var/lib/ecss/restfs/domain/
abf@ecss1:/var/lib/ecss/restfs/domain$ ls -la test_domain/records/2026_05_28
итого 610
drwxrwxrwx 2 www-data www-data 4096 мая 28 14:56 .
drwxrwxrwx 3 www-data www-data 4096 мая 28 14:27 ..
-rw-r--r-- 1 www-data www-data 71892 мая 28 14:27 2026-05-28_14-27-02_t_42009-42007.pcm
-rw-rw-rw- 1 www-data www-data 86 мая 28 14:27 2026-05-28_14-27-02_t_42009-42007.pcm.meta
-rw-r--r-- 1 www-data www-data 71892 мая 28 14:31 2026-05-28_14-31-19_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data 86 мая 28 14:31 2026-05-28_14-31-19_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 63904 мая 28 14:55 2026-05-28_14-55-24_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data 86 мая 28 14:55 2026-05-28_14-55-24_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 39940 мая 28 14:55 2026-05-28_14-55-31_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data 86 мая 28 14:55 2026-05-28_14-55-31_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 15976 мая 28 14:55 2026-05-28_14-55-37_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data 86 мая 28 14:55 2026-05-28_14-55-37_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 79880 мая 28 14:55 2026-05-28_14-55-48_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data 86 мая 28 14:55 2026-05-28_14-55-48_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 55916 мая 28 14:56 2026-05-28_14-55-59_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data 86 мая 28 14:55 2026-05-28_14-55-59_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 47928 мая 28 14:56 2026-05-28_14-56-04_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data 86 мая 28 14:56 2026-05-28_14-56-04_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 31952 мая 28 14:56 2026-05-28_14-56-28_t_42009-42007.pcm
-rw-rw-rw- 1 www-data www-data 86 мая 28 14:56 2026-05-28_14-56-28_t_42009-42007.pcm.meta
-rw-r--r-- 1 www-data www-data 31952 мая 28 14:56 2026-05-28_14-56-37_t_42009-42007.pcm
-rw-rw-rw- 1 www-data www-data 86 мая 28 14:56 2026-05-28_14-56-37_t_42009-42007.pcm.meta
-rw-r--r-- 1 www-data www-data 95856 мая 28 14:56 2026-05-28_14-56-42_t_42009-42007.pcm
-rw-rw-rw- 1 www-data www-data 86 мая 28 14:56 2026-05-28_14-56-42_t_42009-42007.pcm.meta
ecss-media-server
на новом ssw
sudo apt install -y ecss-media-server
Для медиасервера (ecss-media-server/MSR) возможно начальное конфигурирование с записью параметров в файл конфигурации,
для этого нужно провести конфигурацию transport bind-addr,mcc bind-addres:
Указать IP адреса старого SSW версии 3.17 (в примере 10.0.20.41).
| Вопросы ecss-media-server | Ответы для ecss1 |
|---|---|
| [ MSR SIP ] Введите bind-ip адрес (Enter) | 10.0.20.41 (необходимо ввести) |
| [MSR Control-Channel] Введите bind-ip-адрес | 10.0.20.41 (необходимо ввести) |
После формирования конфигураций по умолчанию производим проверку:
cat /etc/ecss/ecss-media-server/config.xml
Внутри лежит конфигурация для msr: config.xml, в директории conf.d лежит конфигурация default.xml.
По своей сути default.xml — это дополнение config.xml, которое определяет секцию аккаунтов. Это сделано для того, чтобы после обновлений пакета данная конфигурация оставалась неизменной. Вид config.xml представлен здесь: файл конфигурации.
<?xml version="1.0" encoding="utf-8"?>
<config date="09:24:23 03.12.2025">
<general log-level="3" log-rotate="yes" max-calls="2148" max-vid-calls="100" 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.41" 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="4496" 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" silent-codec-switch="yes" 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" dtmf-tg-fpc-loop="10" dtmf-tg-fit="1" dtmf-tg-fot="2" dtmf-tg-volume="12288"/>
<codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g726="0" 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.41" port="5700"/>
</pbyte>
<conf_dir path="/etc/ecss/ecss-media-server/conf.d"/>
<metrics enable="yes" use-pushgateway="yes" pushgateway-addr="127.0.0.1:9091" push-interval="5" port="8100" msr_name="msr2"/>
<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" g726="0" 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" g726="11" 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". В этом случае они будут работать не корректно/игнорироваться.
За исключением "0" - выключено.
Рассмотрим секцию аккаунтов (файл default.xml):
cat /etc/ecss/ecss-media-server/conf.d/default.xml
Проверить на корректность данных.
Настройка msr для ecss1(/etc/ecss/ecss-media-server/conf.d/default.xml)
<?xml version="1.0"?>
<config>
<accounts>
<dynamic msr_name="msr.ecss1" realm="sip:10.0.20.41:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password">
<via dynamic-ifaces="no">
<iface name="net.20" ip="10.0.20.41"/>
</via>
</dynamic>
</accounts>
</config>
В ней указаны текущие настройки, согласно которым происходит регистрация msr на core.
Основными параметрами здесь являются: msr_name и realm:
- msr_name — параметр, определяющий название msr. (рекомендуется задавать название msr. и к какому хосту он принадлежит, например msr.ecss1);
- realm — определяет адрес для регистрации на ядре. Точка входа по умолчанию: порт 5000, адрес: 127.0.0.1.
После изменения конфигурации файлов /etc/ecss/ecss-media-server/config.xml и /etc/ecss/ecss-media-server/conf.d/default.xml необходимо выполнить перезапуск сервиса ecss-media-server, чтобы изменения вступили в силу, следующей командой:
sudo systemctl restart ecss-media-server
Вы увидите сообщение:
Job for ecss-media-server.service failed because the control process exited with error code.
See "systemctl status ecss-media-server.service" and "journalctl -xeu ecss-media-server.service" for details.
Мы указали рабочие IP адреса для media сервиса, а они пока закреплены за старым ecss1. После переключения IP адресов сервис запустится автоматически.
ecss-web-conf
на новом ssw
sudo apt install ecss-web-conf
Web-конфигуратор позволяет сделать управление системой более наглядным и комфортным. Установка web-конфигуратора не является обязательной, но рекомендуется.
Также при установке пакета ecss-web-conf автоматически устанавливается пакет ecss-subsriber-portal-ui. Приложение "Портал абонента" системы ECSS-10 позволяет абонентам системы самостоятельно управлять услугами, просматривать информацию по совершенным вызовам, активным конференциям, а также настраивать собственные IVR-скрипты для входящих вызовов. Описание работы веб-конфигуратора приведено в разделе "Портал абонента".
| Вопросы ecss-web-conf | Ответы для ecss1 | Пример |
|---|---|---|
| Хотите ли вы использовать стандартные настройки? | Yes (значение по умолчанию) |
|
Проверьте возможность подключение к web интерфейсу http://10.0.10.51, пользователь/пароль - admin/password, в настоящий момент не все функции будут доступны, но web интерфейс должен быть рабочий и логин успешный.
Отключение SSW версии 3.17
Для отключения старого SSW версии 3.17 выполнить следующие команды:
Отключение сервисов
на старом SSW
sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm
Копирование БД Postgres
Скопировать БД Postgres со старого eccs1, для этого выполнить команду:
на старом SSW
sudo tar -Pcvf /tmp/postgres.tar /srv/ecss/ecss-postgres-bdr-ssw/volumes/
Скопировать postgres.tar на новый сервер, выполнив команду:
на старом SSW
scp /tmp/postgres.tar <ваш_пользователь>@<IP_адрес_новый_ecss1>:/tmp/postgres.tar
Остановить docker БД Postgres командой:
на новом ssw
sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml stop
Отчистить подкаталог/srv/ecss/ecss-postgres-bdr-ssw/volumes:
на новом ssw_ecss1
sudo rm -R /srv/ecss/ecss-postgres-bdr-ssw/volumes/*
Распаковать БД Postgres на новом сервере ecss1.
на новом ssw_ecss1
sudo tar xvf /tmp/postgres.tar -C /
Запустить docker БД Postgres командой:
на новом ssw
sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml start
Замена IP адресов на старом ecss1
Изменить IP адреса 10.0.10.41/10.0.20.41 на неиспользуемые на сети (для примера на 10.0.10.61/10.0.20.61):
на старом SSW
sudo nano /etc/netplan/ecss.yaml
Было:
network:
version: 2
renderer: networkd
ethernets:
enp0s3: # Название интерфейса ВМ к интернет
dhcp4: yes
dhcp6: no
enp0s8: # Название интерфейса для SSW
dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса
dhcp6: no
addresses: [192.168.56.41/24]
vlans:
net.10: # Интерфейс управления
id: 10
link: enp0s8
addresses: [10.0.10.41/24]
nameservers:
addresses: [127.0.0.1, 8.8.8.8] # Адреса серверов DNS
net.20: # Интерфейс для VoIP
id: 20
link: enp0s8
addresses: [10.0.20.41/24]
routes:
- to: 10.0.20.128/25
via: 10.0.20.35
Стало:
network:
version: 2
renderer: networkd
ethernets:
enp0s3: # Название интерфейса ВМ к интернет
dhcp4: yes
dhcp6: no
enp0s8: # Название интерфейса для SSW
dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса
dhcp6: no
addresses: [192.168.56.61/24]
vlans:
net.10: # Интерфейс управления
id: 10
link: enp0s8
addresses: [10.0.10.61/24]
nameservers:
addresses: [127.0.0.1, 8.8.8.8] # Адреса серверов DNS
net.20: # Интерфейс для VoIP
id: 20
link: enp0s8
addresses: [10.0.20.61/24]
routes:
- to: 10.0.20.128/25
via: 10.0.20.35
на старом SSW
sudo netplan apply
Переключение нового SSW на рабочие IP адреса
После освобождения рабочих IP адресов со старого SSW можно подключить их к новому SSW. Выполнить команду:
на новом ssw
sudo nano /etc/netplan/ecss.yaml
Изменить IP адреса 10.0.10.51/10.0.20.51 на используемые на сети для SSW (в примере 10.0.10.41/10.0.20.41):
Было:
network:
version: 2
renderer: networkd
ethernets:
enp0s3: # Название интерфейса ВМ к интернет
dhcp4: yes
dhcp6: no
enp0s8: # Название интерфейса для SSW
dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса
dhcp6: no
addresses: [192.168.56.51/24]
vlans:
net.10: # Интерфейс управления
id: 10
link: enp0s8
addresses: [10.0.10.51/24]
nameservers:
addresses: [127.0.0.1, 8.8.8.8] # Адреса серверов DNS
net.20: # Интерфейс для VoIP
id: 20
link: enp0s8
addresses: [10.0.20.51/24]
routes:
- to: 10.0.20.128/25
via: 10.0.20.35
Стало:
network:
version: 2
renderer: networkd
ethernets:
enp0s3: # Название интерфейса ВМ к интернет
dhcp4: yes
dhcp6: no
enp0s8: # Название интерфейса для SSW
dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса
dhcp6: no
addresses: [192.168.56.41/24]
vlans:
net.10: # Интерфейс управления
id: 10
link: enp0s8
addresses: [10.0.10.41/24]
nameservers:
addresses: [127.0.0.1, 8.8.8.8] # Адреса серверов DNS
net.20: # Интерфейс для VoIP
id: 20
link: enp0s8
addresses: [10.0.20.41/24]
routes:
- to: 10.0.20.128/25
via: 10.0.20.35
на новом ssw
sudo netplan apply
Обновить IP адрес в файле /etc/hosts:
на новом ssw
sudo nano /etc/hosts
Обновить IP адрес в файле /etc/dnsmasq.d/ecss-broker:
на новом ssw
sudo dpkg-reconfigure ecss-dns-env
выполняется в CoCon
/system/licence/manager/set --hosts [https://10.0.10.41:4321]
на новом ssw
sudo systemctl restart ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-media-server
Проверка обновления
После выполнения обновления проверьте работу всех сервисов SSW.












