There was a scripting error on this page. While it is being addressed by site editors, you can view partial content below.

{{IncludeSubnav("/en-US/docs/MDN")}}

This page tracks ongoing documentation work in the MDN WebRTC section.

Feel free to contribute! We love help!

Summary

{{DocStatus('Web/API','["WebRTC"]', 'October 1, 2013', '[ { "keywords": ["dev-doc-needed"], "product": ["Core"], "component":["WebRTC"],"resolution":["FIXED", "INVALID", "WONTFIX", "DUPLICATE", "WORKSFORME", "INCOMPLETE", "SUPPORT", "MOVED", "EXPIRED"], "bug_status":["RESOLVED", "VERIFIED", "CLOSED"], "include_fields":["id", "target_milestone", "summary"], "order": "target_milestone desc" } ]', '[ { "product": ["Developer Documentation"], "component":["API: WebRTC"],"resolution":["---"], "include_fields":["id", "summary"] } ]' )}}

Team

The documentation work will be handled primarily by:

{{UserLink("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

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
    • 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
    • Using DTMF (need more info on what to do here)
    • Example:
    • Video conferencing
      • Calling another user
      • Receiving a connection

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
  • Contact API
    • Using contacts to start a WebRTC session

References

The links below contain useful information that may help when producing WebRTC documentation.

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
{{SpecName('WebRTC 1.0', "", "")}} {{Spec2('WebRTC 1.0')}}  
{{SpecName('Media Capture', "", "")}} {{Spec2('Media Capture')}}  
{{SpecName("MediaStream Recording")}} {{Spec2("MediaStream Recording")}}  

{{TopicBox("API/WebRTC")}}

Document Tags and Contributors

Contributors to this page: Sheppy, fscholz, teoli
Last updated by: Sheppy,