Были добавлены 2 настройки на стороне сервера: flash_codecs и disable_rtc_ata
Если пользователь использует браузер с поддержкой WebRTC, например Chrome, Firefox или Opera, WCS3 проставит «WebRTC» в User-Agent заголовке SIP.
Если пользователь использует Safari, IE или другой браузер с поддержкой Flash, WCS3 будет использовать «Flash» в заголовке User-Agent.
Настройка flash_codecs используется для установки списка кодеков и их приоритетов в том случае, когда мы получаем входящий звонок от Flash User-Ahent-а.
Пример: flash_codecs=alaw,ulaw,speex16,g729
Это сделано для того, чтобы понять что входящий звонок пришел от Flash и избежать транскодинга, подставив кодеки, доступные во Flash.
Например, при таких настройках исходящие звонки будут идти с транскодингом в G.729, а входящие Flash — to -Flash звонки будут работать без транскодинга на кодеке G.711:
codecs=g729,alaw,ulaw,telephone-event
flash_codecs=alaw,ulaw,g729,telephone-event
Следующая настройка disable_rtc_ata используется для того чтобы отключить стандартное поведение WCS3 — выбор подходящего WebRTC кодека для обхода транскодинга(WebRTC Avoid Transcoding Algorithm).
Вы можете отключить это поведение для списка указанных User-Agents. Для User-Agents перечисленных в этом списке не будет инициирован поиск подходящего кодека.
Например, вы созвонились с софтфоном Bria следующим образом:
WCS3 INVITE g729,alaw
Bria 200 OK g729,alaw
Bria в этом случае будет посылать аудио в G.729 кодеке, т.к. этот кодек имеет для Bria более высокий приоритет.
WCS3 будет принимать G.729 и транскодировать его в G.711 для WebRTC.
По умолчанию будет использован алгоритм обхода транскодинга и WCS3 отправит в сторону Bria аудио в кодеке G.711.
Таким образом обмен аудио данными с Bria будет несимметричным.
В этом случае, чтобы сделать его симметричным необходимо добавить настройку disable_rtc_ata=bria, тогда WCS3 не будет искать подходящий кодек а возьмет наиболее приоритетный G.729 и выполнит транскодирование.
Ограничения:
Эти настройки будут работать только с SIP proxy, который не меняет заголовок User-Agent на свой собственный.
Например это не будет работать с PBX Asterisk со стандартными настройками, т.к. Asterisk подменяет User-Agent в SIP сообщениях, которые через него проходят.