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

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

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

Update options

Using a single server for the SSD does not provide redundancy. Therefore, upgrading to a new version without interrupting traffic is not possible.
There are two ways to upgrade.

The first option is to stop traffic and update PostgreSQL and all ecss packages on the working SSD, then activate the service and start traffic. The advantage of this option is a simple upgrade process. The disadvantage is a longer traffic interruption.

The second option is to perform a complete fresh installation of the OS on a separate host (physical or virtual), and then install the SSD using temporary IP addresses. During the installation, you will also need to copy the databases (Mnesia + PostgreSQL) from the old host to the new one. Once the new SSD is installed, the temporary IP addresses are replaced with those of the old SSD (at this point, the old SSD is disabled) and the MSR files are configured. After this, the new SSD begins serving traffic. The advantage of this option is minimal traffic interruption. The disadvantage is a more complex and time-consuming update procedure.

Select the appropriate option.


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

You can check which type is used on your SWS using the following command:


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

When using a file license, the output will be:

file 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 │224d 21h 31m│
│0 │                   │ECSS DEFAULT│      │Default licence    │                    │            │
└──┴───────────────────┴────────────┴──────┴───────────────────┴────────────────────┴────────────┘

When using an ELM license, the output will be:

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




Attention

Before performing the update procedure, perform a full backup.

If you need the latest billing data, you need to finalize the current CDR and download the CDR files to a remote server:

/domain/test_domain/cdr/make_finalize_cdr 
Created file(s): cdr_20260522_11_51_16_1_c.csv

First option

  1. Attention

    Perform a full backup
  2. You need to mask all nodes on the server and disable node autostart:
    on ecss1
    sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm

    When the attached command is executed, a notification will be displayed.

    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 errors. Continue with the procedure.

  3. Update the ssw repository:
    on ecss1
    sudo sh -c "echo deb [arch=amd64]  http://archive.eltex.org/ssw/jammy/3.18 stable main extras external > /etc/apt/sources.list.d/eltex-ecss10-stable.list"
  4. Perform package update:
    on ecss1
    sudo apt update

    If you see this system message:

    W: http://archive.eltex.org/ssw/jammy/3.18/dists/unstable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

    Run the following command:

    on both hosts
    sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d
  5. Updating PostgreSQL:
    1. Turn off 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 
    2. Remove the old deb package, since the upgrade option is not supported:
      on ecss2
      sudo apt remove ecss-postgres-bdr-ssw

      !!Important!!

      Run remove, not purge, because remove preserves the volumes directory with our database tables.


      Example:
      sudo apt remove ecss-postgres-bdr-ssw
      Reading package lists... Done
      . . .
      The following packages will be REMOVED:
        ecss-postgres-bdr-ssw
      . . .
      Do you want to continue? [y/n] y
      Deleting ecss-postgres-bdr-ssw (17.1.0.59+ssw) …
    3. Install a 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:

      The answers must exactly match those specified in the procedure, otherwise an attempt will be made to create a new database and the installation will fail.

      QuestionReplyExample

      The current IP address of the network interface.


      10.0.10.41 (select)

      Install on a cluster?

      Select <Yes> if the package is installed on a cluster node.

      No (select)


      If the installation is successful, at the stage of raising replication we will see:
      sudo apt install ecss-postgres-bdr-ssw
      . . .
      ==================
       Create databases 
      ==================
      Database ecss_storekeeper_db already exists, skipping...
      Database web_conf already exists, skipping...
      Extension btree_gist already exists, skipping...
      Extension bdr already exists, skipping...
      
      ===================================
       Creating Postgres Exporter Schema 
      ===================================
      Node IP: localhost
      psql:/srv/ecss/ecss-postgres-bdr-ssw/schema.sql:1: NOTICE:  schema "postgres_exporter" already exists, skipping
      CREATE SCHEMA
      GRANT
      CREATE FUNCTION
      CREATE VIEW
      GRANT
      CREATE FUNCTION
      CREATE VIEW
      GRANT
      psql:/srv/ecss/ecss-postgres-bdr-ssw/schema.sql:28: NOTICE:  extension "pg_stat_statements" already exists, skipping
      CREATE EXTENSION
      CREATE FUNCTION
      CREATE VIEW
      GRANT
      . . .
      =======================================================
      =======================================================
       ecss-postgres-bdr-ssw successfully installed/updated! 
      =======================================================
      =======================================================
      
      
      ┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓  ┳┓┳┓┳┓  ┏┓┏┓┓ ┏
      ┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓  ┣┫┃┃┣┫  ┗┓┗┓┃┃┃
      ┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛  ┻┛┻┛┛┗  ┗┛┗┛┗┻┛
    4. After installation, check that the new image has been pulled in and Docker has started by running the command:
      on ecss2
      sudo docker ps

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

    After the update, you need to update the configuration by running the command. The answers to the questions are similar to the installation procedure:
    on ecss1
    sudo dpkg-reconfigure ecss-dns-env
  7. Update the ecss-user package:

    When updating, you need to apply new configuration files (confirm with -Y).


    on ecss1
    sudo apt install ecss-user
  8. Update the ecss-utils package:
    on ecss1
    sudo apt install ecss-utils
  9. 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),
    possible 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 redundancy.


    What services should be restarted?

    ecss-license-provider.service (default value)

    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

    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.

    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
    сat /etc/ecss/ecss-elm-adapter/config.env 
    ELM_HOST=elm.eltex-co.ru
    ELM_PORT=8099
    ECSS_PRODUCT_ID=ECSS2000000
    ECSS_LICENSE_KEY=ssw987654
    LOG_LEVEL=info
    LICENCE_FAIL_TIMER_SECONDS=10
    LICENCE_PULL_TIMER_SECONDS=360

    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:
    - "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]
    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:

    on both hosts if there is a cluster
    sudo systemctl restart ecss-license-provider.service
  10. Update the ecss-node package:
    on ecss1
    sudo apt install ecss-node

    During installation, you will be prompted to configure the settings required to generate the configuration files; examples of possible answers are provided below.

    ecss-node questionsAnswers for ecss1Example

    Cookies for the core node:

    ecss-core (default value)

    It is recommended to replace this with a unique value

     


    Cookies for the ds node

    ecss-ds (default value)

    It is recommended to replace this with a unique value

     


    Cookies for the mediator node:

    ecss-mediator (default value)

    It is recommended to replace this with a unique value

     


    Cookies for the pa-sip node:

    ecss-pa-sip (default value)

    It is recommended to replace this with a unique value

     


    Cookies for the mycelium node:

    ecss-mycelium (default value)

    It is recommended to replace this with a unique value

     


    Use the current version of the configuration file?

    No (default value)


    When updating, you must apply the new configuration files (confirm with -Y).

     

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

    on ecss1
    sudo systemctl enable ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm
  12. Starting SSW on ecss1. Start the following services:
    ecss-mycelium
    on ecss1
    sudo systemctl start ecss-mycelium
    ecss-ds
    on ecss1
    sudo systemctl start ecss-ds
    ecss-core
    on ecss1
    sudo systemctl start ecss-core
    ecss-mediator
    on ecss1
    sudo systemctl start ecss-mediator

    Do not start PA-SIP yet

  13. 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@ecss1    │ecss-core-3.18.0.271    │core1@ecss1    │not running │14m 4s│
    │ │ds1@ecss1      │ecss-ds-3.18.0.271      │ds1@ecss1      │ds1@ecss1   │14m 4s│
    │ │md1@ecss1      │ecss-mediator-3.18.0.271│md1@ecss1      │md1@ecss1   │14m 4s│
    │ │mycelium1@ecss1│ecss-mycelium-3.18.0.271│mycelium1@ecss1│not running │14m 4s│
    │ │sorm1@ecss1    │ecss-sorm-3.18.0.271    │sorm1@ecss1    │not running │14m 5s│
    └─┴───────────────┴────────────────────────┴───────────────┴────────────┴──────┘
    
    All services are started.
    
      Active media resource selected list specific:
    ┌─────────────┬───────────┬────────────┬───────────┬───────────┐
    │    Node     │    MSR    │    MSR     │ Cc-status │ Cc-uptime │
    │             │           │  version   │           │           │
    ├─────────────┼───────────┼────────────┼───────────┼───────────┤
    │ core1@ecss1 │ msr.ecss1 │ 3.17.1.1.7 │ connected │ 00:43:03  │
    └─────────────┴───────────┴────────────┴───────────┴───────────┘
  14. Режимы лицензирования.

    If a file-based license is used

    No additional actions are required.

    /cluster/storage/ds1/licence/list-licence
    ┌──┬───────────────────┬────────────────┬──────┬────────────────────────────────────────────┬────────────────────┬────────────┐
    │Id│Creation date(UTC) │     SSW ID     │Active│                Description                 │Expiration date(UTC)│ Time left  │
    ├──┼───────────────────┼────────────────┼──────┼────────────────────────────────────────────┼────────────────────┼────────────┤
    │1 │31.10.2025 14:16:00│ECSS 010070     │*     │Eltex SC softswitch                         │31.12.2026 23:59:59 │224d 21h 31m│
    │0 │                   │ECSS DEFAULT    │      │Default licence                             │                    │            │
    └──┴───────────────────┴────────────────┴──────┴────────────────────────────────────────────┴────────────────────┴────────────┘
  15. Configure the SSW connection to the License Provider using the following command in CoCon (in this example, the License Provider is installed in the ecss1 host, hosts' IPadd is 10.0.10.41. 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.41: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.41:4321│*      │true │
    └───────────────────────┴───────┴─────┘

    Teh host should have a status of alive=true and 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 │14.04.2026 11:18:34│ECSS2000000 │*     │ECSS ELM License│09.04.2027 16:26:34 │06.06.2026 10:49:12 │1d 6h 59m│
    │0 │01.01.1990 00:00:00│ECSS DEFAULT│      │Default licence │                    │                    │         │
    └──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────────────┴─────────┘


  16. Updating the ecss-restfs package.

    Accept all new configuration files by choosing Y.


    on ecss1
    sudo apt install ecss-restfs
  17. Updating the ecss-media-server package.

    The Media Server analyzes the configuration in the files located in the /etc/ecss/ecss-media-server/ directory. Version 3.17 introduces a new feature for managing codec priorities. If, for any reason, multiple files contain a codec section that lists the same codec more than once, a conflict will occur after the update, and the Media Server will not function.

    Therefore, there should be no conflicts regarding codec priorities in the configuration files of a single Media Server (there should be only one entry for one codec, and it should not be repeated in other files). The decision regarding which specific files need to be configured is left to the discretion of the system administrator.

    Perform an update:

    Accept all new configuration files by choosing Y.


    on ecss1
    sudo apt install ecss-media-server
    Update the configuration:
    on ecss1
    sudo dpkg-reconfigure ecss-media-server
  18. Updating the ecss-media-resources package
    on ecss1
    sudo apt install ecss-media-resources
  19. Updating the ecss-web-conf package
    on ecss1
    sudo apt install ecss-web-conf
  20. Updating the ecss-teleconference-ui package.

    on ecss1
    sudo apt install ecss-teleconference-ui

    Updating the ecss-crm-server package.

    on ecss1
    sudo apt install ecss-crm-server

    Updating the ecss-cc-ui package.

    on ecss1
    sudo apt install ecss-cc-ui

    Updating the ecss-call-api package.

    on ecss1
    sudo apt install ecss-call-api

    Updating the ecss-peeper-client package.

    on ecss1
    sudo apt install ecss-peeper-client
  21. Launch ecss-pa-sip:
    on ecss1
    sudo systemctl start ecss-pa-sip
    Check the status of services by running the /system-status command:
    performed in CoCon
    /system-status 
    Checking...
    ┌─┬───────────────┬────────────────────────┬───────────────┬────────────┬───────┐
    │ │     Node      │        Release         │ Erlang nodes  │Mnesia nodes│Uptime │
    ├─┼───────────────┼────────────────────────┼───────────────┼────────────┼───────┤
    │ │core1@ecss1    │ecss-core-3.18.0.271    │core1@ecss1    │not running │54m 27s│
    │ │ds1@ecss1      │ecss-ds-3.18.0.271      │ds1@ecss1      │ds1@ecss1   │54m 27s│
    │ │md1@ecss1      │ecss-mediator-3.18.0.271│md1@ecss1      │md1@ecss1   │54m 27s│
    │ │mycelium1@ecss1│ecss-mycelium-3.18.0.271│mycelium1@ecss1│not running │54m 27s│
    │ │sip1@ecss1     │ecss-pa-sip-3.18.0.271  │sip1@ecss1     │sip1@ecss1  │54m 27s│
    │ │sorm1@ecss1    │ecss-sorm-3.18.0.271    │sorm1@ecss1    │not running │54m 27s│
    └─┴───────────────┴────────────────────────┴───────────────┴────────────┴───────┘
    
    All services are started.
    
      Active media resource selected list specific:
    ┌─────────────┬───────────┬──────────┬───────────┬───────────┐
    │    Node     │    MSR    │   MSR    │ Cc-status │ Cc-uptime │
    │             │           │ version  │           │           │
    ├─────────────┼───────────┼──────────┼───────────┼───────────┤
    │ core1@ecss1 │ msr.ecss1 │ 3.18.0.7 │ connected │ 00:01:17  │
    └─────────────┴───────────┴──────────┴───────────┴───────────┘
    Verify that active registrations have been migrated to the updated host. To do this, check the registered subscribers on SSW. Execute the following command in CoCon:
    performed in CoCon
    /domain/test_domain/sip/user/registered sip *            
    450 make users list ...
    [**********************************************************************] 28mks    
    450 users information read ...
    [**********************************************************************] 1ms      
    Executed on the sip1@ecss1
    ┌───────────────┐
    │ elements: 436 │
    └───────────────┘
  22. After the update is complete, verify that all SSW services are functioning properly.

Second option

Initial data
Use temporary IP addresses during installation (10.0.10.51/10.0.20.51 in the example). In the final steps, the temporary addresses will be replaced with the actual IP addresses for SSW version 3.17 (10.0.10.41/10.0.20.41 in the example).

Initial data

Integration of the ECSS-10 (SSW) Class 5 software switch on a single physical server with SIP support is required, with the following load parameters:

  • Maximum number of subscribers – 15000 (MUL Max user limit);
  • Maximum number of concurrent connections – 2000 (MCL Max call limit);
  • System redundancy is not required;
  • Number of Ethernet network interfaces – 4.

According to the technical specifications, the hardware platform must be determined.

Error: Page Not Found

Error: Page Not Found

Device

Required resource

Hardware product series

MCL

MUL

Server 1

2500

15000

Heavy

After defining the project requirements, create a preliminary network diagram.

Example of how components are distributed across the address space for a single node:

Server (host) name

Role 

Interface

Address

Your project's address

Port

Static addresses of the software switch

ecss1

Server address

net.10 (mgm)

10.0.10.51/24


-

ecss1

Protocol adapter address

net.20 (voip)

10.0.20.51/24


-

ecss1

Gateway address

net.10 (mgm)

10.0.10.1
-

ecss1

DNS servers addresses

net.10 (mgm)

10.0.10.1, 8.8.8.8
-

Internal addresses of the software switch

ecss1

Core address (ecss-core)

lo

127.0.0.1/24


5000

ecss1

Media server address (ecss-media-server (MSR))

lo

127.0.0.1/24


5040



Connecting to the network

To ensure redundancy, it is recommended to use two switches when configuring the server’s network topology.

draw.io

Diagram attachment access error: cannot display diagram

Figure 1 – Network connection diagram

Option 1. Active-backup configuration

The switches are interconnected in an ERPS ring.

All four physical network interfaces are combined into a single aggregated link (bond). The server’s port aggregation is configured in active-backup mode, meaning that only one network interface is active at any given time. The server’s network interfaces are connected in pairs to the switches, on which the port aggregation (port-channel) is also configured in active-backup mode.

For example, eth1 and eth2 are connected to the first switch, while eth3 and eth4 are connected to the second.


Option 2. LACP diagram

The switches are linked together in a stack. The stack must function logically as a single switch capable of providing port aggregation in LACP mode across different physical switches. An example is the MES3124 switches with specialized firmware.

All four physical network interfaces are also combined into a single aggregated link (bond). Server port aggregation is configured in 802.3ad mode. Aggregated groups of network cards with the same speed and duplex settings are created. With this configuration, data transmission utilizes all channels in the active aggregation in accordance with the IEEE 802.3ad standard. The choice of which interface to send a packet through is determined by a policy. By default, this is the XOR policy; the “xmit_hash” policy can also be used.

Requirements:

  • Ethtool support in the driver to retrieve information about the speed and duplex settings on each network interface;
  • Support for the IEEE 802.3ad standard on the switch;

The server’s network interfaces are also connected in pairs to switches on which port aggregation (port-channel) is configured in LACP mode. For example, eth1 and eth2 are connected to the first switch (port-channel 1), and eth3 and eth4 are connected to the second (port-channel 2).

Installing the OS

The SSW ECSS10 installation consists of two main parts:

  • Preparation – Installing Ubuntu 22.04, updating Ubuntu packages, "optimizing" the OS, installing additional software packages, configuring network interfaces, /etc/hosts, and ssh-keygen

  • Installation of Eltex ECSS10 applications

Preparation phase

This section describes the installation of the operating system, as well as the required and additional packages. The ECSS-10 system, version 3.17, runs on Ubuntu 22.04.

Prerequisites

  • Bootable installation medium containing the operating system installation package;
  • A prepared server with an updated BIOS and ILO (if available) and a network connection for Internet access;
  • First boot priority set to the installation media – USB flash drive or CD/DVD in the BIOS;
  • Sufficient disk space and memory as specified by the project.

OS installation

To install the OS, perform the following steps:

  • After booting from the installation medium, select "Install Ubuntu Server".
  • Select the system language and keyboard layout.
  • Configure the network interface to connect to the Internet:

  • Create disk partitions according to Table 1
  • Set the server and user names
  • Install the OpenSSH server
  • Reboot the successfully installed OS

Error: Page Not Found



Table 1 – Option for storing information in the file system on physical storage media for servers

1Operating system boot partition (created automatically)bootraid 1:hdd1, hdd2boot/bootext41 GbPrimary
2Operating system root partitionrootraid 1:hdd1, hdd2root/ext430 GbLogical
3Local database informationmnesiaraid 1:hdd1, hdd2mnesia/var/lib/ecssext410 GbLogical
4Distributed database for storing media resourcesglusterfsraid 1:hdd1, hdd2 or hdd3glusterfs/var/lib/ecss/restfsext4Max GbLogical
5OS subsystem operation logslograid 1:hdd1, hdd2 or hdd3log/var/logext420 GbLogical
6ECSS subsystem operation logsecss_lograid 1:hdd1, hdd2 or hdd3ecss_log/var/log/ecssext420 GbLogical
7Databasesecss_dbraid 1:hdd1, hdd2 or hdd3ecss_db/srv/ecss/ecss-postgres-bdr-ssw/ext4100–400 Gb*Logical
8User fileshomeraid 1:hdd1, hdd2 or hdd3home/homeext410 GbLogical


The recommended value for the Light, Light+, and Midi series is 100 Gb. The recommended value for the Heavy series is 200 Gb, and for the Super Heavy series, 400 Gb.

At least 256 Gb of free space is required for the system to operate.

The "hostname" parameter must be configured on the system's servers.

It is recommended to use the same username (any name except ssw) on all system servers. The ECSS-10 license is tied to the eToken/ruToken key and the computer name (hostname). The system user ssw is created during installation of the ecss-user package.

If a single server is used, the recommended hostname value is ecss1;


Network configuration

We will configure the network according to the parameters specified in the technical specifications. In this example, we assume that the required operating system is already installed. 

It is recommended to separate traffic used for different purposes – for example, management traffic and VoIP traffic. To do this, create two or more VLANs. With a light load, you can get by with a single VLAN for simplicity, but this will cause inconvenience in the future when capturing and analyzing traffic dumps. In accordance with the technical specifications, the host’s IP addresses, gateways, DNS, and routing to other networks are configured on the VLANs.

In this example, according to the technical specifications, we will use the following addresses:

  • 10.0.10.51/24 — for management, vlan 10;
  • 10.0.20.51/24 — for VoIP.

Within the server platform, there is an addressing structure, and internal addresses are used for communication between subsystems (nodes) in the cluster. For example, the internal address for a cluster on a single server is 127.0.0.1, and the core (ecss-core) communicates with the multimedia data processing server (ecss-media-server). They communicate using the same address, but each software component has its own transport port: 5000 for ecss-core, 5040 for ecss-msr.

A single address is defined for all cluster nodes to access the database, for example, 127.0.0.1. This ensures consistency, whereby all cluster nodes have exactly the same data about the current state of the software switch’s dynamic components (for example, call history).

Preparing system's network interfaces

According to technical specifications, the system has 4 network interfaces. Information about their state can be looked up using the ifconfig or ip a command:

eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 36:10:28:73:63:01 txqueuelen 1000 (Ethernet)

eth1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 36:10:28:73:63:01 txqueuelen 1000 (Ethernet)

eth2: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether be:77:ea:52:4d:39 txqueuelen 1000 (Ethernet)

eth3: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether be:77:ea:52:4d:39 txqueuelen 1000 (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0

First, configure the network interfaces. In Ubuntu 22, the netplan utility is used to configure them.

This utility makes it possible to configure the network settings and then load them into the system using the "networkd" or "NetworkManager" network manager.

sudo nano /etc/netplan/ecss_netplan.yaml

All other files in this directory must be moved to another location or deleted.

In the configurations for each host, we first define the ethernets section, which describes the Ethernet interfaces present in the system that will be used later. For each interface, you must disable dynamic address assignment (DHCP). 

Next, configure the VLANs, where you can optionally specify gateways for communication with the outside world and DNS server addresses, as well as the IP addresses for each interface.

IMPORTANT

Please note that when editing netplan, it is necessary to follow YAML indentation rules:

  • There must be at least two spaces before each line (except for network);
  • Each subsection is additionally separated by 2 spaces:

→  Section                                                                   |network

→  Subsection                                                             |_'_'bonds:

→  Subsection describing the "bonds" section           |_'_'_'_'bonded_one:

→  etc.                                                                         |_'_'_'_'...

  • There is no space before the ":" character, and one space after it;
  • Before the "-" character, there are as many spaces as if a new subsection were starting, and one space after it.

Example of configuring the ecss_netplan.yaml file for the “active-backup” option

# Netplan for the ecss1 host of the software switch
# Please note that there must be at least two spaces in every line and section (except for the network section).

network:
  version: 2 # netplan version
  renderer: networkd # netplan configuration renderer
  ethernets: # Section describing Ethernet interfaces
    enp0s3: # Name of the virtual machine’s interface to the Internet
        dhcp4: no # Disable dynamic IP address assignment on interfaces
        dhcp6: no
        addresses: [192.168.56.51/24]
    enp0s8: # Name of the interface for SSW
        dhcp4: no # Disable dynamic IP address assignment on interfaces
        dhcp6: no
  vlans:
    net.10: # Management interface
        id: 10
        link: enp0s3
        addresses: [10.0.10.51/24]
    net.20: # VoIP interface
        id: 20
        link: enp0s8
        addresses: [10.0.20.51/24]

The following bonds settings are required for the ECSS server to ensure that configuration works correctly:

mode: active-backup – specifies the operating mode in which one of the links is selected as active, while the others remain in standby;
primary-reselect-policy: failure specifies that a new active link should be selected only when the current active link enters a failure state. This helps avoid unnecessary switchover;
gratuitous-arp: 5 при смене активного линка в сторону коммутатора отправляются пять запросов gratuitous ARP, чтобы обновить на нём таблицу коммутации. Способствует более быстрому переключению;
all-slaves-active: true заставляет принимать входящие кадры на backup интерфейсах. Таким образом балансировка трафика на MESе не мешает работе. Данные в сторону сервера идут со всех линков, а сервер отправляет данные только с active линка;
mii-monitor-interval: 100 активирует мониторинг линков через интерфейс MII и указывает интервал опроса в 100мс;
up-delay: 1000 указывает считать поднявшийся интерфейс доступным для работы не сразу, а сделать задержку в одну секунду после того, как интерфейс поднялся. Необходимо для того, чтобы избежать лишних переключений в случае, когда порт «прыгает» несколько раз из состояния «включено» в состояние «выключено» и обратно.

Также рекомендуется проверить отсутствие в каталоге /etc/netplan/ еще каких либо файлов, если  другие файлы присутствуют , то их нужно переместить в другой каталог или удалить, в противном случае возможна некорректная настройка сетевых интерфейсов и некорректная работа SSW. 

Применим установленные параметры командой:

sudo netplan apply

На серверах системы необходимо настроить параметр "hostname".

На всех серверах системы желательно указать одинаковое имя пользователя (любое, кроме ssw). Лицензия ECSS-10 привязывается к ключу eToken/ruToken и к имени компьютера (hostname), поэтому необходимо использовать стандартные значения. Системный пользователь ssw создается при инсталляции пакета ecss-user.

Если используется один сервер, рекомендуемое значение hostname — ecss1;
Другие имена хостов возможны только при согласовании проекта, это потребуется для генерации лицензий. 

Указать имя хоста: ecss1 в файле /etc/hostname:

sudo nano /etc/hostname 

Указать  реальный Ipadd и имя хоста используемое в настоящий момент (для примера 10.0.10.51 ecss1) в файле /etc/hosts:

127.0.0.1   localhost # Адрес локальной петли, используется некоторыми сервисами ecss
10.0.10.51  ecss1 # Адрес хоста

"Оптимизация" операционной системы

Выставить параметры ОС в режим производительности

Используем  утилиту cpufrequtils.

sudo apt install cpufrequtils

по умолчанию после установки Ubuntu используется режим "ondemand" - "по запросу" (производительность CPU по запросу приложений, экономит электроэнергию, но снижает производительность):

cat /etc/init.d/cpufrequtils | grep GOVERNOR=

в выходном сообщении системы режим работы по умолчанию после установки - "ondemand" :

GOVERNOR="ondemand"

Установить режим результативности/производительности  -  в файле /etc/init.d/cpufrequtils значение "ondemand" заменить на "performance"

sudo sed -i 's/GOVERNOR="ondemand"/GOVERNOR="performance"/g' /etc/init.d/cpufrequtils

Перезапустить утилиту:

sudo /etc/init.d/cpufrequtils restart 

Затем выполнить команду:

sudo systemctl daemon-reload

Отключить SWAP

Ubuntu сервер SSW работает в реальном масштабе времени , поэтому все необходимые данные должны находится в оперативной памяти, использование  файла подкачки (swap-файл - /swap. img) может привести к увеличению времени обработки вызовов приложения SSW ECSS10 , что недопустимо. Swap - отключаем. 
Выполнить последовательно три команды:

Отключение Swap:

sudo swapoff -a

Удалить файл swap.img.

sudo rm /swap.img

Закомментировать строку - /swap.img none swap sw 0 0 -   в файле /etc/fstab - выполнив команду "sudo nano /etc/fstab"

привести её к виду # /swap.img none swap sw 0 0

либо удалить эту строчку (/swap.img none swap sw 0 0)

sudo nano /etc/fstab

Для проверки выполните команду  free -h:

free -h

Размер Swap равен 0 — значит, он выключен

free -h
              total        used        free      shared  buff/cache   available
Mem:           3,9G        110M        3,2G        820K        535M        3,5G
Swap:            0B          0B          0B

Установка часового пояса

При инсталляции Ubuntu-22 не предлагается установить часовой пояс (по умолчанию — UTC). Его нужно установить вручную (для корректной работы системы тарификации, работ по расписанию и т. д.), например:

sudo timedatectl set-timezone Asia/Novosibirsk

Улучшение работы высоконагруженных серверов

Улучшить работу высоконагруженных серверов можно увеличив лимит открытых файлов.

Для установки лимита открытых файлов необходимо:

Проверить текущий лимит командой:

ulimit -a

результат :

eltex@ecss1:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 15515
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 15515
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Данного лимита (open files  1024 ) недостаточно для нормальной работы высоконагруженных серверов.

Установить лимит открытых файлов для каждого пользователя:

sudo sed -i  '55i\*                soft    nproc           65536\n*                hard    nproc           131072\n*                soft    nofile          65536\n*                hard    nofile          131072\nroot             -       memlock         unlimited' /etc/security/limits.conf

# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>
#
#Where:
#<domain> can be:
#        - a user name
#        - a group name, with @group syntax
#        - the wildcard *, for default entry
#        - the wildcard %, can be also used with %group syntax,
#                 for maxlogin limit
#        - NOTE: group and wildcard limits are not applied to root.
#          To apply a limit to the root user, <domain> must be
#          the literal username root.
#
#<type> can have the two values:
#        - "soft" for enforcing the soft limits
#        - "hard" for enforcing hard limits
#
#<item> can be one of the following:
#        - core - limits the core file size (KB)
#        - data - max data size (KB)
#        - fsize - maximum filesize (KB)
#        - memlock - max locked-in-memory address space (KB)
#        - nofile - max number of open files
#        - rss - max resident set size (KB)
#        - stack - max stack size (KB)
#        - cpu - max CPU time (MIN)
#        - nproc - max number of processes
#        - as - address space limit (KB)
#        - maxlogins - max number of logins for this user
#        - maxsyslogins - max number of logins on the system
#        - priority - the priority to run user process with
#        - locks - max number of file locks the user can hold
#        - sigpending - max number of pending signals
#        - msgqueue - max memory used by POSIX message queues (bytes)
#        - nice - max nice priority allowed to raise to values: [-20, 19]
#        - rtprio - max realtime priority
#        - chroot - change root to directory (Debian-specific)
#
#<domain>      <type>  <item>         <value>
#

#*               soft    core            0
#root            hard    core            100000
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#ftp             -       chroot          /ftp
#@student        -       maxlogins       4
*                soft    nproc           65536
*                hard    nproc           131072
*                soft    nofile          65536
*                hard    nofile          131072
root             -       memlock         unlimited

# End of file


ВАЖНО

Установку пакетов требуется делать НЕ из-под пользователя ssw.

Обновление программного обеспечения операционной системы

  1. Для установки системы ECSS-10 необходимо добавить репозиторий ELTEX:
    на новом ssw
    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"

    Далее необходимо выполнить импорт ключа командой:

    на новом ssw
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 33CB2B750F8BB6A5

    Перед началом установки необходимо обновить ОС:

    на новом ssw
    sudo apt update

    Если вы видите такое сообщение системы:

    W: http://archive.eltex.org/ssw/jammy/3.18/dists/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

    Выполните следующую команду:

    на новом ssw
    sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d
    на новом ssw
    sudo apt upgrade


Установка и настройка программного обеспечения

установка пакетов deb

  ┌ версия ПО ECSS. Сейчас в заявке на сертификацию она заявлена как 3. 
  | Мы её менять не будем до следующей сертификации или
  │ выпуска принципиально новой версии системы.
  │
  │     ┌ версия System Release. Общая версия для всех компонент входящих в конкретный релиз. 
  |     | Меняем её централизовано, когда
  │     │ принимаем решение о выпуске нового релиза. Релизы между собой обычно не совместимы.
┌─┴┐ ┌──┴─┐
ECSS.SysRel.SubMaj.SubMin
            └──┬─┘ └──┬─┘
               │      └ версия Subsystem minor. Минорную версию подсистемы устанавливает разработчик подсистемы. 
               |        Минорную версию
               │        меняем при добавлении патча. Как правило, минорные версии в рамках одной мажорной версии 
               │        совместимы между собой и отличаются в рамках конкретных патчей.
               │
               └ версия Subsystem major. Мажорная версия устанавливается разработчиком подсистемы. 
                 Мажорную версию подсистемы необходимо менять при внесении в подсистему существенных изменений.


Утилита установки пакетов APT анализирует версию пакета слева направо, для примера мы имеем пакет 14.14.7.7 , 
в репозитории находятся пакеты
14.14.7.8
14.14.7.9
14.14.8.1
14.14.20 -14.14.28
то при выполнении команды sudo apt install имя пакета → будет автоматически проверен и установлен пакет 14.14.28 , так как он самый последний, анализ будет выполнен по 3-й позиции  (major), анализ по 4-й (minor) выполнен не будет (аналогичным образом будет выполнятся команда sudo apt upgrade).

В случае если для конкретной ситуации требуется перейти с версии 14.14.7.7 на версию 14.14.7.9 , стандартная команда → sudo apt upgrade , нам не поможет, так как будет выбран самый новый пакет, в данной ситуации нам необходимо в явном виде указать какую версию пакета мы хотим установить, в данном примере мы должны выбрать команду → sudo apt install имя пакета=14.14.7.9 . Обычно это необходимо для тестирования определенного патча, для стандартных обновлений достаточно выбора привычной команды установки /обновления пакета

Устанавливаем все предложенные пакеты:

sudo apt install ntp ntpdate tcpdump vlan dnsmasq aptitude atop ethtool htop iotop mc minicom mtr-tiny nmap pptpd pv screen ssh tftpd vim sngrep tshark cpanminus gnuplot libgraph-easy-perl debconf-utils wget rsync ncdu

Список обязательного сервисного программного обеспечения:

sudo apt install ntp tcpdump vlan dnsmasq
ntpNTP-сервер
tcpdumpсниффер пакетов
vlanуправление VLAN
dnsmasqлегковесный DNS/DHCP-сервер

Список рекомендуемого диагностического и вспомогательного программного обеспечения:

sudo apt install aptitude atop ethtool htop mc screen ssh tftpd sngrep tshark gnuplot libgraph-easy-perl debconf-utils iotop ncdu
aptitudeустановка программ из репозиториев, рекомендуется использовать вместо программы apt/apt-get
atopмониторинг загрузки хоста с функцией периодического сохранения информации в файлы
ethtoolпросмотр статистики сетевых интерфейсов
htopмониторинг процессов
mcфайловый менеджер
screenмультиплексор терминалов
sshсервер и клиент SSH
tftpdTFTP-сервер
sngrepтрассировка sip
tsharkконсольный аналог wireshark
gnuplotвывод графиков статистики
libgraph-easy-perlPerl-модуль для преобразования или рендеринга графиков (в ASCII, HTML, SVG или через Graphviz)
debconf-utilsнабор утилит для работы с базой debconf
iotopинструмент для мониторинга использования ввода-вывода (IO) на диске в реальном времени в Linux
ncduутилита для поиска больших директорий в системе Linux

Данное программное обеспечение не требуется для работы системы ECSS-10, однако может упростить сервисное обслуживание системы и её отдельных компонентов со стороны инженеров эксплуатации и техподдержки.


Перед началом установки пакетов ecss , нужно убедиться в соответствии полосы пропускания СПД необходимым требованиям.
Для этого выполнить команду  sudo ethtool  <имя интерфейса> для всех физических интерфейсов.

sudo ethtool net.20
Settings for net.20:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Auto-negotiation: on
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    MDI-X: off (auto)
    Link detected: yes

Проверить значение  следующих параметров:
Advertised auto-negotiation: Yes
Speed: 1000Mb/s  (не менее)
Duplex: Full


Настройка пакета ecss-dns-env

Выполнить следующую команду:

sudo apt install -y ecss-dns-env

Настройщик предложит выбрать разделы для настройки по вопросам ниже. Нужно выбрать broker. (для примера 10.0.10.51)

Вопрос ecss-dns-envОтветы для ecss1 
[Primary broker] Введите адрес ([Primary broker] Enter ip)10.0.10.51 (необходимо ввести)


[Secondary broker] Введите адрес ([Secondary broker] Enter ip)10.0.10.51 (необходимо ввести)


ВАЖНО

В случае последующей коррекции IP-адресов следует использовать команду: 

sudo dpkg-reconfigure ecss-dns-env

Установка Postgres

Примечание

Перед установкой ecss-postgres-bdr-ssw в системе, в apt sources, должен быть добавлен docker для этого выполнить следующие команды:

на новом ssw
sudo install -m 0755 -d /etc/apt/keyrings
на новом ssw
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
на новом ssw
sudo chmod a+r /etc/apt/keyrings/docker.asc
на новом ssw
sudo sh -c "echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu   jammy stable' >> /etc/apt/sources.list.d/docker.list"
на новом ssw
sudo apt update && sudo apt upgrade

Установка пакета ecss-postgres-bdr-ssw

Выполнить установку пакета ecss-postgres-bdr-ssw:

на новом ssw
sudo apt install ecss-postgres-bdr-ssw

При конфигурации пакета ecss-postgres-bdr-ssw будут заданы вопросы:

Вопросы ecss-postgres-bdr-sswОтветы для ecss1Пример
Текущий IP-адрес сетевого интерфейса
(Выбрать адрес ранее используемый MySQL).
Выбрать из списка IP-адрес для работы с Postgres


Установка в кластере?No  (необходимо выбрать)


Результат:
. . .
==================
 Create databases 
==================
CREATE DATABASE
CREATE DATABASE
CREATE EXTENSION
CREATE EXTENSION
===================================
 Creating Postgres Exporter Schema 
===================================
Node IP: localhost
CREATE SCHEMA
GRANT
CREATE FUNCTION
CREATE VIEW
GRANT
CREATE FUNCTION
CREATE VIEW
GRANT
CREATE EXTENSION
CREATE FUNCTION
CREATE VIEW
GRANT
=======================================================
=======================================================
 ecss-postgres-bdr-ssw successfully installed/updated! 
=======================================================
=======================================================
┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓  ┳┓┳┓┳┓  ┏┓┏┓┓ ┏
┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓  ┣┫┃┃┣┫  ┗┓┗┓┃┃┃
┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛  ┻┛┻┛┛┗  ┗┛┗┛┗┻┛

В случае использования файлового лицензирования

На данном шаге никаких дополнительных действий выполнять не требуется.

Установить пакет License Provider:

на ecss2
sudo apt install ecss-license-provider

При установке пакета ecss-license-provider будут заданы вопросы:

ВопросыОтветыПримеры

Адрес для соединения с License Provider: 
License Provider listen ip:

0.0.0.0 (значение по умолчанию)

Порт для соединения c License Provider:
License Provider listen port:
4321 (значение по умолчанию)

Выберите уровень логирования:
Log level:
info (значение по умолчанию),
возможные варианты: debug, error, info

Ключ-имя кластера резервирования:
License Provider cluster key:

указать уникальное имя
ecss-lm-cluster (значение по умолчанию)

Менеджеры с одинаковыми именами попытаются собраться в кластер и резервировать друг друга.


Данные сохраняются в файле /etc/ecss/ecss-license-provider/config.env:

ECSS_LM_HOST=0.0.0.0
ECSS_LM_PORT=4321
ECSS_LM_LOG_LEVEL=info
RELEASE_COOKIE=ecss-abf-lm-cluster

Конфигурация License Provider (LP)

Сервис ecss-license-provider использует два конфигурационных файла: /etc/ecss/ecss-license-provider/config.env и /etc/ecss/ecss-license-provider/config.yaml.

В файл config.env информация сохраняется в момент установки пакета ecss-license-provider.

Config.yaml файл содержит основные настройки для подключения к ELM-серверу, откуда брать лицензии, какие лицензии, и куда их потом передавать, все это нужно сконфигурировать вручную.

информация в файле после установки
elm_addresses: []
licenses: []
ecss_nodes: []
Для заполнения данных полей откройте файл конфигурации ecss-elm-adapter используемого в версии 3.17 ssw /etc/ecss/ecss-elm-adapter/config.env:
на ecss2
сat /etc/ecss/ecss-elm-adapter/config.env 
ELM_HOST=elm.eltex-co.ru
ELM_PORT=8099
ECSS_PRODUCT_ID=ECSS2000000
ECSS_LICENSE_KEY=ssw987654
LOG_LEVEL=info
LICENCE_FAIL_TIMER_SECONDS=10
LICENCE_PULL_TIMER_SECONDS=360

В поле elm_adresses нужно прописать список серверов ELM, к которым мы хотим подключаться для получения лицензий. Первый адрес в списке используется как основной. Дополнительные строки с адресами работают как резерв.
пример:
- "elm.eltex-co.ru:8099"
- "192.168.111.22:8099"
- "elm-3.eltex.loc:8099"

Дальше задаются сами лицензии в поле licenses.

  • id может быть любой, главное чтоб был уникальный у каждой лицензии. Влияет только на адрес лицензии на самом License Provider (например 0, 1, 2, 3).
  • kind. Для SSW поддерживается только SSW (заглавными буквами).
  • type выбирается как elm, если запрашивать данную лицензию нужно с ELM-сервера. Если нужно использовать файловую лицензию SSW, то тип выбирается как ecss_license.
    • при elm типе необходимо задать поля license_key и product_id для идентификации лицензии.
    • при ecss_license типе задается поле license, содержащее ключ статичной лицензии.

Параметры license_key = ECSS_LICENSE_KEY и product_id = ECSS_PRODUCT_ID должны быть согласованы с данными, ранее загруженными на ELM-сервере.

Блок ecss_nodes

В нем нужно задать данные сервисов, которые будут получать лицензию. Сервис задается тремя параметрами:

  • id - идентификатор сервиса. В случае с SSW должен совпадать с ECSS_ID лицензируемого SSW.
  • kind - тип лицензируемого сервиса. По аналогии с блоком лицензий, поддерживаются типы SSW и AUP. Для SSW поддерживается только SSW.
  • license_id - идентификатор лицензии, которая будет отправляться на данный сервис. Соответствует идентификаторам лицензии из блока licenses.
Два SSW с разными ECSS_ID не могут получить одну и ту же лицензию, конфигурация с таким распределением будет помечена некорректной.
Кроме того, два SSW с одинаковыми ECSS_ID не смогут одновременно получать одну и ту же лицензию с одного License Provider, поэтому крайне важно корректно устанавливать свой ECSS_ID и делать его уникальным как минимум в зоне видимости используемого License Provider.

ECSS_ID указанный в файле /etc/ecss/ecss-license-provider/config.yaml, должен совпадать с ECSS_ID ( идентификатор ECSS-узла) которое указываем при установке пакета ecss-node

При обновлении, имя нового ECSS-узла (ECSS_ID) нужно обязательно указывать отличное от имени старого ECSS-узла. В противном случае при их совпадении сервис ecss-mycelium не активируется.


Формат ECSS_ID:
Начинается и заканчивается обязательно латинской буквой или цифрой, в теле же могут использоваться точки и тире. 

[A-Za-z0-9][A-Za-z0-9.-][A-Za-z0-9]
Пример: файла config.yaml на основе данных из файла /etc/ecss/ecss-elm-adapter/config.env
elm_addresses:
 - "elm.eltex-co.ru:8099"
licenses:
 - id: 0
   kind: SSW
   type: elm
   license_key: "ssw987654"
   product_id: "ECSS2000000"
ecss_nodes:
 - id: test.update
   kind: ssw
   license_id: 0

Выполнить перезагрузку сервиса ecss-license-provider.service для обновления конфигурации из файла /etc/ecss/ecss-license-provider/config.yaml следующей командой:

если кластер, то на обоих хостах
sudo systemctl restart ecss-license-provider.service


Установка ecss-node

Установка обязательного пакета ecss-node включает в себя установку и первоначальную настройку основных подсистем.

В системе уже должен быть установлен пакет ecss-postgres-bdr-ssw

Для установки пакета ecss-node выполните команду:

на новом ssw
sudo apt install -y ecss-node

Во время установки пакета создается пользователь ssw, от имени которого запускаются все сервисы ecss*. Создаются необходимые каталоги, выполняется настройка DNS, идет настройка SSL-сертификатов.

При установке также будет установлен пакет ecss-user

Во время установки будет предложено настроить параметры, необходимые для формирования конфигурационных файлов, примеры ответов следует ниже.

Вопросы ecss-userОтветы для ecss1Пример

Хотите ли вы использовать стандартные настройки?


Yes (значение по умолчанию)

 
Вопросы ecss-nodeОтветы для ecss1Пример

Идентификатор ECSS-узла в формате DNS (Настройка имени кластера): (любое уникальное имя, в примере test.update)

При обновлении, имя нового ECSS-узла нужно обязательно указывать отличное от имени старого ECSS-узла. В противном случае при их совпадении сервис ecss-mycelium не активируется.

Идентификатор ECSS-узла должен совпадать с ECSS_ID указанном в файле конфигурации провайдера лицензий - /etc/ecss/ecss-license-provider/config.yaml.

 

test.update (необходимо ввести)

Формат ECSS_ID:
Начинается и заканчивается обязательно латинской буквой или цифрой, в теле же могут использоваться точки и тире. 

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

Хотите ли вы использовать стандартные настройки?Yes (значение по умолчанию)

 
Вопросы ecss-userОтветы для ecss1Пример
Максимальный размер несжатого дампа в байтах.8G (значение по умолчанию)

Максимальный размер сжатого дампа в байтах.2G (значение по умолчанию)

Максимальный размер, который может занять каталог /var/lib/systemd/coredump:

default (значение по умолчанию)

Минимальный объем свободного дискового пространства в байтах. 30G (значение по умолчанию)

Сохраните в безопасное место и удалите файл /etc/ecss/ssl/ecss10root.key!

Ok (значение по умолчанию)

Cookie для ноды core:

ecss-core (необходимо ввести)


Cookie для ноды ds:

ecss-ds (необходимо ввести)


Cookie для ноды mediator: 

ecss-mediator  (необходимо ввести)


Cookie для ноды pa-sip: 

ecss-pa-sip  (необходимо ввести)


Cookie для ноды mycelium:

ecss-mycelium (необходимо ввести)


Cookie для ноды sorm: 

ecss-sorm (необходимо ввести)


Проверить информацию о состоянии синхронизации c NTP, используется команда  ntpq –p . Если использовать дополнительный ключ –n, вместо имени сервера будет указан IP-адрес:

ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*185.125.190.56  17.253.28.253    2 u   45   64    1   83.893   +0.470   2.177

Остановить сервисы:

на новом ssw
sudo systemctl stop ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium

Создать backup для oasys (скопировать БД Mnesia со старого на новый ecss1), выполнить следующие команды:

на новом ssw
cd /var/lib/ecss/oasys/
на новом ssw
sudo rsync -a <Ваш_пользователь>@<IP_add_старого_сервера>:/var/lib/ecss/oasys/Mnesia.ds1@ecss1/ Mnesia.ds1@ecss1/
на новом ssw
sudo rsync -a <Ваш_пользователь>@<IP_add_старого_сервера>:/var/lib/ecss/oasys/Mnesia.md1@ecss1/ Mnesia.md1@ecss1/
на новом ssw
cd ~


Перезапустить сервисы SSW:

на новом ssw
sudo systemctl restart ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium


Если лицензия поддерживает СОРМ3, то запустить также сервис ecss-sorm.

на новом ssw
sudo systemctl start ecss-sorm

Проверить статус сервисов, для этого выполнить в CoCon команду system-status:

выполняется в CoCon
/system-status 
Checking...
┌─┬───────────────┬─────────────────────────┬───────────────┬────────────┬──────┐
│ │     Node      │         Release         │ Erlang nodes  │Mnesia nodes│Uptime│
├─┼───────────────┼─────────────────────────┼───────────────┼────────────┼──────┤
│ │core1@ecss1    │ecss-core-3.18.0.271     │core1@ecss1    │not running │3m 55s│
│ │ds1@ecss1      │ecss-ds-3.18.0.271       │ds1@ecss1      │ds1@ecss1   │4m 40s│
│ │md1@ecss1      │ecss-mediator-3.18.0.271 │md1@ecss1      │md1@ecss1   │3m 50s│
│ │mycelium1@ecss1│ecss-mycelium-3.18.0.271 │mycelium1@ecss1│not running │5m 28s│
│ │sip1@ecss1     │ecss-pa-sip-3.18.0.271   │sip1@ecss1     │sip1@ecss1  │3m 45s│
│ │sorm1@ecss1    │ecss-sorm-3.18.0.271     │sorm1@ecss1    │not running │1m 55s│
└─┴───────────────┴─────────────────────────┴───────────────┴────────────┴──────┘

Режимы лицензирования.

Лицензирование с использованием файловой лицензии

В случае использования файлового лицензирования

Никаких дополнительных действий выполнять не требуется.

/cluster/storage/ds1/licence/list-licence
┌──┬───────────────────┬────────────────┬──────┬────────────────────────────────────────────┬────────────────────┬────────────┐
│Id│Creation date(UTC) │     SSW ID     │Active│                Description                 │Expiration date(UTC)│ Time left  │
├──┼───────────────────┼────────────────┼──────┼────────────────────────────────────────────┼────────────────────┼────────────┤
│1 │31.10.2025 14:16:00│ECSS 010070     │*     │Eltex SC softswitch                         │31.12.2026 23:59:59 │224d 21h 31m│
│0 │                   │ECSS DEFAULT    │      │Default licence                             │                    │            │
└──┴───────────────────┴────────────────┴──────┴────────────────────────────────────────────┴────────────────────┴────────────┘

Лицензирование с использованием ELM сервиса

Выполнить конфигурацию подключения SSW к License Provider следующей командой в CoCon, (в примере License Provider установлен на хосте ecss1, IPadd хостов 10.0.10.51. Значение порта из файла /etc/ecss/ecss-license-provider/config.env по умолчанию 4321):

выполняется в CoCon
/system/licence/manager/set --hosts [https://10.0.10.51:4321]

После выполнения проверить статус подключения командой:

выполняется в CoCon
/system/licence/manager/show-status
┌───────────────────────┬───────┬─────┐
│         Host          │Current│Alive│
├───────────────────────┼───────┼─────┤
│https://10.0.10.51:4321│*      │true │
└───────────────────────┴───────┴─────┘

Хост должен иметь статус alive=true. И быть «current». 

  • Current - отображает к какому хосту подключён SSW. Если есть подключение, указывается *, если нет - ничего не указано.
  • Alive - отображает статус доступности хоста (healthcheck).

Подключение к License Manager

Отсутствие подключения к License Provider \ ELM будет равноценно отсутствию доступа к токену, что приведёт к критическим авариям, переходу в аварийный режим по истечении которого, если связь не будет восстановлена, система перейдёт на Default-лицензию.

Данное поведение применимо только при работе в elm-режиме.

Если статус к одному из хостов License Provider показан current, можно посылать запрос на загрузку лицензии на SSW командой:

выполняется в CoCon
/cluster/storage/ds1/licence/request
type=elm
/cluster/storage/ds1/licence/request      
Licence received      
[*******                                                               ] 6s 2ms   
Success: Licence parameters applied
type=elm
/cluster/storage/ds1/licence/list-licence 
┌──┬───────────────────┬────────────┬──────┬────────────────┬────────────────────┬────────────────────┬─────────┐
│Id│Creation date(UTC) │   SSW ID   │Active│  Description   │Comm. Exp. Date(UTC)│Expiration date(UTC)│Time left│
├──┼───────────────────┼────────────┼──────┼────────────────┼────────────────────┼────────────────────┼─────────┤
│1 │14.04.2026 11:18:34│ECSS2000000 │*     │ECSS ELM License│09.04.2027 16:26:34 │06.06.2026 10:49:12 │1d 6h 59m│
│0 │01.01.1990 00:00:00│ECSS DEFAULT│      │Default licence │                    │                    │         │
└──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────────────┴─────────┘


Установка пакетов ecss-restfs, ecss-media-server, ecss-web-conf

Далее устанавливаются пакеты ecss-restf  затем ecss-media-server, ecss-media-resources, , ecss-web-conf и другие в любом порядке:

ecss-restfs

на новом ssw
sudo apt install -y ecss-restfs

Установка ecss-restfs.  

При установке пакета ecss-restfs будет предложено задать параметры конфигурации. Ответы на вопросы приведены ниже. Также инсталлятор предложит установить и настроить пакет Text2speech от Yandex.

Вопросы ecss-restfsОтветы

Использование функции TTS (Use TTS service)

No (значение по умолчанию)

Настройка телефонной книги (Configure phone book)

No (значение по умолчанию)

Настроить сервис определения речи (Configure speech recognition service)

No (значение по умолчанию)

Ничего не выбирать

Ok

после установки пакета ecss-restfs проверьте наличие wav файлов автоинформатора в директории /var/lib/ecss/restfs/system/sounds/ командой :

ll /var/lib/ecss/restfs/system/sounds/

наличие wav-файлов в указанной выше директории говорит о корректности установки пакета ecss-restfs

Отсутствия wav файлов в указанной выше директории, директории свидетельствует о проблеме при установке пакета ecss-restfs. Для ее решения выполните команду:

sudo apt --fix-broken install 

и повторите команду проверки:

ll /var/lib/ecss/restfs/system/sounds/

осталось проверить доступность этих файлов извне. Для проверки выполните команду:

wget http://ecss1:9990/system/sounds/ai_you.wav

 

wget http://ecss1:9990/system/sounds/ai_you.wav
--2026-04-18 17:43:29--  http://ecss1:9990/system/sounds/ai_you.wav
Resolving ecss1 (ecss1)... 127.0.1.1, 10.0.10.51
Connecting to ecss1 (ecss1)|127.0.1.1|:9990... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11670 (11K) [audio/x-wav]
Saving to: ‘ai_you.wav’

ai_you.wav                                  100%[========================================================================================>]  11,40K  --.-KB/s    in 0s      

2026-04-18 17:43:29 (301 MB/s) - ‘ai_you.wav’ saved [11670/11670]

проверочный файл можно удалить

rm ai_you.wav

Перенести записи разговоров со старого сервера на новый, выполнив следующую команду:

на новом ecss1
sudo rsync -a <ваш_пользователь>@<IP_add_старого_ecss1>:/var/lib/ecss/restfs/domain/ /var/lib/ecss/restfs/domain/
Пример:
abf@ecss1:/var/lib/ecss/restfs/domain$ ls -la /var/lib/ecss/restfs/domain
итого 8
drwxr-xr-x 2 www-data www-data 4096 апр 22 18:21 .
drwxr-xr-x 7 www-data www-data 4096 мая 28 15:07 ..

abf@ecss1:/var/lib/ecss/restfs/domain$ sudo rsync -a abf@10.0.10.10:/var/lib/ecss/restfs/domain/ /var/lib/ecss/restfs/domain/

abf@ecss1:/var/lib/ecss/restfs/domain$ ls -la test_domain/records/2026_05_28
итого 610
drwxrwxrwx 2 www-data www-data  4096 мая 28 14:56 .
drwxrwxrwx 3 www-data www-data  4096 мая 28 14:27 ..
-rw-r--r-- 1 www-data www-data 71892 мая 28 14:27 2026-05-28_14-27-02_t_42009-42007.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:27 2026-05-28_14-27-02_t_42009-42007.pcm.meta
-rw-r--r-- 1 www-data www-data 71892 мая 28 14:31 2026-05-28_14-31-19_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:31 2026-05-28_14-31-19_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 63904 мая 28 14:55 2026-05-28_14-55-24_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:55 2026-05-28_14-55-24_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 39940 мая 28 14:55 2026-05-28_14-55-31_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:55 2026-05-28_14-55-31_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 15976 мая 28 14:55 2026-05-28_14-55-37_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:55 2026-05-28_14-55-37_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 79880 мая 28 14:55 2026-05-28_14-55-48_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:55 2026-05-28_14-55-48_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 55916 мая 28 14:56 2026-05-28_14-55-59_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:55 2026-05-28_14-55-59_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 47928 мая 28 14:56 2026-05-28_14-56-04_o_42007-42009.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:56 2026-05-28_14-56-04_o_42007-42009.pcm.meta
-rw-r--r-- 1 www-data www-data 31952 мая 28 14:56 2026-05-28_14-56-28_t_42009-42007.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:56 2026-05-28_14-56-28_t_42009-42007.pcm.meta
-rw-r--r-- 1 www-data www-data 31952 мая 28 14:56 2026-05-28_14-56-37_t_42009-42007.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:56 2026-05-28_14-56-37_t_42009-42007.pcm.meta
-rw-r--r-- 1 www-data www-data 95856 мая 28 14:56 2026-05-28_14-56-42_t_42009-42007.pcm
-rw-rw-rw- 1 www-data www-data    86 мая 28 14:56 2026-05-28_14-56-42_t_42009-42007.pcm.meta

ecss-media-server

на новом ssw
sudo apt install -y ecss-media-server

Для медиасервера (ecss-media-server/MSR) можно выполнить начальную настройку с записью параметров в файл конфигурации,
для этого нужно провести конфигурацию  transport bind-addr,mcc bind-addres:
Укажите IP-адреса старого SSW версии 3.17 (в примере 10.0.20.41).

Вопросы ecss-media-serverОтветы для ecss1
[ MSR SIP ] Введите bind-ip адрес (Enter)10.0.20.41 (необходимо ввести)
[MSR Control-Channel] Введите bind-ip-адрес10.0.20.41 (необходимо ввести)

После формирования конфигураций по умолчанию  выполните проверку:

cat /etc/ecss/ecss-media-server/config.xml


Внутри лежит конфигурация для msr: config.xml, в директории conf.d лежит конфигурация default.xml.

По своей сути default.xml — это дополнение config.xml, которое определяет секцию аккаунтов. Это сделано для того, чтобы после обновлений пакета данная конфигурация оставалась неизменной. Вид config.xml представлен здесь: файл конфигурации.

<?xml version="1.0" encoding="utf-8"?>
<config date="09:24:23 03.12.2025">
  <general log-level="3" log-rotate="yes" max-calls="2148" max-vid-calls="100" max-in-group="512" load-sensor="media" load-delta="10" calls-delta="100" spool-dir-size="100M" log-name="msr.log" log-path="/var/log/ecss/media-server" use-srtp="disabled" enable-ice-transport="no" ice-update="no" aggressive-ice="yes" stun-server="" suspicious-mode="no"/>
  <transport bind-addr="10.0.20.41" port="5040" transport="udp+tcp"/>
  <!-- By default configured public TURN-server -->
  <turn-server use-turn="no" host="numb.viagenie.ca" user="webrtc@live.com" password="muazkh"/>
  <media mixer-clock-rate="8000" use-vad="no" cng-level="0" jb-size="60" rtcp-timeout="0" rtp-timeout="350" udp-src-check="no" cn-multiplier="3" port-start="12000" port-range="4496" tias-in-sdp="no" thread-cnt="2" vid-enc-threads="2" vid-dec-threads="2" video-conf-layout="evenly" keyframe-interval="1000" vid-decode-delay="100" silent-codec-switch="yes" silence-threshold="-30" dtmf-flash-disable="no" video-dscp="0" other-dscp="0" dummy-video-src="/usr/share/ecss-media-server/video/dummy_video.yuv" video-enc-width="640" video-enc-height="360" finalsilence="1000" rtcp-stat-dump="yes" dtmf-tg-fpc-loop="10" dtmf-tg-fit="1" dtmf-tg-fot="2" dtmf-tg-volume="12288"/>
  <codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g726="0" g729="0" speex="0" l16="0" g7221="0" opus="0" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
  <accounts>
    <!-- <dynamic msr_name="msr.name"
            realm="sip:127.0.0.1:5000"
            dtmf_mode="rfc+inband+info"
            auth_name="user"
            auth_password="password" /> -->
  </accounts>
  <pbyte>
    <mcc bind-addr="10.0.20.41" port="5700"/>
  </pbyte>
  <conf_dir path="/etc/ecss/ecss-media-server/conf.d"/>
  <metrics enable="yes" use-pushgateway="yes" pushgateway-addr="127.0.0.1:9091" push-interval="5" port="8100" msr_name="msr2"/>
  <rtp>
    <auto addr-v4=""/>
  </rtp>
</config>

по умолчанию , после инсталляции ECSS-10 активизирует только кодеки - pcma, pcmu, g722, h264, h263-1998, t38. Остальные имеют статус =0 = выкл. Если хотите активизировать остальные кодеки, в редакторе nano измените приоритет с 0 на цифру приоритета (уровень приоритета не должен повторятся для сервиса audio/video/fax)
sudo nano /etc/ecss/ecss-media-server/config.xml

чтобы активизировать все кодеки 
строчку  - 
<codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g726="0" g729="0" speex="0" l16="0" g7221="0" opus="0" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
привести к виду - 
<codec pcma="1" pcmu="2" ilbc="6" gsm="4" g722="3" g726="11" g729="5" speex="7" l16="8" g7221="9" opus="10" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>

Недопустимо указывать у разных кодеков одинаковый приоритет, для примера g722="5" g729="5". В этом случае они будут работать некорректно/игнорироваться.
За исключением "0" - выключено.

Рассмотрим секцию аккаунтов (файл default.xml):

cat /etc/ecss/ecss-media-server/conf.d/default.xml

Проверить корректность данных.

Настройка msr для ecss1(/etc/ecss/ecss-media-server/conf.d/default.xml)
<?xml version="1.0"?>
<config>
    <accounts>
        <dynamic msr_name="msr.ecss1" realm="sip:10.0.20.41:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password">
            <via dynamic-ifaces="no">
                <iface name="net.20" ip="10.0.20.41"/>
            </via>
        </dynamic>
    </accounts>
</config>

В ней указаны текущие настройки, согласно которым происходит регистрация msr на core.

Основными параметрами здесь являются: msr_name и realm:

  • msr_name — параметр, определяющий название msr. (рекомендуется задавать название msr. и к какому хосту он принадлежит, например msr.ecss1);
  • realm — определяет адрес для регистрации на ядре. Точка входа по умолчанию: порт 5000, адрес: 127.0.0.1.

После изменения конфигурации файлов /etc/ecss/ecss-media-server/config.xml и /etc/ecss/ecss-media-server/conf.d/default.xml необходимо выполнить перезапуск сервиса ecss-media-server, чтобы изменения вступили в силу, следующей командой:

sudo systemctl restart ecss-media-server

Вы увидите сообщение:

Job for ecss-media-server.service failed because the control process exited with error code.
See "systemctl status ecss-media-server.service" and "journalctl -xeu ecss-media-server.service" for details.

Мы указали рабочие IP адреса для media сервиса, а они пока закреплены за старым ecss1. После переключения IP адресов сервис запустится автоматически.


ecss-web-conf

на новом ssw
sudo apt install ecss-web-conf

Web-конфигуратор позволяет сделать управление системой более наглядным и комфортным. Установка web-конфигуратора не является обязательной, но рекомендуется.
Также при установке пакета ecss-web-conf автоматически устанавливается пакет ecss-subscriber-portal-ui. Приложение "Портал абонента" системы ECSS-10 позволяет абонентам системы самостоятельно управлять услугами, просматривать информацию по совершенным вызовам, активным конференциям, а также настраивать собственные IVR-скрипты для входящих вызовов. Описание работы веб-конфигуратора приведено в разделе "Портал абонента".

Вопросы ecss-web-confОтветы для ecss1Пример
 Хотите ли вы использовать стандартные настройки?Yes (значение по умолчанию)

Проверьте возможность подключения к веб-интерфейсу http://10.0.10.51,  пользователь/пароль — admin/password. В настоящий момент не все функции будут доступны, но веб-интерфейс должен работать, а вход в систему — быть успешным.

Отключение SSW версии 3.17

Для отключения старого SSW версии 3.17 выполнить следующие команды:
Отключение сервисов

на старом SSW
sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm

Копирование БД Postgres

Скопировать БД Postgres со старого ecss1, для этого выполнить команду:

на старом SSW
sudo tar -Pcvf /tmp/postgres.tar /srv/ecss/ecss-postgres-bdr-ssw/volumes/

Скопировать postgres.tar на новый сервер, выполнив команду:

на старом SSW
 scp /tmp/postgres.tar <ваш_пользователь>@<IP_адрес_новый_ecss1>:/tmp/postgres.tar

Остановить docker БД Postgres командой:

на новом ssw
sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml stop

Очистить подкаталог /srv/ecss/ecss-postgres-bdr-ssw/volumes:

на новом ssw_ecss1
sudo rm -R /srv/ecss/ecss-postgres-bdr-ssw/volumes/*

Распаковать БД Postgres на новом сервере ecss1.

на новом ssw_ecss1
sudo tar xvf /tmp/postgres.tar -C / 

Запустить docker БД Postgres командой:

на новом ssw
sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml start

Замена IP адресов на старом ecss1

Изменить IP адреса 10.0.10.41/10.0.20.41 на неиспользуемые на сети (для примера на 10.0.10.61/10.0.20.61):

на старом SSW
sudo nano /etc/netplan/ecss.yaml
Было:
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3: # Название интерфейса ВМ к интернет
        dhcp4: yes
        dhcp6: no
    enp0s8: # Название интерфейса для SSW
        dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса
        dhcp6: no
        addresses: [192.168.56.41/24]
  vlans:
    net.10: # Интерфейс управления
        id: 10
        link: enp0s8
        addresses: [10.0.10.41/24]
        nameservers:
          addresses: [127.0.0.1, 8.8.8.8] # Адреса серверов DNS
    net.20: # Интерфейс для VoIP
        id: 20
        link: enp0s8
        addresses: [10.0.20.41/24]
        routes:
        - to: 10.0.20.128/25
          via: 10.0.20.35
Стало:
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3: # Название интерфейса ВМ к интернет
        dhcp4: yes
        dhcp6: no
    enp0s8: # Название интерфейса для SSW
        dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса
        dhcp6: no
        addresses: [192.168.56.61/24]
  vlans:
    net.10: # Интерфейс управления
        id: 10
        link: enp0s8
        addresses: [10.0.10.61/24]
        nameservers:
          addresses: [127.0.0.1, 8.8.8.8] # Адреса серверов DNS
    net.20: # Интерфейс для VoIP
        id: 20
        link: enp0s8
        addresses: [10.0.20.61/24]
        routes:
        - to: 10.0.20.128/25
          via: 10.0.20.35
на старом SSW
sudo netplan apply

Переключение нового SSW на рабочие IP адреса

После освобождения рабочих IP адресов со старого SSW можно подключить их к новому SSW. Выполнить команду:

на новом ssw
sudo nano /etc/netplan/ecss.yaml

Изменить IP адреса 10.0.10.51/10.0.20.51 на используемые на сети для SSW (в примере 10.0.10.41/10.0.20.41):

Было:
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3: # Название интерфейса ВМ к интернет
        dhcp4: yes
        dhcp6: no
    enp0s8: # Название интерфейса для SSW
        dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса
        dhcp6: no
        addresses: [192.168.56.51/24]
  vlans:
    net.10: # Интерфейс управления
        id: 10
        link: enp0s8
        addresses: [10.0.10.51/24]
        nameservers:
          addresses: [127.0.0.1, 8.8.8.8] # Адреса серверов DNS
    net.20: # Интерфейс для VoIP
        id: 20
        link: enp0s8
        addresses: [10.0.20.51/24]
        routes:
        - to: 10.0.20.128/25
          via: 10.0.20.35
Стало:
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3: # Название интерфейса ВМ к интернет
        dhcp4: yes
        dhcp6: no
    enp0s8: # Название интерфейса для SSW
        dhcp4: no # Отключаем на интерфейсах динамическое распределение IP-адреса
        dhcp6: no
        addresses: [192.168.56.41/24]
  vlans:
    net.10: # Интерфейс управления
        id: 10
        link: enp0s8
        addresses: [10.0.10.41/24]
        nameservers:
          addresses: [127.0.0.1, 8.8.8.8] # Адреса серверов DNS
    net.20: # Интерфейс для VoIP
        id: 20
        link: enp0s8
        addresses: [10.0.20.41/24]
        routes:
        - to: 10.0.20.128/25
          via: 10.0.20.35
на новом ssw
sudo netplan apply

Обновить IP адрес в файле /etc/hosts:

на новом ssw
sudo nano /etc/hosts

Обновить IP адрес в файле /etc/dnsmasq.d/ecss-broker:

на новом ssw
sudo dpkg-reconfigure ecss-dns-env
выполняется в CoCon
/system/licence/manager/set --hosts [https://10.0.10.41:4321]
на новом ssw
sudo systemctl restart ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-media-server


После выполнения обновления проверьте работу всех сервисов SSW.



  • Нет меток