SIP.js - 需要rtcpMuxPolicy

时间:2017-04-06 19:38:04

标签: javascript google-chrome asterisk sip

我在SIP手机上使用SIP.js库,在Chrome上工作。在Chrome 57之后,我的手机无法正常工作。我可以拨打电话号码,但语音不可用或接听电话,但电话没有响应。我在浏览器控制台上收到此错误:

  

DOMException:无法设置远程商品sdp:会话错误代码:
  ERROR_CONTENT。
  会话错误说明:rtcpMuxPolicy是'要求',
  但媒体描述不包含' a = rtcp-mux' ..

我使用Chrome M57SIP.js 0.73。我将SIP.js更新为0.77,但问题出在那里。

我看看google group和github。问题出在Chrome上。我们使用asterisk。我能为这个问题做些什么?

2 个答案:

答案 0 :(得分:1)

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/

答案 1 :(得分:-1)

将sip版本更新为0.7.7+后,需要在 UA.prototype.loadConfig中将 rtcpMuxPolicy 参数设置为“negotiate”

UA.prototype.loadConfig = function(configuration) {
  var parameter, value, checked_value, hostportParams, registrarServer,
    settings = {
      ...  
  
      rtcpMuxPolicy: 'negotiate',
      
      ...
      };
};

这可以解决您的问题。

  

rtcpMuxPolicy

     

覆盖使用的默认Multiplexing RTP(rtp-mux)模式的字符串   用于对等连接。将此设置为“协商”可能允许   不支持rtp-mux与SIP.js一起使用的端点如果不   指定后,使用浏览器的默认策略。

     

版本:0.7.7 +

     

rtcpMuxPolicy:“negotiate”