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 с тем же результатом (сбой))

Полный код JS

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);

это может быть не лучшим способом сделать это, но это определенно решает проблему.

github ссылка на измененный раздел

Полезная проблема с github в репозитории jingle.js

Другие вопросы по тегам