Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Предупреждение

Version 3.14.15 changes the algorithm for checking license passport validity. Previous versions allowed licenses with no expiration date, but this is no longer allowed. To avoid issues after the update, we recommend checking the license passport parameters first with the following command:

Блок кода
/cluster/storage/ds1/licence/show-passport 
SSW ID              ECSS ХХХХХХ
Description         ЭлтексEltex, 
Create date         27.12.2024 07:07:09
. . .
Expired date        31.12.2025 23:59:59
. . .

If the Expired date line is missing (passport does not have an expiration date), it is necessary to contact the Eltex sales department on foreign.sales@eltex-co.ru to renew your passport and license before starting the renewal.

...

Предупреждение

The ecss-control command works with standard hostnames: ecss1/ecss2.


Блок кода
titleна on ecss1
sudo ecss-control detach

...

After splitting the cluster, you must shut down all nodes on the server that will be updated first:

Блок кода
titleна on ecss1
sudo systemctl stop ecss-mediator.service
sudo systemctl stop ecss-pa-sip.service
sudo systemctl stop ecss-core.service
sudo systemctl stop ecss-ds.service
sudo systemctl stop ecss-mycelium.service

Update:

Блок кода
titleна on ecss1
sudo apt update

Installing ECSS-10 version 3.14.15

...

Update ecss-mysql on host 1:

Блок кода
titleна on ecss1
sudo apt install ecss-mysql

...

Install the ecss-node package:

Блок кода
titleна on ecss1
sudo apt install ecss-node

...

Подсказка

During the installation process, you'll be asked whether to preserve current versions of configuration files. It's recommended to install the new ones, i.e., answer "Y."


Примечание
titleна on ecss1

During installation of the ecss-node package, the system will reset the cluster configuration to the default value. Therefore, you will need to edit the file /etc/ecss/ecss-mycelium/mycelium1.config.

Run the command:

Блок кода
titleна on ecss1
sudo nano /etc/ecss/ecss-mycelium/mycelium1.config

Enter the cluster name, in the example "test_cluster"

Без форматирования
%%% -*- mode:erlang -*-
%%% Warning - this config file *must* end with <dot><whitespace>
[
    {mycelium_broker, [
        {cluster_name, test_cluster},
        %{cluster_nodes, []}, % additional nodes
        %{tcp_port, 5672},
        %{auto_discoverer, true},
        {compress_module, elx_data_nif}, %% elx_data_nif | elx_data
        {session_gc_timeout, 3000},
        {queue_gc_timeout, infinity}
        %{info_realm, {local, "/ssw", "ssw", "ssw", 1, [{localhost, 0, {host, "localhost"}, 5672, 10}]}},
        %{bind_ip_addresses, [{127,0,0,1}]} % do not forget to include lo interface
        ]},


...

Install packages containing the main subsystems:

Блок кода
titleна on ecss1
sudo apt install ecss-restfs
Блок кода
titleна on ecss1
sudo apt install ecss-media-server
Блок кода
titleна on ecss1
sudo apt install ecss-media-resources
Блок кода
titleна on ecss1
sudo apt install ecss-web-conf
Подсказка

When installing ecss-media-server, it is recommended to answer "yes" to the configuration question "yes".

Подсказка

During the installation process, you'll be asked whether to preserve current versions of configuration files. It's recommended to install the new ones, i.e., answer "Y."

Start the services with the following commands:

Блок кода
titleна on ecss1
sudo systemctl start ecss-mycelium.service
Блок кода
titleна on ecss1
sudo systemctl start ecss-ds.service
Блок кода
titleна on ecss1
sudo systemctl start ecss-core.service
Блок кода
titleна on ecss1
sudo systemctl start ecss-pa-sip.service
Блок кода
titleна on ecss1
sudo systemctl start ecss-mediator.service

check Check the status of services with the command:

Блок кода
titleна on ecss1
systemctl is-active ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium

...

Предупреждение

If you use multiple VLANs for the signaling network, you must adjust the /etc/ecss/ecss-media-server/config.xml configuration file by defining the "via" parameter:

via — specifies a list of interfaces that can be sent in the "Via" field of the "SIP REGISTER" message. "Via" field:

  • dynamic-ifaces — value = "yes" or "no";
    if dynamic-ifaces="no":
    — master registration proceeds as before.
    — otherwise, registration occurs ONLY if the interface is listed in the via list in the config.
    if dynamic-ifaces="yes" or the attribute is not specified, the previously implemented behavior remains.
  • ifacename — interface name;
  • ip — interface IP address.

- If the IP address specified in the via section of the config doesn't exist, it is not processed (skippable).
- If a valid IP address is specified, it is appended to the Via header for registration.
- If there is no interface in the via config, the bind-address from the config is specified during master registration. For non-master registrations, the behavior remains the same.

Блок кода
titleexample for a single host
<?xml version="1.0" encoding="utf-8"?>
<config date="14:39:00 10.03.2023">
  <general log-level="3" log-rotate="yes" max-calls="8192" max-in-group="512" load-sensor="media" load-delta="10" calls-delta="100" spool-dir-size="100M" log-name="msr.log" log-path="/var/log/ecss/media-server" use-srtp="disabled" enable-ice-transport="no" ice-update="no" aggressive-ice="yes" stun-server="" suspicious-mode="no"/>
  <transport bind-addr="192.168.1.40" port="5040" transport="udp+tcp"/>
  <!-- By default configured public TURN-server -->
  <turn-server use-turn="no" host="numb.viagenie.ca" user="webrtc@live.com" password="muazkh"/>
  <media mixer-clock-rate="8000" use-vad="no" cng-level="0" jb-size="60" rtcp-timeout="0" rtp-timeout="350" udp-src-check="no" cn-multiplier="3" port-start="12000" port-range="2048" tias-in-sdp="no" thread-cnt="2" vid-enc-threads="2" vid-dec-threads="2" video-conf-layout="evenly" keyframe-interval="1000" vid-decode-delay="100" silence-threshold="-30" dtmf-flash-disable="no" video-dscp="0" other-dscp="0" dummy-video-src="/usr/share/ecss-media-server/video/dummy_video.yuv" video-enc-width="640" video-enc-height="360" finalsilence="1000" rtcp-stat-dump="yes"/>
  <codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g729="0" speex="0" l16="0" g7221="0" opus="0" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
  <accounts>
     <dynamic msr_name="msr.name" realm="sip:192.168.1.40:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password">
       <via dynamic-ifaces="no">
          <iface name="bond1.75" ip="192.168.1.27"/>
          <iface name="bond1.20" ip="192.168.1.28"/>
          <iface name="bond1.35" ip="192.168.1.29"/>
          <iface name="bond1.36" ip="192.168.1.30"/>
       </via>
     </dynamic>
  </accounts>
  <pbyte>
    <mcc bind-addr="192.168.1.40" port="5700"/>
  </pbyte>
  <conf_dir path="/etc/ecss/ecss-media-server/conf.d"/>
  <rtp>
    <auto addr-v4=""/>
  </rtp>
</config>


Блок кода
titleexample for cluster configuration
<?xml version="1.0" encoding="utf-8"?>
<config date="14:39:00 10.03.2023">
  <general log-level="3" log-rotate="yes" max-calls="8192" max-in-group="512" load-sensor="media" load-delta="10" calls-delta="100" spool-dir-size="100M" log-name="msr.log" log-path="/var/log/ecss/media-server" use-srtp="disabled" enable-ice-transport="no" ice-update="no" aggressive-ice="yes" stun-server="" suspicious-mode="no"/>
  <transport bind-addr="192.168.1.40" port="5040" transport="udp+tcp"/>
  <!-- By default configured public TURN-server -->
  <turn-server use-turn="no" host="numb.viagenie.ca" user="webrtc@live.com" password="muazkh"/>
  <media mixer-clock-rate="8000" use-vad="no" cng-level="0" jb-size="60" rtcp-timeout="0" rtp-timeout="350" udp-src-check="no" cn-multiplier="3" port-start="12000" port-range="2048" tias-in-sdp="no" thread-cnt="2" vid-enc-threads="2" vid-dec-threads="2" video-conf-layout="evenly" keyframe-interval="1000" vid-decode-delay="100" silence-threshold="-30" dtmf-flash-disable="no" video-dscp="0" other-dscp="0" dummy-video-src="/usr/share/ecss-media-server/video/dummy_video.yuv" video-enc-width="640" video-enc-height="360" finalsilence="1000" rtcp-stat-dump="yes"/>
  <codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g729="0" speex="0" l16="0" g7221="0" opus="0" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
  <accounts>
     <dynamic msr_name="msr.name" realm="sip:192.168.1.40:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password">
       <via dynamic-ifaces="no">
          <iface name="bond1.75" ip="192.168.1.27"/>
          <iface name="bond1.20" ip="192.168.1.28"/>
          <iface name="bond1.35" ip="192.168.1.29"/>
          <iface name="bond1.36" ip="192.168.1.30"/>
       </via>
     </dynamic>
     <dynamic msr_name="msr.name" realm="sip:192.168.1.50:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password">
       <via dynamic-ifaces="no">
          <iface name="bond1.75" ip="192.168.1.27"/>
          <iface name="bond1.20" ip="192.168.1.28"/>
          <iface name="bond1.35" ip="192.168.1.29"/>
          <iface name="bond1.36" ip="192.168.1.30"/>
       </via>
     </dynamic>
  </accounts>
  <pbyte>
    <mcc bind-addr="192.168.1.40" port="5700"/>
  </pbyte>
  <conf_dir path="/etc/ecss/ecss-media-server/conf.d"/>
  <rtp>
    <auto addr-v4=""/>
  </rtp>
</config>


The ecss1 host has been updated. Enable traffic with the command:

Блок кода
titleна on ecss1
sudo systemctl start keepalived.service

...

To redirect traffic to the updated server, you need to stop the keepalived service on the second server:

Блок кода
titleна on ecss2
sudo systemctl stop keepalived.service

...

Shut down all nodes on the server that will be updated second:

Блок кода
titleна on ecss2
sudo systemctl stop ecss-mediator.service
sudo systemctl stop ecss-pa-sip.service
sudo systemctl stop ecss-core.service
sudo systemctl stop ecss-ds.service
sudo systemctl stop ecss-mycelium.service

Perform update:

Блок кода
titleна on ecss2
sudo apt update

Installing ecss-mysql

Update ecss-mysql on the second host:

Блок кода
titleна on ecss2
sudo apt install ecss-mysql

...

Install the ecss-node package:

Блок кода
titleна on ecss2
sudo apt install ecss-node
Подсказка

During the installation process, you'll be asked whether to preserve current versions of configuration files. It's recommended to install the new ones, i.e., answer "Y."

Примечание
titleна on ecss2

During installation of the ecss-node package, the system will reset the cluster configuration to the default value. Therefore, you will need to edit the /etc/ecss/ecss-mycelium/mycelium1.config file.

Run the command:


Блок кода
sudo nano /etc/ecss/ecss-mycelium/mycelium1.config

Enter the cluster name, in the example "test_cluster":

Без форматирования
%%% -*- mode:erlang -*-
%%% Warning - this config file *must* end with <dot><whitespace>
[
    {mycelium_broker, [
        {cluster_name, test_cluster},
        %{cluster_nodes, []}, % additional nodes
        %{tcp_port, 5672},
        %{auto_discoverer, true},
        {compress_module, elx_data_nif}, %% elx_data_nif | elx_data
        {session_gc_timeout, 3000},
        {queue_gc_timeout, infinity}
        %{info_realm, {local, "/ssw", "ssw", "ssw", 1, [{localhost, 0, {host, "localhost"}, 5672, 10}]}},
        %{bind_ip_addresses, [{127,0,0,1}]} % do not forget to include lo interface
        ]},


...

Install the packages containing the core subsystems:

Блок кода
titleна on ecss2
sudo apt install ecss-restfs
Блок кода
titleна on ecss2
sudo apt install ecss-media-server
Блок кода
titleна on ecss2
sudo apt install ecss-media-resources
Блок кода
titleна on ecss2
sudo apt install ecss-web-conf

...

Check the status of services with the command:

Блок кода
titleна on ecss2
systemctl is-active ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium

...

Информация

/systemctl is-active ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium
inactive
inactive
inactive
inactive
inactive

Assembling a

...

cluster

After completing the steps in the previous section, you can connect servers to each other to form a cluster. On the first server, run the command sudo ecss-control attach command.

Example:

Блок кода
titleна on ecss1
sudo ecss-control attach
unlock ip: 10.10.0.2, rules: 7
complete
sudo ecss-control status
all nodes attached

Start the services with the following commands:

Блок кода
titleна on ecss2
sudo systemctl start ecss-mycelium.service
Блок кода
titleна on ecss2
sudo systemctl start ecss-ds.service
Блок кода
titleна on ecss2
sudo systemctl start ecss-core.service
Блок кода
titleна on ecss2
sudo systemctl start ecss-pa-sip.service
Блок кода
titleна on ecss2
sudo systemctl start ecss-mediator.service

...

Check that the update is progressing. The CLI system-status command should show that all nodes in the cluster and subsystem versions are the same.

Без форматированияcode
titleвыполняется в performed in CoCon
/system-status 
Checking...
┌─┬───────────────┬──────────────────────────┬───────────────────────────────┬─────────────────────┬──────┐
│ │     Node      │         Release          │         Erlang nodes          │    Mnesia nodes     │Uptime│
├─┼───────────────┼──────────────────────────┼───────────────────────────────┼─────────────────────┼──────┤
│ │core1@ecss1    │ecss-core-3.14.15.1163    │core1@ecss1,core1@ecss2        │not running          │1h 5m │
│ │core1@ecss2    │ecss-core-3.14.15.1163    │core1@ecss1,core1@ecss2        │not running          │3m 8s │
│ │ds1@ecss1      │ecss-ds-3.14.15.1163      │ds1@ecss1,ds1@ecss2            │ds1@ecss1,ds1@ecss2  │1h 5m │
│ │ds1@ecss2      │ecss-ds-3.14.15.1163      │ds1@ecss1,ds1@ecss2            │ds1@ecss1,ds1@ecss2  │59s   │
│ │md1@ecss1      │ecss-mediator-3.14.15.1163│md1@ecss1,md1@ecss2            │md1@ecss1,md1@ecss2  │1h 5m │
│ │md1@ecss2      │ecss-mediator-3.14.15.1163│md1@ecss1,md1@ecss2            │md1@ecss1,md1@ecss2  │2m 53s│
│ │mycelium1@ecss1│ecss-mycelium-3.14.15.1163│mycelium1@ecss1,mycelium1@ecss2│not running          │1h 5m │
│ │mycelium1@ecss2│ecss-mycelium-3.14.15.1163│mycelium1@ecss1,mycelium1@ecss2│not running          │3m 17s│
│ │sip1@ecss1     │ecss-pa-sip-3.14.15.1163  │sip1@ecss1,sip1@ecss2          │sip1@ecss1,sip1@ecss2│1h 5m │
│ │sip1@ecss2     │ecss-pa-sip-3.14.15.1163  │sip1@ecss1,sip1@ecss2          │sip1@ecss1,sip1@ecss2│2m 57s│
└─┴───────────────┴──────────────────────────┴───────────────────────────────┴─────────────────────┴──────┘

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.221 │ connected │ 01:04:13  │
│             │ msr.ecss2 │ 3.14.15.221 │ connected │ 00:15:04  │
│ core1@ecss2 │ msr.ecss1 │ 3.14.15.221 │ connected │ 00:01:59  │
│             │ msr.ecss2 │ 3.14.15.221 │ connected │ 00:01:57  │
└─────────────┴───────────┴─────────────┴───────────┴───────────┘

The ecss2 host is updated, start the traffic with the command:

Блок кода
titleна on ecss2
sudo systemctl start keepalived.service

Make sure subscribers are registered. Check the number of registered subscribers; it should be approximately the same as when the update began:

Без форматированияcode
titleвыполняется в performed in CoCon
/domain/bsk.test/sip/user/registered *            
320 make users list ...
[**********************************************************************] 223mks   
320 users information read ...
[**********************************************************************] 22ms     
Executed on the sip1@ecss1
┌──────────────────┬────────┬─────────┬─────────────────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────────────┐
│     Interface    │ Number │ Dynamic │                               Contact                               │                         Registration info                          │
├──────────────────┼────────┼─────────┼─────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────┤
...
┌───────────────┐
│ elements: 320 │
└───────────────┘

Calls are processed in all directions, CFC plays messages, Web-conf and other web services are running, and no errors are written to the system log. Shell command:

Без форматирования
journalctl -f

Uninstalling ECSS

...

components

Uninstalling ecss-mysql

To remove the ecss-mysql package while preserving it, use the following command:

...

Без форматирования
sudo apt purge ecss-media-server 

Removing

...

unneeded packages

To remove remaining packages that are no longer needed, use the autoremove switch:

...