Обновление с версии 3.14.15 на 3.14.16 Astra
Обновление с версии 3.14.15 на 3.14.16
1 Подготовительные действия на ecss2
- Выполнить полный «бэкап» (см. «Регламентное обслуживание и резервное копирование»).
- Если нужны последние данные биллинга, то необходимо финализировать текущую cdr и скачать CDR файлы на удаленный сервер:
/domain/test_domain/cdr/make_finalize_cdr Created file(s): cdr_20250822_11_51_16_1_c.csv
- Включить настройку для автоматической синхронизации файлов, находящихся в сплите (по большему размеру). Подробнее см. "Проблемы связанные с возникновением split-brain" .на ecss1
sudo gluster volume set ecss_volume cluster.favorite-child-policy size
- При обновлении кластера следует обновлять сервера по очереди. Таким образом, при обновлении один из серверов будет всегда запущен и работа сервисов не будет прервана. Для разделения кластера следует использовать инструмент ecss-control на обоих серверах (Описание команд утилиты приведено в «Приложении Н»).
Обмен sip сигнализацией происходит через SIP-VRRP IP адрес. Аналогичным образом, через MySQL-VRRP IP адрес, происходит подключение к MySQL. Этот функционал реализован для возможности миграции Ip адреса на другой хост в случае падения/отключения/техобслуживания основного хоста. Контроль миграции IP адресов осуществляется сервисом keepalive на каждом хосте. Для перевода трафика на первый сервер (ecss1), необходимо выключить keepalive на втором хосте (ecss2). В этом случае оба SIP-VRRP IP адреса, а так же MySQL-VRRP IP адрес, будут находится на первом хосте (ecss1). Выполнить следующую команду:на ecss2
sudo systemctl disable --now keepalived.serviceCODE - Командой ifconfig проверить, что все VRRP IP-адреса находятся на ecss1 (VRRP-mysql/VRRP-SIP1/VRRP-SIP2).
на ecss1
ifconfigCODE - На ecss1 выполнить разделение SSW на два независимых сервера следующей командой:
Команда ecss-control работает со стандартными именами хостов : ecss1/ecss2.
Проверить статус:на ecss1
sudo ecss-control detachCODEна ecss1
sudo ecss-control statusCODEРезультат:sudo ecss-control detach detach host: ecss2, ip: 10.0.10.82 complete sudo ecss-control status locked ip: 10.0.10.82
Если после разделения на первом хосте при попытке вызова/регистрации появляется ошибка "503 Service Unavailable". То на проблемном хосте выполните следующие команды: ecss-attach ecss-pa-sip
ecss-attach ecss-pa-sip ********************************************************************************* ! You attached to systemd-service ecss-pa-sip: sip1@ecss1. ! ! To exit, press Ctrl+C, Ctrl+C. ! ********************************************************************************* Erlang/OTP 21 [erts-10.3.5.10] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] Eshell V10.3.5.10 (abort with ^G) (sip1@ecss1)1> sip_config:tring_is_connected(). false (sip1@ecss1)2> sip_config:tring_is_connected(true). ok (sip1@ecss1)3> sip_config:tring_is_connected(). true
- После разделения кластера необходимо замаскировать все ноды на сервере, который будет обновляться первым:
на ecss2
sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sormCODEНода sorm идет одна на кластер. В случае её работы на ecss1, при выполнении приложенной команды будет уведомление.
Unit /etc/systemd/system/ecss-sorm.service is masked, ignoring.
Данное сообщение не является ошибкой. Продолжать выполнение процедуры.
2 Подготовка к обновлению сервисов SSW на ecss2
- Выполнить сплит на ecss2:
Команда ecss-control работает со стандартными именами хостов : ecss1/ecss2.
на ecss2
sudo ecss-control detachCODE - Актуализировать репозиторий ssw:
на ecss2
sudo sh -c "echo deb [arch=amd64] http://archive.eltex.org/ssw/1.7_x86-64/3.14.16.1 stable main extras external > /etc/apt/sources.list.d/eltex-ecss10-stable.list"CODE - Временно зафиксировать версию пакетов ecss-*, на которые надо будет обновиться:
на ecss2
sudo sh -c "echo 'Package: ecss-*\nPin: version 14.16.1.*\nPin-Priority: 1001\n\nPackage: erlang*\nPin: version 2:24.3.10*\nPin-Priority: 1001' >> /etc/apt/preferences.d/eltex-ecss10"CODE - Выполнить обновление пакетов:
на ecss2
sudo apt updateCODE
- Выполнить сплит на ecss2:
3 Обновление сервисов SSW на ecss2
- Обновление пакета ecss-dns-env:
на ecss2
sudo apt install ecss-dns-envCODEПри обновлении нужно применить новые конфигурационные файлы (подтверждением -Y)
После обновления, нужно актуализировать конфигурацию, выполнив команду. Ответы на вопросы аналогичны процедуре инсталляции:на ecss2
sudo dpkg-reconfigure ecss-dns-envCODE Выполнить обновление пакета ecss-user:
на ecss2
sudo apt install ecss-userCODEОбновление пакета ecss-mysql:
Установить пакет ecss-mysql:
на ecss2
sudo apt install ecss-mysqlCODEПри установке на вопрос "Path for external data-directory, where will be created tables of databases" надо указать внешнюю директорию хранения таблиц баз данных, либо принять значение по умолчанию.
ответы на вопросы конфигураторa
Проверьте и при необходимости актуализируйте параметры в "/etc/ecss/ecss-mysql/mysql-checker.conf".Переменная "MASTER_HOST_IP" - это VRRP-адрес для MySQL, определенный в конфигурации keepalived .
- Включите ecss-mysql-checker.timer:
на ecss2
sudo systemctl enable --now ecss-mysql-checker.timerCODE - Обновление Erlang и SSW.
Перед обновлением включить сервисы ssw следующими командами:на ecss2
sudo systemctl unmask ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sormCODEна ecss2
sudo systemctl enable ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sormCODE
Перед обновлением, удалить устаревшую версию Erlang. Команда ниже обновит Erlang до версии 24.3, а также обновит до новейшей версии пакеты ecss-node и ecss-utils:на ecss2
sudo apt remove erlang-base-hipeCODEПосле обновления Erlang демаскировать сервис, который был маскирован при удалении erlang-base-hipe:Если Erlang не обновился, удалением старого пакета, то сначала обновить ecss-node и ecss-utils, а затем обновить весь Erlang:
на ecss2
sudo apt install ecss-node ecss-utilsCODEна ecss2
sudo apt install erlangCODEна ecss2
sudo systemctl unmask epmd.socket epmd.serviceCODE - Запуск SSW на ecss2.
запустить следующие сервисы:
ecss-myceliumecss-dsна ecss2
sudo systemctl start ecss-myceliumCODEecss-coreна ecss2
sudo systemctl start ecss-dsCODEecss-mediatorна ecss2
sudo systemctl start ecss-coreCODEна ecss2
sudo systemctl start ecss-mediatorCODEЕсли лицензия поддерживает СОРМ3, то запустить также сервис ecss-sorm.
на ecss2
sudo systemctl start ecss-sormCODEЕсли сервис ecss-sorm оказался замаскирован, то выполнить следующие команды:
на ecss2
sudo systemctl unmask ecss-sorm sudo systemctl start ecss-sormCODEДля корректной работы SORM3 необходимо выполнить коррекцию команды для sorm экстрактора. Данную команду необходимо выполнить для каждого домена в SSW.
выполняется в CoCon
/domain/<Имя_домена>/sorm3/set extractor_node sorm1@ecss2CODEДля примера:/domain/test_domain/sorm3/info┌──────────────────┬───────────┬───────────┐│ Property │ Domain │ Value │├──────────────────┼───────────┼───────────┤│adaptation │test_domain│undefined ││enabled │test_domain│false ││entrypoint_profile│test_domain│ ││extractor_ip │test_domain│127.0.0.1 ││extractor_node │test_domain│sorm1@ecss1│└──────────────────┴───────────┴───────────┘/domain/test_domain/sorm3/set extractor_node sorm1@ecss2Property "extractor_node" successfully changed from:sorm1@ecss1tosorm1@ecss2./domain/test_domain/sorm3/info┌──────────────────┬───────────┬───────────┐│ Property │ Domain │ Value │├──────────────────┼───────────┼───────────┤│adaptation │test_domain│undefined ││enabled │test_domain│false ││entrypoint_profile│test_domain│ ││extractor_ip │test_domain│127.0.0.1 ││extractor_node │test_domain│sorm1@ecss2│└──────────────────┴───────────┴───────────┘Команду повторить для всех доменов в SSW
- Проверить статус сервисов, для этого выполнить в CoCon команду system-status:выполняется в CoCon
/system-status Checking... ┌─┬───────────────┬────────────────────────────┬───────────────┬────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes│Uptime│ ├─┼───────────────┼────────────────────────────┼───────────────┼────────────┼──────┤ │ │core1@ecss2 │ecss-core-3.14.16.1.130 │core1@ecss2 │not running │2m 27s│ │ │ds1@ecss2 │ecss-ds-3.14.16.1.130 │ds1@ecss2 │ds1@ecss2 │2m 32s│ │ │md1@ecss2 │ecss-mediator-3.14.16.1.130 │md1@ecss2 │md1@ecss2 │2m 16s│ │ │mycelium1@ecss2│ecss-mycelium-3.14.16.1.130 │mycelium1@ecss2│not running │2m 39s│ │ │sorm1@ecss2 │ecss-sorm-3.14.16.1.130 │sorm1@ecss2 │not running │1m 56s│ └─┴───────────────┴────────────────────────────┴───────────────┴────────────┴──────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼─────────────┼───────────┼───────────┤ │ core1@ecss2 │ msr.ecss1 │ 3.14.15.243 │ connected │ 00:00:10 │ │ │ msr.ecss2 │ 3.14.15.243 │ connected │ 00:00:10 │ └─────────────┴───────────┴─────────────┴───────────┴───────────┘
- Обновление пакета ecss-restfs. Принять все новые конфигурационные файлы, выбирая Y.
на ecss2
sudo apt install ecss-restfsCODE - Обновление пакета ecss-media-server.
Предварительно отключить регистрацию на рабочий хост ecss1. Для этого надо закомментировать в конфигурационном файле строку с realm рабочего хоста (в примере realm="sip:10.0.20.81:5000"), следующей командой (добавив <!- - вначале строки , и - -> в конце строки ), следующей командой:на ecss2
sudo nano /etc/ecss/ecss-media-server/conf.d/default.xmlCODEВыполнить обновление:пример<?xml version="1.0"?> <config> <accounts> <!--<dynamic msr_name="msr.ecss2" realm="sip:10.0.20.81:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password"/>--> <dynamic msr_name="msr.ecss2" realm="sip:10.0.20.82:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password"/> </accounts> </config>Актуализировать конфигурацию:на ecss2
sudo apt install ecss-media-serverCODEВыполнить проверку, и при необходимости отредактировать файл командой :на ecss2
sudo dpkg-reconfigure ecss-media-serverCODEна ecss2
sudo nano /etc/ecss/ecss-media-server/config.xmlCODEпример
<?xml version="1.0" encoding="utf-8"?> <config date="16:54:35 20.02.2025"> <general log-level="3" log-rotate="yes" max-calls="8192" max-vid-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.80" 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" 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.82" port="5700"/> </pbyte> <conf_dir path="/etc/ecss/ecss-media-server/conf.d"/> <metrics enable="no" msr_name="msr" port="8100"/> <rtp> <auto addr-v4=""/> </rtp> </config>CODE - Обновление пакета ecss-media-resources:
на ecss2
sudo apt install ecss-media-resourcesCODE Обновление пакета ecss-web-conf
на ecss2
sudo apt install ecss-web-confCODEОбновление пакета ecss-teleconference-ui
на ecss2
sudo apt install ecss-teleconference-uiCODEОбновление пакета ecss-crm-server
на ecss2
sudo apt install ecss-crm-serverCODEОбновление пакета ecss-cc-ui
на ecss2
sudo apt install ecss-cc-uiCODEОбновление пакета ecss-call-api
на ecss2
sudo apt install ecss-call-apiCODEОбновление пакета ecss-elph-api
на ecss2
sudo apt install ecss-elph-apiCODE- Перед переводом keepalived на обновленный хост необходимо скопировать актуальную базу ds с ecss1 (иначе база регистраций будет пустая). Поэтому сначала делаем backup БД Mnesia на ecss1:
выполняется в CoCon
/node/ds1@ecss1/oasys/backupCODEОстанавливаем ecss-ds на ecss2:admin@[mycelium1@ecss1#ECSS 000089]:/$ /node/ds1@ecss1/oasys/backup Backup was successfully created at the path: "/var/lib/ecss/oasys/Mnesia.ds1@ecss1_20250930081517" [exec at: 30.09.2025 15:15:18, exec time: 1s 68ms, nodes: ds1@ecss1 v.3.14.15.24.4]
Командой scp копируем backup c ecss1 на ecss2.на ecss2
sudo systemctl stop ecss-dsCODEВыполняем локальную копию текущей конфигурации:на ecss2
scp -r ecss@ecss1:/var/lib/ecss/oasys/Mnesia.ds1@ecss1_20250930081517 /var/lib/ecss/oasysCODEЗаменяем локальную конфигурацию на конфигурацию backup c ecss1:на ecss2
sudo cp -a /var/lib/ecss/oasys/Mnesia.ds1@ecss2 /var/lib/ecss/oasys/Mnesia.ds1@ecss2-bkpCODEна ecss2
sudo mv /var/lib/ecss/oasys/Mnesia.ds1@ecss1_20250930081517 /var/lib/ecss/oasys/Mnesia.ds1@ecss2CODEЗапустить ecss-ds и ecss-pa-sip (чтобы подгрузились актуальные регистрации абонентов):на ecss2
sudo chown -R ssw:ssw /var/lib/ecss/oasysCODEна ecss2
sudo systemctl start ecss-dsCODEПроверить статус сервисов командой /system-status :на ecss2
sudo systemctl start ecss-pa-sipCODEвыполняется в CoCon
/system-status Checking... ┌─┬───────────────┬────────────────────────────┬───────────────┬────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes│Uptime│ ├─┼───────────────┼────────────────────────────┼───────────────┼────────────┼──────┤ │ │core1@ecss2 │ecss-core-3.14.16.1.130 │core1@ecss2 │not running │2m 27s│ │ │ds1@ecss2 │ecss-ds-3.14.16.1.130 │ds1@ecss2 │ds1@ecss2 │2m 32s│ │ │md1@ecss2 │ecss-mediator-3.14.16.1.130 │md1@ecss2 │md1@ecss2 │2m 16s│ │ │mycelium1@ecss2│ecss-mycelium-3.14.16.1.130 │mycelium1@ecss2│not running │2m 39s│ │ │sip1@ecss2 │ecss-pa-sip-3.14.16.1.130 │sip1@ecss2 │sip1@ecss2 │2m 22s│ │ │sorm1@ecss2 │ecss-sorm-3.14.16.1.130 │sorm1@ecss2 │not running │1m 56s│ └─┴───────────────┴────────────────────────────┴───────────────┴────────────┴──────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼─────────────┼───────────┼───────────┤ │ core1@ecss2 │ msr.ecss1 │ 3.14.15.243 │ connected │ 00:00:10 │ │ │ msr.ecss2 │ 3.14.15.243 │ connected │ 00:00:10 │ └─────────────┴───────────┴─────────────┴───────────┴───────────┘CODE - Запуск сервиса keepalived
на ecss2
sudo systemctl enable --now keepalivedCODE - После обновления сервисов удалить файл фиксации версии ssw:
на ecss2
sudo rm /etc/apt/preferences.d/eltex-ecss10CODE
- Обновление пакета ecss-dns-env:
4 Подготовительные действия на ecss1
- Выполнить полный «бэкап» (см. «Регламентное обслуживание и резервное копирование»).
- Подготовить ecss1 к обновлению, для этого, перевести весь трафик на ecss2 (команда выполняется на ecss1):
на ecss1
sudo systemctl disable --now keepalived.serviceCODE - Командой ifconfig проверьте, что все VRRP адреса (VRRP IP-mysql / VRRP IP-SIP1 / VRRP IP-SIP2) находятся на ecss2.
на ecss2
ifconfigCODEЕсли после переключения на ecss2, при попытке вызова/регистрации появляется ошибка "503 Service Unavailable". То на проблемном хосте выполните следующие команды: ecss-attach ecss-pa-sip
ecss-attach ecss-pa-sip ********************************************************************************* ! You attached to systemd-service ecss-pa-sip: sip1@ecss1. ! ! To exit, press Ctrl+C, Ctrl+C. ! ********************************************************************************* Erlang/OTP 21 [erts-10.3.5.10] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] Eshell V10.3.5.10 (abort with ^G) (sip1@ecss1)1> sip_config:tring_is_connected(). false (sip1@ecss1)2> sip_config:tring_is_connected(true). ok (sip1@ecss1)3> sip_config:tring_is_connected(). true
- После разделения кластера необходимо выключить все ноды на сервере ecss1:
на ecss1
sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sormCODE
5 Подготовка к обновлению сервисов SSW на ecss1
- Перед обновлением актуализировать репозиторий ssw:
на ecss1
sudo sh -c "echo deb [arch=amd64] http://archive.eltex.org/ssw/1.7_x86-64/3.14.16.1 stable main extras external > /etc/apt/sources.list.d/eltex-ecss10-stable.list"CODE - Временно зафиксировать версию пакетов ecss-*, на которые надо будет обновиться:
на ecss1
sudo sh -c "echo 'Package: ecss-*\nPin: version 14.16.1.*\nPin-Priority: 1001\n\nPackage: erlang*\nPin: version 2:24.3.10*\nPin-Priority: 1001' >> /etc/apt/preferences.d/eltex-ecss10"CODE - Обновить пакеты командой:
на ecss1
sudo apt updateCODE
- Перед обновлением актуализировать репозиторий ssw:
6 Обновление сервисов SSW на ecss1
- Обновление пакета ecss-dns-env.
на ecss1
sudo apt install ecss-dns-envCODEПри обновлении принимать новые конфигурационные файлы -Y.
После обновления актуализировать конфигурацию командой:на ecss1
sudo dpkg-reconfigure ecss-dns-envCODE - Обновление пакета ecss-user:
на ecss1
sudo apt install ecss-userCODE - Обновление пакета ecss-mysql:
Установить пакет ecss-mysql:ответы на вопросы конфигураторaна ecss1
sudo apt install ecss-mysqlCODEПроверьте и при необходимости актуализируйте параметры в "/etc/ecss/ecss-mysql/mysql-checker.conf":При установке на вопрос "Path for external data-directory, where will be created tables of databases" надо указать внешнюю директорию хранения таблиц баз данных, либо принять значение по умолчанию.
Переменная "MASTER_HOST_IP" - это VRRP-адрес для MySQL, определенный в конфигурации keepalived.
- Включить ecss-mysql-checker.timer
на ecss1
sudo systemctl enable --now ecss-mysql-checker.timerCODE - Обновление Erlang и SSW.
Перед обновлением включить сервисы 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Для обновления удалить устаревшую версию Erlang. Команда ниже обновит Erlang до версии 24.3, а также обновит до новейшей версии пакеты ecss-node и ecss-utils:
на ecss1
sudo apt remove erlang-base-hipeCODEЕсли erlang не обновился удалением старого пакета, то сначала обновить ecss-node и ecss-utils и далее обновить весь erlang командами:
на ecss1
sudo apt install ecss-node ecss-utilsCODEна ecss1
sudo apt install erlangCODEПосле обновления Erlang демаскировать сервис, который был маскирован при удалении erlang-base-hipe:
на ecss1
sudo systemctl unmask epmd.socket epmd.serviceCODE - Сервис ecss-sorm на ecss1 сразу замаскировать, т.к. у нас заявлена работа ecss-sorm на одном хосте в кластере.
на ecss1
sudo systemctl mask ecss-sormCODE - Выполнить на ecss2 объединение в кластер:
на ecss2
sudo ecss-control attachCODE - Активация сервиса Keepalived.
на ecss1
sudo systemctl enable --now keepalivedCODE - Запуск SSW на первом хосте. На ecss1 запустите сервис mycelium и в CoCon проверьте, что сервис поднялся и видно ноды mycelium хостов ecss1/ ecss2:
на ecss1
sudo systemctl start ecss-myceliumCODEвыполняется в CoCon/system-status Checking... ┌─┬───────────────┬────────────────────────────┬───────────────────────────────┬────────────┬───────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes│Uptime │ ├─┼───────────────┼────────────────────────────┼───────────────────────────────┼────────────┼───────┤ │ │core1@ecss2 │ecss-core-3.14.16.1.130 │core1@ecss2 │not running │3h 5m │ │ │ds1@ecss2 │ecss-ds-3.14.16.1.130 │ds1@ecss2 │ds1@ecss2 │3h 5m │ │ │md1@ecss2 │ecss-mediator-3.14.16.1.130 │md1@ecss2 │md1@ecss2 │3h 5m │ │ │mycelium1@ecss1│ecss-mycelium-3.14.16.1.130 │mycelium1@ecss1,mycelium1@ecss2│not running │10m 42s│ │ │mycelium1@ecss2│ecss-mycelium-3.14.16.1.130 │mycelium1@ecss1,mycelium1@ecss2│not running │3h 5m │ │ │sip1@ecss2 │ecss-pa-sip-3.14.16.1.130 │sip1@ecss2 │sip1@ecss2 │3h 5m │ │ │sorm1@ecss2 │ecss-sorm-3.14.16.1.130 │sorm1@ecss2 │not running │3h 5m │ └─┴───────────────┴────────────────────────────┴───────────────────────────────┴────────────┴───────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬───────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼───────────────┼───────────┼───────────┤ │ core1@ecss2 │ msr.ecss1 │ 3.14.15.243 │ connected │ 00:21:09 │ │ │ msr.ecss2 │ 3.14.16.1.0 │ connected │ 00:00:59 │ └─────────────┴───────────┴───────────────┴───────────┴───────────┘
- Перед запуском ecss-ds на ecss1 необходимо сделать backup директории /var/lib/ecss/oasys и удалить ее, для того чтобы с другого хоста загрузить актуальную БД. Сделать это можно переименовав существующую директорию:
После этого ecss-ds на хосте ecss1 загрузит БД с хоста ecss2.
на ecss1
sudo mv /var/lib/ecss/oasys /var/lib/ecss/oasys-$(date +%Y%m%d-%H_%M)CODE - На ecss1 запустите сервис ds и в CoCon проверить, что сервис ds доступен на обоих хостах ecss1/ ecss2:
на ecss1
sudo systemctl start ecss-dsCODEвыполняется в CoCon/system-status Checking... ┌─┬───────────────┬────────────────────────────┬───────────────────────────────┬───────────────────┬───────┐ │ │ Node │ Release │ Erlang nodes │ Mnesia nodes │Uptime │ ├─┼───────────────┼────────────────────────────┼───────────────────────────────┼───────────────────┼───────┤ │ │core1@ecss2 │ecss-core-3.14.16.1.130 │core1@ecss2 │not running │3h 13m │ │ │ds1@ecss1 │ecss-ds-3.14.16.1.130 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2│12s │ │ │ds1@ecss2 │ecss-ds-3.14.16.1.130 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2│3h 13m │ │ │md1@ecss2 │ecss-mediator-3.14.16.1.130 │md1@ecss2 │md1@ecss2 │3h 13m │ │ │mycelium1@ecss1│ecss-mycelium-3.14.16.1.130 │mycelium1@ecss1,mycelium1@ecss2│not running │18m 33s│ │ │mycelium1@ecss2│ecss-mycelium-3.14.16.1.130 │mycelium1@ecss1,mycelium1@ecss2│not running │3h 13m │ │ │sip1@ecss2 │ecss-pa-sip-3.14.16.1.130 │sip1@ecss2 │sip1@ecss2 │3h 13m │ │ │sorm1@ecss2 │ecss-sorm-3.14.16.1.130 │sorm1@ecss2 │not running │3h 12m │ └─┴───────────────┴────────────────────────────┴───────────────────────────────┴───────────────────┴───────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬───────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼───────────────┼───────────┼───────────┤ │ core1@ecss2 │ msr.ecss1 │ 3.14.15.243 │ connected │ 00:29:01 │ │ │ msr.ecss2 │ 3.14.16.1.0 │ connected │ 00:08:50 │ └─────────────┴───────────┴───────────────┴───────────┴───────────┘
- Далее такими же действиями запустить сервисы: ecss-mediator, ecss-pa-sip, ecss-core следующими командами:
на ecss1
sudo systemctl start ecss-mediatorCODEна ecss1
sudo systemctl start ecss-pa-sipCODEПроверить статус в CoCom:на ecss1
sudo systemctl start ecss-coreCODEРезультат:/system-status Checking... ┌─┬───────────────┬────────────────────────────┬───────────────────────────────┬─────────────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │ Mnesia nodes │Uptime│ ├─┼───────────────┼────────────────────────────┼───────────────────────────────┼─────────────────────┼──────┤ │ │core1@ecss1 │ecss-core-3.14.16.1.130 │core1@ecss1,core1@ecss2 │not running │3m 50s│ │ │core1@ecss2 │ecss-core-3.14.16.1.130 │core1@ecss1,core1@ecss2 │not running │3h 22m│ │ │ds1@ecss1 │ecss-ds-3.14.16.1.130 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │9m 42s│ │ │ds1@ecss2 │ecss-ds-3.14.16.1.130 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │3h 22m│ │ │md1@ecss1 │ecss-mediator-3.14.16.1.130 │md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │5m 22s│ │ │md1@ecss2 │ecss-mediator-3.14.16.1.130 │md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │3h 22m│ │ │mycelium1@ecss1│ecss-mycelium-3.14.16.1.130 │mycelium1@ecss1,mycelium1@ecss2│not running │28m 4s│ │ │mycelium1@ecss2│ecss-mycelium-3.14.16.1.130 │mycelium1@ecss1,mycelium1@ecss2│not running │3h 23m│ │ │sip1@ecss1 │ecss-pa-sip-3.14.16.1.130 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│4m 40s│ │ │sip1@ecss2 │ecss-pa-sip-3.14.16.1.130 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│3h 22m│ │ │sorm1@ecss2 │ecss-sorm-3.14.16.1.130 │sorm1@ecss2 │not running │3h 22m│ └─┴───────────────┴────────────────────────────┴───────────────────────────────┴─────────────────────┴──────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬───────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼───────────────┼───────────┼───────────┤ │ core1@ecss1 │ msr.ecss1 │ 3.14.15.243 │ connected │ 00:02:37 │ │ core1@ecss2 │ msr.ecss1 │ 3.14.15.243 │ connected │ 00:38:31 │ │ │ msr.ecss2 │ 3.14.16.1.0 │ connected │ 00:18:20 │ └─────────────┴───────────┴───────────────┴───────────┴───────────┘
- Обновление пакета ecss-restfs:
на ecss1
sudo apt install ecss-restfsCODE - Обновление пакета ecss-media-server:Актуализировать конфигурацию:
на ecss1
sudo apt install ecss-media-serverCODEПроверить и при необходимости исправить вручную файл → /etc/ecss/ecss-media-server/config.xmlна ecss1
sudo dpkg-reconfigure ecss-media-serverCODEТак же, для регистрации media-server`a с ecss2 на ecss1 надо убрать ранее добавленные комментирование из файла /etc/ecss/ecss-media-server/conf.d/default.xml на ecss2:на ecss1<?xml version="1.0" encoding="utf-8"?> <config date="05:27:38 07.12.2024"> <general log-level="3" log-rotate="yes" max-calls="8192" max-vid-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.82" 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" dtmf-tg-fpc-loop="10" dtmf-tg-fit="1" dtmf-tg-fot="2" dtmf-tg-volume="12288"/> <codec pcma="3" pcmu="2" ilbc="0" gsm="0" g722="3" g726="0" g729="1" speex="5" l16="0" g7221="6" 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.82" port="5700"/> </pbyte> <conf_dir path="/etc/ecss/ecss-media-server/conf.d"/> <metrics enable="no"/> <rtp> <auto addr-v4=""/> </rtp> </config>После чего перезапустить сервис:<?xml version="1.0"?> <config> <accounts> <!--<dynamic msr_name="msr.ecss2" realm="sip:10.0.20.81:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password"/>--> <dynamic msr_name="msr.ecss2" realm="sip:10.0.20.82:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password"/> </accounts> </config>на ecss2
sudo systemctl restart ecss-media-server.serviceCODE - Обновление пакета 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- После обновления сервисов удалить файл фиксации версии ssw:
на ecss1
sudo rm /etc/apt/preferences.d/eltex-ecss10CODE
- Обновление пакета ecss-dns-env.
7 Проверка обновления
- После выполнения обновления проверить работу всех сервисов SSW.