Webrtc: Не удалось обработать ответ WebRTC
Я использую 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
Ive отладчик понял, что 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 с тем же результатом (сбой))
1 ответ
Я решил проблему, включив пакет sdpparser npm в 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);
это может быть не лучшим способом сделать это, но это определенно решает проблему.