So…what is WebRTC, and how is it used at TextNow?
And, indeed, streaming audio and video via the web is how you will usually come across the WebRTC library being used. All major browsers today support the
In fact, if you’ve ever used your browser to make a call through
TextNow’s web-calling feature, then surprise! You’ve also used WebRTC. In fact, that’s how we found WebRTC worked so well compared to our previous solutions that we’re now expanding the use of it across all of our applications in our goal to provide our customers with high quality calling for free or as close to free as possible.
(Brief) History of WebRTC
In 2010, Google acquired a company named Global IP Solutions, which had been working on software components needed for video conferencing. Shortly after,
WebRTC at TextNow
TextNow got its start with WebRTC in the fall of 2018. We were building a new, in-house calling backend, and for the first time we had the ability to integrate closely with our calling applications across web, iOS, and Android platforms. This gave us the ability to use WebRTC for our browser calling feature, since WebRTC comes for free in modern browsers. That meant it was easily accessible to our web app, and it opened the door for employing WebRTC for calling at TextNow.
We embrace these types of experiments at TextNow. Since we own the full calling stack — from client to backend — we have the freedom to build out and optimize calling to benefit our users in the best ways possible.
SIP (Session Initiation Protocol) over Websocket with SSL (another open API for communication in the browser) for call signaling.
Right from the beginning we saw great improvements to call quality. And, almost as good, we ended up with a clean, light calling implementation thanks to the simplicity of the WebRTC APIs.
Android and iOS
Next, we took a hard look at calling in our iOS and Android apps, and thought about where we wanted to grow our calling experience. We’ve provided calling for a long time now, and while our solutions have worked well for our customers, there were two core areas where we wanted to grow:
Call quality. The bar can never be too high here, and if there’s any way we can improve call quality for our users even more, we’ll take it!
Call reliability and feature development. Our existing calling code, while working well, had grown over the years. Our code consisted of two separate implementations across Android and iOS. This was starting to cause some maintenance issues and impeded our ability to quickly develop new features across both apps in parallel.
We looked at several different options, and again settled on WebRTC for our Android and iOS apps. Our research showed that WebRTC had the quality related features we wanted. Even better, WebRTC builds against Android and iOS out of the box, meaning we could unify our calling code across our Android and iOS apps. We knew this would enable us to move faster in building out calling across all of our apps simultaneously.