Soo you’re an application developer, and you’re asked by your client to embed a nice little chat feature on his web site so that the customers can have a live chat with a sales representative.
No problem! You whip up the feature in no time.
Being the typical client, he is still not happy. Chatting is time consuming and error prone. Isn’t it better if the customers can just click on a “Call us” button and talk to a sales representative, and it’s much better if the call is video so that they can be given a live demonstration of the products. And again being the typical client he adds, “I don’t want to spend money doing that either”
Now you start scratching your head. How on earth am I going to do that??
Worry no more, WebRTC is there for your rescue.
You have a nice standardized JavaScript API that you can use for free to make a call or a video call directly from the browser, making your life and the lives of all application developers much easier. You don’t have to worry about encoding, media gateways, codecs, encryptions, protocols… How wonderful!
And it makes the lives of the users easier too. They don’t need to share their contact details or bother with additional applications, plugins, downloads or installs.
Another major benefit for the users is security. Do you know that if SLT wants they can listen to your late night “interesting” phone conversations? Not that they do it :) but they can, because voice just goes over the wire and tapping a phone is a piece of cake. With WebRTC that’s not a possibility since it enforces the usage of encryption for both the media and the signalling.
And the types of applications, products that can make use of it? Well… imagination is the limit.
Ok ok So what is WebRTC?
In 2011, Google released an open source project called WebRTC (Web Real-Time Communication) for browser-based real-time communication. It exposes a JavaScript API for application developers to use and a C++ API for the browsers. It enables peer-to-peer connections between the browsers and the voice and video streams do not suffer from network latency or any other quality degrades. Multipoint communications also supported but scalability to large number of nodes is questionable.
Mozilla and Opera joined the project soon. Chrome, Firefox & Opera browsers have been WebRTC compatible for some time now. Yes, for WebRTC to work, there should be browser support. Microsoft’s Edge, which is supposed to replace Internet Explorer, is already supporting getUserMedia API of WebRTC.
The only one who is not joining the party is the usual party crasher Apple :) and Safari is the only main browser that is not WebRTC compatible.
Standardization
W3C is standardizing WebRTC API. It has 3 major components.
- getUserMedia : allow a web browser to access the camera and microphone and to capture media
- RTCPeerConnection : sets up audio/video calls
- RTCDataChannel : allow browsers to share data via peer-to-peer
How big is it going to be?
Predicting the future of technologies is no better than predicting the weather. But looking at the straightforward practical applications of WebRTC, commercial VoIP services running on browsers, multi-player gaming etc, we can easily see it’s going to be huge. It’s expected to have a market worth $4.7 billion by 2018 and 60% of Internet population is expected to use it by 2019.