May 17, 2018
Qualcomm products mentioned within this post are offered by Qualcomm Technologies, Inc. and/or its subsidiaries.
WebRTC is an open standard originally developed to allow browser-based, peer-to-peer audio and video chats over the Internet in real-time, without the need for browser plugins. One well-known example is Google hangouts, which uses WebRTC to provide real-time online communication sessions.
However, there is more to WebRTC than just audio and video. Thanks to its data channel, WebRTC allows peers to send and receive virtually any kind of binary data. And since WebRTC can be implemented in both web and native code, a whole range of possibilities open up beyond traditional browser apps, particularly for real-time communications with IoT and edge devices. That’s why we at Qualcomm Technologies, Inc. have been keeping a close eye on WebRTC. In this blog we’ll share some exciting examples that we think developers could make possible through the innovative combination of WebRTC and IoT devices.
Enterprise telephony, which facilitates real-time communications sessions, no longer needs to be limited to traditional devices such as on-premise VOIP phones. This is an area where WebRTC can provide such sessions on a wide range of IoT devices, allowing for the exchange of audio, video, and even data such as files.
Imagine being able to use your Android TV box to communicate with a group of friends and to share data such as pictures while watching a television show. If you added a camera and microphone to such a box, you could watch TV while having a picture-in-picture display of friends that you’re communicating with in real-time.
This could be accomplished through a media box running Android OS, which have all of the communication stacks necessary to facilitate WebRTC. If WebRTC support is added, all you would need to do is add a camera and microphone, and then develop a WebRTC application to transform the platform into a device for real-time VOIP chats and file exchange.
Security applications could also benefit from WebRTC. For example, a live video stream could be captured by a native WebRTC application running on a video camera and encoded at the edge, and then sent to a remote device over a WebRTC video channel. A remote security person could then receive the stream through a browser or native app on their smart phone, and even send commands back to control the camera (e.g., to adjust the field of view) over a WebRTC data channel.
The benefit of using the WebRTC model of peer-to-peer communication over the Internet is that it allows the peers (i.e., the camera and the device receiving the feed) to be located almost anywhere in the world without the need to for an intermediate server, which can simplify implementation.
And since we’re on the topic of security, let’s not forget that it applies to data as well. For example, since a WebRTC solution can send any type of data over the data channel, encrypting video is simply a matter of having the peers agree on an encryption scheme and sending that encrypted data over the channel.
There is potential to use WebRTC to evolve traditional, read-only signage, into something more intelligent and interactive. Consider how a smart display might be utilized as an interactive sign for directional guidance or information, or to stream ads by channelling data to and from the sign through WebRTC.
Passersby in need of guidance might interact with the digital sign to request directions or to even speak with someone who can provide assistance. In this use case, the WebRTC data channel could be used to exchange map information, while the audio channel and the video channels (if the sign is equipped with a microphone and camera) could be used to facilitate a real-time chat with someone at a remote information center. For advertising, the sign could request ads over WebRTC that correspond to the types of places that people are looking for guidance to (e.g., shops or restaurants).
Since Android and Linux are used on our platforms, it makes sense for us to develop an SDK add-on package or library that can run on both. At the operating system level, Android has the necessary communication stacks in place and runs on platforms like the Snapdragon APQ8098 platform. Linux, while used a lot for IoT applications, would need additional enhancements since Linux distributions are not the same across chipsets. But before we make these enhancements we’d love to know your thoughts on WebRTC in IoT.
We think the prospects for WebRTC are certainly interesting, and we encourage our developer community to begin experimenting on how you can best utilize this exciting development tool. How would you use WebRTC to facilitate real-time communication with your IoT or edge devices? What are some innovative ways you could use the data channel? Given the examples above, what sort of exciting uses cases can you dream up?
WebRTC will no doubt be a great enhancement and could open up a new world of possibilities data exchange for IoT and edge devices. It’s definitely a space that we’re excited to keep watching and would love to know what you think.