Web Real-Time Communications Working Group Charter The mission of the Web Real-Time Communications Working Group, part of the Ubiquitous Web Applications Activity, is to define client-side APIs to enable Real-Time Communications in Web browsers. These APIs should enable building applications that can be run inside a browser, requiring no extra downloads or plugins, that allow communication between parties using audio, video and supplementary real-time communication, without having to use intervening servers (unless needed for firewall traversal, or for providing intermediary services). APIs enabling supplementary functions, such as recording, image capture and screen sharing are also in scope. Join the Web Real-Time Communications Working Group. End date March 2018 Confidentiality Proceedings are public Initial Chairs Harald Alvestrand Stefan Håkansson Team Contacts (FTE %: 10) Dominique Hazaël-Massieux Usual Meeting Schedule Teleconferences: approximately 1 per month Face-to-face: up to 3-4 per year Scope Enabling real-time communications between Web browsers require the following client-side technologies to be available: API functions to explore device capabilities, e.g. camera, microphone, speakers, API functions to capture media from local devices (e.g. camera and microphone, but also output devices such as a screen), API functions for encoding and other processing of those media streams, API functions for establishing direct peer-to-peer connections, including firewall/NAT traversal API functions for decoding and processing (including echo cancelling, stream synchronization and a number of other functions) of those streams at the incoming end, Delivery to the user of those media streams via local screens and audio output devices (partially covered with HTML5) Success Criteria To advance to Proposed Recommendation, each specification is expected to have two independent implementations of each feature defined in the specification. To advance to Proposed Recommendation, interoperability between the independent implementations (that is, bidirectional audio and video communication between the implementations) should be demonstrated. Out of Scope The definition of the network protocols used to establish the connections between peers is out of scope for this group; in general, it is expected that protocols considerations will be handled in the IETF. The definition of any new codecs for audio and video is out of scope. Deliverables Recommendation-Track Deliverables The Working Group will deliver specifications that cover at least the following functions, unless they are found to be fully specified within other Working Groups' finished results: Media Stream Functions API functions to manipulate media streams for interactive real-time communications, connecting various processing functions to each other, and to media devices and network connections, including media manipulation functions for e.g. allowing to synchronize streams. Supplementary functions such as recording of media streams are also in scope. Audio Stream Functions An extension of the Media Stream Functions to process audio streams, to enable features such as automatic gain control, mute functions and echo cancellation. Video Stream Functions An extension of the Media Stream Functions to process video streams, to enable features such as bandwidth limiting, image manipulation or "video mute". Functional Component Functions API functions that allow to query for the components present in an implementation, instantiate them, and connect them to media streams. P2P Connection Functions API functions to provide interfaces that enable the conveyance of parameters necessary to establish peer to peer connections, based on the protocols selected by the IETF RTCWeb Working Group. Included in this category are also API functions to allow identification of the peer. The Working Group may decide to group the specified functions in one or more specifications. The Working Group has already started and will continue work on the following specifications: WebRTC 1.0: Real-time Communication Between Browsers JavaScript APIs to allow media and data to be sent to and received from another browser or device implementing the appropriate set of real-time protocols Identifiers for WebRTC's Statistics API JavaScript APIs that allow access to statistical information about a peer-to-peer connection established via the WebRTC API as well as on the following specifications jointly developed with the Device APIs Working Group: Media Capture and Streams JavaScript APIs that allow local media, including audio and video, to be requested from a platform MediaStream Recording a JavaScript API to record MediaStreams MediaStream Image Capture a JavaScript API to capture still images from a video MediaStream Media Capture Depth Stream Extensions An extension to the Media Capture and Streams API to capture depth streams (e.g. from 3D cameras) Media Capture from DOM Elements An extension to DOM elements to allow to capture a media stream from their content Audio Output Devices API JavaScript APIs that let a Web application manage how audio is rendered on the user audio output devices Screen Capture API An extension to the Media Capture and Streams API to use a user's display, or parts thereof, as the source of a MediaStream. This work will be done in collaboration with the IETF. The W3C will define APIs to ensure that application developers can control the components or the architecture for selection and profiling of the wire protocols that will be produced by the IETF Real-Time Communication in WEB-browsers (RTCWeb) Working Group. While the specified API Functions will not constrain implementations into supporting a specific profile, they will be compatible with the Profile that will be specified by the RTCWeb Working Group. As the name indicates, WebRTC 1.0: Real-time Communication Between Browsers is a first version of APIs for real-time communication, sometimes referred to as the PeerConnection API. The activities in the ORTC (Object Real-time Communications) Community Group indicate that there is interest in additional APIs to provide more direct control over WebRTC than what the PeerConnection API offers. In recognition of this interest, the Working Group will, once WebRTC 1.0: Real-time Communication Between Browsers reaches Candidate Recommendation, start work on a new set of object-oriented APIs for real-time communication. In developing these new APIs, the Working Group will adhere to the following principles: Direct control: The new APIs are intended to provide direct control over the details of real-time communication, where the application can directly specify how information should be transmitted, without any built-in negotiation semantics. Standalone operation: The new APIs will be complete enough to allow applications to write solely to the new APIs to complete common tasks. Backwards-compatibility: The new APIs will extend the WebRTC 1.0 APIs, rather than replace them. Applications that use the PeerConnection API will continue to function, unless there is a clear and compelling reason to deprecate specific 1.0 functionality. Feature independence: Features may be introduced in the new APIs that are not available when using the PeerConnection API. The Working Group will take the work done by the ORTC Community Group as a source of input, and when contemplating similar APIs in the Working Group, make efforts to align with the ORTC CG on API methodologies and nomenclature. This may include scheduled design meetings with relevant WG and CG stakeholders to foster convergence of the APIs. The specified API Functions and the requirements on their implementation must offer functionality that ensures that users' expectations of privacy and control over their devices are met - this includes, but is not limited to, ensuring that users can control what local devices an application can access for capturing media, and are able to at any time revoke that access. Similarly, all the deliverables must address issues of security. The security and privacy goals and requirements will be developed in coordination with the IETF RTCWeb Working Group. Similarly, all deliverables must address issues of accessibility including relevant requirements listed in the Media User Accessibility Requirements document (MAUR), such as multiple well-synchronized instances of the same media type. The accessibility goals and requirements will be developed in coordination with the Accessible Platform Architectures Working Group. Other Deliverables A comprehensive test suite for all features of a specification is necessary to ensure the specification's robustness, consistency, and implementability, and to promote interoperability between User Agents. Therefore, each specification must have a companion test suite, which should be completed by the end of the Last Call phase, and must be completed, with an implementation report, before transition from Candidate Recommendation to Proposed Recommendation. Additional tests may be added to the test suite at any stage of the Recommendation track, and the maintenance of a implementation report is encouraged. In particular, since WebRTC deals with communications, specific attention will be brought to the interoperability testing of the WebRTC API implementations (both browser-to-browser and browser-to-native). Other non-normative documents may be created such as: Primers Requirements and use case document for specifications. Non-normative group notes Given sufficient resources, this Working Group should review other Working Groups' deliverables that are identified as being relevant to the Working Group's mission. Milestones Milestones Note: The group will document significant changes from this initial schedule on the group home page. Specification FPWD CR PR Rec Media Capture and Streams 2011-10-27 Q2 2015 Q1 2016 Q2 2016 WebRTC 1.0: Real-time Communication Between Browsers 2011-10-27 Q4 2015 Q4 2016 Q1 2017 MediaStream Recording 2013-02-25 Q4 2015 Q3 2016 Q1 2017 MediaStream Image Capture 2013-07-09 Q2 2016 Q2 2017 Q3 2017 Media Capture Depth Stream Extensions 2014-10-07 Q2 2016 Q2 2017 Q3 2017 Identifiers for WebRTC's Statistics API 2014-10-21 Q4 2015 Q4 2016 Q1 2017 Media Capture from DOM Elements Q1 2015 Q4 2015 Q3 2016 Q4 2016 Audio output API Q1 2015 Q3 2015 Q2 2016 Q3 2016 Screen Capture API Q1 2015 Q4 2015 Q3 2016 Q4 2016 WebRTC next version Q1 2016 Q2 2017 Q4 2017 Q1 2018 Dependencies and Liaisons W3C Groups HTML Working Group The HTML Working Group defines a number of markup elements and APIs that serves as the basis on which the RTC APIs have been developed; in particular, several specifications of this group extends the