MS Open Tech publishes first implementation of W3C ORTC to simplify Web-Based Real-Time Communications

As part of MS Open Tech’s ongoing collaboration with the industry to deliver simple, reliable, web-based real-time communications to the browser, we are releasing a prototype implementation of the ORTC spec, published by the W3C ORTC Community Group.

The spec was a collaborative effort, with contributions from Robin Raymond (Hookflash), Inaki Baz Castillo (Versatica), Christoph Dorn, Roman Shpount (TurboBridge), Erik Lagerway (Hookflash). The Community Group now has 21 members, from a variety of large and small companies in the realtime communications sector, including Microsoft.

The underlying approach is consistent with two basic principles that were articulated in the CU-RTC-Web proposal: that JavaScript APIs for realtime communications should not be based on passing under-specified SDP blobs, and they should not require implementation of the SDP Offer/Answer state machine. The current WebRTC 1.0 API (latest draft) does not align with these principles, and there is increasing skepticism in the realtime web communication community that its approach is viable for either desktop browsers or mobile devices.

Today’s MS Open Tech prototype is based on the easily implementable API that is defined in the ORTC spec and will help inform discussions in the ORTC Community Group about how to enable plugin-free voice and video communications within the browser.

The ORTC Community

Skepticism about the WebRTC 1.0 dependence on SDP Offer/Answer got a clear voice in Robin Raymond’s blog in March of this year “SDP the WebRTC Boat Anchor.” This led to much discussion in the IETF and W3C working groups, culminating in a poll of JavaScript developers about their experience with the WebRTC API. The results indicated widespread frustration with the complexities of SDP and interest in a new API. This motivated a group of developers to draft a rationale for an alternative API that uses JavaScript objects rather than SDP blobs to convey information between web developers and the underlying RTC protocols. A community of interested developers then coalesced around a GitHub repository to experiment with code and a W3C Community Group to incubate an ORTC specification was created.

Microsoft joined the community group and fully supports the ORTC approach, which is very consistent with the CU-RTC-Web approach: it is customizable with JavaScript code rather than blobs of SDP, it is designed to be capable of becoming ubiquitous across all sorts of devices and software stacks (not just in the browser), and it is consistent with web principles.

On October 11, the Community Group published a report, essentially a first public working draft, of the results of this collaborative effort: the W3C ORTC API. There is still plenty to discuss in the Community Group before a stable API ready for prime time emerges, but this initial prototype shows promise as a starting point for a realtime communications API for the Web.

ORTC Prototype from MS Open Tech

Microsoft Open Technologies has re-worked our previous prototype and demo code to use ORTC. The prototype demonstrates how to support H.264/AVC video without SDP, by building the appropriate JavaScript code and without introducing any changes in the relevant parts of the ORTC specification. To be very clear, this is a first stab at an implementation, and better/faster/more stable versions are upcoming. The main objective is to determine that the W3C ORTC spec is easily implementable on top of existing stacks and usable by real Web developers.

You can get involved by downloading the prototype here, or join the discussion in the W3C ORTC Community Group and contribute code to implementations in the ORTC GitHub repository. We’re interested in your feedback on how to best achieve the industry’s shared goals for web-based realtime communications in the browser.

Microsoft joined the ORTC community and fully supports the ORTC approach, which is very consistent with our original CU-RTC-Web proposal.

In conclusion, the realtime communications over the Web community is moving toward the shared goal of simple, reliable, plugin-free real-time communications in the browser, and this prototype is an important step in the journey. It’s a first step, and we’ll continue to work with the community to improve its functionality, performance and stability.

Adalberto Foresti
Principal Program Manager, Microsoft Open Technologies, Inc.

8 thoughts on “MS Open Tech publishes first implementation of W3C ORTC to simplify Web-Based Real-Time Communications

  1. Pingback: ORTC Live Demo at IIT RTC Expo |

  2. Pingback: Prototype Implementation and Demo of ORTC API | ORCA - Object-RTC API Community Group

  3. Pingback: ORTC Walk Through – IETF 88 |

  4. Pingback: ORCA Walk Through | IETF 88 | ORCA - Object-RTC API Community Group

  5. Typical Microsoft. Can’t ever play well with others. WebRTC has a spec already, in case you were not paying attention. You have yet to release any WebRTC implementation in your production browsers. Instead of interoperating today, using a solution that works beautifully, you muddy the waters with another conflicting spec. You have been muddying the waters for the past year, and not doing anybody a bit of good. Time to grow up?

  6. Thanks for reaching out. Our work with the ORTC community is based on feedback from web developers (including non-Microsoft members of the ORTC community group) who find the current WebRTC specs difficult to work with. Although there are interoperable WebRTC implementations today, the WebRTC 1.0 API spec doesn’t describe how to actually make them work, so the goal of the ORTC community group members is to develop an approach that enables interoperability in a well-defined manner that is documented in the spec. Note that Microsoft also participates in the WebRTC standardization work in IETF and W3C, as well as the ORTC community group.

  7. Pingback: MS Open Tech ofrece el prototipo de la API ORTC actualizada, lo que refleja los recientes avances en el Grupo ORTC de W3C | Espacio Microsoft

  8. Pingback: WebRTC mandatory video codec discussion: the final duel? | webrtcHacks

  9. Pingback: webrtc ORTC | לראות שונה