Настройки на сервере
В данном разделе приведено описание настроек, которые нужно сделать на сервере для работы приложения Elph-Desktop 2.1 и Elph-Android 2.1
Настройка адресной книги
Предварительно на 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
Проверьте, что включен 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 │
└────────┴───────┘
Настройка на домене
В свойствах домена параметр vats_type должен быть выставлен в private.
admin@mycelium1@ecss1:/$ domain/test.domain/properties/info
┌───────────────────────────────────────┬───────────┬───────────────────────────────────────┐
│ Property │ Domain │ Value │
├───────────────────────────────────────┼───────────┼───────────────────────────────────────┤
...
│vats_type │test.domain│private
В свойствах sip необходимо настроить параметр compact_headers в режим force long для нормальной работы Elph-android:
admin@mycelium1@ecss1:/$ domain/test.domain/sip/properties/set compact_headers force_long
Property "compact_headers" successfully changed from:
Elph-Android может обрабатывать DTMF в SIP INFO, в формате "application/dtmf-relay", но не может в формате "application/dtmf", поэтому необходимо включить параметр dtmf_relay либо в свойствах sip-домена, либо в сип профиле конкретного абонента, использующего Elph-Android.
Пример настройки для домена:
domain/test.domain/sip/properties/set dtmf_relay true
Пример настройки для абонента:
domain/test.domain/sip/user/set test.group 1000@test.domain dtmf-relay true
Только для работы в SSW кластере при включённом параметре nat_traversal в sip-профиле абонента, использующего elph-desktop, необходимо в свойствах sip-домена активировать параметр node_control,
также включить node_control в sip-профиле на всех абонентах, использующих elph-desktop и параметр nat_traversal одновременно, в остальных случаях node_control следует держать отключенным, так как это влияет на производительность SSW.
Пример настройки для домена:
admin@mycelium1@ecss1:/$ domain/test.domain/sip/user/profile/set with-node-control node_control true
Пример настройки для абонента:
admin@mycelium1@ecss1:/$ domain/test.domain/sip/user/set 40000 40001@test.domain client-profile with-node-control
Настройки медиасервера для работы с WebRTC и активация видеоконференций
Для использования WebRTC и видеозвонков на SSW установите следующие тэги в конфигурационном файле 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