Microsoft Edge ORTC API Support Provides Advanced Communication Capabilities for Apps

Microsoft has announced the availability of the ORTC API preview for Microsoft Edge as part of the latest Windows Insider Preview release. Developers can now build advanced real-time audio and video communication applications on top of the Microsoft Edge browser using the ORTC API. According to the announcement post, Skype will be using the ORTC API to enable real-time communications such as group video calls, simulcast, scalable video coding (SVC), and much more.

At the time of publication, Microsoft Edge is the first and only browser to support the ORTC API. Chrome, Firefox, Opera, and Android currently support WebRTC 1.0 and RTCPeerConnection, a component of WebRTC that is responsible for establishing the stable channel over which real-time communications (ie: audio or video) are streamed. It should be noted that some implementations of WebRTC do not include RTCPeerConnection. It appears that the Apple Safari browser supports neither ORTC nor WebRTC 1.0. Although ORTC API support is currently only available as part of the Windows Insider Preview release, developers should start considering how Microsoft Edge ORTC API support could impact the future development of their applications.


With the upcoming availability of ORTC API support, starting with Microsoft Edge, developers of communication applications will need to decide whether or not to adopt the ORTC API, continue using the WebRTC 1.0 API, or build a code base that supports both. ORTC is often referred to as WebRTC 1.1, however, ORTC is not an official W3C specification at this time. The WebRTC 1.0 API is actually a set of interrelated APIs that includes the RTCPeerConnection API. While ORTC and WebRTC 1.0 share many of the same features and functionality (ORTC is backwards compatible with WebRTC 1.0), there are a few differences between the two, most of which involve the API layer. For example, the ORTC API is a lower-level object API and the WebRTC 1.0 API is a high-level API/SDP O/A interface. The ORTC API is written in JavaScript which helps to make scalable video coding, simulcast, and other advanced video technologies more accessible for developers. The differences between the ORTC API and the WebRTC 1.0 API are covered in greater detail in this ProgrammableWeb article.

Communication service providers such as Sinch, Skype, and Twilio, are planning on supporting both WebRTC 1.0 and ORTC. However, implementing ORTC API support does depend on when Microsoft moves Edge with ORTC API support out of the Windows Insider Preview. It is expected that Microsoft will officially release Edge with ORTC API support around the end of this year.

Sinch, Skype, Twilio, and other communication service providers are planning on releasing SDKs that will allow developers to build communication applications that support both ORTC and WebRTC 1.0. Skype SDKs for example, will allow for plug-in-less audio and video experiences for Microsoft Edge users and will offer similar plug-in-less experiences (via existing WebRTC APIs) when possible for most cases. For browsers that support neither ORTC nor WebRTC, Skype SDKs will allow for integrated experiences via a small browser plug-in.

SDKs will help make it easier for developers to utilize advanced communication technologies made possible via the ORTC API. However, there are some concerns that adding ORTC support to existing SDKs will introduce too much additional overhead to applications. Many of these communication service providers are aware of these concerns, and are working on adding ORTC support to their SDKs without greatly increasing Resource consumption.

Developers looking to add simple RTC communications to their applications may find that using a third-party SDK is their best option, despite the additional overhead it may introduce. Building applications with communication capabilities that work across all browsers may prove to be very difficult without the help of a pre-built code base provided by a third-party SDK. Many of the SDKs provided by communication service providers include code for browser detection, ORTC API and WebRTC 1.0 API implementation, and specific communication capabilities.

For developers looking to leverage the advanced video communication capabilities of the ORTC API, third-party communication service SDKs will make it possible for developers to build advanced video communication applications without having to spend a great deal of time learning about ORTC and WebRTC 1.0 APIs or the complicated communication technology powering the application.

Developers who would rather write their own code base instead of using a third-party SDK, will have the option of using JavaScript shim libraries. ORTC is taking the approach of JavaScript shim libraries which will allow developers to build applications that use the ORTC API while also supporting browsers using the WebRTC 1.0 and the RTCPeerConnection API. It should be noted that developers may have to build two code bases to support both ORTC and WebRTC 1.0, depending on the use case.

While Microsoft Edge may be the first browser to support the ORTC API, this is not the first time that Microsoft was the first to implement a new technology into its commercial web browser. Internet Explorer 3 was the first browser to support CSS back in the late 1990s. Today, the leading web browsers support most of the CSS3 specification. Just as with CSS, it is highly likely that FireFox, Chrome, and other leading browsers will eventually support the ORTC API as well. Google has already announced that components of ORTC will be added to Chrome sometime in 2016.

As mentioned earlier, ORTC is backwards compatible with WebRTC 1.0 which means that it is not necessary for developers to rewrite their existing WebRTC 1.0 applications; the code will continue to work as expected. Whether a developer chooses to use the ORTC API and/or the WebRTC 1.0 API really depends on the application use case. Some developers may simply opt to wait for Chrome, FireFox, and other major browsers to implement ORTC API support.

For more information about Microsoft Edge, visit the official Microsoft website. Visit the official websites to learn more about ORTC and WebRTC 1.0.

Be sure to read the next Telephony article: How to Build Your Flow Control With the Bandwidth API