Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 4 Следующий »

1 Preparing hosts for the update

  1. ECSS-10 version 3.17 supports two licensing types: file-based licensing (with or without a token) and ELM licensing. Depending on the licensing type, different commands will be executed during the update.

    You can check which type is used on your SSW with the following command:

    performed in CoCon
    /cluster/storage/ds1/licence/list-licence 

    The output for file-based license is as follows:

    File-based license
    /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 │112d 21h 31m│
    │0 │                   │ECSS DEFAULT│      │Default licence    │                    │            │
    └──┴───────────────────┴────────────┴──────┴───────────────────┴────────────────────┴────────────┘

    The output for ELM license is as follows:

    ELM license
    /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 │                    │            │
    └──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────┘


  2. Preparing gluster volume for an update.
    If one of the cluster nodes becomes unavailable, issues with the files may arise. Once the node is back online, the files will be out of sync, requiring you to manually initiate synchronization between the nodes.
    To resolve this issue, use the cluster.favorite-child-policy parameter.
    When enabled, all files that are split will be automatically synchronized with each other according to the specified rule.
    To enable this parameter, use the following command:
    on ecss1
    sudo gluster volume set ecss_volume cluster.favorite-child-policy size
    Result:
    sudo gluster volume set ecss_volume cluster.favorite-child-policy size
    volume set: success
    Result:
     sudo gluster volume info
     
    Volume Name: ecss_volume
    Type: Replicate
    Volume ID: 4bc875b1-f966-44e2-9b3f-04f3a7af83f3
    Status: Started
    Snapshot Count: 0
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: 10.0.10.51:/var/lib/ecss/glusterfs
    Brick2: 10.0.10.52:/var/lib/ecss/glusterfs
    Options Reconfigured:
    cluster.favorite-child-policy: size
    performance.client-io-threads: off
    nfs.disable: on
    transport.address-family: inet
    storage.fips-mode-rchecksum: on
    cluster.granular-entry-heal: on
    
    
  3. When updating the cluster, update the servers one at a time. This ensures that one of the servers will always be running during the update, and service operation will not be interrupted. To split the cluster, use the ecss-control tool on both servers.
    SIP signaling is exchanged via the SIP-VRRP IP address. This functionality is implemented to enable IP address migration to another host in the event of a failure, shutdown, or maintenance of the primary host. IP address migration is managed by the keepalived service on each host.
    To redirect traffic to the first server (ecss1), you must stop keepalived on the second host (ecss2). In this case, both SIP-VRRP IP addresses will be on the first host (ecss1). Run the following command:
    on ecss2
    sudo systemctl disable --now keepalived.service
  4. Use the ifconfig command to check that all VRRP IP addresses are located on ecss1 (VRRP-SIP1/VRRP-SIP2):
    on ecss1
    ifconfig
  5. All nodes on the server that is being updated first should be masked and have their autorun disabled:
    on ecss2
    sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm

    After the specified command is executed, the notification will appear.

    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.

    These messages are not an error. Continue the procedure.

  6. On ecss1, split SSW into two independent servers using the following command:

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


    on ecss1
    sudo ecss-control detach
    Check the status:
    on ecss1
    sudo ecss-control status

    Result:
    sudo ecss-control detach
    detach host: ecss2, ip: 10.0.10.52
    complete
    sudo ecss-control status
    locked ip: 10.0.10.52


2 Preparing for updating SSW services

  1. Update the SSW repository:
    on both hosts
    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"
  2. Update the packets:
    on both hosts
    sudo apt update

3 Updating SSW services on ecss2

  1. Pay attention

    Make a full backup.
  2. Update PostgreSQL:
    1. Check the addresses where the Postgres database is running, run the following command:
      on ecss2
      psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;"

      Default password is "postgres1"


      Example:
      psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;"
      Password for user postgres: 
                                          node_local_dsn                                     
      ---------------------------------------------------------------------------------------
       host=10.0.10.51 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1
       host=10.0.10.52 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1
      (2 rows)
      
    2. Disable the Docker container:
      on ecss2
      sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down

      Example
       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 
    3. Remove the old deb packet, since it doesn't support the upgrade option:
      on ecss2
      sudo apt remove ecss-postgres-bdr-ssw

      Important!

      Execut the remove command, not purge, because 'remove' saves the 'volumes' directory containing the database tables.


      Example:
      sudo apt remove ecss-postgres-bdr-ssw
      Reading package lists… Ready
      . . .
      The following packages will be DELETED:
        ecss-postgres-bdr-ssw
      . . .
      Would you like to continue? [Y/N] y
      Removing ecss-postgres-bdr-ssw (17.1.0.59+ssw) …
    4. Install the new deb package:
      on ecss2
      sudo apt install ecss-postgres-bdr-ssw 

      Important!

      During installation, you will be asked the same questions as during the initial installation:
      Your answers must match the instructions in the procedure exactly; otherwise, the system will attempt to create a new database, and the installation will fail.

      QuestionAnswerExample

      Current IP address of the network interface.

      Select an IP address: the same one used during the initial installation,
      since replication is tied to specific IP addresses.

      (checked in step "а", 10.0.10.52 in the example).

      10.0.10.52 (must be specified)

      Installation in a cluster? 
      Select <Yes> if the package is being installed on a cluster node.
      Yes (default value)

      Is this node master?

      Important!

      Answer NO! Otherwise it'll try to create new bdr, 
      which will be impossible and will lead to installation error).



      No (default value)

      IP address used to connect to the cluster:

      Important!

      IP of the neighbor node (specified during its installation, checked in step "а", 10.0.10.51 in the example).




      10.0.10.51 (must be specified)


      If the installation is successful, during the replication setup phase, we will see
      sudo apt install ecss-postgres-bdr-ssw
      . . .
      =============================
       Checking replication status 
      =============================
      BDR replication is configured correctly: the data matches.
      . . .
      =======================================================
      =======================================================
       ecss-postgres-bdr-ssw successfully installed/updated! 
      =======================================================
      =======================================================
      
      
      ┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓  ┳┓┳┓┳┓  ┏┓┏┓┓ ┏
      ┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓  ┣┫┃┃┣┫  ┗┓┗┓┃┃┃
      ┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛  ┻┛┻┛┛┗  ┗┛┗┛┗┻┛
    5. After the installation make sure, that the new image is loaded and the docker started. Run the following command:
      on ecss2
      docker ps

      Example:
      docker ps
      CONTAINER ID   IMAGE                                           COMMAND                  CREATED         STATUS         PORTS                                         NAMES
      80ef72d3b125   git.eltex.loc:4567/ecss/ecss-postgresbdr:3.18   "/docker-entrypoint.…"   8 minutes ago   Up 8 minutes   0.0.0.0:5439->5432/tcp, [::]:5439->5432/tcp   ecss-postgres-bdr-ssw-postgres-container-1
  3. Updating SSW.
    1. Updating the ecss-dns-env package:
      on ecss2
      sudo apt install ecss-dns-env
    2. Updating the ecss-user package:
      on ecss2
      sudo apt install ecss-user
    3. Updating the ecss-utils package:
      on ecss2
      sudo apt install ecss-utils
    4. Install the License Provider package:

      on ecss2
      sudo apt install ecss-license-provider

      When installing the ecss-license-provider package the following questions will be asked:

      QuestionsAnswersExamples

      License Provider listen ip:

      0.0.0.0 (default value)

      License Provider listen port:4321 (default value)

      Log level:info (default value),
      other options: debug, error, info

      License Provider cluster key:

      specify a unique name
      ecss-lm-cluster (default value)

      Managers with the same names will attempt to form a cluster for mutual failover.


      The data is saved to the /etc/ecss/ecss-license-provider/config.env file:

      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) configuration

      The ecss-license-provider service uses two configuration files: /etc/ecss/ecss-license-provider/config.env and /etc/ecss/ecss-license-provider/config.yaml.

      The information is saved to the config.env file when the ecss-license-provider is installed.

      The config.yaml file contains general settings for connecting to the ELM server and information about licenses: what licenses to take, where to take them from, and where to send them, all this information should be configured manually.

      information in the file after installation
      elm_addresses: []
      licenses: []
      ecss_nodes: []
      To fill out these fields, open the ecss-elm-adapter configuration file used in the version 3.17 /etc/ecss/ecss-elm-adapter/config.env:
      on ecss2
      cat /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

      In the elm_addresses field, you must specify a list of ELM servers to which you want to connect to obtain licenses.
      First address in the list is used as the main one. Additional lines contain backup addresses.
      Example:

      Example:
      elm_addresses:
       - "elm.eltex-co.ru:8099"
       - "192.168.111.22:8099"
       - "elm-3.eltex.loc:8099"



      Then licenses in the licenses field are specified.

      • The id can be anything, as long as it is unique for each license. It only affects the license address on the License Provider itself (e.g., 0, 1, 2, 3).
      • kind. For SSW, only SSW (in uppercase) is supported.
      • type is set to elm if this license is to be requested from the ELM server. If you need to use an SSW file-based license, set the type to ecss_license.
        • For the elm type, you must specify the license_key and product_id fields to identify the license.
        • For the ecss_license type, specify the license field, which contains the static license key.

      license_key = ECSS_LICENSE_KEY and product_id = ECSS_PRODUCT_ID parameters must match the data previously uploaded to the ELM server.

      ecss_nodes block.

      You must specify the details of the services that will receive the license. A service is defined by three parameters:

      • id - the service identifier. In the case of SSW, this must match the ECSS_ID of the SSW being licensed.
      • kind - the type of service being licensed. As with the licenses block, the SSW and AUP types are supported. For SSW, only the SSW type is supported.
      • license_id - the identifier of the license that will be sent to this service. It corresponds to the license identifiers from the licenses block
      Two SSWs with different ECSS_IDs cannot receive the same license; a configuration with such an assignment will be marked as invalid.
      Additionally, two SSWs with identical ECSS_IDs cannot simultaneously obtain the same license from a single License Provider; therefore, it is extremely important to set your ECSS_ID correctly and ensure it is unique, at least within the scope of the License Provider being used.

      ECSS_ID format.
      It must begin and end with a Latin letter or a digit; periods and dashes may be used within the string. 

      [A-Za-z0-9][A-Za-z0-9.-][A-Za-z0-9]

      For an SSW operating in a cluster, specify only one entry in the ecss_nodes block per cluster; you cannot specify entries individually for each host. Otherwise, two requests with the same ECSS_ID will be generated, which is not allowed.

      Example of a config.yaml file based on data from the file
      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: 0

      Restart the ecss-license-provider.service service to up date the configuration from the /etc/ecss/ecss-license-provider/config.yaml file via the following command:

      for a cluster execute on both hosts
      sudo systemctl restart ecss-license-provider.service

      No addditional actions required.

    5. Update the ecss-node package:
      на ecss2
      sudo apt install ecss-node

      ecss-node installation questions:

      QuestionAnswerExample

      Cookie for the core node: (specify the unique cookie for the core, the example uses ecss-core-example)

      In a cluster cookies should be unique for the nodes of the same type.

      ecss-core-example (needs to be entered)

      Cookie for the ds node: (specify the unique cookie for the ds, the example uses ecss-ds-example)

      In a cluster cookies should be unique for the nodes of the same type.

      ecss-ds-example (needs to be entered)

      Cookie for the mediator node: (specify the unique cookie for the mediator, the example uses ecss-mediator-example)

      In a cluster cookies should be unique for the nodes of the same type.

      ecss-mediator-example (needs to be entered)

      Cookie for the pa-sip node: (specify the unique cookie for the pa-sip, the example uses ecss-pa-sip-example)

      In a cluster cookies should be unique for the nodes of the same type.

      ecss-pa-sip-example (needs to be entered)

      Cookie for the mycelium node: (specify the unique cookie for the mycelium, the example uses ecss-mycelium-example)

      In a cluster cookies should be unique for the nodes of the same type.

      ecss-mycelium-example (needs to be entered)

      Accept all configuration file changes


  4. Enable the nodes.
    Enable the SSW services using the following commands: 
    on ecss2
    sudo systemctl unmask ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm

    on ecss2
    sudo systemctl enable ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm

    Pay attention

    Before starting the SSW nodes, change the cluster name (to any other name—just make sure it doesn’t match that of a neighbor (ecss1) or any other potential PBX in your network, otherwise it will try to connect to it). To do this, in the /etc/ecss/ecss-mycelium/mycelium.config file change the "{cluster_name, 'eltex.test'}" line to "{cluster_name, 'eltex1.test'}", for example.

    on ecss2
    sudo nano /etc/ecss/ecss-mycelium/mycelium.config
    Example:
    [
        {mycelium_broker, [
            {cluster_name, 'eltex1.test'},
            {compress_module, elx_data_nif},
            {session_gc_timeout, 3000},
            {queue_gc_timeout, infinity}
    . . .


  5. Starting SSW on ecss2. Start the following services:
    ecss-mycelium
    on ecss2
    sudo systemctl start ecss-mycelium
    ecss-ds
    on ecss2
    sudo systemctl start ecss-ds
    ecss-core
    on ecss2
    sudo systemctl start ecss-core
    ecss-mediator
    on ecss2
    sudo systemctl start ecss-mediator

    Do not start PA-SIP yet

  6. Check the status of services by running the system-status command in CoCon:
    performed in CoCon
    /system-status 
    Checking...
    ┌─┬───────────────┬────────────────────────┬───────────────┬────────────┬──────┐
    │ │     Node      │        Release         │ Erlang nodes  │Mnesia nodes│Uptime│
    ├─┼───────────────┼────────────────────────┼───────────────┼────────────┼──────┤
    │ │core1@ecss2    │ecss-core-3.18.0.217    │core1@ecss2    │not running │1m 28s│
    │ │ds1@ecss2      │ecss-ds-3.18.0.217      │ds1@ecss2      │ds1@ecss2   │1m 32s│
    │ │md1@ecss2      │ecss-mediator-3.18.0.217│md1@ecss2      │md1@ecss2   │1m 23s│
    │ │mycelium1@ecss2│ecss-mycelium-3.18.0.217│mycelium1@ecss2│not running │1m 37s│
    │ │sorm1@ecss2    │ecss-sorm-3.18.0.217    │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.17.1.0.27 │ connected │ 00:00:14  │
    │             │ msr.ecss2 │ 3.17.1.0.27 │ connected │ 00:00:16  │
    └─────────────┴───────────┴─────────────┴───────────┴───────────┘
  7. Disable the ecss-elm-adapter service on ecss1 using the command below:
    on ecss1
    sudo systemctl stop ecss-elm-adapter.service

    Configure SSW connection to License Provider by running the command below in CoCon, (in the example License Provider is installed in a cluster, host IPs are 10.0.10.51 and 10.0.10.52. Port value is taken from the /etc/ecss/ecss-license-provider/config.env  file, 4321 by default):

    performed in CoCon
    /system/licence/manager/set --hosts [https://10.0.10.51:4321, https://10.0.10.52:4321]

    If License Provider is installed on SSW hosts specify the OAM IP addresses.

    After command execution check the connection status using the following command:

    performed in CoCon
    /system/licence/manager/show-status           
    ┌───────────────────────┬───────┬─────┐
    │         Host          │Current│Alive│
    ├───────────────────────┼───────┼─────┤
    │https://10.0.10.51:4321│*      │true │
    │https://10.0.10.52:4321│       │true │
    └───────────────────────┴───────┴─────┘

    All hosts should have the alive=true status. One should have the "current" status. 

    • Current – shows to which host the SSW is connected. If there is a connection, it is specified by *, and if there isn't – nothing is specified.
    • Alive – shows the host availability status (healthcheck).

    Connecting to the License Manager

    A lack of connection to the License Provider or ELM will result in a loss of access to the token, leading to critical failures and a transition to emergency mode; after this period, if the connection is not restored, the system will switch to the default license.

    This behavior applies only when operating in ELM mode.

    If status of one of the License Provider hosts is current, a request for uploading the license to SSW can be sent using the following command:

    performed in 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 │03.02.2026 16:26:34│ECSS2000000 │*     │ECSS ELM License│03.02.2027 16:26:34 │14.03.2026 10:49:12 │1d 6h 59m│
    │0 │01.01.1990 00:00:00│ECSS DEFAULT│      │Default licence │                    │                    │         │
    └──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────────────┴─────────┘



    No additional actions are required.

  8. Обновление пакета ecss-restfs.
    Accept all new configuration files by choosing Y.

    on ecss2
    sudo apt install ecss-restfs
  9. Updating the ecss-media-server package.
    on ecss2
    sudo apt install ecss-media-server

  10. Updating the ecss-media-resources package.
    on ecss2
    sudo apt install ecss-media-resources
  11. Updating the ecss-web-conf package.
    on ecss2
    sudo apt install ecss-web-conf
  12. Check the list of installed services using the following command:

    on ecss2
    sudo dpkg -l | grep ecss
    Example:
    sudo dpkg -l | grep ecss
    ii  ecss-cc-ui                             17.1.0.36+cc-ui                         amd64        Eltex/ECSS-10 UI and API for call center
    ii  ecss-dns-env                           18.0.0                                  amd64        Eltex/ECSS-10 Configuration settings for domain service
    ii  ecss-media-resources                   18.0.0                                  amd64        Eltex/ECSS-10 Media resources
    ii  ecss-media-server                      18.0.7                                  amd64        Eltex/ECSS-10 Media server
    ii  ecss-node                              18.0.217                                amd64        Eltex/ECSS-10 Node services
    ii  ecss-peeper-client                     17.1.0.23                               amd64        Eltex/ECSS-10 peeper client
    ii  ecss-postgres-bdr-ssw                  18.0.0+ssw                              amd64        Eltex/Postgres BDR
    ii  ecss-restfs                            18.0.21                                 amd64        Eltex/ECSS-10 RestFS API interface for filesystem
    ii  ecss-teleconference-ui                 17.1.0.23                               amd64        Eltex/ECSS-10 UI and API for Teleconference
    ii  ecss-user                              18.0.0                                  amd64        Eltex/ECSS-10 SSW user environment
    ii  ecss-utils                             18.0.0                                  amd64        Eltex/ECSS-10 Utilities for reading binary logs
    ii  ecss-web-conf                          18.0.31                                 amd64        Eltex/ECSS-10 Web configurator

    Based on the results of running the command, reinstall packages with version 17.1.*. In this example — ecss-cc-ui/ecss-peeper-client/ecss-teleconference-ui.

    Updating the ecss-teleconference-ui package.

    on ecss2
    sudo apt install ecss-teleconference-ui

    Updating the ecss-crm-server package.

    on ecss2
    sudo apt install ecss-crm-server

    Updating the ecss-cc-ui package.

    on ecss2
    sudo apt install ecss-cc-ui

    Updating the ecss-call-api package.

    on ecss2
    sudo apt install ecss-call-api

    Updating the ecss-peeper-client package.

    on ecss2
    sudo apt install ecss-peeper-client
  13. Delete the no longer used ecss-elm-adapter package using the following command:
    on ecss2
    sudo apt purge ecss-elm-adapter

    No additional actions are required

4 Transferring the load to ecss2 

  1. Start the keepalived service.
    Before starting the keepalived service, the ecss-pa-sip service should be started:
    on ecss2
    sudo systemctl start ecss-pa-sip

    on ecss2
    sudo systemctl enable --now keepalived

    Starting the ecss-pa-sip and keepalived services transfers traffic from ecss1 to ecss2. This is the first step of switching traffic to ecss2, complete transfer will happen after disabling the keepalived servcie on ecss1 during the following steps.

  2. Prepare ecss1 for the update by transfering all traffic to ecss2 (the command is performed on ecss1):
    on ecss1
    sudo systemctl disable --now keepalived.service
  3. Use the ifconfig command to make sure that all VRRP addresses (VRRP IP-SIP1 / VRRP IP-SIP2) are located on ecss2.
    on ecss2
    ifconfig

5 Preparations on ecss1

  1. Pay attention

    Do a complete backup
  2. After splitting the cluster is is necessary to disable all nodes on the ecss1 server:
    on ecss1
    sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm

    After executing the command the following notification will appear.

    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.

    These messages are not an error. Continue the procedure.

6 Updating the SSW services on ecss1

  1. Perform clusterization on ecss1:

    The ecss-control attach command is run at this step to make replicating Postgres database possible. This behavior is safe because the node has already been shut down.

    on ecss1
    sudo ecss-control attach
  2. Updating PostgreSQL:
    1. Check on which addresses the Postgres database is connected and run the following command:
      on ecss1
      psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;"

      Example: default password is "postgres1"
      psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;"
      Password for user postgres: 
                                          node_local_dsn                                     
      ---------------------------------------------------------------------------------------
       host=10.0.10.51 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1
       host=10.0.10.52 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1
      (2 rows)
      
    2. Disable the Docker container:
      on ecss1
      sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down

      Example:
       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 
    3. Delete the old deb package since it doesn't support the upgrade option:
      on ecss1
      sudo apt remove ecss-postgres-bdr-ssw

      Important!

      Run remove, not purge, because remove saves the volumes directory containing the database tables.


      Example:
      sudo apt remove ecss-postgres-bdr-ssw
      Reading packet lists… Ready
      . . .
      The following packets will be REMOVED:
        ecss-postgres-bdr-ssw
      . . .
      Do you want to continue? [y/n] y
      Removing ecss-postgres-bdr-ssw (17.1.0.59+ssw) …
    4. Install the new deb package:
      on ecss1
      sudo apt install ecss-postgres-bdr-ssw 

      Important!

      During the installation the same questions will be asked as during the initial installation:
      The answers should be exactly as specified in the procedure, otherwise there will be an attempt to create a new database and the installation will result in error.

      Question

      AnswerExample

      Current IP address of the network interface.

      Select an IP: the same one used during the initial installation,
      since replication is tied to specific IPs.

      (checked in step "a" of the instruction, 10.0.10.51 is used in the example)

      10.0.10.51 (needs to be selected)

      Installing to cluster? 
      Select <Yes>, if the package is installed to the cluster node.
      Yes (default value)

      Is this node master?

      NO! (Important! If a different answer is given, the impossible attempt
      at creating a new bdr will be made
      and the installation will result in error)



      No (default value)

      IP address used to connect to the cluster:

      IP of the neighboring node (specified during its installation)

      (checked in step "a" of the instruction, 10.0.10.52 is used in the example)

      10.0.10.52 (needs to be specified)


      If the installation is successful, during the replication setup phase, we will see
      sudo apt install ecss-postgres-bdr-ssw
      . . .
      =============================
       Checking replication status 
      =============================
      BDR replication is configured correctly: the data matches.
      . . .
      =======================================================
      =======================================================
       ecss-postgres-bdr-ssw successfully installed/updated! 
      =======================================================
      =======================================================
      
      
      ┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓  ┳┓┳┓┳┓  ┏┓┏┓┓ ┏
      ┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓  ┣┫┃┃┣┫  ┗┓┗┓┃┃┃
      ┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛  ┻┛┻┛┛┗  ┗┛┗┛┗┻┛
    5. After the installation, to make sure that the new image is uploaded and Docker has started, run the following command:
      on ecss1
      docker ps

      Example:
      docker ps
      CONTAINER ID   IMAGE                                           COMMAND                  CREATED         STATUS         PORTS                                         NAMES
      f53bd28c78ff   git.eltex.loc:4567/ecss/ecss-postgresbdr:3.18   "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes   0.0.0.0:5439->5432/tcp, [::]:5439->5432/tcp   ecss-postgres-bdr-ssw-postgres-container-1
  3. Updating the ecss-dns-env package.
    on ecss1
    sudo apt install ecss-dns-env

    When updating, accept all new configuration files using Y.
  4. Updating the ecss-user package:
    on ecss1
    sudo apt install ecss-user
  5. Updating the ecss-utils package:
    on ecss1
    sudo apt install ecss-utils
  6. Install the License Provider package:

    on ecss2
    sudo apt install ecss-license-provider

    When istalling the ecss-license-provider package, the following questions will be asked:

    QuestionAnswerExample

    License Provider listen ip:

    0.0.0.0 (default value)

    License Provider listen port:4321 (default value)

    Log level:info (default value),
    possible options: debug, error, info

    License Provider cluster key:

    specify a unique name
    ecss-lm-cluster (default value)

    Managers with identical names will try to form a cluster for mutual redundancy.


    What services should be restarted?

    ecss-license-provider.service (default value)

    Данные сохраняются в файле /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

    Configuring License Provider (LP)

    The ecss-license-provider service uses two configuration files: /etc/ecss/ecss-license-provider/config.env and /etc/ecss/ecss-license-provider/config.yaml.

    Information is saved to the config.env file during the ecss-license-provider package installation.

    The config.yaml file contains main settings for connecting to the ELM server: where to take licenses from, whic licenses to take, and where to send them. All of this should be configured manually.

    information in the file after installation
    elm_addresses: []
    licenses: []
    ecss_nodes: []
    To fill in these fields open the ecss-elm-adapter configuration file used in the version 3.17 /etc/ecss/ecss-elm-adapter/config.env:
    on ecss2
    cat /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

    It is necessary to specify the ELM servers list to which you wnat to connect to obtain licenses, in the elm_addresses field. First address in the list is used as the main one. Additional lines contain backup addresses.

    Eltex ELM server address is "elm.eltex-co.ru:8099".

    Example:
    - "elm.eltex-co.ru:8099"
    - "192.168.111.22:8099"
    - "elm-3.eltex.loc:8099"

    Then licenses are specified in the licenses field.

    • The id can be anything, as long as it is unique for each license. It only affects the license address on the License Provider itself (e.g., 0, 1, 2, 3).
    • kind. For SSW, only SSW (in uppercase) is supported.
    • type is set to elm if this license is to be requested from the ELM server. If you need to use an SSW file-based license, set the type to ecss_license.
      • for the elm type, you must specify the license_key and product_id fields to identify the license.
      • for the ecss_license type, specify the license field containing the static license key.

    The license_key = ECSS_LICENSE_KEY and product_id = ECSS_PRODUCT_ID parameters must match the data previously uploaded to the ELM server.

    The ecss_nodes block.

    This block must specify the details of the services that will receive the license. A service is specified by three parameters:

    • id - the service identifier. For SSW, this must match the ECSS_ID of the SSW being licensed.
    • kind - the type of service being licensed. Similar to the licenses block, the SSW and AUP types are supported. For SSW, only SSW is supported.
    • license_id - the identifier of the license that will be sent to this service. It corresponds to the license identifiers from the licenses block.
    Two SSWs with different ECSS_IDs cannot receive the same license; a configuration with such an assignment will be marked as invalid
    In addition, two SSWs with the same ECSS_ID cannot simultaneously obtain the same license from a single License Provider; therefore, it is extremely important to set your ECSS_ID correctly and ensure that it is unique, at least within the scope of the License Provider you are using.

    ECSS_ID format.
    It must begin and end with a Latin letter or number; periods and dashes may be used within the text.

    [A-Za-z0-9][A-Za-z0-9.-][A-Za-z0-9]

    For an SSW running in a cluster, specify only one entry in the ecss_nodes block per cluster; you cannot specify entries individually for each host. Otherwise, two requests with the same ECSS_ID will be generated, which is not allowed.

    Example of a config.yaml file based on data from the file
    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: 0

    Restart the ecss-license-provider.service service for updating configuration from the /etc/ecss/ecss-license-provider/config.yaml file using the following command:

    on both hosts if there is a cluster
    sudo systemctl restart ecss-license-provider.service

    No additional actions are required

  7. Updating the ecss-node package:
    on ecss1
    sudo apt install ecss-node

    on ecss1

    ecss-node installation questions

    QuestionAnswerExample

    Cookie for the core node: (specify the unique cookie for the core, the example uses ecss-core-example)

    In a cluster configuration, nodes of the similar type should have the same cookies.

    ecss-core-example (needs to be entered)

    Cookie for the ds node: (specify the unique cookie for the ds, the example uses ecss-ds-example)

    In a cluster configuration, nodes of the similar type should have the same cookies.

    ecss-ds-example (needs to be entered)

    Cookie for the mediator node: (specify the unique cookie for the mediator, the example uses ecss-mediator-example)

    In a cluster configuration, nodes of the similar type should have the same cookies.

    ecss-mediator-example (needs to be entered)

    Cookie for the pa-sip node: (specify the unique cookie for the pa-sip, the example uses ecss-pa-sip-example)

    In a cluster configuration, nodes of the similar type should have the same cookies.

    ecss-pa-sip-example (needs to be entered)

    Cookie for the mycelium node: (specify the unique cookie for the mycelium, the example uses ecss-mycelium-example)

    In a cluster configuration, nodes of the similar type should have the same cookies.

    ecss-mycelium-example (needs to be entered)

    Accept all configuration file changes


  8. Enable SSW services: 
    on ecss1
    sudo systemctl unmask ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip

    on ecss1
    sudo systemctl enable ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip

    Attention

    Before starting the SSW nodes, change thename of the cluster to the name specified for the ecss2 server (in step 3.4). To do that, in the /etc/ecss/ecss-mycelium/mycelium.config file change the line "{cluster_name, 'eltex.test'}," to "{cluster_name, 'eltex1.test'}," for example.

    on ecss1
    sudo nano /etc/ecss/ecss-mycelium/mycelium.config
    Example:
    [
        {mycelium_broker, [
            {cluster_name, 'eltex1.test'},
            {compress_module, elx_data_nif},
            {session_gc_timeout, 3000},
            {queue_gc_timeout, infinity}
    . . .


  9. Launch mycelium service on ecss1 and use CoCon to make sure that the service is up and mycelium nodes of the ecss1 and ecss2 hosts are visible:
    on ecss1
    sudo systemctl start ecss-mycelium

    performed in CoCon
    /system-status                                              
    Checking...
    ┌─┬───────────────┬────────────────────────┬───────────────────────────────┬─────────────────────┬───────┐
    │ │     Node      │        Release         │         Erlang nodes          │    Mnesia nodes     │Uptime │
    ├─┼───────────────┼────────────────────────┼───────────────────────────────┼─────────────────────┼───────┤
    │ │core1@ecss2    │ecss-core-3.18.0.249    │core1@ecss1,core1@ecss2        │not running          │12m 12s│
    │ │ds1@ecss2      │ecss-ds-3.18.0.249      │ds1@ecss1,ds1@ecss2            │ds1@ecss1,ds1@ecss2  │12m 12s│
    │ │md1@ecss2      │ecss-mediator-3.18.0.249│md1@ecss1,md1@ecss2            │md1@ecss1,md1@ecss2  │12m 12s│
    │ │mycelium1@ecss1│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running          │12m 14s│
    │ │mycelium1@ecss2│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running          │12m 13s│
    │ │sip1@ecss2     │ecss-pa-sip-3.18.0.249  │sip1@ecss1,sip1@ecss2          │sip1@ecss1,sip1@ecss2│12m 13s│
    └─┴───────────────┴────────────────────────┴───────────────────────────────┴─────────────────────┴───────┘
    
    All services are started.
    
      Active media resource selected list specific:
    ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐
    │    Node     │    MSR    │     MSR     │ Cc-status │ Cc-uptime │
    │             │           │   version   │           │           │
    ├─────────────┼───────────┼─────────────┼───────────┼───────────┤
    │ core1@ecss2 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:10:50  │
    │             │ msr.ecss2 │ 3.18.0.7    │ connected │ 00:10:51  │
    └─────────────┴───────────┴─────────────┴───────────┴───────────┘
  10. On ecss1, start the ds service and use CoCon to verify that the ds service is available on both ecss1 and ecss2:
    on ecss1
    sudo systemctl start ecss-ds

    performed in CoCon
    /system-status                                              
    Checking...
    ┌─┬───────────────┬────────────────────────┬───────────────────────────────┬─────────────────────┬───────┐
    │ │     Node      │        Release         │         Erlang nodes          │    Mnesia nodes     │Uptime │
    ├─┼───────────────┼────────────────────────┼───────────────────────────────┼─────────────────────┼───────┤
    │ │core1@ecss2    │ecss-core-3.18.0.249    │core1@ecss1,core1@ecss2        │not running          │12m 12s│
    │ │ds1@ecss1      │ecss-ds-3.18.0.249      │ds1@ecss1,ds1@ecss2            │ds1@ecss1,ds1@ecss2  │12m 14s│
    │ │ds1@ecss2      │ecss-ds-3.18.0.249      │ds1@ecss1,ds1@ecss2            │ds1@ecss1,ds1@ecss2  │12m 12s│
    │ │md1@ecss2      │ecss-mediator-3.18.0.249│md1@ecss1,md1@ecss2            │md1@ecss1,md1@ecss2  │12m 12s│
    │ │mycelium1@ecss1│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running          │12m 14s│
    │ │mycelium1@ecss2│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running          │12m 13s│
    │ │sip1@ecss2     │ecss-pa-sip-3.18.0.249  │sip1@ecss1,sip1@ecss2          │sip1@ecss1,sip1@ecss2│12m 13s│
    └─┴───────────────┴────────────────────────┴───────────────────────────────┴─────────────────────┴───────┘
    
    All services are started.
    
      Active media resource selected list specific:
    ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐
    │    Node     │    MSR    │     MSR     │ Cc-status │ Cc-uptime │
    │             │           │   version   │           │           │
    ├─────────────┼───────────┼─────────────┼───────────┼───────────┤
    │ core1@ecss2 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:10:50  │
    │             │ msr.ecss2 │ 3.18.0.7    │ connected │ 00:10:51  │
    └─────────────┴───────────┴─────────────┴───────────┴───────────┘
  11. Next, follow the same steps to start the ecss-mediator, ecss-pa-sip, and ecss-core services using the following commands:
    on ecss1
    sudo systemctl start ecss-core

    on ecss1
    sudo systemctl start ecss-mediator

    on ecss1
    sudo systemctl start ecss-pa-sip
    Check the status in CoCon:
    Result:
    /system-status                                              
    Checking...
    ┌─┬───────────────┬────────────────────────┬───────────────────────────────┬─────────────────────┬───────┐
    │ │     Node      │        Release         │         Erlang nodes          │    Mnesia nodes     │Uptime │
    ├─┼───────────────┼────────────────────────┼───────────────────────────────┼─────────────────────┼───────┤
    │ │core1@ecss1    │ecss-core-3.18.0.249    │core1@ecss1,core1@ecss2        │not running          │12m 14s│
    │ │core1@ecss2    │ecss-core-3.18.0.249    │core1@ecss1,core1@ecss2        │not running          │12m 12s│
    │ │ds1@ecss1      │ecss-ds-3.18.0.249      │ds1@ecss1,ds1@ecss2            │ds1@ecss1,ds1@ecss2  │12m 14s│
    │ │ds1@ecss2      │ecss-ds-3.18.0.249      │ds1@ecss1,ds1@ecss2            │ds1@ecss1,ds1@ecss2  │12m 12s│
    │ │md1@ecss1      │ecss-mediator-3.18.0.249│md1@ecss1,md1@ecss2            │md1@ecss1,md1@ecss2  │12m 14s│
    │ │md1@ecss2      │ecss-mediator-3.18.0.249│md1@ecss1,md1@ecss2            │md1@ecss1,md1@ecss2  │12m 12s│
    │ │mycelium1@ecss1│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running          │12m 14s│
    │ │mycelium1@ecss2│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running          │12m 13s│
    │ │sip1@ecss1     │ecss-pa-sip-3.18.0.249  │sip1@ecss1,sip1@ecss2          │sip1@ecss1,sip1@ecss2│12m 14s│
    │ │sip1@ecss2     │ecss-pa-sip-3.18.0.249  │sip1@ecss1,sip1@ecss2          │sip1@ecss1,sip1@ecss2│12m 13s│
    └─┴───────────────┴────────────────────────┴───────────────────────────────┴─────────────────────┴───────┘
    
    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.0.27 │ connected │ 00:10:51  │
    │             │ msr.ecss2 │ 3.18.0.7    │ connected │ 00:10:48  │
    │ core1@ecss2 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:10:50  │
    │             │ msr.ecss2 │ 3.18.0.7    │ connected │ 00:10:51  │
    └─────────────┴───────────┴─────────────┴───────────┴───────────┘
  12. Enable the keepalived service.
    on ecss1
    sudo systemctl enable --now keepalived
  13. Configure the SSW connection to the License Provider using the following command in CoCon (in this example, the License Provider is installed in a cluster, and the host IP addresses are 10.0.10.51 and 10.0.10.52, The default port value from the/etc/ecss/ecss-license-provider/config.env file is 4321)

    performed in CoCon
    /system/licence/manager/set --hosts [https://10.0.10.51:4321, https://10.0.10.52:4321]

    After execution, check the connection status with the following command:

    performed in CoCon
    /system/licence/manager/show-status           
    ┌───────────────────────┬───────┬─────┐
    │         Host          │Current│Alive│
    ├───────────────────────┼───────┼─────┤
    │https://10.0.10.51:4321│*      │true │
    │https://10.0.10.52:4321│       │true │
    └───────────────────────┴───────┴─────┘

    All hosts must have a status of alive=true. One must be “current.” 

    • Current - indicates which host the SSW is connected to. If there is a connection, * is displayed; if not, nothing is displayed.
    • Alive - displays the host’s availability status (healthcheck).

    Connecting to the License Manager

    A lack of connection to the License Provider or ELM is equivalent to a lack of access to the token, which will lead to critical failures and a transition to emergency mode; after a certain period, if the connection is not restored, the system will switch to the Default license.

    This behavior applies only when operating in ELM mode.

    If the status for one of the License Provider hosts is shown as “current,” you can send a request to upload the license to the SSW using the following command:

    performed in 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 │03.02.2026 16:26:34│ECSS2000000 │*     │ECSS ELM License│03.02.2027 16:26:34 │14.03.2026 10:49:12 │1d 6h 59m│
    │0 │01.01.1990 00:00:00│ECSS DEFAULT│      │Default licence │                    │                    │         │
    └──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────────────┴─────────┘



    No additional actions are required

  14. Updating the ecss-restfs package:
    on ecss1
    sudo apt install ecss-restfs
  15. Updating the ecss-media-server package:
    on ecss1
    sudo apt install ecss-media-server
    Update the configuration:
    на ecss1
    sudo dpkg-reconfigure ecss-media-server
    To check and fix the /etc/ecss/ecss-media-server/config.xml file if needed:
    on 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>


  16. Updating the ecss-media-resources package:
    on ecss1
    sudo apt install ecss-media-resources
  17. Updating the ecss-web-conf package:
    on ecss1
    sudo apt install ecss-web-conf
  18. Check the installed services list using the following command:

    on ecss1
    sudo dpkg -l | grep ecss
    Example:
    sudo dpkg -l | grep ecss
    ii  ecss-cc-ui                             17.1.0.53+cc-ui                         amd64        Eltex/ECSS-10 UI and API for call center
    ii  ecss-dns-env                           18.0.0                                  amd64        Eltex/ECSS-10 Configuration settings for domain service
    ii  ecss-license-master                    1.0.77                                  amd64        Eltex/ECSS-10 license master
    ii  ecss-media-resources                   18.0.0                                  amd64        Eltex/ECSS-10 Media resources
    ii  ecss-media-server                      18.0.7                                  amd64        Eltex/ECSS-10 Media server
    ii  ecss-node                              18.0.249                                amd64        Eltex/ECSS-10 Node services
    ii  ecss-peeper-client                     17.1.0.23                               amd64        Eltex/ECSS-10 peeper client
    ii  ecss-postgres-bdr-ssw                  18.0.0+ssw                              amd64        Eltex/Postgres BDR
    ii  ecss-restfs                            18.0.22                                 amd64        Eltex/ECSS-10 RestFS API interface for filesystem
    ii  ecss-teleconference-ui                 17.1.0.31                               amd64        Eltex/ECSS-10 UI and API for Teleconference
    ii  ecss-user                              18.0.0                                  amd64        Eltex/ECSS-10 SSW user environment
    ii  ecss-utils                             18.0.0                                  amd64        Eltex/ECSS-10 Utilities for reading binary logs
    ii  ecss-web-conf                          18.0.31                                 amd64        Eltex/ECSS-10 Web configurator

    After executing teh command reinstall the packages taht have the 17.1.* version. In this example – ecss-cc-ui/ecss-peeper-client/ecss-teleconference-ui.

    Updating the ecss-teleconference-ui package.

    on ecss1
    sudo apt install ecss-teleconference-ui

    Updating the ecss-cc-ui package:

    on ecss1
    sudo apt install ecss-cc-ui

    Updating the ecss-peeper-client package:

    on ecss1
    sudo apt install ecss-peeper-client
  19. Delete the ecss-elm-adapter package that's no longer used, via the following command:
    on ecss1
    sudo apt purge ecss-elm-adapter

    No additional actions are required.


7 Checking the update

  1. After the update is complete, make sure that all SSW services are functioning properly.
  • Нет меток