This page tracks ongoing documentation work in the MDN WebRTC section.
Feel free to contribute! We love help!
Summary
Pages | Needs* tags | Missing tags | Editorial reviews | Technical reviews | Outdated pages | Missing pages | Dev-doc-needed bugs | Documentation requests |
---|---|---|---|---|---|---|---|---|
109 | 5 (5%) | 0 (0%) | 0 (0%) | 12 (12%) | 46 (43%) | 18 (17%) | 20 (19%) | 33 (31%) |
See also localization status of this section.
Needs* tags
Found 5 pages. Learn more about how to deal with meta-tags.
- NeedsSpecTable
- NeedsUpdate
- NeedsExample
- NeedsContent
Technical reviews
Found 12 pages. Learn more about how to do a technical review.
- LocalMediaStream
- MediaDeviceInfo
- MediaStreamTrack.remote
- RTCCertificate
- RTCIceCandidate
- RTCIceServer
- RTCPeerConnection.addIceCandidate()
- RTCPeerConnection.createAnswer()
- RTCPeerConnection.currentLocalDescription
- RTCPeerConnection.currentRemoteDescription
- RTCPeerConnection.pendingLocalDescription
- RTCPeerConnection.pendingRemoteDescription
Outdated pages
Found 46 pages. These pages haven't been updated in over a year. Outdated pages can have problems with both content and format. Look at these pages and consider: Is this page talking about the Web of today? Does it look consistent with newer pages in this topic area? If not, make any needed changes.
- LocalMediaStream
432 days old - MediaStreamEvent
434 days old - MediaStreamEvent()
434 days old - MediaStreamEvent.stream
434 days old - MediaStreamTrack.id
434 days old - MediaStreamTrack.kind
434 days old - MediaStreamTrack.label
434 days old - MediaStreamTrack.onmute
434 days old - MediaStreamTrack.onoverconstrained
434 days old - MediaStreamTrack.onunmute
434 days old - MediaStreamTrack.readyState
434 days old - RTCDataChannel.binaryType
433 days old - RTCDataChannel.bufferedAmount
387 days old - RTCDataChannel.close()
433 days old - RTCDataChannel.id
433 days old - RTCDataChannel.label
433 days old - RTCDataChannel.ordered
433 days old - RTCDataChannel.protocol
433 days old - RTCDataChannel.readyState
433 days old - RTCDataChannelEvent()
433 days old - RTCDataChannelEvent.channel
433 days old - RTCIdentityErrorEvent.idp
433 days old - RTCIdentityErrorEvent.loginUrl
433 days old - RTCIdentityErrorEvent.protocol
433 days old - RTCIdentityEvent.assertion
433 days old - RTCPeerConnection.addStream()
433 days old - RTCPeerConnection.getIdentityAssertion()
433 days old - RTCPeerConnection.getLocalStreams()
433 days old - RTCPeerConnection.getRemoteStreams()
433 days old - RTCPeerConnection.getStreamById()
433 days old - RTCPeerConnection.iceConnectionState
433 days old - RTCPeerConnection.iceGatheringState
433 days old - RTCPeerConnection.oniceconnectionstatechange
433 days old - RTCPeerConnection.onidentityresult
433 days old - RTCPeerConnection.onidpassertionerror
433 days old - RTCPeerConnection.onidpvalidationerror
433 days old - RTCPeerConnection.onpeeridentity
433 days old - RTCPeerConnection.onremovestream
433 days old - RTCPeerConnection.removeStream()
433 days old - RTCPeerConnection.setIdentityProvider()
433 days old - RTCPeerConnection.signalingState
433 days old - RTCPeerConnectionIceEvent.candidate
433 days old - RTCSessionDescription()
433 days old - RTCSessionDescription.sdp
433 days old - RTCSessionDescription.toJSON()
433 days old - RTCSessionDescriptionCallback
433 days old
Missing pages
Found 18 pages. These pages are not yet written. Please help to create them.
- MediaDevices.getSupportedConstraints
- RTCCertificate
- RTCCertificate.expires
- RTCIdentityProviderRegistrar
- RTCIdentityProviderRegistrar.generateAssertion
- RTCIdentityProviderRegistrar.idp
- RTCIdentityProviderRegistrar.register
- RTCIdentityProviderRegistrar.validateAssertion
- RTCRtpReceiver
- RTCRtpReceiver.track
- RTCRtpSender
- RTCRtpSender.replaceTrack
- RTCRtpSender.track
- RTCStatsReport
- RTCStatsReport.forEach
- RTCStatsReport.get
- RTCStatsReport.has
- RTCStatsReport.mozPcid
Dev-doc-needed bugs
Found 20 bugs. Learn more about how to resolve a dev-doc-needed bug.
Bug | Summary | Release |
---|---|---|
1213056 | Change RTCStatsReport to be maplike. | mozilla48 |
1232082 | Add RTCRtpReceiver and fire ontrack for remote tracks | mozilla46 |
1175609 | onnegotiationneeded fires synchronously | mozilla45 |
1155923 | Unprefix WebRTC | mozilla44 |
1189060 | Add hooks to allow an extension to hook into createOffer() and createAnswer() | mozilla43 |
1184426 | Unprefix RTCIceCandidatePairStats.priority (formerly mozPriority) | mozilla42 |
1152538 | Enable WebRTC identity by default | mozilla40 |
975144 | Support electrolysis for WebRTC identity | mozilla38 |
1091898 | Update WebRTC with promises | mozilla37 |
1032839 | Implement Track replace for RTPSender | mozilla34 |
1032835 | Implement basic RTPSender and RTPReceiver with RTCPeerConnection | mozilla34 |
1036653 | Implement application sharing for getUserMedia | mozilla34 |
1038926 | Add support for window sharing for getUserMedia | mozilla33 |
942367 | Implement peerIdentity constraint | mozilla32 |
1014304 | Remove onconnection and onclosedconnection from PC | mozilla32 |
859565 | Remove readyState legacy attribute in future release | mozilla32 |
796463 | Pref on WebRTC by default | mozilla21 |
752352 | Define and implement chrome extensions to getUserMedia and MediaStreams for privileged callers | mozilla18 |
691234 | Write MediaEngine backend for Desktop based on WebRTC code | mozilla16 |
752353 | Implement DOM bindings for getUserMedia | mozilla15 |
Browse as bug list.
Documentation requests
Found 33 bugs. Documentation request bugs can contain various kinds work related to MDN pages. Read through the bug and ask questions in the bug if in doubt.
Bug | Summary |
---|---|
1050930 | [META] Complete WebRTC documentation |
1117356 | Update WebRTC basics article |
1119285 | webrtc video chat examples and documentation are old and broken |
1243487 | Document potential causes of WebRTC ICE renegotiation |
1257984 | Document RTCIceTransport interface |
1257985 | Update and finish RTCPeerConnection documentation |
1257987 | Clean up RTCSessionDescription documentation |
1257988 | Clean up and verify documentation of RTCPeerConnectionIceEvent |
1257990 | Update and complete RTCRtpSender documentation |
1257992 | Update and complete RTCRtpReceiver documentation |
1257994 | Update and complete RTCTrackEvent documentation |
1257999 | Document RTCCertificate |
1258002 | Document RTCDataChannel |
1258004 | Document RTCDTMFSender |
1258007 | Document RTCDTMFToneChangeEvent |
1258393 | Document RTCStatsReport |
1258394 | Document RTCIdentityProviderRegistrar |
1258395 | Document RTCIdentityProvider |
1258396 | Document RTCIdentityAssertion |
1258400 | Update documentation: RTCIdentityEvent has been removed from the spec |
1258401 | Update documentation: RTCIdentityErrorEvent has been removed |
1258405 | Ensure that RTCConfiguration document is complete and up-to-date |
1258408 | Document RTCPeerConnectionIceErrorEvent |
1258409 | Document RTCRtpTransceiver |
1258411 | Document RTCDtlsTransport |
1258412 | Document RTCDataChannelEvent |
1258413 | Document RTCStatsReport |
1258415 | Document RTCStats |
1258418 | Complete and verify currentness of MediaStreamTrack documentation |
1258419 | Document how to use Web-based identity providers with WebRTC |
1258423 | Document how to use DTMF with WebRTC |
1258424 | Document how to use WebRTC statistics to debug and measure quality of WebRTC connections |
1258437 | Document privacy and security considerations for WebRTC apps |
Browse as bug list.
Localizations
Please help us to localize this documentation into different languages. Read more about how to translate.
Language | Pages | Translated | Translations up to date |
---|---|---|---|
fr | 85 | 8 (9%) | 1 (12%) |
ko | 95 | 0 (0%) | 0 (NaN%) |
Team
The documentation work will be handled primarily by:
- Sheppy
- Sample code and guide/tutorial content.
- Romain Gauthier (tOkeshu on IRC)
-
has volunteered to help with samples and tutorials. He's got a few already on github, including: Signaling server. HiBuddy (bidirectional video chat)
Goals
- Encourage the use of a critical new Web technology.
- Enable Firefox OS developers to easily learn how to write audio/video apps.
- Enable Firefox OS developers to perform peer-to-peer data transactions.
- Enable Firefox OS developers to write code that sends DTMF (touch-tone phone dialing) signals.
User stories
A user story is a description of a specific user's needs that should be met by the documentation once it's finished.
- I want to write a video capture application.
- I want to write a video/audio chat application.
- I want to do easy peer-to-peer data transactions.
- My app needs to send DTMF tones. Note: This is very low priority; Gecko doesn't support it yet and implementing it isn't a priority, and while Chrome supports it, generally devs aren't interested in using it.
Documents needed
Landing pages
- The main landing page for the WebRTC API will be located here: https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API.
User guides
The following user guide content will be needed.
- High level guides
- Introduction to WebRTC (what it is and what it can do)
- Overview of the APIs
- Architecture overview
- Protocols (ICE, STUN, etc)
- Two-way call architecture
- Multi-party call architecture
- The life cycle of a WebRTC connection
- Security
- Tools and frameworks
- Support and compatibility details
- Browser compatibility details
- Supported codecs/formats
- FAQ
- Low level guides
- Working with media streams
- Introduction to the MediaStream API
- Things you can do with media streams
- Creating a stream
- Peer-to-peer connections
- Introduction
- What it is
- Things you can do once connected
- Streaming media
- Data transfer
- What's done for you by RTCPeerConnection
- Signaling servers
- What signaling is
- How it works
- STUN
- TURN
- Which to use when and why
- Setting up a signaling server
- Available services to do it for you
- Setting up your own
- Available libraries and tools
- Example: Using <some package yet to be chosen>
- Establishing a connection
- Session description object
- Exchanging session descriptions
- Opening the connection
- Introduction
- Data channels
- Introduction
- What it is
- Architecture
- Use of RTCPeerConnection
- API modeled on WebSocket
- Advantages of RTCDataChannel
- Using data channels
- Creating the channel
- Sending and receiving data
- Introduction
- Using DTMF (need more info on what to do here)
- Example:
- Video conferencing
- Calling another user
- Receiving a connection
- Working with media streams
Code samples
The following things need to be demonstrated in sample code. This may be accomplished by either multiple small examples or one large example project which can be presented in pieces as needed to demonstrate specific concepts.
- Video
- One way video session
- Audio-only sessions?
- Starting a two-way video session
- Multi-user sessions
- Handling video session errors
- Adding/removing users from a session
- Screen sharing
- Data
- Initiating a data transfer session
- Unidirectional/bidirectional?
- Multicasting? (I don't know yet if this is supported)
- Chat
- A larger example of a chat client/server system using a combination of WebRTC and WebSockets
- Text chat like IRC
- Option to initiate video conference among users
- Option to transmit files among users
- A larger example of a chat client/server system using a combination of WebRTC and WebSockets
- Contact API
- Using contacts to start a WebRTC session
References
The links below contain useful information that may help when producing WebRTC documentation.
- http://dev.w3.org/2011/webrtc/editor/webrtc.html
- http://dev.w3.org/2011/webrtc/editor/getusermedia.html
- http://www.webrtc.org/
- https://hacks.mozilla.org/2013/10/an-ar-game-technical-overview/
- https://hacks.mozilla.org/2013/11/introducing-the-whiteboard-drum-webrtc-and-web-audio-api-magic/
- https://hacks.mozilla.org/2014/04/inside-the-party-bus-building-a-web-app-with-multiple-live-video-streams-interactive-graphics/
- http://www.html5rocks.com/en/tutorials/webrtc/basics/
- dev-doc-needed bugs
- https://github.com/GoogleChrome/webrtc
- http://webrtcbook.com/
-
In addition, see the dev-media mailing list for discussion about WebRTC.
Notes
Tagging standard
- Grouping tag is: "WebRTC"
Other tasks to do
- TBD
Tutorial to-do list
- TBD
Notes for translators
Any notes here? Where do we expect updates, so that localizers don't translate and update too often?
Specifications
The interfaces defined in the following specifications are tracked by this status page:
Specification | Status | Comment |
---|---|---|
WebRTC 1.0: Real-time Communication Between Browser | Working Draft | |
Media Capture and Streams | Editor's Draft | |
MediaStream Recording | Working Draft |