Last week, we attended and sponsored CommCon 2018, the UK’s only open-source, real-time communications conference. It is a conference run by the community featuring talks on two tracks: WebRTC and VoIP.
We also made several announcements during the conference.
- Our new webrtc-stats.callstats.io/verify verifies the getStats() API output.
- network.callstats.io measures WebRTC performance.
- And of course, our latest WebRTC Metrics Report was released last week!
Scaling of WebRTC to Millions of Users or Sessions Per Day
All major vendors spoke about their recent updates, while a lot of the talks covered improvements to their products. Our major take away was the implementation of scalability features into the SFUs.
Boris Grozev from Atlassian/Jitsi talk titled Jitsi: Self-Driving Video Conferences
Takeaway: With 2+ weeks of engineering, you can scale your service to run globally from multiple data centers, add recording to Google Drive or stream live to Youtube via Jibri, allow voice dial-in via SIP interconnect via Jigasi and lastly, transcribe your sessions with speech to text in real-time via their new NLP feature.
Lynsey Haynes from Slack/Orca talk titled Building and Scaling Slack’s Video Conferencing Service
Takeaway: Slack’s use of Elixir as a supervisor to manage the rooms on the Orca SFU. Specifically, being able to update, upgrade, and restart their server without waiting for the server to drain (all the calls to end).
Inaki Baz Castillo from Mediasoup talk titled Building multi-party video conference applications with mediasoup
Lorenzo Miniero from Janus talk titled Scaling server-side WebRTC applications: the Janus challenge
Takeaway: It is well-known that Janus can be used for many use cases (IoT, surveillance, large scale streaming, etc.) and not just conferencing. They identified that there are several way to implement large-scale conferencing in Janus, which means that different products might choose different strategies in negating the use of an open source system. The talk covered their efforts in defining a framework that resembles a “one-size fits all” for their developers.
Sergio Garcia Murillo from Medooze talk titled Choosing your WebRTC SFU - An introduction to Medooze Media Server and SFU
Takeaway: The talk covered some of the general guidelines for choosing a WebRTC SFU. His talk compared Jitsi, Janus, and Meddoze in several aspects. Sergio also announced that Medooze is now part of CoSMO Software.
Daniel-Constantin Mierla from Kamillio talk titled Kamailio - From VoIP to VoLTE, WebRTC and IoT
Takeaway: Daniel’s talk covered how the Kamailio configuration fits the needs of large deployments, such as VoIP or VoLTE services, as well as IoT environments, while following the security and quality standards of WebRTC.
KITE - Open Source, Free End-to-end Testing for WebRTC
Figure 1: Image is from Dr. Alex’s presentation on KITE.
Alex Gouaillard from CoSMo Software explained what the K in KITE means - specifically, the K stands for “Karoshi”, the Japanese term for “death by overwork”. He also delved into the details of the massive combination of possible tests with different operating systems and browser versions for testing the WebRTC API, as well as what was actually achieved. KITE runs on Interop Selenium Grid with multiple different browser configurations, and there are many different contributors to KITE, including Google, CosMo, and callstats.io. Alex also stated that other browser and equipment vendors are equally committed to KITE as the contributors.
Alex also pointed out how the callstats.io verify page improves the visualization of the getStats() API outputs!
Running Large Scale Systems
Our CEO, Varun Singh’s talk covered Lessons Learnt from Running callstats.io, which begun with a quick overview of how we measure annoyances and, by extension, the quality of experience of end users. In addition to highlighting the best ways to measure annoyance, the talk covered the kinds of issues customers (including app developers and service providers) face, and how they resolve these issues.
The talk covered results from various reports we have put together, with the most interesting topic being hairpinning of media. Hairpinning occurs when the media being sent between end users is routed to a distant location. This is detected when the latency is higher than expected because the physical distance between the end users and the latency observed is not correlated, hence, instead of media flowing directly between peers, it is routed to servers in a distant location. Varun highlighted that hairpinning of media between users that are geographically close affects media quality, and is something that can be improved by moving servers closer to the end users. Specifically, the longer Internet path affects media because of the vagaries in the best-effort nature of the IP multimedia. This issue and solution was acknowledged by several members of the audience who run large-scale services.
Li-Tal Mashiach from Facebook’s talk titled Real-time Communication @ Scale
Takeaway: Facebook’s Li-Tal spoke about some raw numbers of Facebook video chat. Facebook has 400 million monthly video chat users and they just enabled multi-party calls in Messenger and Instagram. Li-Tal explained their MQTT signaling and how multi-party calls are established. All the calls start off as P2P, and whenever a third person is detected the SFU gets involved. As we pointed out in callstats.io’s most recent blog posts, the involvement of SFU adds a significant latency. With several types of networks and devices, increasing the bit rate does not always ensure higher quality.
Present and Future
Huib Kleinhout from Google’s talk titled WebRTC: Enterprise-grade, Reliable RTC in the Browser
Takeaway: Huib Kleinhout from Google talked about their efforts in rolling out Enterprise-grade WebRTC. He showed some statistics which indicated that 40% of WebRTC traffic was from the USA, China and India, and that the number of conferences are leaning towards multi-party calls instead of P2P calls. He subtly pointed out that most of the audio-related issues attributed to end user behaviour were where the end users forget to unmute themselves while speaking. He also showed some early results of how VP9 SVC enhances visual quality by 35% at 700 Kbps compared to VP8.
Our Product Manager, Binoy Chemmagate delved into what makes up traditional real-time communications, as well as how the real-time communications industry has changed by adding more platforms, contexts, formats, and processing. The talk covered the social and economic drivers and the key technological enablers behind the growth of real-time communications. He continued to cover some of the known and emerging use cases in several verticals, including team collaboration, healthcare, online education, surveillance, automobile-communication, etc.
You can download our white paper on The Future of WebRTC: Innovative Use Cases of Real-Time Audio and Video Communications here.
WebRTC Panel Discussion
WebRTC panel discussion was hosted by Tim Panton with Dan Jenkins, Lynsey Haynes, Lorenzo Miniero and Iñaki Baz Castillo. The panel looked at WebRTC from a developer’s point of view where several concerns were brought to light. The main concern mentioned was the incompatibility of WebRTC among different browsers and how the use WebRTC is growing more in Electron and mobile environments. In the Q&A session, the choice of using SDP in WebRTC was discussed and our CEO Varun Singh stepped in to give clarity regarding the standardization choices made in WebRTC specifications.
WebRTC Workshop Fun
One of our lead engineers, Lennart, took part in the WebRTC workshop and his team won the competition! Want to see a video?
Check out our white paper on A Case of High Latency: Hairpinning or Distance? for more information on hairpinning from Varun’s talk.