无法设置远程应答 sdp:无法下推传输描述:无法为通道设置 SSL 角色

Posted

技术标签:

【中文标题】无法设置远程应答 sdp:无法下推传输描述:无法为通道设置 SSL 角色【英文标题】:Failed to set remote answer sdp: Failed to push down transport description: Failed to set SSL role for the channel 【发布时间】:2017-12-09 12:02:28 【问题描述】:

我正在使用 webRTC 构建一个支持音频通话的系统。以下是它的工作原理: - 用户 A createOffer,然后是 setLocalDescriptionoffer - 用户 B receiveOffer,然后是 setRemoteDescriptionoffer - 用户 B createAnswer,然后是 setLocalDescriptionanswer - 用户 A receiveAnswer,然后是 setRemoteDescriptionanswer

问题是,A收到B的回答后,当A做setRemoteDescription(answer)时,出现这个错误:

未捕获(承诺)DOMException:。

我不知道为什么会出现这个错误。我试着用谷歌搜索它,但到目前为止没有运气。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

我在重新谈判时遇到了这个问题。我通过确保服务器将 sdp 设置回答为 passive 解决了这个问题。通常这个错误在 chrome firefox 上。

您也可以在这里查看:https://bugs.chromium.org/p/webrtc/issues/detail?id=2782

【讨论】:

【参考方案2】:

好像是a Firefox bug。 总之,正在发生的事情是: - Firefox 提供actpass - Chrome 回答 active。这会将 Chrome 设置为 DTLS 客户端,将 Firefox 设置为 DTLS 服务器。 - Chrome 重新提供,active(因为这是规范所说的,或者至少是我们长期以来对它的解释) - Firefox 提供active,但具有相同的 DTLS 指纹。 Chrome 不喜欢这样;它被解释为尝试将 DTLS 角色从 server 更改为 client 而无需创建新关联。要解决此问题,我所做的是:确保提供/回答方向保持一致。这意味着,如果 Firefox 生成初始报价,它也会生成所有后续报价。我不确定这种做法有多普遍,但它可能会避免很多互操作错误。 更详细的讨论:https://groups.google.com/forum/#!topic/discuss-webrtc/gsw3OEAwNKo

【讨论】:

以上是关于无法设置远程应答 sdp:无法下推传输描述:无法为通道设置 SSL 角色的主要内容,如果未能解决你的问题,请参考以下文章

iOS 上的 webRTC:无法发送 SDP 应答,RTCPeerConnection.setRemoteDescription() 失败

将图像编码为 h264 和 rtp 输出:没有 sprop-parameter-sets 的 SDP 文件无法播放

电脑远程无法传送文件,怎么回事?

如何处理C++编译webrtc无法成功获取sdp的问题?

如何处理C++编译webrtc无法成功获取sdp的问题?

安装window7的时候 提示: window 无法应用无人参与应答文件的《diskconfiguration》设置 就无法在安装了