Reinventing group conversations.
There have been several high profile communication startups lately that launched their service. What they all have in common is the fact that they make use of WebRTC and indicate it as one of the technical benefits they have.
One of these vendors is Talko, which focus on mobile team communications.
It was a pleasure for me to have a chat with Matt Pope, Co-founder & Product Lead at Talko, and Richard Speyer, Software Engineer at Talko. I really enjoyed this talk we had, as it validated a lot of the assumptions I had about why and how vendors adopt WebRTC into their technology stack.
Here’s what Matt and Richard had to share with you in this interview we had.
What is Talko all about?
Talko is an app for mobile team communications. We designed Talko for today’s new style of work – anytime, anywhere, while mobile and on the go.
The smartphone has forever changed how we live and work, keeping us connected, no matter where we are. But although we’re connecting 10x more, we’re saying 10x less. The result is lost time and diminished productivity. Talko brings people together to user their voices to get things done. Because Talko is designed for your eyes, ears and voice – not just your thumbs, users are able to unlock the potential of voice and greatly improve and enhance the (formerly) dreaded conference call through various features, including:
- Talk – LIVE or not: Talk when and how you want, LIVE or not, so you maximize team productivity and minimize disruption. If there’s a team call and someone can’t be there, no problem – they can listen and reply to the whole conversation, or just the important moments, when they free up.
- Show while you talk: Tap the camera as you speak and others will instantly see what you see at the moment. There’s no disruption to the flow of the conversation.
- One-tap team conferencing: There’s no need to waste time setting up conference bridges or remembering passcodes. Tap your team to ring in Talko – it’s that simple.
- Any network, no network: Mobile networks can be spotty – it’s sad but true. Whether online (WiFi or cell) or offline in Talko, it doesn’t matter. Keep talking and it will ‘just go’ when your device reconnects. No need to ever “Try Again” later.
- Find, replay and share: Calls needn’t require tedious note-taking and email follow-up to get everyone on the same page. Recorded voice in Talko lets you organize, find, replay and share important conversations and key moments using flags, tags and bookmarks.
What was the reason you chose to use WebRTC in a mobile app?
We decided to bet on WebRTC in early 2012, just as we were beginning product development. While the answer at that time was far less obvious than it would be now, there were several factors that played into our decision at that time and that have proven to be tremendously beneficial:
- Open source: We were able to ‘stand on the shoulders’ of some amazing work that had been done by those in the open source community. When you’re a small team like us, it’s necessary to be really thoughtful about where you need to build unique, differentiating technology and where it makes obvious sense to work with the community. Many companies have open-sourced their WebRTC implementation – at Talko, we forked Google’s.
- Cross-Platform: When we first started working with WebRTC, we had to develop our own custom support for building on iOS. But today, WebRTC is written in C and C++, allowing us to cross compile the codebase across both iOS and Android. This allows us to manage a single codebase for both platforms.
- VoIP: WebRTC is built upon the latest and greatest in VoIP and real-time media, which is crucial for Talko and the scenarios we enable, including allowing users to communicate both LIVE and not LIVE, with seamless transitions between the two.
What excites you about working in WebRTC?
WebRTC is a true best-in-class VoIP stack. It is available open source and has an amazingly active development community. For a startup, we didn’t want, nor did we have the capacity, to build our own VoIP stack. Thanks to WebRTC we didn’t need to. This has allowed us to focus more of our engineering team on building the capabilities that truly make Talko unique.
The ICE protocol is crucial to successful establishment of a RTP media connection, especially when on a mobile device where the client is often on a 4G/LTE connection and sitting behind multiple NAT devices. It is also extremely helpful in managing networks coming and going, for example when a user walks out of their house and needs to transition from WiFi to 4G/LTE.
The Opus audio codec is a critical piece to delivering the high quality audio experience that our users have come to expect in Talko. It allows us to send audio at a very high bitrate and sample rate without consuming all of a user’s available bandwidth, and its FEC algorithms allow us to seamlessly conceal the inevitable packet losses, which will occur on any mobile Internet connection.
What signaling have you decided to integrate on top of WebRTC?
We use SIP as our signaling protocol currently. While not the most popular option these days, it has the benefit of being one of the most well-supported and tried-and-true signaling protocols out there.
Backend. What technologies and architecture are you using there?
Our service is deployed on a mix of AWS and Azure. All clients connect to a “session server” which is fully custom code built in Erlang and manages a majority of the client’s server interaction, including registration, account management, and posting texts and photos. When a user enters a call, we dynamically assign a media server for that call session which all clients will connect to for live interaction.
The backend media servers are based on the open-source FreeSWITCH telephony platform, which we adapted and customized based on our scenarios and learnings over the last few years – at this stage, a majority of the pipeline is running custom code.
Where do you see WebRTC going in 2-5 years?
We expect WebRTC – and the forthcoming ORTC – to continue to grow in their usages and availability across all platforms. We hope to see adoption of the native APIs – specifically on mobile devices, continue to grow. Additionally, we hope to see optimizations for the unique challenges of running a VoIP stack on a mobile phone, such as: limited battery and CPU, the need to integrate with native audio APIs, and efficient and adaptive handling of network interface switching and network quality variation.
If you had one piece of advice for those thinking of adopting WebRTC, what would it be?
There’s a good amount of detail on this in our recent blog post, but for those already in the VoIP/live media space we think that adopting WebRTC is a no-brainer. It represents not only the latest technology, but also the greatest technology. It is a true best-in-class VoIP platform, and it is free. Rather than managing your own VoIP stack, you can rely on WebRTC and focus on building out your application logic.
Given the opportunity, what would you change in WebRTC?
There are certain modifications that we have made to the native API which we would love to see make their way into the WebRTC standard and the API for all platforms. One of these is the ability to be notified whenever the CSRC list in an RTP stream changes. This is data which WebRTC has at the lower levels, and surfacing it to the developers would allow them to expose rich information about who is talking and contributing to a stream at any given time.
What’s next for Talko?
We are currently in the process of developing both Android and Web-based versions of Talko, so keep an eye (and ear) out for that. We’re also in the midst of localizing Talko in about a dozen different languages – we’ve heard the demand and are excited to bring Talko to many more parts of the world!
The interviews are intended to give different viewpoints than my own – you can read more WebRTC interviews.