The June/July Liberty beta includes a new real-time communications feature that makes it simple to embed WebRTC support into web applications. WebRTC is an emerging HTML5 standard that defines a set of JavaScript APIs that enable developers to add support for peer-to-peer audio, video and real-time data communications into web applications using only JavaScript. Best of all, this can be done with NO browser plug-ins! To learn more about WebRTC go to www.webrtc.org.

Get it now! Give feedback on dWAnswers

What’s in the new Liberty real-time communications feature?

Browser-based WebRTC engines embed technologies like audio and video codecs, echo cancellation, capturing of media from native devices, and ICE for firewall traversal of media streams. They do not, however, include support for the call signaling needed to set up the exchange of media streams between nodes that want to communicate.

The new rtcomm-1.0 feature provides a call signaling “connector” that is simple to set up in the Liberty profile. The Rtcomm connector supports client node registration and provides a simple way for WebRTC nodes to find and connect to each other, enabling real-time communication sessions between browsers.

The new feature also includes a client-side JavaScript library that encapsulates both call signaling and all the necessary WebRTC interactions. The library exposes a simple API for rapid integration of WebRTC into web applications, relying on a backend Liberty server to facilitate browser-to-browser communications. Included with the library is a simple HTML file that shows how to enable the library with a minimal amount of JavaScript code. See the Knowledge Center for details on how to start using the new rtcomm-1.0 JavaScript library.

Why is Liberty adding support for WebRTC?

WebRTC is one of the most disruptive technologies to hit the real-time communications industry in the last decade. The ability to use JavaScript APIs to manipulate high quality audio, video, and data streams from inside a browser, with no plugins, enables new use cases in virtually every conceivable vertical industry. Retail, healthcare, and eLearning are just a few industries already using WebRTC to reduce both the time it takes to resolve customer problems and support costs.

Analysts predict 3 billion WebRTC-capable devices and 1 billion individual users of WebRTC by the of end 2016, with each user having two to three WebRTC-enabled devices. Wherever there is some kind of web data context that can benefit from a real-time interaction, you will soon notice icons for enabling the individuals associated with that data to connect in real time. This might be buyers and sellers of an auction, team members in a social context, or customers and agents who need to communicate about a specific web page. Whatever the situation, they will rely on WebRTC to avoid losing the context of the web page instead of switching to a phone.

WebSphere has a long history of supporting the Session Initiation Protocol (SIP). SIP is the call signalling protocol that voice over LTE and IMS are built on. With an HTML5 related technology like WebRTC starting to show up in stable versions of browsers like Firefox and Chrome, it makes sense for Liberty to support it too.

That said, it also gives us a chance to reconsider how communications can be composed outside of the traditional telco-oriented SIP space. For instance, WebRTC has the potential to completely change the way people participate in a real-time exchange. With WebRTC, people will rely on context instead of telephone numbers to make connections and context will be used to drive the entire interaction in real time. Liberty is an ideal platform for hosting this context, which can be used for all kinds of rich real-time interactions.

Why did Liberty base this feature on an Internet of Things (IoT) protocol instead of SIP?

This one is easy. Simple, lean, scalable, and fast. The protocol we decided to use for our call signaling infrastructure is a pub/sub-based messaging protocol designed for IoT called the MQ Telemetry Transport (MQTT). MQTT is one of the simplest, most lightweight messaging protocols on the planet. And because it’s so simple, it’s incredibly flexible in how it can be used and deployed.

To begin with, MQTT is an open standard (go here for details MQTT.org). There are many flavors of MQTT message brokers available in the market today, from free servers like Mosquitto to massively scalable products like IBM MessageSight that can handle millions of connections and millions of transactions per second.

There are also freely available MQTT client libraries for every conceivable programming language including Javascript, Java, C, C#, and many others. MQTT is running today inside everything from tiny low-powered devices to desktop web browsers (using Web Sockets). Compared to REST-based polling solutions, MQTT uses 1/10 the battery power on mobile devices and it supports applications ranging from Facebook Messenger to smart cars. It is a perfect technology to build a low-latency, web-based, real-time communications solution on.

Looking beyond the protocol, using the Liberty real-time communications feature with the Internet of Things opens up the well-thought-out WebRTC use cases such as video chat and social collaboration. But, beyond that, it makes it possible to integrate in completely new and interesting ways with potentially billions of devices (e.g. sensors, mobile devices, surveillance cameras, cars, etc.).

Through technologies like NodeRED (a visual tool for wiring together devices, APIs and online services), we see WebRTC enabling the integration of real-time communications with the world of both “things” and services (e.g. Twitter, Analytics, etc.). This is a platform for innovations that extend way beyond traditional, subscription-based telephone calls.

Does Liberty support WebRTC federation with SIP-based networks?

At Impact this year, we announced our intention to deliver SIP support in Liberty at some point in the future. We also stated our intention to provide a WebRTC solution that can be federated with a SIP-based network. As typical disclaimers go, this is not a commitment and plans are subject to change but we are certainly driving towards these goals.

Give me more!

Real-time communications has traditionally been a very complicated technology to break into. We’ve experienced this first hand for many years while working on the WebSphere SIP Servlet container. With WebRTC, we feel this time around it’s going to be different.

Our number one goal is to make it simple to build applications that use real-time communications. This first beta feature is very simple. We know that. In fact, one of our initial goals was to start simple to encourage early adopters to start playing with this feature. The cost to try this is minimal and with a little bit of JavaScript experience you should be able to go from nothing to a WebRTC demo in less than an hour.

With that said, we’re definitely not sitting still! We plan to continue adding to the set of capabilities included in this feature in subsequent betas, but still continue to focus on simplicity. In future betas, you’ll see this feature grow into a set of building blocks that can be used to create extremely rich real-time applications. We’re very interested to hear your feedback as we continue on this journey. Please have a look and more importantly, please come back for more!

Get it now! Give feedback on dWAnswers