我正在使用SIP.js SIP手机库,在Chrome上工作。Chrome 57之后,我的手机无法正常工作。我可以拨打一个号码,但语音不可用,或者接到电话但电话没有响应。我在浏览器控制台上收到此错误:
DOMException: 无法设置远程产品/服务 sdp: 会话错误代码:
ERROR_CONTENT。
会话错误描述:rtcpMuxPolicy 是"必需的",
但介质描述不包含"A=RTCP-MUX"。
我使用的是Chrome M57
和 0.73 SIP.js
。我将SIP.js
更新为 0.77,但问题就在那里。
我看谷歌集团和github。问题出在Chrome
.我们使用asterisk
.对于这个问题,我该怎么办?
Google Chrome 57引入了新的WebRTC要求(RTCP多路复用(。以前它是可选的。您可以安装旧版本的Chrome或更新Asterisk,此新功能的要求已经得到满足(https://issues.asterisk.org/jira/browse/ASTERISK-26732(。
阅读更多:https://nimblea.pe/monkey-business/2017/01/19/webrtc-asterisk-and-chrome-57/
将 sip 版本更新为 0.7.7+ 后,您需要在 UA.prototype.loadConfig 中将 rtcpMuxPolicy 参数设置为 "negotiate">:
UA.prototype.loadConfig = function(configuration) {
var parameter, value, checked_value, hostportParams, registrarServer,
settings = {
...
rtcpMuxPolicy: 'negotiate',
...
};
};
这应该可以解决您的问题。
rtcp复用策略
覆盖使用的默认多路复用 RTP (rtp-mux( 模式的字符串 对于对等连接。将其设置为"协商"可能允许 不支持 RTP-mux 的终端与 SIP.js 配合使用。如果不是 指定,则使用浏览器的默认策略。
版本: 0.7.7+
rtcpMuxPolicy:"协商">