Microsoft Takes Baby Steps with WebRTC-UWP Launch

Posted On March 22, 2017 by Sherwin Sim in Blog, Ecosystem, Media

About a month ago, Microsoft released its WebRTC Universal Windows Platform (UWP). WebRTC-UWP is a new library that includes WebRTC 1.0 and ORTC compatibility. The MSFT WebRTC-UWP launch is of interest because to date Microsoft has only added support for in-app real-time video and audio in its new Edge browser. And for some time before that, it planned not to support WebRTC 1.0 at all, instead proposing a completely new standard they called Object RTC (ORTC). Eventually, the backers of ORTC also made the promise that ORTC would be backward compatible with WebRTC 1.0.

Back to Basics: The Core WebRTC Library

Let’s forget about Microsoft for a second or two and get back to some basics. For WebRTC to exist, Google officially releases and maintains the core WebRTC library which can be compiled on Win32, OSX, Linux, iOS, and Android. All the browsers that support WebRTC (Chrome, Firefox, Opera) end up using their compiled versions of the WebRTC library to build support for WebRTC into their software. For example, Mozilla adds the library to Firefox, adds their Javascript API layer, and Firefox officially has WebRTC support.

At Temasys, our WebRTC SDK for the Web adds an extra SDK layer on top of the browsers’ WebRTC implementation because developing WebRTC applications isn’t just as easy as the using APIs provided by the browser vendors.

The Temasys SDKs also link to our Platform as a Service (PaaS) for Real-Time Communications. Developers working with our SDKs rely on our platform to handle the peer-to-peer and server-side connectivity because the core WebRTC library does not provide this capability. Our PaaS is “the plumbing” (as our CEO likes to say) between the endpoints connecting to each other via applications using the Temasys Platform.

Wait. Why do we need more plumbing?

WebRTC is internally complex. This is so, even though the core WebRTC library from Google focuses on only three things:

  1. It allows a web browser to access the camera and microphone to capture media;
  2. It helps set up and negotiate audio/video calls. (No, it doesn’t set up the connection. That’s a topic for another post!);
  3. It allows browsers to share data via peer-to-peer connections.

These three things are complicated and messy. They were crucial things to make easier to do if anyone was going to make real-time communications work in web browsers, without plugins. Everyone should thank Google profusely (!) for buying Global IP Sound (GIPS) and for helping all of us take those first steps with WebRTC!

Temasys uses Google’s WebRTC library to create our iOS, Android, and Linux SDKs. We extend and wrap our SDKs around the WebRTC library creating an attractive, easy to use programming interface that lets developers access and deploy RTC features into their apps, far more quickly and easily than when working directly with the open source WebRTC API.

As for the plumbing, Developers working with Temasys do not need to build any of the signaling or other infrastructure to support real-time communications features in their apps. We take care of all of that.

Lastly, because of the way the WebRTC standard evolved there are two sizeable gaps in the web browser support for WebRTC: Microsoft Internet Explorer and Apple Safari don’t support it (yet). Commercial break: Temasys has a very nice solution for this gap. It’s a plugin (Yes. Ironic.).

So What is this New Microsoft Universal Windows Platform?

WebRTC-UWP is another compilable library that can be included in a variety of application host platforms. The library embeds Google’s official releases of the WebRTC library into their ORTC library and adding a Microsoft layer on top. Sounds familiar, right?

Microsoft’s intent appears to be to inspire developers of Windows applications to use yet another library (theirs) to add WebRTC functionality to software applications. In particular, this includes some very Microsoft-centric operating systems and hardware platforms (like the Xbox).

This will allow one to use MSVC C++ and C# to create WebRTC applications. The functionality is more or less the same as what is provided by the open source WebRTC library from Google. It gives you a way to access a device’s camera/microphone, asks the client to send/receive audio/video/data and then helps manage the media path between the two endpoints.

What is the MSFT WebRTC-UWP not doing?

Microsoft’s WebRTC-UWP is not a Platform as a Service (PaaS). It provides only the basic layer of WebRTC, but now one can use C# and C++ to write an app with it. And, it does provide portability for Microsoft-centric applications. That essentially means that if you want to get WebRTC into things like the Xbox, or your Microsoft-centric web application, you can write it in C# and it will work in other areas. However, this new library does not include any infrastructure or platform service functionality and features.

What does that mean, practically speaking? Well, like the core WebRTC library from Google, developers working with MSFT UWP still need to set up and manage infrastructure to support real-time communications and a host of other features that a full PaaS like Temasys already takes care of.

Temasys provides a complete solution, from APIs and SDKs (libraries), back to the fully cloud-hosted infrastructure as a service for Real-Time Communications. It’s a turn-key, multi-tenanted, service. We put a lot of effort into offering an easy, quick and cost-effective way to add enterprise-ready, carrier-grade real-time communications features to any application, out of the box.

What impact does MSFT WebRTC-UWP have?

For the overall WebRTC ecosystem, MSFT WebRTC-UWP is a positive development. The fact that Microsoft is even willing to support WebRTC 1.0 in addition to ORTC is a sign that they are grudgingly accepting of the fact that WebRTC 1.0 is here to stay.

The Microsoft WebRTC-UWP is still quite new and it will take some effort to foster adoption. Microsoft Edge doesn’t even use WebRTC-UWP and has actually created its own WebRTC/ORTC library which offers even less functionality than WebRTC-UWP.

And Microsoft still doesn’t support WebRTC in Internet Explorer. They are completely focused on Edge, with its 5+% market share. With desktop browser market shares still hovering around 20% for Internet Explorer, this is still a thorn in the ecosystem’s side that Temasys is still happy to help address.

Finally, the reach of WebRTC in areas of the Microsoft ecosystem can now expand into places that were hard to reach before. There is still going to be a “wait and see” period, and we do not know how quickly WebRTC-UWP may get traction.

If it makes sense, Temasys could easily do the same thing to WebRTC-UWP that it does with the WebRTC 1.0 library, today. It’s another opportunity to make it even easier and friendly for developers to use and support it with our world-class infrastructure as a service, filling in the gaps that the library by itself doesn’t address.

Leave a Reply

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