В данном разделе приведено описание настроек, которые нужно сделать на сервере для работы приложения Elph Desktop и Elph Android.
Для корректной работы Elph должен проходить icmp на участке клиент-сервер. Это нужно для получения клиентами ip set (IP:порт для подключения). |
Предварительно на ECSS должен быть настроен доступ к базе адресной книги. Команды описаны в разделе /system/address-book/ - системные команды управления адресной книгой абонентов.
По умолчанию настройки доступа такие:
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. Описание команд приведено в разделе /api/ — команды настройки API CSTA.
Пример настроек:
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 и выше, для корректной работы вызовов и конференций необходимо включить указанную ниже опцию.
admin@mycelium1@ecss1:/$ domain/test.domain/sip/properties/set non_telephone_number_allow true |
В свойствах домена параметр vats_type должен быть выставлен в private.
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». |
admin@mycelium1@ecss1:/$ domain/test.domain/sip/properties/set force_node_control true |
Для корректной работы отклонения вызова «везде» кодом 603 необходимо проверить, что на ECSS активирован параметр "release_everywhere_when_6xx".
Подробнее активация данного параметра описана здесь.
admin@mycelium1@ecss1:/$ domain/test.domain/properties/set release_everywhere_when_6xx true |
Для использования 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:
h264="1" |
Пример:
<?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 должны иметь в ней соответствующие учётные записи.
|
Алгоритм создания представлен ниже:
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 разрешён доступ с 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 |
Результат выполнения:
