WebRTC

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

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.[1]

History

In May 2011, Google released an open source project for browser-based real-time communication known as WebRTC.[2] This has been followed by ongoing work to standardise the relevant protocols in the IETF[3] and browser APIs in the W3C.[4]

The W3C draft of WebRTC[5] 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.[6] It was referred to as the ConnectionPeer API, and a pre-standards concept implementation was created at Ericsson Labs.[7] 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[8] to define the set of protocols that, together with this document, define real-time communications in Web browsers. While no one signalling protocol is mandated, SIP over Websockets (RFC 7118) is often used partially due to the applicability of SIP to most of the envisaged communication scenarios as well as the availability of open source software such as JsSIP.
  • Privacy issues that arise when exposing local capabilities and local streams
  • Technical discussions within the group, on implementing data channels in particular[9]
  • Experience gained through early experimentation
  • Feedback from other groups and individuals

Design

Major components of WebRTC include:

  • getUserMedia, which allows a web browser to access the camera and microphone and to capture media[10]
  • RTCPeerConnection, which sets up audio/video calls[11]
  • RTCDataChannel, which allow browsers to share data via peer-to-peer[12]

The WebRTC API also includes a statistics function:

  • getStats, which allows the web application to retrieve a set of statistics about WebRTC sessions. These statistics data are being described in a separate W3C document.[13]

As of November 2015, the IETF WebRTC Audio Codec and Processing Requirements draft[14] requires implementations to provide PCMA/PCMU (RFC 3551), Telephone Event as DTMF (RFC 4733), and Opus (RFC 6716) audio codecs as minimum capabilities. The PeerConnection, data channel and media capture browser APIs are detailed in the W3C.

W3C is developing ORTC (Object Real-time Communications) for WebRTC.[15] This is commonly referred to as WebRTC 1.1.

Benefits

WebRTC enables all kinds of real time communication such as audio, video and text between users by utilizing the browsers. Using WebRTC bears different benefits for different market segments. For end users it has two major advantages:

  • Ease of use: Real-time communication is supported without the need for additional applications or plug-ins.[citation needed]
  • Security: WebRTC enforces the usage of encryption for the media. Thereby, WebRTC provides a higher security level than most currently available commercial telephony systems.[citation needed]

For enterprises WebRTC can provide even more benefits:[16][unreliable source?]

  • Cost savings: Save on the costs of toll-free telephone number for call centres
  • Rich communication: Enhance the communication to users and between employers with video and messaging without the need for special applications and servers.
  • Un-interrupted communication: Keep the customers on the web page and at the same time start a voice and video call with customer.
  • Security: Secure the communication with the customers as well as employees in the home office and remote branches using state of the art encryption standards.

For operators, WebRTC can additionally provide new opportunities:

  • Mobile Telephony: By relying on WebRTC technology, service providers can enable users to access their VoIP service while on the go without specialised applications.
  • Hosted Services: By deploying a WebRTC gateway end users would be able to access the SIP based hosted PBX and call centers without the need to change these services.
  • WebRTC as a Service: Similar to hosted PBX services, service providers can host WebRTC Gateways on behalf of enterprises. WebRTC calls destined to the enterprise are handled by a WebRTC Gateway of the service provider. Incoming WebRTC calls would be translated into SIP calls and routed to the enterprise. The enterprise would not have to change anything in its infrastructure, as it will still be only handling SIP calls

Support

WebRTC is supported in the following browsers.

As of September 2015, Internet Explorer and Safari still lack the native support of WebRTC but ORTC was already added to the new Microsoft browser, Edge.[22][23] Several plugins are available to add the support of WebRTC to these browsers.[24][25] As of April 2016, WebKit, the back-end engine for Apple’s Safari has listed support for WebRTC as being in-development.[26]

Concerns

In January 2015, TorrentFreak reported that browsers supporting WebRTC suffer from a serious security flaw that compromises the security of VPN-tunnels, by allowing the true IP address of the user to be read.[27] The IP address read requests are not visible in the browser's developer console, and they are not blocked by common ad blocking/privacy plugins (enabling online tracking by advertisers and other entities despite precautions).[28]

See also

References

  1. How WebRTC Is Revolutionizing Telephony. Blogs.trilogy-lte.com (2014-02-21). Retrieved on 2014-04-11.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Charter of the Real-Time Communication in WEB-browsers (rtcweb) working group
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Microsoft Edge Dev. Windows.com (2015-09-18). Retrieved on 2015-09-19.
  18. Firefox Notes - Desktop. Mozilla.org (2013-06-25). Retrieved on 2014-04-11.
  19. Opera News. blogs.opera.com (2013-11-19). Retrieved on 2015-09-17.
  20. Firefox Notes - Desktop. Mozilla.org (2013-09-17). Retrieved on 2014-08-04.
  21. http://www.openwebrtc.io/bowser/
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Priologic Releases First Open Source WebRTC Plugin for Internet Explorer
  25. http://www.prweb.com/releases/2014/05/prweb11844308.htm
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Huge Security Flaw Leaks VPN Users’ Real IP-addresses TorrentFreak.com (2015-01-30). Retrieved on 2015-02-21.
  28. STUN IP Address requests for WebRTC Retrieved on 2015-02-21.

External links