Pages Menu
TwitterRssFacebook

Posted by on Sep 20, 2015 in Development, Skype for Business® (Lync®)

Microsoft confirms Plugin-less support for ORTC, WebRTC in Skype Web SDK

Microsoft confirms Plugin-less support for ORTC, WebRTC in Skype Web SDK

In a blog post by the Skype for Business Team Microsoft provided more details how the Skype Web SDK would evolve to support a plugin-less model for audio & video experiences.

Today, the Skype Web SDK only supports AV with the aid of a browser plugin. This effectively limits it to the desktop versions of the main browsers. In previous announcements we learnt that support would be coming with the arrival of support for ORTC in Microsoft Edge. This blog post goes into much more detail about exactly what that means.

ORTC support is now there with the latest Windows Insider Preview release – Build 10547 –  in the Edge browser. Now that the ORTC API is built into Edge the product team can begin evolving Skype & Skype for Business to work with it. The specific changes include:

  • Updating the Skype media stack on all platforms (Windows, Mac OS, iOS, Android) with Standard transport protocols support, including STUN, TURN, ICE & DTLS-SRTP. The Skype media stack is used by all Skype and Skype for Business clients, cloud services and servers.
  • ORTC added support for the Opus codec in addition to SILK, G.711 and G.722. Native support for Opus will be added to the Skype media stack for all platforms.
  • For video, Skype and ORTC in the Edge browser currently support 264UC. Support will be added for H.264. This will enable video interop between Skype and the Firefox browser, which currently supports H.264, and the Chrome browser when H.264 support is added to its WebRTC implementation.

Whether or not Chrome will ever get H.264 support is still very much an open question. There’s been a lot more written about this elsewhere, but Google prefer their own VP8 codec to H.264 and are holding back on adding support for H.264. It’s looking like the codec world will move on to new codecs before this argument is ever settled, with Google already looking at VP9 and VP10 and something happening with H.265.

This diagram shows how the signalling and media paths will run for Skype and Skype for Web users participating in a Skype group call. I would expect the media flows to be similar for Skype Web SDK calls when they’re made available:

Enabling-seamless-communication-experiences

All this support will be built not only into the standard Skype for Web experience but also for the Skype Web SDK. Regarding timelines, we’ve been told to “Look for more details on these developer updates later in the year.”

It’s looking like these scenarios will work first in Microsoft Edge and then get rolled to use the WebRTC APIs that will allow them to work in Chrome and Firefox. This is because Microsoft are building against the ORTC API. This is natively supported in Edge (from now, so it’ll hopefully just work) … but it’s also set to become part of the WebRTC 1.1 specification, so it’ll end up working anywhere that WebRTC is supported. With Edge representing less than 5% of the browser market this widespread support can’t come soon enough. Notable by its absence in this list is Microsoft’s Internet Explorer (still about a quarter of internet traffic).

In Detail

Now that the ORTC API has been added to Edge, any developer can now code against it. Of course, once it’s added into the Skype Web SDK you won’t need to worry about exactly it all works under the hood: thanks to the magic of abstractions. But’s it’s interesting to poke around anyhow!

ortc-api-diagram

The diagram above is the full support model from the ORTC API specification. It’s a good summary of all the different parts of the puzzle and how they work together.

The initial ORTC support in Edge will be limited to [source]:

  1. ORTC API Support. The primary focus right now is audio/video communications. We have implemented the following objects: IceGatherer, IceTransport, DtlsTransport, RtpSender, RtpReceiver, as well as the RTCStatsinterfaces that are not shown directly in the diagram.
  2. RTP/RTCP multiplexing is supported and is required for use with DtlsTransport. A/V multiplexing is also supported.
  3. STUN/TURN/ICE support. We support STUN (RFC 5389), TURN (RFC 5766) as well as ICE (RFC 5245). Within ICE, regular nomination is supported, with aggressive nomination partially supported (as a receiver). DTLS-SRTP (RFC 5764) is supported, based on DTLS 1.0 (RFC 4347).
  4. Codec support. For audio codecs, we support G.711, G.722, Opus and SILK. We also support Comfort Noise (CN) and DTMF according to the RTCWEB audio requirements. For video we currently support the H.264UC codec used by Skype services, supporting advanced features such as simulcast, scalable video coding and forward error correction. We’re working toward to enabling interoperable video with H.264.

If you want to try out using the ORTC API in a 1:1 AV example, there are code samples and a walk-through on the Edge blog.

 

It’s great to know that making the end-user experience for Skype Web SDK easier and more pleasant is on the to-do list for the Skype Product Team, and that it’s being addressed. ORTC support in Edge was cited as a blocker to making a truly plugin-less model, so hopefully now that’s been achieved we will soon see updates to the SDK to enable this to happen.

Unsure about what the Skype Web SDK is and how it can help you create amazing web experiences that leverage Skype for Business? Check out my free eBook – Learn Skype Web SDK in 30 days, or the companion website with tutorials and code samples. Enjoy!

Written by Tom Morgan

Tom is a Microsoft Teams Platform developer and Microsoft MVP who has been blogging for over a decade. Find out more.
Buy the book: Building and Developing Apps & Bots for Microsoft Teams. Now available to purchase online with free updates.

0 Comments

Trackbacks/Pingbacks

  1. Google Chrome will support H.264 WebRTC, good news for Skype Web SDK | thoughtstuff | Tom Morgan - […] little while ago, I blogged that Microsoft confirmed it will support for WebRTC/ORTC in the Skype Web SDK. At…
  2. Skype Web SDK: Plugin-less Audio Video in the browser | The thoughtstuff Blog - […] way available. Microsoft were aware of the problem and have been working on it ever since. In November 2015 it…
  3. Skype Web SDK – WebRTC Update | The thoughtstuff Blog - […] audio and video calls with the Skype Web SDK, but other browsers require a plug-in. This is because Edge…

Post a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.