2017-12-10 18 views
9

ejabberd + stanza ioを使用してリアルタイムのメッセージングおよび音声通話のWebサイトを構築しています。 IVEは私の最初のオーディオコールWebrtc:WebRTCの回答を処理できませんでした

from chrome(on PC) -> chrome(on mac) with no errors 

を作るために管理し、私はコール

from chrome(on mac) to firefox(on pc) or vice versa 

は、Chromeブラウザのログがchrome://webrtc-internalsデバッガを使用して Could not process WebRTC answer

を示すされていることを確認しようとすると、問題が発生しますツール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が成功した(同じ結果(失敗)でのオペラでテスト)の呼び出しが、クロムカントを確立することができます

Full JS code

答えて

4

私は(client.jsにNPMパッケージsdpparserを含むことによって、問題を解決してきました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 link of the tweaked stanza.io

Helpful github issue on jingle.js repo

関連する問題