Med*_*ida 9 xmpp node.js webrtc jingle stanza.io
我使用ejabberd + stanza io构建实时消息和音频呼叫网站.我设法进行了第一次音频通话
from chrome(on PC) -> chrome(on mac) with no errors
当我尝试拨打电话时会出现问题
from chrome(on mac) to firefox(on pc) or vice versa
Chrome浏览器日志正在显示 
Could not process WebRTC answer
通过使用chrome://webrtc-internals调试工具我发现setremotedescription失败的错误:
`Failed to set remote answer sdp: Called with SDP without ice-ufrag and ice-pwd`
这是我用来开始通话的内容:
var session = client.jingle.createMediaSession('full JID');
  session.addStream(localAudio_stream); // getUserMedia stream
  session.start();
我究竟做错了什么?firefox如何成功建立一个调用但是chrome cant(在opera上测试结果相同(失败))
我通过将 npm 包 sdpparser 包含在 client.js (stanza.io)中然后再次构建它来解决这个问题,并在 stanza.io.bundle 中进行了如下调整PeerConnection.prototype.handleAnswer:
var sdp = client.SdpParser.parse(answer.sdp);
sdp.media.forEach(function(media){
  if(media.type === 'video' && media.inactive ) {
    delete media.fingerprint;
    media.port = 0;
  }
});
answer.sdp = client.SdpParser.format(sdp);
这可能不是最好的方法,但它绝对可以解决问题。
| 归档时间: | 
 | 
| 查看次数: | 192 次 | 
| 最近记录: |