SIP.js - Require rtcpMuxPolicy



我正在使用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:"协商">

最新更新