WebRTC Standards Summary Carol Davids © 2010 1 What is WebRTC? • “WebRTC” refers to protocols as well as Javascript APIs used to enable realtime communications within Web browsers, without requiring plugins. • IETF RTCWEB WG is standardizing the protocols used in WebRTC. • W3C WEBRTC WG is standardizing the Javascript APIs implemented in Web browsers. – getUserMedia API provides access to media streams from webcams and microphones. – RTCPeerConnection API enables mediastreams to 2 be sent peer-to-peer. WebRTC Protocols and APIs (P2P Scenario) Source: http://samdutton.com/webrtc.pdf (Google Chrome Developer Relations) 3 What Protocol Functionality is Covered by IETF RTCWEB? • Overview: draft-ietf-rtcweb-overview • Codecs (Opus & G.711 MTI for audio) – draft-ietf-rtcweb-audio • Security (SRTP and DTLS/SRTP key management) – draft-ietf-rtcweb-security, draft-ietf-rtcweb-security-arch • NAT traversal (STUN/TURN/ICE) – RFC 5245 (ICE), 5389 (STUN), 5766 (TURN) – draft-muthu-behave-consent-freshness • Data Channel (SCTP over DTLS over UDP) – draft-ietf-rtcweb-data-channel, draft-ietf-rtcweb-data-protocol • RTP/RTCP (RTP/SAVPF profile) – draft-ietf-rtcweb-rtp-usage • Congestion Control (“Circuit Breakers”, RMCAT WG) – draft-ietf-avtcore-rtp-circuit-breakers 4 IETF Standards Status • IETF RTCWEB WG documents likely to complete WG last call by end of CY 2013. – Major remaining issue is MTI video codec selection (VP8 vs. H.264). – Basic interoperability (audio, video, security) demonstrated between Chrome and Mozilla. – Core functionality implemented and being used in production. • Focus now largely on enhancements and optimizations. – Screen sharing: security issues. – Security: DTLS/SRTP-EKT (optimization for conferencing scenarios) – NAT traversal: “Trickle ICE” – A/V Multiplexing: Signaling (BUNDLE), and RTP multiplexing. – Multi-stream support: Support for simulcast and layered codecs, RTCP reporting. – Congestion control (RMCAT). 5 W3C Javascript APIs • WebRTC Core APIs – getUserMedia: http://dev.w3.org/2011/webrtc/editor/getusermedia.html – RTCPeerConnection: http://dev.w3.org/2011/webrtc/editor/webrtc.html – IETF API draft: draft-ietf-rtcweb-jsep • Ancillary APIs (not required for every WebRTC application) – Canvas: http://www.w3.org/TR/2012/CR-2dcontext20121217/ – Websockets: http://www.w3.org/TR/websockets/ – WebGL: http://www.khronos.org/registry/webgl/specs/latest/ – Web Telephony: 6 http://www.w3.org/2012/sysapps/telephony/ Implementation Status • WebRTC Core APIs – getUserMedia: Chrome 23 (December 2012), Mozilla (March 2013), going to WG last call in 4Q2013. – RTCPeerConnection: Chrome 25 (February 2013), Mozilla (September 2013). • Ancillary APIs (not required for every WebRTC application) – Canvas: Supported in all major browsers – Websockets: Supported in all major browsers – WebGL: Supported in all major browsers (in IE 11) – Web Telephony: for non-browser use (e.g. Firefox OS and Chrome OS). 7