根据这个announcement: “从最近的Chrome Canary版本开始,默认的RTCP多路复用策略是”require“,而不是”negotiate“。这将影响下一个Chrome版本M57。”
我正在使用sipml5 API进行webrtc调用(后端是Asterisk)。当我尝试通过webrtc扩展程序进行调用时,我在chrome控制台中遇到了此错误,并且没有音频。
$(document).ready(function(){
var x=$("#notif option:selected").val();
if(x=="" || x==0){$("#count").remove();}
});
那么如何在sipml5中将rtcpMuxPolicy设置为“negotiate”?
答案 0 :(得分:0)
在互联网上挖了很长时间后,我发现了以下几点,
引自星号论坛:https://issues.asterisk.org/jira/browse/ASTERISK-26732
Chrome 57在与WebRTC互操作方面发生了重大变化 网关。他们已经改变了之前的'#34;'谈判","要求" 说到rtcp-mux。 Asterisk,据我所知它没有 rtcp多路复用等在兼容性方面会破坏 使用WebRTC跨所有支持WebRTC的Asterisk版本。
引用chrome中的rtcpMuxPolicy:https://www.chromestatus.com/feature/5654810086866944
应用程序使用rtcpMuxPolicy指定其首选项 关于使用RTP / RTCP多路复用的政策。当政策是 "协商",RTP和RTCP的ICE候选者将是 云集。如果远程端点能够复用RTCP, 在RTP候选者上复用RTCP。如果不是,请同时使用RTP 和RTCP候选人分开。
根据谷歌小组论坛 - https://groups.google.com/forum/#!topic/discuss-webrtc/eM57DEy89MY
截至最近的Chrome Canary版本,默认RTCP 多路复用策略是"要求"而不是"协商"。这将 影响下一个Chrome版本,M57。这意味着提供/回答 与不支持RTCP复用的端点协商 将失败,导致错误:" ERROR_CONTENT。会话错误 description:无法设置RTCP mux过滤器。"我们可以做 这个错误更具描述性,但最重要的是 如果SDP不包含,setRemoteDescription将失败 " = RTCP-MUX&#34 ;.对于尚不支持RTCP的任何应用程序 多路复用,你可以通过显式设置来获得旧的行为 RTCRtpMuxPolicy到"协商"在RTCConfiguration中。例如: pc = new RTCPeerConnection({rtcpMuxPolicy:" negotiate"})
简而言之,
解决方案: 我从2.0.3更新了sipml5 api到2.1.3。现在错误已更改为警告。
[Deprecation] The rtcpMuxPolicy option is being considered for removal and may be removed no earlier than M60, around August 2017. If you depend on it, please see https://www.chromestatus.com/features/5654810086866944 for more details.
现在一切正常。