| Step | Documentation section | Result | Note |
|---|---|---|---|
| 1. Checking the hardware requirements for the system | |||
| 1.1 The latest software versions of internal devices and server controllers (BIOS, RAID, iDRAC, iLO, etc.) are installed | See the documentation for the server that is used | ||
| 1.2 The presence of at least a dual-core CPU in the system | Development of the system project | Defined by the system project | |
| 1.3 The presence of at least 8 GB of RAM in the system | Development of the system project | Defined by the project depending on the required load. For test purposes, a reduction of up to 4 GB is allowed | |
| 1.4 Enough disk space | Ubuntu Server 22.04 installation | df -h | |
| 1.5 Partitioning done correctly | df -h | ||
| 1.6 SWAP file is NOT used in the system | free -h | ||
| 2. Checking the software requirements for the system | |||
2.1 The correct version and bit depth of the operating system are set (Ubuntu Server 22.04.x) | hostnamectl | ||
| 2.2 The correct hostname is set: ecss1 or ecss2 | When using redundancy.
CoCon command: /system/clusters/list | ||
| 2.3 Current updates are installed in the system | |||
| 2.4 The recommended software is installed in the system | |||
| 2.5 The ECSS-10 repository has been added to the system and is accessible | System update | ||
| 2.6 The network interfaces are configured correctly: | |||
| - addresses of network interfaces are static and do not change dynamically via DHCP | Configuring network interfaces | sudo ifconfig | |
| - the keepalived service (VRRP) is configured and running | When using redundancy sudo ifconfig | ||
| 2.7 The eToken/RuToken key is connected to the USB port of the server: | Checking Token operation | ||
| - The eToken/RuToken key has been defined in the system (lsusb) | |||
| - Checking the eToken/RuToken key | Checking Token operation | ||
| 2.8 Checking network availability between ecss1 and ecss2 hosts: | When using redundancy | ||
| - ping delay between hosts does not exceed 100 ms | It is necessary to minimize traffic delays between hosts as much as possible | ||
| - no packet loss during data exchange between hosts | The ping command is run for a few minutes, after which the statistics are removed by a combination of keys: CTRL+| Example: ssw@ecss1:~$ ping -q -c 200 ecss2 PING ecss2 (192.168.1.22) 56(84) bytes of data. 177/177 packets, 0% loss, min/avg/ewma/max = 0.062/0.131/0.117/0.489 ms | ||
| - hosts are accessible to each other by DNS name (as written in /etc/hosts/ and in accordance with the license) | Checking ping from ecss1 to ecss2 and vice versa | ||
| - key authentication between hosts is configured | Generate ssh key and transfer it to another server: ssh-keygen ssh-copy-id ssw@ecss2 Similarly from ecss2 to ecss1 | ||
| 2.9 Time synchronization with the NTP server is running on the server: | Time synchronization on servers | Check the status: ntpq -p | |
| - the correct time zone is set | Check: date +%Z | ||
| - time synchronization in orphan mode or synchronization with a single NTP is configured on ecss1 and ecss2 hosts | When using redundancy | ||
| 2.10. Glusterfs-server is installed: | Installing and configuring the rest ecss packages | Software version 3.13.2 and later | |
| 3. Checking the correctness of the ECSS-10 installation | |||
| 3.1 Installation of system component packages was completed successfully without errors: | dpkg -l | grep ecss | ||
| - ecss-postgres-bdr-ssw | |||
| - ecss-node | |||
| - ecss-media-resources | Installing the mandatory ECSS package | ||
| - ecss-media-server | Installing the mandatory ECSS package | ||
| - ecss-restfs | Installing the mandatory ECSS package | ||
| - ecss-user | Installing the mandatory ECSS package | ||
| - ecss-web-conf | Installing and configuring the rest ecss packages | ||
| - ecss-dns-env | |||
| 4. Checking the performance of the ECSS-10 system | |||
| 4.1 Checking the installed ECSS-10 license: | CoCon command: /cluster/storage/ds1/licence/list-licence | ||
| - pcscd service is operating | pkcs11-tool --module $(find /usr/lib/ecss/ecss-ds/lib/ -name librtpkcs11ecp.so | head -n1) -L | ||
| - the correct passport is installed in the system | CoCon command: /cluster/storage/ds1/licence/show-passport | ||
| - the current license is installed in the system | CoCon command: /cluster/storage/ds1/licence/current-limits | ||
| 4.2 The dnsmasq service is up and running: | |||
| - if the system is redundant, the correct primary addresses are registered in the dnsmasq configuration.broker.ecss and secondary.broker.ecss | Note that the content is the same on both servers. address=/primary.broker.ecss/<ecss1 address> address=/secondary.broker.ecss/<ecss2 address> | ||
| - addresses are available by DNS name | Installing the mandatory ECSS package | ping -c1 cocon.mysql.ecss ping -c1 dialer.mysql.ecss ping -c1 statistics.mysql.ecss ping -c1 tc.mysql.ecss ping -c1 tts.mysql.ecss ping -c1 controlchannel.zmq.ecss ping -c1 system.restfs.ecss | |
| 4.3 The cluster name is registered in the system with redundancy (not undefined) | cat /etc/ecss/ecss-mycelium/mycelium1.config | grep name | ||
4.4 ecss services are up and running (in the running state):
| systemctl is-active ecss-core ecss-pa-sip ecss-ds ecss-mediator ecss-mycelium | ||
| - The CoCon "system-status" command outputs an empty Alarms list | |||
| 4.5 The MSR media server is configured and connected to ECSS-10: | |||
| - configuring the MSR to connect to ECSS-10 | From shell servers: cat /etc/ecss/ecss-media-server/config.xml | ||
| - MSR is declared in system media resources | CoCon: /system/media/resource/list /system/media/registrar/info If the system is redundant, check if it is connected to both cores. | ||
| - MSR is configured on the ecss2 host in the same way | When using redundancy | ||
| 4.6 Restfs is configured and accessible from the ECSS-10 server: | |||
| - RestFS is available for recording and downloading media files | From shell servers: wget http://ecss1:9990/system/sounds/ai_you.wav wget http://ecss2:9990/system/sounds/ai_you.wav | ||
| 4.7 The TTS service (text to voice message conversion) is configured and running: | If tts is selected when installing ecss-restfs | ||
| - The service returns the voice file after converting from text | From shell servers: wget http://ecss1:9990/generate?key=<Key>&text=<Text>&format=wav&lang=ru-RU&speaker=alyss&emotion=good&quality=hi wget http://ecss2:9990/generate?key=<Key>&text=<Text>&format=wav&lang=ru-RU&speaker=alyss&emotion=good&quality=hi where: | ||
| 4.8 Users, their rights and roles are configured | cocon/list users | ||
| 4.9 Subscriber service restriction rules are configured | |||
| 5. Checking the correctness of the domain configuration in ECSS-10 | |||
| 5.1 SIP transport (ip-set) is configured in the domain | |||
| - Addresses (node_ip) and ports (listen_port) are set in accordance with the project | /cluster/adapter/sip1/sip/network/info | ||
| - node_ip addresses are assigned on both nodes of the SIP adapter ecss1 and ecss2 | When using redundancy | ||
| - node_ip addresses match the addresses of the reserved interfaces configured in keepalived | When using redundancy | ||
| - ipset is set on the domain | /domain/<DOMAIN>/sip/network/info | ||
| 5.2 The necessary services have been added to the domain: | |||
| - installation into the service system has been performed | cluster/storage/ds1/ss/install ds1@ecss1 * | ||
| - the domain is added to the services to the access-list | View services installed in domains: /cluster/storage/ds1/ss/access-list show To add services on a domain: /cluster/storage/ds1/ss/access-list add <DOMAIN> <SS> | ||
| - CDR collection system is configured (if necessary) | |||
| 5.3 The routing context has been configured: | /domain/<DOMAIN>/routing/list /domain/<DOMAIN>/routing/show <CTX> | ||
| - the necessary trunks are configured | If necessary. /domain/<DOMAIN>/trunk/sip/info /domain/<DOMAIN>/trunk/info | ||
| - the necessary bridges are configured | If necessary. /bridge/info | ||
| - routes are processed both in enblock set and overlap modes | /domain/<DOMAIN>/routing/trace | ||
| 5.4 Correct settings of the SIP subscriber(s) have been made: | |||
| - subscribers have been created | domain/<DOMAIN>/sip/user/list | ||
| - a reliable SIP login/password have been set | domain/<DOMAIN>/sip/user/info * * or filter (from shell): ssh admin@ecss1 -p8023 '/domain/<DOMAIN>/sip/user/info * *' | grep '(ds)' | ||
| - trusted ip is installed | If SIP registration is required without authorization domain/<DOMAIN>/sip/user/info | ||
| - the subscriber has the correct routing context set | domain/<DOMAIN>/sip/user/info or cluster/storage/ds1/iface/list <DOMAIN> * <GROUP> routing_context (select the preferred) | ||
| - the correct terminal type is set (basic/smart) | CLI: /cluster/storage/ds1/iface/list <DOMAIN> * <GROUP> terminal_type ~ smart (or basic) Web - "Subscriber card" | ||
| - the subscriber has the necessary services activated | CLI: /domain/<DOMAIN>/ss/info Web - "Subscriber card" | ||
| 5.5 Setting routing contexts for system interfaces: | /domain/<DOMAIN>/iface/user-set .system .system system:ivr routing.context | ||
| - system:ivr is configured | If it is necessary to use the IVR service. In most cases, only the routing context is written: /domain/<DOMAIN>/iface/info .system .system system:ivr | ||
| - system:teleconference is configured | If it is necessary to use the Teleconference service. In most cases, only the routing context is written: /domain/<DOMAIN>/iface/info .system .system system:teleconference |