Перейти к содержанию

Поддержка DTLS при публикации и воспроизведении WebRTC потоков

WCS поддерживает DTLS 1.2 при установке WebRTC-соединения, использование этой версии протокола включено по умолчанию. Однако, для совместимости с устаревшими версиями браузеров поддерживается и DTLS 1.0. Поддержка устаревшей версии протокола может быть включена либо принудительно для всех клиентов при помощи настройки в файле flashphoner.properties

dtls_force_version_0=true

либо, начиная со сборки 5.2.399, индивидуально для браузера согласно строке User Agent, которую клиент присылает серверу при установке соединения

Строки User Agent указываются в файле dtls0_ua, который располагается в каталоге /usr/local/FlashphonerWebCallServer/conf. Например,

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0

Начиная со сборки 5.2.546, при помощи настройки в файле flashphoner.properties

dtls0_ua_match_substring=true

можно включить определение соответствия User Agent по части его строки, указанной в файле dtls0_ua, например

Firefox/62.0
Firefox/60.0

Ошибки DTLS при установке соединения могут быть выведены в файл dtls-error.log, расположенный в каталоге /usr/local/FlashphonerWebCallServer/logs

17:15:42,889 ERROR            DtlsError - Stun-Clbk-thread udp//192.168.0.111:31016 User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0; alert level: 2; alert description: 40; message: null

Для этого необходимо добавить в файл log4j.properties следующие настройки

log4j.logger.DtlsError=error, dtlsErrorAppender
log4j.additivity.DtlsError=false
log4j.appender.dtlsErrorAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dtlsErrorAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.dtlsErrorAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.dtlsErrorAppender.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p %20.20c{1} - %t %m%n
log4j.appender.dtlsErrorAppender.File=${com.flashphoner.fms.AppHome}/logs/dtls-error.log

При чистой установке WCS, эти настройки будут установлены по умолчанию, однако при обновлении с предыдущей версии, если в файл log4j.properties вносились какие-либо изменения, он не переписывается, поэтому при обновлении эти настройки потребуется добавить вручную.

Строку User-agent из файла dtls-error.log необходимо добавить в файл dtls0_ua, например

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0

При установке WebRTC соединения с перечисленными браузерами будет использоваться DTLS 1.0