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

时间:2017-07-05 17:34:10

标签: ssl webrtc sdp

我正在使用webRTC来构建支持音频呼叫的系统。这是它的工作原理:
- 用户A createOffer,然后是setLocalDescription offer - 用户B receiveOffer,然后是setRemoteDescription offer - 用户B createAnswer,然后是setLocalDescription answer - 用户A receiveAnswer,然后是setRemoteDescription <{1}}

问题在于,在收到B的回答后,当A执行answer时,会出现此错误:

未捕获(在承诺中)DOMException:无法设置远程回答sdp:无法下推传输描述:无法为通道设置SSL角色。

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

2 个答案:

答案 0 :(得分:3)

进行重新谈判时遇到了这个问题。我通过确保服务器应该将sdp设置作为被动来解决这个问题。通常Chrome上的此错误&lt; - &gt; Firefox浏览器。

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

答案 1 :(得分: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