2017-12-10 81 views
9

I को रीयलटाइम मैसेजिंग और ऑडियो कॉलिंग वेबसाइट बनाने के लिए ejabberd + stanza io का उपयोग करके संसाधित नहीं कर सका। 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://webrtc-internals डिबगर का उपयोग करके Could not process WebRTC answer

दिखा रहा है बनाने की कोशिश करने के लिए प्रबंधित टूल आईव ने पाया कि setremotedescription त्रुटि के साथ असफल रहा:

`Failed to set remote answer sdp: Called with SDP without ice-ufrag and ice-pwd` 

यह है कि क्या im कॉल प्रारंभ करने का उपयोग कर:

var session = client.jingle.createMediaSession('full JID'); 
    session.addStream(localAudio_stream); // getUserMedia stream 
    session.start(); 

क्या मैं गलत कर रहा हूँ? कैसे फ़ायरफ़ॉक्स सफलतापूर्वक कॉल लेकिन क्रोम नहीं कर सकते (एक ही परिणाम के साथ करने के लिए ओपेरा पर परीक्षण (विफलता))

Full JS code

उत्तर

4

मैं (client.js में NPM पैकेज sdpparser शामिल करके समस्या हल हो गया है स्थापित कर सकते हैं stanza.io की) तो इसे फिर से निर्माण, और stanza.io.bundle Ive में 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

संबंधित मुद्दे