Skype Web SDK – WebRTC Update
At Microsoft Ignite 2016, as part of a talk (watch it at the bottom of this page) given by Andrew Bybee, Principal GPM on the Skype Developer Platform we received an update to what’s happening with WebRTC in the Skype Web SDK.
The state of play today is that you can use the Edge browser without requiring a plug-in and conduct audio and video calls with the Skype Web SDK, but other browsers require a plug-in. This is because Edge natively supports oRTC (and has done since around September last year). At that time Microsoft announced that they would also be supporting WebRTC but didn’t give any more details.
Well, we do now have some more details. WebRTC support is still being worked on, but it’s not quite ready yet.
As described before, the implementation route that Microsoft are chosing is to abstract the detail of media sharing from the end-developer but using a Common Media Provider. This common provider will allow developers to write code without having to choose or know ahead of time which browsers are in use, or even which codecs or technologies are supported. This is the model in use today to provide either plugin-less ORTC support in Edge, or plugin support with other browsers. This same abstracting will be used for WebRTC support.
This is a Good Thing, because WebRTC can be hard to implement, is likely to change over time, and every browser supports it differently. Having a common abstraction means that developers won’t be have to rewrite their applications each time a WebRTC implementation changes. However, it’s worth noting that the actual run-time implementation of how your code works in each browser will be different, so you should still test in each browser you plan to support.
Andrew also said some interesting things about where else we might see WebRTC in the rest of the Skype for Business ecosystem over time. Hinting at some of the reasons for the delay he said:
“The ability for us to support this (WebRTC) in the core meeting experience is definitely on the roadmap and something that you will see over time”
That’s an interesting statement. It could just mean that WebRTC support will come to the Skype Web Access experience, which makes sense. However, it could also mean that WebRTC will become the standard media provider for some Skype for Business first-party applications, especially (presumably) those built on top of UCWA. (I’m looking at the new Mac client)
Another interesting comment, whilst talking about Microsoft’s commitment to the WebRTC working group was around how WebRTC support won’t be just a “bolt-on” but:
“we see this as something that is going to be supported in our core MCUs, the MCUs that are handling the media processing will get core native WebRTC support, so you’ll be able to talk to those MCUs directly”
That’s a fairly big change, but an exciting one. It potentially allows a lot more control over the media flows for back-end applications, and may enable scenarios like call-recording and complex media routing which aren’t available today using the newer, online-focused SDKs.
To prove that WebRTC support isn’t just an idea, Andrew and Srividhya Chandrasekaran (Program Manager) showed a sneak-peak of upcoming changes to Outlook Web Access. OWA today has support for Skype for Business integration for IM and presence, but these changes bring audio and video support natively to the browser without plugins. This screenshot is from Chrome:
Regarding timelines, we still don’t have firm dates. However, we know that when it comes it will be coming to Skype for Business Online first, and that it’s something that Microsoft will be “talking more about later this year”.
It’s good to see that WebRTC support is coming, and that it is being worked on. It’s also encouraging that Microsoft are taking the time to build out support correctly. The hints that support will come to Skype for Business Online first makes me think that WebRTC support is dependant on changes to the back-end MCUs, so updates to Online will happen first before they come to on-premise. This makes sense – by converting the MCUs to support WebRTC it makes it much easier to add support in to clients without trying to perform complicated codec translation on the client. The quality of calls and the level of controls developers will have over the media should remain high with this approach as well, which is great news.
You can watch the full talk yourself here: