ORTC APIs are now officially in Edge
Back in October last year Microsoft officially announced their planned support for WebRTC or more accurately, the ORTC notion of WebRTC. Since then there have been several announcements and blog posts about the progress being made in this work.
Questions were around what exactly will be supported, mainly in the codec space.
Last Friday the official word came out. ORTC API is now available in Microsoft Edge with current focus on audio and video communication. The support is currently in the Windows Insider Preview release.
Microsoft now claims to be enabling seamless communication experiences for the web with Skype, Skype for Business and Microsoft Edge, but is it really seamless?
Let’s take a closer look at what exactly is being provided and more importantly, where are the pitfalls.
It was clear that Microsoft will skip WebRTC 1.0 and jump right away to WebRTC 1.1. Problem is that even WebRTC 1.0 is not really closed so ORTC will not come into the WebRTC standard anytime soon. On the other hand, the support for ORTC in Edge may be a catalyzer for this. From implementation perspective, it means applications will need to know which browser they are running on and use APIs accordingly. To some extent, this is already the case between Chrome and Firefox but differences are rather neglectable compared with the case of ORTC on Edge and there are other compatibility issues related to API changes and standard advancement.
Microsoft Lync was well known for its unique implementation of ICE, STUN and TURN causing a headache for vendors wanting to interoperate with it. Microsoft now claims it has joined the common standard implementation of these protocols as well as DTLS-SRTP required by WebRTC
Current implementation includes G.711, G.722, SILK and Opus. Apparently there are still some gaps in the support for Opus on all platforms Skype runs on but Microsoft is working on closing those gaps.
The video side is a harder challenge as currently the ORTC implementation in Edge supports only H.264UC. In this regards Microsoft says that they are working on adding H.264 in order to enable interoperability with Firefox (that supports today both VP8 and H.264) but interop issue with Chrome will remain until H.264 is added to Chrome.
This means that currently video calls across browsers will require transcoding.
Microsoft presents the below architecture for multi-party video across browsers but given the limitations detailed above this is a bit futuristic.
This problem will probably be solved down the road due to a few activities:
- Microsoft is adding VP9 to edge
- Since both VP8 and H.264 are mandatory in browsers the hope is that Google will add H.264 one time or another
- Both Microsoft and Google (as well as several other large players) are part of the Alliance for Open Media which targets to define an open source, royalty free video codec for the Web. A great initiative but it will not happen over night
No word about it hence, not supported and will probably come in later down the road.
Important but there is still a big gap
While expected, the support for WebRTC (ORTC) in Microsoft Edge is an important step for the maturity and acceptance of WebRTC in the industry. As detailed above, there are still some gaps but these gaps shouldn’t worry us, we can safely assume they will be solved in 2016.
The big gap that will not be solved in the coming years is the support for WebRTC in older Microsoft browsers. To tech savvy people it may sound as if in a rather short period of time all Microsoft Windows users will upgrade the OS and browser but in reality there are many enterprises and households that are using very old versions of Internet Explorer and Windows (I can personally plead guilty for only lately I upgraded one of our home computers from Win XP J). Time for complete upgrade is a good number of years. Until then a ubiquitous service will need to take into consideration there is no 100% support for WebRTC in Windows environment, offer a plug-in or notify users accordingly to upgrade or use a different browser.