В данном разделе приведено описание настроек, которые нужно сделать на сервере для работы приложения Elph Desktop и Elph Android.
| Предупреждение |
|---|
Для корректной работы Elph должен проходить icmp на участке клиент-сервер. Это нужно для получения клиентами ip set (IP:порт для подключения). |
Настройка адресной книги
Предварительно на ECSS должен быть настроен доступ к базе адресной книги. Команды описаны в разделе /system/address-book/ - системные команды управления адресной книгой абонентов.
По умолчанию настройки доступа такие:
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
admin@mycelium1@ecss1:/$ system/address-book/properties/info
┌───────────────────┬───────────────────────┐
│ Property │ Value │
├───────────────────┼───────────────────────┤
│auto_create_account│true │
│auto_delete_account│true │
│database │ecss_address_book │
│host │address-book.mysql.ecss│
│password │address_book │
│port │3306 │
│username │address_book │
└───────────────────┴───────────────────────┘ |
Включение CSTA-API
Проверьте, что включен CSTA API. Описание команд приведено в разделе /api/ — команды настройки API CSTA.
Пример настроек:
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
admin@mycelium1@ecss1:/$ api/csta/info
┌────────┬───────┐
│Property│ Value │
├────────┼───────┤
│auth │ │
│enabled │true │ <== включить
│ssl_ip │0.0.0.0│
│ssl_port│4722 │
│tcp_ip │0.0.0.0│
│tcp_port│4721 │
│use_ssl │true │
│use_tcp │true │
└────────┴───────┘ |
Настройка для корректной работы вызовов и конференций.
С версии Elph 2.9.0 и выше, для корректной работы вызовов и конференций необходимо включить указанную ниже опцию.
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
admin@mycelium1@ecss1:/$ domain/test.domain/sip/properties/set non_telephone_number_allow true |
Настройка на домене
В свойствах домена параметр vats_type должен быть выставлен в private.
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
admin@mycelium1@ecss1:/$ domain/test.domain/properties/info
┌───────────────────────────────────────┬───────────┬───────────────────────────────────────┐
│ Property │ Domain │ Value │
├───────────────────────────────────────┼───────────┼───────────────────────────────────────┤
...
│vats_type │test.domain│private |
| Предупреждение |
|---|
Для корректной работы у абонентов, использующих Elph, должны быть включены: force_node_control, core_forking, nat_traversal. Настройки core_forking и nat_traversal описаны на странице «Добавление и настройка абонента ECSS». |
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
admin@mycelium1@ecss1:/$ domain/test.domain/sip/properties/set force_node_control true |
Для корректной работы отклонения вызова «везде» кодом 603 необходимо проверить, что на ECSS активирован параметр "release_everywhere_when_6xx".
Подробнее активация данного параметра описана здесь.
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
admin@mycelium1@ecss1:/$ domain/test.domain/properties/set release_everywhere_when_6xx true |
Настройки медиасервера для работы с WebRTC и активация видеоконференций
Для использования WebRTC и видеовызовов на ECSS установите следующие теги в конфигурационном файле ecss-media-server, который находится по пути: /etc/ecss/ecss-media-server/config.xml
Параметры, которые необходимо установить для работы с WebRTC:
В секции general:
| Блок кода |
|---|
|
use-srtp="optional"
enable-ice-transport="yes"
ice-update="yes"
aggressive-ice="yes" |
Для прохождения медиа за NAT, только если будет использоваться режим nat_traversal, в секции media включить параметр:
| Блок кода |
|---|
|
udp-src-check="yes" |
Для работы видеовызовов в секции codec:
Пример:
| Блок кода |
|---|
|
<?xml version="1.0" encoding="utf-8"?>
<config date="17:31:13 24.04.2023">
<general log-level="3" log-rotate="yes" max-calls="8192" 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="optional" enable-ice-transport="yes" ice-update="yes" aggressive-ice="yes" stun-server="" suspicious-mode="yes"/>
<transport bind-addr="127.0.0.1" port="5040" transport="udp+tcp"/>
<media mixer-clock-rate="8000" use-vad="no" cng-level="0" jb-size="60" rtcp-timeout="0" rtp-timeout="350" udp-src-check="yes" cn-multiplier="3" port-start="12000" port-range="2048" 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" 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="1280" video-enc-height="720" finalsilence="1000" rtcp-stat-dump="yes"/>
<codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" 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="127.0.0.1" port="5700"/>
</pbyte>
<conf_dir path="/etc/ecss/ecss-media-server/conf.d"/>
<rtp>
<auto addr-v4=""/>
</rtp>
</config>
|
Для включения видео в конференциях необходимо переключить режим audio на audio/video на медиасервере.
Для услуги conference:
| Блок кода |
|---|
|
system/media/msr/set --media/conference audio/video |
Для услуги teleconference:
| Блок кода |
|---|
|
system/media/msr/set --media/teleconference audio/video |
| Предупреждение |
|---|
Если ECSS развёрнут в закрытом контуре без доступа в интернет, то для нормальной работы elph-desktop потребуется также установить stun/turn-сервер (например coturn) и прописать его адрес в конфигурации ecss-media-server, изменив параметр stun-server="". Подробнее об установке своего coturn-сервера приведено на странице «Установка coturn-сервера». |
Работа с базой данных
Добавление учётных записей
Для взаимодействия с базой данных ecss-elph-api и Chat Server должны иметь в ней соответствующие учётные записи.
| Раскрыть |
|---|
| title | Список учетных записей |
|---|
|
| db-name | db-user |
|---|
| ecss_meeting_db | ecss_meeting_db | | ecss_calls_db | calls_db | | ecss_address_book | address_book | | ecss_address_book | elph_api | | ecss_address_book | ecss_chat |
|
Алгоритм создания представлен ниже:
1. Подключитесь к базе данных с помощью ввода пароля от указанной учётной записи.
| Блок кода |
|---|
|
sudo mysql -u root -p |
2. Добавьте в базу данных учётную запись elph_api:
Для этого установите разрешения (CREATE, DELETE, DROP, INSERT, SELECT, UPDATE, EXECUTE, EVENT, ALTER) на базу данных ecss_address_book.* и все её таблицы. Пользователю elph_api, при этом, доступ к базе разрешён с указанного после знака @ IP (либо диапазона ip. Например, 192.168.1.%, соответствует сети 192.168.1.0/24), пароль для пользователя установите: "elph_api".
Для учётной записи elph_api после символа «@» должен быть указан IP-адрес\сеть или доменное имя сервера, на котором работает сервис ecss-elph-api (в большинстве случаев это localhost).
Пример:
| Блок кода |
|---|
|
GRANT CREATE, DELETE, DROP, INSERT, SELECT, UPDATE, EXECUTE, EVENT, ALTER ON ecss_address_book.* TO 'elph_api'@'localhost' IDENTIFIED BY 'elph_api';
GRANT CREATE, DELETE, DROP, INSERT, SELECT, UPDATE, EXECUTE, EVENT, ALTER ON ecss_address_book.* TO 'elph_api'@'127.0.0.1' IDENTIFIED BY 'elph_api';
GRANT CREATE, DELETE, DROP, INSERT, SELECT, UPDATE, EXECUTE, EVENT, ALTER ON ecss_address_book.* TO 'elph_api'@'::1' IDENTIFIED BY 'elph_api';
GRANT CREATE, DELETE, DROP, INSERT, SELECT, UPDATE, EXECUTE, EVENT, ALTER ON ecss_address_book.* TO 'elph_api'@'<МАСКА ПОДСЕТИ>' IDENTIFIED BY 'elph_api'; |
3. Добавьте аналогично шагу 2 в БД учётную запись ecss_chat:
Для учётной записи ecss_chat после символа «@» должен быть указан IP-адрес\сеть или доменное имя Сhat Server.
| Блок кода |
|---|
|
GRANT CREATE, DELETE, DROP, INSERT, SELECT, UPDATE, EXECUTE, EVENT, ALTER ON ecss_address_book.* TO 'ecss_chat'@'localhost' IDENTIFIED BY 'ecss_chat';
GRANT CREATE, DELETE, DROP, INSERT, SELECT, UPDATE, EXECUTE, EVENT, ALTER ON ecss_address_book.* TO 'ecss_chat'@'127.0.0.1' IDENTIFIED BY 'ecss_chat';
GRANT CREATE, DELETE, DROP, INSERT, SELECT, UPDATE, EXECUTE, EVENT, ALTER ON ecss_address_book.* TO 'ecss_chat'@'::1' IDENTIFIED BY 'ecss_chat';
GRANT CREATE, DELETE, DROP, INSERT, SELECT, UPDATE, EXECUTE, EVENT, ALTER ON ecss_address_book.* TO 'ecss_chat'@'<МАСКА ПОДСЕТИ>' IDENTIFIED BY 'ecss_chat'; |
4. Проверьте, что созданные пользователи появились в базе данных.
| Блок кода |
|---|
|
SELECT user, host from mysql.user WHERE user='ecss_chat' OR user='elph_api'; |
Результат выполнения запроса:
| Блок кода |
|---|
|
+-----------+-----------+
| user | host |
+-----------+-----------+
| ecss_chat | %.%.%.% |
| elph_api | 127.0.0.1 |
| elph_api | localhost |
| elph_api | ::1 |
+-----------+-----------+
6 rows in set (0.00 sec) |
Маска %.%.%.%, указанная в поле хост, означает, что доступ под данной учётной записью разрешён с любой IPv4-сети.
Проверка доступа для учётной записи ecss_meeting_db
Для того чтобы чат в конференциях работал корректно, убедитесь, что для учётной записи ecss_meeting_db разрешён доступ с IP-адреса Char Server.
| Блок кода |
|---|
|
SELECT user, host from mysql.user WHERE user='ecss_meeting_db'; |
Результат выполнения запроса:
| Блок кода |
|---|
|
+-----------------+-----------+
| user | host |
+-----------------+-----------+
| ecss_meeting_db | %.%.%.% |
+-----------------+-----------+ |
Для изменения существующего доступа выполните указанную ниже команду, где в первом поле host указывается значение, на которое необходимо поменять значение, а во втором — значение, которое необходимо изменить.
| Блок кода |
|---|
|
UPDATE mysql.user SET host='192.168.107.142' WHERE user='ecss_meeting_db' AND host='%.%.%.%'; |
Результат выполнения запроса:
| Блок кода |
|---|
|
+-----------------+-------------------+
| user | host |
+-----------------+-------------------+
| ecss_meeting_db | 192.168.107.142 |
+-----------------+-------------------+ |
Для того чтобы изменения вступили в силу, существует два способа.
Способ 1:
В командной строке БД введите указанную ниже команду.
| Блок кода |
|---|
|
FLUSH PRIVILEGES; |
Способ 2:
Перезапустите процесс, под которым запущена БД.
| Блок кода |
|---|
|
sudo systemctl restart mysql.service |
Проверьте, что сервис работает (статус: active(running), а время его работы соответствует времени, прошедшему с момента перезапуска (в текущем примере — 2s):
| Блок кода |
|---|
|
systemctl status mysql.service |
Результат выполнения:
