Bringing WebRTC to all touch-points.
There are many WebRTC API platforms out there today; and each is taking its own route and focus. I am in the process of analyzing many of them.
Weemo is such a platform. One I’ve been crossing paths with for some time now. I found their story rather interesting and wanted to share it with you, so I asked Soufiane Houri, VP Product at Weemo, to answer a couple of questions.
What is Weemo all about?
We help ISVs and SaaS providers build new real-time video experiences into their apps. And we do it in a way that users can connect with a single-click regardless of the browser, device or network they access the app from.
How does Weemo work?
As long as our clients have defined the experience they want to deliver, they can literally build it in less than a day using our platform. Since the platform is running on our globally distributed backbone of signaling and media servers, there is no hardware for them to deploy.
We built the platform to abstract all the complexities software or service providers would encounter when leveraging WebRTC in their applications. We rely on P2P media transport where possible, use relay servers when necessary and our software-based multipoint video bridge for multi-party calls.
You started as a company offering VoIP clients. What made you switch your focus towards WebRTC?
Our vision is to make real-time video ubiquitous and accessible to everyone. To do that, to make it ubiquitous, it needs to work on any application and on every device. To support that vision, we felt that we were quite restrictive in only offering a UC Client for the Enterprise.
The platform we have built has taken us over three years to get right. We started our real-time client development using VP7 and have evolved to using VP8 and H.264. We are now even experimenting with VP9 and H.265. We have built expertise in tuning video and voice codecs for the web and optimizing our Real-Time infrastructure to meet the needs of our customers who deploy our technology worldwide in a number of applications and network environments.
Our shift to supporting WebRTC underpinnings was very much anticipated. Our architecture and approach has allowed us to very quickly align with the direction this proposed standard has taken. Our native solution had adopted mainstream codecs such as VP8 and Opus to avoid transcoding as well as network standards such as ICE for firewall and NAT traversal that are now part of WebRTC. This results in natural interoperability without the need to retrofit any part of our platform or development framework.
Could you describe the infrastructure that powers your service?
Our platform relies on a telecom-grade infrastructure designed to handle the demands of high volume, enterprise-class clients. We have a private backbone that connects a growing number of POPs around the world. We are at 8 today and plan to be at 20 by the end of the year. These platforms host virtualized multipoint control units (MCUs) that, as opposed to mesh network architectures, provide reliability and high video quality in a multi-party scenario. We allow sessions to scale up to 64 participants. This limit has been established to guarantee certain service level agreements.
We built this cloud infrastructure by acquiring and managing a redundant QoS enabled network from multiple Tier-1 providers. We are effectively an Internet Service Provider with a dedicated Autonomous System with a pool of public IP addresses allowing us to manage our backbone connectivity. From our partners’ international data centers, we have direct peering with multiple high-quality Internet transit providers for optimal local connectivity which enable us to meet strict SLAs with our clients.
You decided not to use AWS. Why is that?
Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. This “Elastic” nature of the service allows developers to instantly scale to meet spikes in traffic or demand. While, it is designed to make generic web-scale computing and web traffic more efficient at a low cost, it doesn’t address the unique needs of latency and jitter sensitive real-time video infrastructures that are media processing centric but also extremely network I/O centric. Building our own infrastructure was the only way to guaranty High Quality over an IP Network…
How do you handle video for non-compatible WebRTC endpoints?
We built a WebRTC client that is packaged in our mobile SDKs or can be downloaded by a user on his device as a lightweight cloud managed desktop client. This WebRTC client is automatically called upon from a web page when a user connects from a non-compatible WebRTC endpoint. It is VP8-based so someone using an iPhone app can communicate with a Chrome user without requiring a gateway for transcoding. As opposed to a Flash-based approach, the quality of the video is maintained regardless of the endpoint being used. From our perspective, this is today the best approach to deliver a consistent quality across Chrome, Internet Explorer, Firefox, Safari, Android and iOS.
What signaling have you decided to integrate on top of WebRTC?
Where do you see WebRTC going in 2-5 years?
With the MTI codec debate still around, it is difficult to give any long term prediction about how fast WebRTC will be adopted by the incumbents. However, there is no doubt that WebRTC adoption will keep growing. What is fascinating is that the demand can surge at any time. Taking the example of the Mayday button for its Kindle, Amazon has created an unprecedented awareness in the customer service industry. Now, every player in the market aspires to offer the same experience. Using our platform, Salesforce demonstrates that live video for customer service can be embedded into Service Cloud very easily.
Besides customer service, the use cases we are seeing in other industries such as healthcare, enterprise collaboration, human resources, field service or education are so compelling that there will always be early-adopters to envision market opportunities and make them a reality. The big push will come from the software and SaaS vendors and we are here to help them build this future.
If you had one piece of advice for those thinking of adopting WebRTC, what would it be?
Our main advice would be to first define the experience you want to deliver. Once you are clear what your use case is, draw a rough canvas of what is required to implement it. Beyond one-to-one video, do you need group video chat, screen and file sharing? What is the mix of browsers that needs to be supported? Will there be users on mobile devices? What devices must be supported? What network types will be encountered, broadband, LAN, Wi-Fi, 3/4G? Are all your users behind the corporate firewall, are they located in different geographic locations? Make sure you answer these questions early in the process.
In a second time, do your homework about WebRTC and weigh whether you want to deploy the necessary Real-Time signaling infrastructure and application services in-house or rely on a turnkey cloud platform. In most cases, because of the complexity of the use case, a lack of expertise or limited resources, the go-to-choice will be to leverage a WebRTC platform-as-a-service. At this stage, it is only a matter of comparing the platforms against one another. In addition to your core requirements, the main criteria we would suggest you to assess are:
- Device support – WebRTC is pulling immense support in the web development community, mostly surrounding Chrome. The reality though, is that non-WebRTC enabled clients from Microsoft Internet Explorer to iOS devices are quite pervasive. Have a clear plan to support users regardless of which browser or device they are using.
- Connectivity – For the most part, deploying a globally distributed TURN infrastructure is a necessity to address the majority of network scenarios your users will encounter. Without a scalable and distributed network of media relay points, you will quickly restrict which users can be connected.
- Quality of the video – Consider all the contexts your users will find themselves in. How important is the video quality when on a 1:1 video chat versus multi-party conference? Will the users be connected from a corporate LAN with high throughput, will they be using a carrier’s mobile network, and will they be at home or at a coffee shop?
- Ease of implementation – Compare the APIs and device reach as well the simplicity of the abstraction layer offered by each vendor. How developer friendly is the framework, how complete is the documentation, what about developer support?
- Security and authentication – Consider the authentication and provisioning process offered. What security measures are taken to secure the platform and the communication?
- Degree of customization – How advanced or simple your use case is today or in the future will help identify how rich the API needs to be. What does the API offer in terms of programmability of the user experience across use cases?
- Reliability of the platform – Mission critical applications require enterprise grade and highly reliable solutions. Does the platform you are considering offer strict SLAs? What is the uptime commitment? What information will your platform provider share with you?
After you shortlisted 2-3 providers, run a pilot test on each platform and compare the results.
What’s next for Weemo?
Over the past 6 months, we have seen a surge in demand to integrate with our platform which is leading us to discover new use cases across web and mobile platforms. The possibilities of integration seem endless so we are eager to engage with partners to help bring their real-time video enabled solutions to life. We will closely collaborate with our clients to ensure that our roadmap is aligned with their needs.
We believe that WebRTC is a game changer in real-time communication, we love it, we will push to get it deployed everywhere and we will provide the platform to all those who want a best-in-class service at a low cost. You can count on us to continue to deploy additional real-time platforms to our infrastructure to keep up with the demand and evolve our development frameworks to support an increasingly mobile user base.
The interviews are intended to give different viewpoints than my own – you can read more WebRTC interviews.