Webrtc:无法处理 WebRTC 应答
Webrtc: Could not process WebRTC answer
我正在使用 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 上测试结果相同(失败))
我通过在 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);
这可能不是最好的方法,但绝对可以解决问题。
我正在使用 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 上测试结果相同(失败))
我通过在 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);
这可能不是最好的方法,但绝对可以解决问题。