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]         -

  1. 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


  1. 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..


  1. 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


  1. 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.


  1. 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.


  1. Wie [1] alles ok, aber onaddstream nicht ausgelöst
InformationsquelleAutor nawfel bgh | 2014-07-31
Schreibe einen Kommentar