Mozilla's first implementation of WebRTC will be released soon. What will this mean for developers?
Preliminary support for WebRTC was introduced in Firefox 18 but it is Firefox 22, currently in Aurora that will see WebRTC enabled by default. .
On point to note is that Mozilla has updated the DataChannels implementation in Firefox to meet the specification agreed with the IETF (Internet Engineering Task Force). These changes are not backward compatible so developers who are testing DataChannels apps should do so with Firefox 22.
The Mozilla blog also has news that support has been added for TURN (Traversal Using Relays behind NATs), a standard for managing a relay session on a remote external server. Commenting on this development the blog says:
This is a big deal since TURN will increase the likelihood that a call will successfully connect, regardless of the types of NATs that the end points are behind.
With regard to Firefox for Android, the code for WebRTC calls that was demonstrated at Mobile World Congress in February is now in the Nightly version and can be tested.
The code for both getUserMedia (gUM) and PeerConnection is behind a pref, but can be enabled by setting both the
media.navigator.enabled pref and the
media.peerconnection.enabled pref to “true”.
In the same list of prefs, you can also set
media.navigator.permission.disabled to “true” to automatically give permission to access the camera/microphone and bypass the permission/selection dialog when testing gUM and WebRTC.
Mozilla hopes to get this code running soon on Firefox OS. If WebRTC has the potential to be disruptive on the desktop and mobile it could completely change the way mobile phones are used. Having the browser as the operating system makes WebRTC a much more prominent communication method and a real alternative to SMS or a voice call.
Looking to the future, Mozilla plans to make the following improvements to WebRTC over all its platforms which of course share the gecko engine:
- Complete error and state reporting (spec compliant)
- Recording API support
- Persona integration
- Multiple audio and video flows per Peer Connection (beyond 1 video flow and 1 audio flow)
- Persistent permissions support (in the UX/UI)
- AEC improvements
- Improved call quality (especially audio latency)
Work is also in progress on a WebRTC documentation and help page.