Was WebRTC Zwänge und Optionen sollte ich den pass zu bekommen Interoperabilität zwischen Firefox und Google chrome
Baue ich ein chat-Programm für LAN. Ich benutze WebRTC, kann aber nicht Firefox und Google chrome zu interagieren.
Ich weiß nicht, die genauen Parameter ich übergeben muss um RTCPeerConnection createOffer/createAnswer.
Machte ich die folgenden tests mit Firefox 31 und Google Chrome 36 auf dem gleichen Rechner Fedora Linux 20
RTCPeerConnection ist geschaffen, wie zum Beispiel:
pc = new RTCPeerConnection(null, RTC_PC_OPTIONS);
Antworten/Angebote geschaffen, wie zum Beispiel:
pc.createOffer(onsuccess, onfail, CONSTRAINTS);
Meine Frage ist: welche Parameter (RTC_PC_OPTIONS
und CONSTRAINTS
) muss ich mich übergeben, um die Interoperabilität zwischen den beiden Browsern?
Test 1
RTC_PC_OPTIONS = undefined
CONSTRAINTS = undefined
FFx2FFx FFx2Chrome Chrome2FFx Chrome2Chrome
------- ---------- ---------- -------------
dataChannel setup ok ok ok ok
dataChannel send/recv ok ok ok ok
Video stream ok ok err [1] ok
Test 2
MDN recomands this value for RTC_PC_OPTIONS
RTC_PC_OPTIONS = {
optional: [
{DtlsSrtpKeyAgreement: true},
{RtpDataChannels: true}
]
};
CONSTRAINTS = undefined
FFx2FFx FFx2Chrome Chrome2FFx Chrome2Chrome
------- ---------- ---------- -------------
dataChannel setup ok err [2] err [3] ok
dataChannel send/recv ok - - ok
Video stream ok - - err [4]
^~~~~~~~~~~~~~~~^
^
i used datachannel to do signaling for the video TRCPeerConnection,
that is why these were not tested
Test 3
RTC_PC_OPTIONS = undefined
CONSTRAINTS = { 'mandatory': { 'OfferToReceiveAudio': true, 'OfferToReceiveVideo': true } }
FFx2FFx FFx2Chrome Chrome2FFx Chrome2Chrome
------- ---------- ---------- -------------
dataChannel setup ok ok ok err [5]
dataChannel send/recv ok ok ok -
Video stream err [6] ok err [6] -
- Chrome erstellt Angebot und schickt es an FFx, FFx erhält bieten, erstellt die Antwort und sendet es an chrome,
chrome erhält die Antwort. Aber onaddstream ist nicht triggred in firefox
- Nach chrome erhält das Angebot, gesendet von FFx, meldet es einen Fehler auf der Konsole:
Failed to set remote offer sdp: Session error code: ERROR_CONTENT. Session error description: Failed to set data send codecs..
- Chrome sendet das Angebot, FFx sendet die Antwort,
chrome bekommt diese Fehlermeldung: Failed to parse SessionDescription. m=application 35224 RTP/SAVPF Expects at least 4 fields.
FFx bekommt diese Fehlermeldung: ICE failed, see about:webrtc for more details
In about:webrtc
:
Local candidate Remote candidate ICE State Priority Nominated Selected
a.b.c.d:35224/udp(host) a.b.c.d:45895/udp(host) frozen 9115005270282354000
- Chrome_1 bekommt die Fehlermeldung:
Uncaught NetworkError: Failed to execute 'send' on 'RTCDataChannel': Could not send data
chrome_2 bekommt die Fehlermeldung:
Uncaught SyntaxError: Failed to execute 'addIceCandidate' on 'RTCPeerConnection': The ICE candidate could not be added.
- Der Anrufer sendet das Angebot, der angerufene bekommt eine Fehlermeldung:
Failed to set remote offer sdp: Session error code: ERROR_CONTENT. Session error description: Failed to set data send codecs.
- Wie [1] alles ok, aber onaddstream nicht ausgelöst
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, ein paar Dinge:
Versuchen es mit FF Beta und Nightly (http://nightly.mozilla.org/). Und wenn Sie die Dinge berichten, wie Sie diese, bitte angeben, welche Versionen der browser du benutzt! 🙂
RTC_PC_OPTIONS = undefined
undCONSTRAINTS = undefined
. Nochmals vielen Dank!