WebRTC (Web Real-Time Communication) is an API definition drafted by the World Wide Web Consortium (W3C) that supports browser-to-browser applications for voice calling, video chat, and P2P file sharing without the need of either internal or external plugins.
In May 2011, Google released an open source project for browser-based real-time communication known as WebRTC. This has been followed by ongoing work to standardise the relevant protocols in the IETF and browser APIs in the W3C.
The W3C draft of WebRTC is a work in progress with advanced implementations in the Chrome and Firefox browsers. The API is based on preliminary work done in the WHATWG. It was referred to as the ConnectionPeer API, and a pre-standards concept implementation was created at Ericsson Labs. The Web Real-Time Communications Working Group expects this specification to evolve significantly based on:
- Outcomes of ongoing exchanges in the companion RTCWEB group at IETF to define the set of protocols that, together with this document, define real-time communications in Web browsers
- Privacy issues that arise when exposing local capabilities and local streams
- Technical discussions within the group, on implementing data channels in particular
- Experience gained through early experimentation
- Feedback from other groups and individuals
Major components of WebRTC include:
getUserMedia, which allows a web browser to access the camera and microphone and to capture media
RTCPeerConnection, which sets up audio/video calls
RTCDataChannels, which allow browsers to share data via peer-to-peer
The WebRTC API also includes a statistics function:
getStats, which allows the web application to retrieve a set of statistics about WebRTC sessions. This statistics data are being described in a separate W3C document.
As of March 2012, the IETF WebRTC Codec and Media Processing Requirements draft requires implementations to provide PCMA/PCMU (RFC 3551), Telephone Event as DTMF (RFC 4733), and Opus (RFC 6716), along with a number of video codec minimum capabilities. The Peerconnection, Data channels and a media capture browser APIs are detailed in the W3C.
W3C is developing ORTC (Object Real-time Communications) for WebRTC. This is commonly referred to as WebRTC 1.1.
WebRTC is supported in the following browsers.
- Desktop PC
- Google Chrome 28 (Enabled by default since 29)
- Mozilla Firefox 24
- Opera Mobile 12
- Google Chrome OS
- Firefox OS
- Jingle (protocol)
- Datagram Transport Layer Security (DTLS), Secure Real-time Transport Protocol (SRTP) - DTLS-SRTP is an essential protocol for WebRTC key management
- How WebRTC Is Revolutionizing Telephony. Blogs.trilogy-lte.com (2014-02-21). Retrieved on 2014-04-11.
- "Google release of WebRTC source code from Harald Alvestrand on 2011-05-31". email@example.com. Retrieved 2012-09-12.
- Charter of the Real-Time Communication in WEB-browsers (rtcweb) working group
- "WebRTC 1.0: Real-time Communication Between Browsers". W3.org. Retrieved 2012-09-12.
- "WebRTC 1.0: Real-time Communication Between Browsers". Dev.w3.org. Retrieved 2012-09-12.
- "Introduction — HTML Standard". Whatwg.org. Retrieved 2012-09-12.
- "Beyond HTML5: Peer-to-Peer Conversational Video | Ericsson Labs". Labs.ericsson.com. Retrieved 2012-09-12.
- "Rtcweb Status Pages". Tools.ietf.org. Retrieved 2012-09-12.
- "draft-jesup-rtcweb-data-protocol-00 - WebRTC Data Channel Protocol". Tools.ietf.org. Retrieved 2012-09-12.
- "Media Capture and Streams: getUserMedia". W3C. 2013-09-03. Retrieved 2014-01-15.
- "WebRTC: RTCPeerConnection Interface". W3C. 2013-09-10. Retrieved 2014-01-15.
- "WebRTC: RTCDataChannel". W3C. 2013-09-10. Retrieved 2014-01-15.
- "Identifiers for WebRTC's Statistics API". W3C. 2014-09-29.
- "draft-cbran-rtcweb-codec-02 - WebRTC Codec and Media Processing Requirements". Tools.ietf.org. 2012-03-12. Retrieved 2012-09-12.
- "W3C ORTC (Object Real-time Communications) Community Group".
- Firefox Notes - Desktop. Mozilla.org (2013-06-25). Retrieved on 2014-04-11.
- Dev.Opera. My.opera.com. Retrieved on 2014-04-11.
- Firefox Notes - Desktop. Mozilla.org (2013-09-17). Retrieved on 2014-08-04.
- "Internet Explorer Web Platform Status and Roadmap". Microsoft. Retrieved 7 September 2014.
- Priologic Releases First Open Source WebRTC Plugin for Internet Explorer
- Official website
- W3C Web Real-Time Communications Working Group
- IETF Real-Time Communication in WEB-browsers (rtcweb) Working Group
- Getting Started With WebRTC
- WebRTC Interest and History