2017-12-10 15 views
9

ejabberd + stanza io를 사용하여 실시간 메시징 및 오디오 호출 웹 사이트를 구축합니다. 필자가 처음으로 음성 통화Webrtc : WebRTC 응답을 처리 할 수 ​​없습니다.

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

을 내가 크롬 브라우저 로그가 chrome://webrtc-internals 디버거를 사용하여 Could not process WebRTC answer

을 보여주고있다

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

호출을 만들려고 할 때 문제가 발생하게 관리 툴 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(); 

내가 잘못하고있는 무슨을? 어떻게 파이어 폭스가 성공적으로 전합니다 (client.js에 고궁 박물원 패키지 sdpparser을 포함하여 문제를 해결 한

Full JS code

답변

4

(같은 결과에 오페라 테스트 (실패))를 호출하지만 크롬 캔트을 설정할 수 있습니다) 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