We discuss the Agora.io approach to tackling the global mobile-to-mobile challenge for Web Real-Time Communications (WebRTC) through an end-to-end virtual network architecture. A version of this article was first published at WebRTC World (here), following the Agora.io $20 million funding announcement and initial product introduction – see agora.io/news.
Today’s applications and users are predominately global, mobile, and often mobile-to-mobile. In fact, the “mobile tipping point”, where the now nearly 2 billion mobile smartphone users became greater than the number of desktop users globally, occurred in 2014 (see Mobile Statistics 2015). And these statistics show that 80% of Internet users own a smartphone and that mobile users, in particular, spend more time online consuming much more content. Social media platforms like Facebook and Twitter now report many more mobile interactions than desktop interactions and most new social media apps, such as Instagram, WhatsApp, WeChat, Snapchat, etc., are primarily mobile.
Recent studies show that we spend more time with our phones than sleeping (study), let alone with TV or anything else! And we all know that our online social, gaming and information communities are global – we share information and communicate with people scattered across the world every day.
This reality of a mobile, global world can be a challenge as we add real-time communications to our applications – providing capabilities that allow participants to talk and see each other easily as needed, wherever they are. The first company to truly tackle ease of global communications over the Internet was Skype – which is why many of us continue to use Skype to talk to our relatives in far-off countries. However, Skype has become a rigid stand-alone platform with less APIs that cannot easily be embedded in flexible, invisible ways within other applications. And with Skype now part of Microsoft and a key part of Microsoft’s Skype-For-Business focus to extend MS Office and supersede MS Lync, it does not seem there will ever be a return to easy embeddable communications capabilities.
So what is the alternative for application developers building their own applications that wan to directly incorporate communications right into their applications? Over the past four years, WebRTC has emerged as the new open standard for easily integrating communications into applications, driven by Google, Mozilla, more recently Microsoft and other companies (see our previous blog on Video standards) together with standards initiatives within IETF and W3C.
This blog explores the challenges for standard WebRTC approaches in delivering reliable, consistent Quality of Experience (QoE) for truly global, truly mobile applications, and discusses a global optimized architecture that meets these challenges.
Challenges for the “Standard” Peer-to-Peer WebRTC Architecture
However, while peer-to-peer communications over the Internet is “ideal” in the sense that it is simple, free, and does not require any other infrastructure, whether or not you get a good Quality of Experience for the whole communication completely depends on how good the network connection is, and how good it remains across the whole time of the communication session.
In the ideal WebRTC scenario, as usually demonstrated, both the endpoints are browsers on reasonably powerful laptops with WiFi or wired network connections, communicating within the same country on a reasonably consistent network. This can work well. However, if the devices are mobile phones that may have 3G, 4G or WiFi connections, and may switch between these and have a lot of bandwidth variability as users walk about, and if the devices are in completely different countries some with network challenges, then the quality of the communication is likely to be horrible! As a result, many application developers experimenting with cross-country communications are finding WebRTC Quality of Experience to be a real challenge. The standard Internet does not provide any kind of “Quality of Service” guarantees for real-time traffic, as you find in private business networks, so providing there is some kind of connection nothing will get re-routed or changed in how your voice and video packets get from one user to the other. If it’s bad it will stay bad.
Essentially, WebRTC provides you with libraries and codecs – either included in certain web-browsers or packaged by various companies into SDKs for mobile app use – but it does not provide you with a QoE-optimized network between these endpoints. It’s up to you and the vagaries of the many mobile network and Internet connections between your users!
Mobile-to-mobile Global Applications
HelloTalk (hellotalk.com) is an example global mobile application, available for both Apple IoS and Android, which provides an interactive and social environment for people in any country to learn new languages. We discussed HelloTalk in depth in our previous HelloTalk blog, so we won’t repeat that here. The case study showed how for companies like HelloTalk mobile-to-mobile global communications has to work every time with great Quality of Experience regardless of the country or type of network connection.
Agora.io CaaS – A Global RTC-Optimized Network
The solution to the mobile-to-mobile WebRTC challenge is to provide a global RTC-optimized virtual network that connects with mobile devices as locally as possible and then ensures that the global connectivity between these users maintains excellent QoE throughout the communication session.
There are two important parts of this architecture:
- The last mobile-mile “on-ramp” to the network from the mobile device.
- The global connectivity between devices across the network.
The connection between the mobile device and the Agora.io network may be over 3G, 4G or WiFi and bandwidth, delays and connection type may be continuously changing as users move about. So the focus here has to be on error resilience and constant audio/video tuning based on network conditions. Technical issues like “packet loss” and “jitter” are to be expected here and so the architecture must be designed to handle these well. This requires innovations in codecs and transport protocols that are highly optimized for mobile devices. Even capabilities like echo-cancellation must be highly tuned to particular devices to make sure you start with the best voice quality right from the start.
In order to ensure fast in-country access there need to be a lot of access nodes – Agora.io currently has over 65 data centers globally and is continuing to expand. Communications go directly into the Agora.io network and do not go randomly peer-to-peer across the world. This allows the “virtual” Agora.io network to continuously, and automatically, optimize for QoE.
Once the communication reaches an Agora.io network node then how this communication is routed to the destination is key. In order to ensure global low-cost, Agora.io leverages the global Internet (so no-one is paying for dedicated lines with Telco-level costs) but it does not just rely on the Internet for routing and optimization. Agora.io is constantly monitoring all of its nodes and knows the best real-time network path around the world at every moment. Real-time communications traffic can, therefore, be routed and dynamically re-routed as needed to get around bottlenecks and ensure good QoE. Agora.io network nodes also directly manage low-level redundancy options and re-transmission decisions, as most appropriate for real-time voice and video traffic – which is different from general web needs or one-way streaming needs.
This approach is especially important for network “brown-outs” where paths around the Internet are still working but very poorly for low-latency and low-packet-loss real-time needs – as compared with “black-outs” where connections are lost and the Internet can (slowly) determine the need for a new route itself. The Agora.io virtual network is able to quickly spot better and worse communication conditions across the whole network and react accordingly in real-time.
As a result, most Agora.io traffic is not peer-to-peer (although it can be for local situations) but is dynamically managed throughout a session between the 65+ globally distributed Agora.io network nodes operating as a virtual network layer over the standard Internet.
The result is a true end-to-end global solution of SDKs and network management that ensures high Quality of Experience for real-time voice and video communications, with a special emphasis on the tough demands of mobile devices.
Conclusion – Optimized Quality of Experience
To support real-time communications for the next generation of mobile-to-mobile global applications, as well as mixed desktop/browser and mobile cases, developers require a global RTC-optimized network. Most WebRTC approaches today just provide the libraries and leave the question of whether the network will be good enough up to you! And these libraries and tools are often optimized for browser use and not necessarily for mobile devices with highly variable performance and network connectivity.
Agora.io provides an innovative global RTC network with mobile optimizations already built into the Agora.io mobile SDKs (download here) so that Agora customers can benefit from these capabilities immediately. Agora continues to incorporate further WebRTC standards to allow easy connectivity to standard WebRTC browsers while maintaining the best mobile-to-mobile experience possible through SDKs. This gives Agora customers, like HelloTalk and others, more choices and much better Quality of Experience for all their global users.
Next steps: Read more about the Agora.io Vision at this article by our CEO Tony Zhao and use the Contact form at the bottom of this page to request a discussion and demonstration of the Agora.io product.