ШагПункт документацииРезультатПримечание
1. Проверка соответствия аппаратных требований к системе


1.1 Установлены актуальные версии ПО внутренних устройств и контроллеров сервера (BIOS, RAID, iDRAC, iLO и т.д.)

См. документацию к используемому серверу
1.2 Наличие в системе по меньшей мере двухъядерного CPUРазработка проекта системы
Определяется проектом на систему
1.3 Наличие в системе по меньшей мере 8 ГБ RAMРазработка проекта системы
Определяется проектом в зависимости от требуемой нагрузки. В тестовых целях допускается уменьшение до 4 ГБ
1.4 Имеется достаточно дискового пространстваСоздание разделов диска

1.5 Произведена верная разметка разделовСоздание разделов диска

1.6 В системе НЕ используется файл подкачки SWAP

Отключение swap



2. Проверка соответствия программных требований к системе


2.1 Установлена корректная версия и разрядность операционной системы (Ubuntu Server 18.04.x LTS 64bit)



Ubuntu Server 18.04 x64
2.2 Выставлено корректное имя хоста hostname: ecss1 или ecss2

Настройка имени пользователя и сервера


При использовании резервирования
2.3 В системе установлены актуальные обновления

Обновление системы



2.4 В системе установлено рекомендуемое ПО

Инсталляция необходимого ПО



2.5 В системе добавлен репозиторий ECSS-10 и имеется доступ к немуОбновление системы

2.6 В системе корректно настроены сетевые интерфейсы:

Настройка сетевых интерфейсов



- адреса сетевых интерфейсов статичны, не изменяются динамически по DHCPНастройка сетевых интерфейсов

- сервис keepalived (VRRP) настроен и работает

Настройка VRRP


При использовании резервирования
- как минимум на интерфейсах lo включена поддержка IPv6

Настройка listen-интерфейса для сервиса epmd


Пример:

ssw@ecss1:~$ ip -6 addr show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2.7 Ключ eToken/RuToken подключен к USB-порту сервера:Проверка работы Token

- Ключ eToken/RuToken определился в системе (lsusb)

Проверка работы Token



- Проверка ключа eToken/RuTokenПроверка работы Token

2.8 Проверка сетевой доступности между хостами ecss1 и ecss2:

При использовании резервирования
- задержка ping между хостами не превышает 100 мс

Необходимо минимизировать задержки трафика между хостами, насколько это возможно
- отсутствуют потери пакетов при обмене данными между хостами

Запускается команда ping на несколько минут, после чего снимается статистика комбинацией клавиш:

CTRL+|

Пример:

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
- хосты доступны между собой по DNS-имени (как прописано в /etc/hosts/ и в соответствии с лицензией)

Настройка /etc/hosts


Проверяется ping c ecss1 на ecss2 и наоборот
- между хостами настроена авторизация по ключам

Сгенерировать ssh-ключ и передать на другой сервер:

ssh-keygen
ssh-copy-id ssw@ecss2

Аналогично с ecss2 на ecss1

2.9 На сервере работает синхронизация времени c NTP-сервером:Синхронизация времени на серверах

Проверить статус:

ntpq -p
- выставлен корректный часовой пояс

Просмотреть:

date +%Z
- на хостах ecss1 и ecss2 настроена синхронизация времени в режиме orphan либо синхронизация с единого NTPСинхронизация времени на серверах
При использовании резервирования
2.10. Установлен glusterfs-server рекомендуемой версии:Настройка RestFS
Не ниже версии ПО 3.13.2
3. Проверка корректности установки ECSS-10


3.1 Установка пакетов компонентов системы завершилась успешно без ошибок:

Инсталляция пакетов ECSS


dpkg -l | grep ecss
- ecss-mysql

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



- ecss-node

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



- ecss-media-resources
Установка ecss-media-resources

- ecss-media-server

Установка ecss-media-server



- ecss-restfs

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



- ecss-user



- ecss-web-conf

Установка ecss-web-conf



- ecss-dns-env
DNS

- дополнительные необязательные пакеты в соответствии с проектом Установка дополнительных пакетов

4. Проверка работоспособности системы ECSS-10


4.1 Проверка установленной лицензии ECSS-10:Запуск и активация системы

- сервис pcscd находится в работеУстановка ПО и подключение Token
pkcs11-tool --module $(find /usr/lib/ecss/ecss-ds/lib/ -name librtpkcs11ecp.so | head -n1) -L
- в системе установлен корректный паспортЗапуск и активация системы

CoCon команда:

/cluster/storage/ds1/licence/show-passport
- в системе установлена актуальная лицензияЗапуск и активация системы

CoCon команда:

/cluster/storage/ds1/licence/current-limits
4.2 Сервис dnsmasq запущен и работает:


- если система с резервом, в конфигурации dnsmasq прописаны корректные адреса primary.broker.ecss и secondary.broker.ecssОсобенности установки системы в кластере

Обратить внимание, что на обоих серверах содержимое одинаковое.

address=/primary.broker.ecss/<Адрес ecss1>
address=/secondary.broker.ecss/<Адрес ecss2>
- адреса доступны по DNS-имениDNS
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 system.restfs.ecss
4.3 На хостах ecss1 и ecss2 прописаны listen-интерфейсы для сервиса epmdНастройка listen-интерфейса для сервиса epmd
sudo systemctl cat epmd.service
4.4 Сервер БД MySQL запущен и работает:

sudo systemctl status mysql.service
- к MySQL серверу возможно подключиться по DNS-имени

mysql -uroot -p -h ecss1
- при использовании резерва запущенна и корректно работает репликация БДСхема развертывания MySQL master-master replication с использованием keepalive
mysql -uroot -p -e 'show slave status \G;'

На обоих серверах:

             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
- порт mysql должен слушать на 0.0.0.0.

netstat -nl | grep 3306
4.5 В системе с резервом прописано имя кластера (не undefined)Особенности установки системы в кластере
cat /etc/ecss/ecss-mycelium/mycelium1.config | grep name

4.6 Сервисы ecss запущенны и работают (находятся в состоянии running):

  • ecss-mycelium
  • ecss-core
  • ecss-ds
  • ecss-pa-sip
  • ecss-media-server
  • ecss-web-conf
  • ecss-restfs
Проверка статуса сервисов

Примеры:

systemctl list-units --type service --all | grep ecss

Состояние должно показывать "active"
Или по каждому сервису отдельно:

systemctl status <service name>

Также и с ключом is-active:

sasha@ecss1:~$ systemctl is-active ecss-core ecss-ds ecss-pa-sip ecss-mycelium ecss-media-server ecss-web-conf ecss-restfs
active
active
active
active
inactive
active
active
active
- Команда cocon "system-status" выдает пустой Alarms list


4.7 Медиасервер MSR настроен и подключен к ECSS-10:Настройка программного медиасервера

- конфигурация MSR настроена на подключение к ECSS-10Настройка конфигурационного файла MSR

Из shell-серверов:

cat /etc/ecss/ecss-media-server/config.xml
- MSR задекларирован в системных медиаресурсахКоманды управления медиаресурсами

CoСon:

/system/media/resource/list  
/system/media/registrar/info

Если система с резервированием, проверить, что подключен к обоим ядрам.
Обратить внимание на правильные адреса ядер (не 0.0.0.0)

- На хосте ecss2 аналогичным образом сконфигурирован MSR

При использовании резервирования
4.8 Restfs настроен и доступен с сервера ECSS-10:


- RestFS доступен для записи и скачивания медиафайлов

Из shell-серверов:

wget http://ecss1:9990/system/sounds/ai_you.wav
wget http://ecss2:9990/system/sounds/ai_you.wav
4.9 Сервис TTS (преобразование текста в голосовое сообщение) настроен и работает:

Если выбран tts при установке ecss-restfs
- Сервис возвращает голосовой файл после преобразования из текста

Из shell-серверов:

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

где:
key=<Key> — ключ для доступа к серверу tts;
text=<Text> — текстовое сообщение для преобразования в голосовое сообщение

4.10 Настроены пользователи, их права и роли

Управление пользователями


cocon/list users
4.11 Настроены правила ограничения обслуживания абонентовТип доступа, режим обслуживания, категория доступа и барринги

5. Проверка корректности настройки домена в ECSS-10

Создание и настройка доменов



5.1 В домене настроен SIP-транспорт (ip-set)

Работа SIP-адаптера с сетью



- Адреса (node_ip) и порты (listen_port) выставлены в соответствии с проектом

/cluster/adapter/sip1/sip/network/info 
- Адреса node_ip назначены на обеих нодах SIP-адаптера ecss1 и ecss2

При использовании резервирования
- Адреса node_ip совпадают с адресами резервируемых интерфейсов, настроенных в keepalived

При использовании резервирования
- На домене выставлен ipset

/domain/<DOMAIN>/sip/network/info
5.2 В домен добавлены необходимые услуги:Инсталляция и управление услугами

- произведена установка в систему услугИнсталляция и управление услугами
cluster/storage/ds1/ss/install ds1@ecss1 *
- домен добавлен в access-list к услугамИнсталляция и управление услугами

Просмотреть установленные в доменах услуги:

/cluster/storage/ds1/ss/access-list show

Для добавления услуг на домене:

/cluster/storage/ds1/ss/access-list add <DOMAIN> <SS>
- настроена система сбора CDR (при необходимости)
Управление системой сбора CDR

5.3 Произведена настройка контекста маршрутизации:Виртуальная АТС. Маршрутизация телефонных вызовов
/domain/<DOMAIN>/routing/list
/domain/<DOMAIN>/routing/show <CTX>
- настроены нужные транкиКоманды управления SIP-транками

При необходимости.

/domain/<DOMAIN>/trunk/sip/info
/domain/<DOMAIN>/trunk/info
- настроены нужные бриджиКоманды управления bridge-интерфейсами

При необходимости.

/bridge/info
- маршруты отрабатываются как в режиме набора enblock, так и overlap

Команды управления маршрутизацией


/domain/<DOMAIN>/routing/trace
5.4 Произведены корректные настройки SIP-абонента(-ов):Виртуальная АТС. Подключение и настройка SIP-абонентов

- абоненты созданыСоздание SIP-абонента
domain/<DOMAIN>/sip/user/list
- установлены надежные логин/пароль SIP-авторизации

domain/<DOMAIN>/sip/user/info * *

или отфильтровать (из shell):

ssh admin@ecss1 -p8023 '/domain/<DOMAIN>/sip/user/info * *' | grep '(ds)'
- установлен trusted ipАутентификация абонентов

В случае необходимости SIP-регистрации без авторизации

domain/<DOMAIN>/sip/user/info
- у абонента установлен корректный контекст маршрутизацииДобавление абонента
domain/<DOMAIN>/sip/user/info

или

cluster/storage/ds1/iface/list <DOMAIN> * <GROUP> routing_context ~ ctx_from_local

(подставить нужный)

- выставлен корректный тип терминала (basic/smart)Настройка параметров абонента
/cluster/storage/ds1/iface/list <DOMAIN> * <GROUP> terminal_type ~ smart

(или basic)

- у абонента активированы необходимые услугиИнсталляция и управление услугами
/domain/<DOMAIN>/ss/info
5.5 Установка контекстов маршрутизации для системных интерфейсов:Команды управления системными интерфейсами
/domain/<DOMAIN>/iface/user-set .system .system system:ivr routing.context
- настроен system:ivrКоманды управления системными интерфейсами

При необходимости использования сервиса IVR. В большинстве случаев прописывается только контекст маршрутизации

/domain/<DOMAIN>/iface/info .system .system system:ivr
- настроен system:teleconferenceКоманды управления системными интерфейсами

При необходимости использования сервиса Teleconference. В большинстве случаев прописывается только контекст маршрутизации:

/domain/<DOMAIN>/iface/info .system .system system:teleconference