Для работы приложения Elph Desktop на сервере должен быть установлен пакет ecss-elph-api и развёрнут ecss-chat-server.

Архитектура взаимодействия Elph 2.1.1 с ECSS10

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

sudo sh -c "echo 'deb [arch=amd64] http://archive.eltex.org/ssw/bionic/elph/2.1.1 stable main' >> /etc/apt/sources.list.d/eltex-ecss10-stable.list"
sudo apt update
BASH

Установка и настройка ecss-elph-api

Установите ecss-elph-api:

sudo apt install ecss-elph-api
BASH

Настройки будут запрошены при установке.

Вопросы, задаваемые при установке ecss-elph-api

Вопрос
Шаблон вопроса:ecss-elph-api/core-host
Тип данных:string
Значение по умолчанию:localhost
Текст вопроса(en)IP address(hostname) of ECSS Core:
Текст вопроса(ru)IP-адрес(хост) на котором развернут ECSS Core:
ОписаниеВводится IP или имя хоста, на котором развернут ECSS Core:
Вопрос
Шаблон вопроса:ecss-elph-api/core-port
Тип данных:string
Значение по умолчанию:8086
Текст вопроса(en)Port of ECSS Core:
Текст вопроса(ru)Порт на котором развернут ECSS Core:
ОписаниеВводится порт, на котором развернут ECSS Core
Вопрос
Шаблон вопроса:ecss-elph-api/mysql-host
Тип данных:string
Значение по умолчанию:localhost
Текст вопроса(en)IP address(hostname) of address book mysql:
Текст вопроса(ru)IP-адрес(хост) на котором развернут mysql адресной книги:
ОписаниеВводится адрес или имя MySQL сервера, на котором находится БД адресной книги. Расположение ecss-mysql относительно ecss-elph-api
Вопрос
Шаблон вопроса:ecss-elph-api/mysql-port
Тип данных:string
Значение по умолчанию:3306
Текст вопроса(en)Port of address book mysql:
Текст вопроса(ru)Порт на котором развернут mysql адресной книги:
ОписаниеВводится порт MySQL сервера, на котором находится БД адресной книги
Вопрос
Шаблон вопроса:ecss-elph-api/mysql-user
Тип данных:string
Значение по умолчанию:address_book
Текст вопроса(en)Address book mysql username:
Текст вопроса(ru)Имя пользователя для доступа к mysql адресной книги:
ОписаниеВводится логин пользователя БД адресной книги
Вопрос
Шаблон вопроса:ecss-elph-api/mysql-password
Тип данных:password
Значение по умолчанию:address_book
Текст вопроса(en)Address book mysql password:
Текст вопроса(ru)Пароль для доступа к mysql адресной книги:
ОписаниеВводится пароль пользователя БД адресной книги. Не путать c "root" - паролем для доступа к mysql по умолчанию
Вопрос
Шаблон вопроса:ecss-elph-api/domain
Тип данных:string
Текст вопроса(en)Default domain:
Текст вопроса(ru)Домен по умолчанию:
ОписаниеВводится имя домена ECSS, на котором будет использоваться Elph-desktop. Если в поле ничего не вводить, имя домена будет запрошено на странице авторизации приложения.
Вопрос
Шаблон вопроса:ecss-elph-api/listen-port
Тип данных:string
Значение по умолчанию:8098
Текст вопроса(en)Port for nginx server:
Текст вопроса(ru)Порт для сервера nginx:
ОписаниеВводится номер порта сервера nginx:
Вопрос
Шаблон вопроса:ecss-elph-api/chat-url-enabled
Тип данных:boolean
Значение по умолчанию:false
Текст вопроса(en)Apply chat's URL settings?
Текст вопроса(ru)Применить настройки URL-адреса чатов?
ОписаниеПри утвердительном ответе будут запрошены настройки чат-сервера
Вопрос
Шаблон вопроса:ecss-elph-api/chat-schema
Тип данных:select
Варианты выбора:http, https
Значение по умолчанию:https
Текст вопроса(en)Chat's URL schema:
Текст вопроса(ru)Схема URL-адреса чатов:
ОписаниеВыбирается протокол взаимодействия с чат-серверам
Вопрос
Шаблон вопроса:ecss-elph-api/chat-host
Тип данных:string
Текст вопроса(en)Chat's IP address(hostname):
Текст вопроса(ru)IP-адрес(хост) чатов:
ОписаниеВводится публичный адрес чат-сервера
Вопрос
Шаблон вопроса:ecss-elph-api/chat-port
Тип данных:string
Значение по умолчанию:3443
Текст вопроса(en)Chat's port:
Текст вопроса(ru)Порт чатов:
ОписаниеВводится номер порта чат-сервера
Вопрос
Шаблон вопроса:ecss-elph-api/mediator-host
Тип данных:string
Значение по умолчанию:localhost
Текст вопроса(en)IP address(hostname) of ecss-mediator:
Текст вопроса(ru)IP-адрес(хост) на котором развернут ecss-mediator:
ОписаниеВводится IP-адрес или имя хоста, на котором развернут ecss-mediator
Вопрос
Шаблон вопроса:ecss-elph-api/mediator-port
Тип данных:string
Значение по умолчанию:9999
Текст вопроса(en)Port of ecss-mediator:
Текст вопроса(ru)Порт на котором развернут ecss-mediator:
ОписаниеВводится номер порта ecss-mediator(порт http-terminal)
Вопрос
Шаблон вопроса:ecss-elph-api/mediator-schema
Тип данных:select
Варианты выбора:http, https
Значение по умолчанию:https
Текст вопроса(en)Mediator's schema:
Текст вопроса(ru)Схема ecss-mediator:
ОписаниеВыбирается протокол работы с ecss-mediator
Вопрос
Шаблон вопроса:ecss-elph-api/mediator-user
Тип данных:string
Значение по умолчанию:admin
Текст вопроса(en)Mediator's username:
Текст вопроса(ru)Имя пользователя для доступа к ecss-mediator:
ОписаниеВводится имя пользователя для доступа к ecss-mediator
Вопрос
Шаблон вопроса:ecss-elph-api/mediator-password-enabled
Тип данных:boolean
Значение по умолчанию:false
Текст вопроса(en)Set password for ecss-mediator?
Текст вопроса(ru)Установить пароль для ecss-mediator?
ОписаниеПри необходимости можно установить пароль пользователя для доступа к http-terminal
Вопрос
Шаблон вопроса:ecss-elph-api/mediator-password
Тип данных:password
Текст вопроса(en)Mediator's password:
Текст вопроса(ru)Пароль для доступа к ecss-mediator:
ОписаниеВводится пароль пользователя для доступа к http-terminal

Запомненные ответы на вопросы можно посмотреть в базе debconf. Они будут применены при обновлении пакета.

Пример сохраненных ответов ecss-elph-api:

ecss10@ecss1:~$ sudo debconf-get-selections | grep ecss-elph-api
ecss-elph-api	ecss-elph-api/mysql-password	password	address_book
ecss-elph-api	ecss-elph-api/mediator-password	password	
ecss-elph-api	ecss-elph-api/chat-host	string	192.168.114.122
ecss-elph-api	ecss-elph-api/core-port	string	8086
ecss-elph-api	ecss-elph-api/mediator-schema	select	http
ecss-elph-api	ecss-elph-api/chat-port	string	3443
ecss-elph-api	ecss-elph-api/mysql-user	string	address_book
ecss-elph-api	ecss-elph-api/mediator-password-enabled	boolean	false
ecss-elph-api	ecss-elph-api/chat-schema	select	https
ecss-elph-api	ecss-elph-api/reinstall	boolean	false
ecss-elph-api	ecss-elph-api/mediator-user	string	admin
ecss-elph-api	ecss-elph-api/mysql-host	string	localhost
ecss-elph-api	ecss-elph-api/mysql-port	string	3306
ecss-elph-api	ecss-elph-api/listen-port	string	8098
ecss-elph-api	ecss-elph-api/domain	string	test.domain
ecss-elph-api	ecss-elph-api/mediator-host	string	localhost
ecss-elph-api	ecss-elph-api/core-host	string	localhost
ecss-elph-api	ecss-elph-api/chat-url-enabled	boolean	true
ecss-elph-api	ecss-elph-api/mediator-port	string	9999
BASH

Проверка статуса сервиса

После установки пакета проверьте статус сервиса, он должен быть "Active".

ecss10@ecss1:~$ systemctl status ecss-elph-api
● ecss-elph-api.service - Elph desktop websockets API for ecss-10
   Loaded: loaded (/lib/systemd/system/ecss-elph-api.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2023-04-24 17:31:41 +07; 18h ago
 Main PID: 22605 (nodejs)
    Tasks: 11 (limit: 4915)
   Memory: 56.0M
   CGroup: /ecss.slice/ecss-elph-api.service
           └─22605 /usr/bin/nodejs /usr/share/ecss/ecss-elph-api/dist/websockets/src/main.js
BASH

Конфигурация

Настройки ecss-elph-api записываются в файл /etc/ecss/ecss-elph-api/config.yaml, например:

default:
  ecss:
    host: localhost
    port: 8086
    domain: test.domain
    user: pubsub
    password: pubsub
  sql:
    host: localhost
    port: 3306
    database: ecss_address_book
    user: address_book
    password: address_book
    types:
    - sip
    - megaco
    - virtual
  chat:
    host: "192.168.114.122"
    port: 3443
    schema: https
  mediator:
    host: localhost
    port: 9999
    schema: https
    user: admin
    password: password

YML

По умолчанию создается один профиль — "default". Если вручную добавить еще профили, то в приложении будет запрошено имя профиля. Если домен не задан, то он также будет запрошен.

user: pubsub, password: pubsub — системные, изменять не нужно!

Вручную править файл конфигурации нежелательно. Если нужно изменить настройки, лучше воспользоваться командой dpkg-reconfigure.

sudo dpkg-reconfigure ecss-elph-api
BASH

Если все-таки потребовалось изменить файлы конфигурации, то после изменения необходимо перезапустить сервис ecss-elph-api.

Логи

Логи пишутся в системный журнал. При необходимости их можно просмотреть c помощью команд:

sudo journalctl -u ecss-elph-api # все логи
sudo journalctl -u ecss-elph-api --since today # логи за сегодня
sudo journalctl -u ecss-elph-api -f # аналог tail -f для просмотра лога в реальном времени
BASH

Установка чат-сервера

Разворачиваем докер-образ

Скачайте скрипт установки командой:

wget https://s3.eltex-co.ru/shared/elph-chat-server/ecss-elph-chat-server.sh
BASH

Выдайте права на исполнение:

chmod +x ecss-elph-chat-server.sh
BASH

Запустите скрипт, начнется загрузка:

./ecss-elph-chat-server.sh download
BASH

Далее необходимо перелогиниться в терминале, если установка происходит удалённо по ssh, так как пользователь был добавлен в группу docker, после этого необходимо повторить команду:

./ecss-elph-chat-server.sh download
BASH

Авторизуйтесь во внешнем докер-регистре следующей командой (данные авторизации вы можете уточнить в коммерческом отделе):

./ecss-elph-chat-server.sh login
BASH

После этого скачайте образы:

./ecss-elph-chat-server.sh pull
BASH

Теперь необходимо изменить файл конфигурации, подробнее об этом в разделе "Настройка чат-сервера при установке из docker-контейнера":

sudo nano elph-chat-server/stable/.env
BASH

После сохранения конфигурации можно запускать чат-сервер из корневого каталога:

./ecss-elph-chat-server.sh up
BASH

Инструкция по установке чат-сервера на Astra Linux

Для установки чат-сервера необходимо предварительно установить следующие пакеты:

Версия должна быть не ниже 20.10.2

  • docker-compose

Версия должна быть не ниже 1.29.2

sudo apt install docker.io docker-compose

Следующие шаги установки не отличаются от штатных.

Обновление чат-сервера

Для обновления чат-сервера на конкретную версию, необходимо указать её в поле "TAG" в конфигурационном файле ./elph-chat-server/stable/.env

Для этого предварительно остановите чат командой:

./ecss-elph-chat-server.sh stop
BASH

Перейдите в директорию ./elph-chat-server/stable/ и отредактируйте конфигурацию, изменив поле "TAG" на версию, которую хотите установить

sudo nano .env
BASH

После этого скачайте образы:

./ecss-elph-chat-server.sh pull
BASH

После завершения процедуры загрузки можно запускать чат-сервер, для этого нужно перейти в папку ./elph-chat-server/stable/ и выполнить команду

docker-compose --project-name elph-chat-server-stable up
BASH