The Rise of WebRTC: The Rules of Communications are About to be Rewritten
Ubiquitous WebRTC deployment would make real-time communications pervasive on the Internet.
I recently made my first WebRTC (Web Real Time Communications) free voice call using the global calling service frisB from the latest Chrome browser, and then went on to explore a number of services available using WebRTC. I soon realized we are about to witness an explosion of innovations enabled by WebRTC. Before we review some of the innovations, a brief review of WebRTC is provided.
WebRTC is a HTML5 standard being drafted by the World Wide Web Consortium (W3C) and the Internet Engineering Task Force (IETF). The W3C is working on standardizing the interaction with HTML while the IETF is working on standardizing the underlying protocols. There is also a WebRTC project from Google that in June 2011 open sourced under a royalty free BSD (Berkeley Software Distribution)-style license a framework that has accelerated browser support of WebRTC. For the sake of simplicity I will refer to all these complementary endeavors as WebRTC, which embeds real-time communications into any browser.
On a couple of practical issues, WebRTC includes and abstracts key NAT (Network Address Translator) and firewall traversal technology such as STUN (Simple Traversal of User datagram protocol through Network address translators), ICE (Interactive Connectivity Establishment), TURN (Traversal Using Relay NAT), RTP-over-TCP (Real-time Transport Protocol over Transmission Control Protocol) and support for proxies, enabling sessions to work like Skype. It also abstracts signaling by offering a signaling state machine that maps directly to PeerConnection. The PeerConnection API is what browser vendors will implement and expose WebRTC to web application developers. Web developers can choose the communication signaling protocol depending on their usage scenario (for example, but not limited to: SIP, XMPP/Jingle, etc.). Essentially any browser becomes a SIP endpoint, a telephone, an "open" Skype-like client, an endpoint for any real-time communication and control.
On the current status of browser implementations:
* Google Chrome: integrated WebRTC into its developer channel in January 2012, allowing any website to take advantage of WebRTC. The Google Talk plugin is a complex piece of software. So Google is taking it one step at a time and not making promises about the migration of when Google Talk plugin will be migrated to the WebRTC framework.
* Mozilla Firefox: Mozilla integrated WebRTC into its Firefox alpha in early 2012, which gave the browser the ability to perform audio mixing on a media stream. In April 2012, Mozilla released a demo of WebRTC video calling that ran inside the Firefox browser.
* Internet Explorer: Microsoft has started work on implementation of WebRTC.
* By the end of this year we'll see Chrome and Firefox running WebRTC--that's over 50% of the desktop market. The other half of the market (mainly IE) will take a little longer, likely to the end of 2013. In the latter part of 2013, we may see WebRTC on the browsers of some tablets and possibly smartphones. But as discussed later in this article, most tablet and smartphone users appear comfortable in downloading applications (clients) to their phone.