Interop Notes

Firefox Beta (as of 5/16/13) and Chrome 25 and later are interoperable, but currently require a small degree of adaptation on the part of the calling site.

API differences

Firefox and Chrome both prefix their interfaces and are likely to continue to do so until the standard is more finalized. The
following table shows the relevant names:

W3C Standard           Chrome                   Firefox
--------------------------------------------------------------
getUserMedia           webkitGetUserMedia       mozGetUserMedia
RTCPeerConnection      webkitRTCPeerConnection  mozRTCPeerConnection
RTCSessionDescription  RTCSessionDescription    mozRTCSessionDescription
RTCIceCandidate        RTCIceCandidate          mozRTCIceCandidate

To help insulate apps from these differences, we provide a "polyfill" library which takes care of all these issues and lets developers write to the unprefixed W3C standard names. This library can be found in the WebRTC code repository:

Constraints / configurations issues.

Chrome does not yet do DTLS-SRTP by default whereas Firefox only does DTLS-SRTP. In order to get interop, you must supply Chrome with a PC constructor constraint to enable DTLS:

   { 'optional': [{'DtlsSrtpKeyAgreement': 'true'}]}

This will be removed once DTLS is enabled by default in Chrome, which is currently being worked on.

Interop with AppRTC

AppRTC (https://apprtc.webrtc.org) uses the adapter.js polyfill, so it correctly handles interop between the browsers. You can test this with Chrome and Firefox today!