...
| 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 spaceCreating disk partitions | Ubuntu Server 22.04 installation | df -h | |||||||||||||||||||||||
| 1.5 Partitioning done correctly | Table 1 — An option for storing information in a file system on physical media for servers | df -hCreating disk partitions | |||||||||||||||||||||||
| 1.6 SWAP file is NOT used in the system | free -h | ||||||||||||||||||||||||
| 2. Checking the software requirements for the system | |||||||||||||||||||||||||
2.1 The 1 The correct version and bit depth of the operating system are set (Ubuntu Server 1822.04.x LTS 64bit) Ubuntu Server 18.04 x64 | hostnamectl | ||||||||||||||||||||||||
| 2.2 The correct hostname is set: ecss1 or ecss2 | Configuring user and server names/etc/hosts | When using redundancy.
CoCon command:
| |||||||||||||||||||||||
| 2.3 Current updates are installed in the system | SystemOperating system software update | ||||||||||||||||||||||||
| 2.4 The recommended software is installed in the system | Necessary software Software installation and configuration | ||||||||||||||||||||||||
| 2.5 The ECSS-10 repository has been added to the system and is accessible | System Operating system software update | ||||||||||||||||||||||||
| 2.6 The network interfaces are configured correctly: | Configuring network interfaces | ||||||||||||||||||||||||
| - 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 | Configuring VRRP for the SIP adapter | When using redundancy sudo ifconfig | |||||||||||||||||||||||
| - IPv6 support is enabled at least on lo interfaces | Example:
| Checking Token operation | |||||||||||||||||||||||
| - The eToken/RuToken key has been defined in the system (lsusb)Checking Token operation | |||||||||||||||||||||||||
| - 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:
Example:
| ||||||||||||||||||||||||
| - hosts are accessible to each other by DNS name (as written in /etc/hosts/ and in accordance with the license) | Configuring /etc/hosts | Checking ping from ecss1 to ecss2 and vice versa | |||||||||||||||||||||||
| - key authentication between hosts is configured | Configuring /etc/hosts | Generate ssh key and transfer it to another server:
Similarly from ecss2 to ecss1 | |||||||||||||||||||||||
| 2.9 Time synchronization with the NTP server is running on the server:Time synchronization on servers | Installing ecss-node | Check the status:
| |||||||||||||||||||||||
| - the correct time zone is set | Setting the time zone | Check:
| |||||||||||||||||||||||
| - time synchronization in orphan mode or synchronization with a single NTP is configured on ecss1 and ecss2 hostsTime synchronization on servers | Installing ecss-node | When using redundancy | |||||||||||||||||||||||
| 2.10. Glusterfs-server of the recommended version is installed: | Configuring RestFSInstalling 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: |
| ||||||||||||||||||||||||
| - ecss- | mysqlecss-mysql installationpostgres-bdr-ssw | ||||||||||||||||||||||||
| - ecss-node ecss-node installation | |||||||||||||||||||||||||
| - ecss-media-resources ecss-media-resources installation | Installing the mandatory ECSS package | ||||||||||||||||||||||||
| - ecss-media-server ecss-media-server installation | Installing the mandatory ECSS package | ||||||||||||||||||||||||
| - ecss-restfs ecss-restfs installation | Installing the mandatory ECSS package | ||||||||||||||||||||||||
| - ecss-user | Installing the mandatory ECSS package | ||||||||||||||||||||||||
| - ecss-web-conf ecss-web-conf installation | |||||||||||||||||||||||||
| - ecss-dns-env | DNS | - additional optional packages according to the project | Additional packages optional installation|||||||||||||||||||||||
| 4. Checking the performance of the ECSS-10 system | |||||||||||||||||||||||||
| 4.1 Checking the installed ECSS-10 license:System start and activation | CoCon command:
| ||||||||||||||||||||||||
| - pcscd service is operatingSoftware Installation and Token Connection |
| ||||||||||||||||||||||||
| - the correct passport is installed in the systemSystem start and activation | CoCon command:
| ||||||||||||||||||||||||
| - the current license is installed in the system | System start and activation | CoCon command:
| |||||||||||||||||||||||
| 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 | Cluster system installation features | Note that the content is the same on both servers.
| |||||||||||||||||||||||
| - addresses are available by DNS nameDNS | Installing the mandatory ECSS package |
| |||||||||||||||||||||||
| 4.3 Listen interfaces for the epmd service are registered on ecss1 and ecss2 hosts | Configuring listen interface for epmd service |
| Без форматирования |
|---|
sudo systemctl cat epmd.service |
| Без форматирования |
|---|
sudo systemctl status mysql.service |
| Без форматирования |
|---|
mysql -uroot -p -h ecss1 |
| Без форматирования |
|---|
mysql -uroot -p -e 'show slave status \G;' |
On both servers:
| Без форматирования |
|---|
Slave_IO_Running: Yes
Slave_SQL_Running: Yes |
| Без форматирования |
|---|
netstat -nl | grep 3306 |
| Без форматирования |
|---|
cat /etc/ecss/ecss-mycelium/mycelium1.config | grep name |
4.6 ecss 4 ecss services are up and running (in the running state):
- ecss-mycelium
- ecss-core
- ecss-ds
- ecss-pa-sipecss-pa-megaco
- ecss-media-server
- ecss-web-conf
- ecss-restfs
Examples:
| Без форматирования |
|---|
systemctl list-units --type service --all | grep ecss |
The status should show "active"
Or for each service separately:
| Без форматирования |
|---|
systemctl status <service name> |
is-active |
| Без форматирования |
|---|
sasha@ecss1:~$ systemctl is-active ecss-core ecss-ds ecss-pa-sip ecss-myceliumds ecss-pa-megacomediator ecss-media-server ecss-web-conf ecss-restfs active active active active inactive active active activemycelium |
From shell servers:
| Без форматирования |
|---|
cat /etc/ecss/ecss-media-server/config.xml |
CoCon:
| Без форматирования |
|---|
/system/media/resource/list /system/media/registrar/info |
If the system is redundant, check if it is connected to both cores.
Pay attention to the correct kernel addresses (not 0.0.0.0)
When using redundancy
From shell servers:
| Без форматирования |
|---|
wget http://ecss1:9990/system/sounds/ai_you.wav
wget http://ecss2:9990/system/sounds/ai_you.wav |
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:
key=<Key> — is the key to access the tts server;
text=<Text> — is a text message to convert into a voice message
| Без форматирования |
|---|
cocon/list users |
CLI:
| Без форматирования |
|---|
/domain/<DOMAIN>/access-group/
/domain/<DOMAIN>/access-type/
/domain/<DOMAIN>/regime/ |
Web - "User manager"
CLI:
| Без форматирования |
|---|
/domain/
/domain/<DOMAIN>/ |
Web - "Domains"
| Без форматирования |
|---|
/cluster/adapter/sip1/sip/network/info |
When using redundancy
| Без форматирования |
|---|
/cluster/adapter/sip1/sip/network/info |
Web - "Clusters"
When using redundancy
noformat/cluster/adapter/sip1/sip/network/info Web - "Clusters"
| Без форматирования |
|---|
/domain/<DOMAIN>/sip/network/info |
| Без форматирования |
|---|
cluster/storage/ds1/ss/install ds1@ecss1 * |
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> |
CLI:
| Без форматирования |
|---|
/domain/<DOMAIN>/cdr/ |
Web - "CDR manager"
| Без форматирования |
|---|
/domain/<DOMAIN>/routing/list /domain/<DOMAIN>/routing/show <CTX> |
If necessary.
| Без форматирования |
|---|
/domain/<DOMAIN>/trunk/sip/info /domain/<DOMAIN>/trunk/info |
If necessary.
| Без форматирования |
|---|
/bridge/info |
| Без форматирования |
|---|
/domain/<DOMAIN>/routing/trace |
Web - "Routing manager"
CLI:
| Без форматирования |
|---|
/domain/<DOMAIN>/sip/user/ |
| Без форматирования |
|---|
domain/<DOMAIN>/sip/user/list |
Web - "Subscriber card"
| Без форматирования |
|---|
domain/<DOMAIN>/sip/user/info * * |
or filter (from shell):
| Без форматирования |
|---|
ssh admin@ecss1 -p8023 '/domain/<DOMAIN>/sip/user/info * *' | grep '(ds)' |
If SIP registration is required without authorization
| Без форматирования |
|---|
domain/<DOMAIN>/sip/user/info |
Web - "Subscriber card"
| Без форматирования |
|---|
domain/<DOMAIN>/sip/user/info |
or
| Без форматирования |
|---|
cluster/storage/ds1/iface/list <DOMAIN> * <GROUP> routing_context |
(select the preferred)Web - "Subscriber card"
CLI:
| Без форматирования |
|---|
/cluster/storage/ds1/iface/list <DOMAIN> * <GROUP> terminal_type ~ smart |
(or basic)
Web - "Subscriber card"
CLI:
| Без форматирования |
|---|
/domain/<DOMAIN>/ss/info |
Web - "Subscriber card"
| Без форматирования |
|---|
/domain/<DOMAIN>/iface/user-set .system .system system:ivr routing.context |
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 |
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 |
...