【问题标题】:Webrtc: Could not process WebRTC answerWebrtc:无法处理 WebRTC 答案
【发布时间】:2018-05-24 05:16:24
【问题描述】:

我正在使用 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不能(在opera上测试结果相同(失败))

Full JS code

【问题讨论】:

    标签: node.js xmpp webrtc jingle stanza.io


    【解决方案1】:

    我已经通过在 client.js(stanza.io 的)中包含 npm 包 sdpparser 解决了这个问题,然后再次构建它,在 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);
    

    这可能不是最好的方法,但绝对可以解决问题。

    github link of the tweaked stanza.io

    Helpful github issue on jingle.js repo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-28
      相关资源
      最近更新 更多