From day one, we wanted to build a high fidelity communications network. Calling is core to that experience.
Since launching in December 2014, we have received great feedback. We are very thankful for all the good things said about the call quality on Wire — you told us that the experience is remarkable. On the other hand, we also heard that some of you have experienced difficulties with connecting and call quality in adverse networks. Your concerns motivated us to make numerous improvements.
Tough problems, clever measures
The latest versions of Wire on iOS, Android and OS X now adapt to varying network conditions.
When Wire detects a strong network connection, it will use a newly introduced high quality mode for calls. We do realize it is not “too 2015” to compare with legacy technologies, but what comes out of it is pretty close to CD audio quality.
In situations with less than perfect network strength, Wire now automatically reduces the network burden. This means that when you’re in motion — for example, on the train or walking through city streets — Wire will understand that and will always provide the best possible quality. And the conversation continues without dropouts or dropped calls. Also, if the network falters temporarily, Wire plays a subtle notification tone while the call is disrupted. When the network conditions improve, it automatically resumes the call.
Unfortunately, there were situations when calls would fail to connect, especially (but not solely) on poor networks. After extensive investigation and many sleepless nights, we have found and fixed multiple problems that caused these failed connections.
Underlying technical details
The WiFi and mobile networks we all use are “best effort” — they offer no quality of service guarantees. Devices and apps are all competing for bandwidth. Therefore, real-time communications apps need to be adaptive. Network adaptation means working around parameters such as variable throughput, latency, and variable latency, known as jitter. To do this, we need to measure the variations and adjust to them in as close to real-time as possible.
As an industry, we are still experimenting with the best combinations / algorithms for this, but in general it involves shifting the frequency and size of audio packets to accommodate the network profile over time.
With all of this said, it’s important to emphasize that while we optimize the fidelity of the calling experience, we don’t compromise on battery life and the end-to-end encryption of media.
Wire audio facts
- Wire uses a stack that is a derivative of WebRTC and the IETF standardized Opus codec.
- Wire modifies many components including echo cancellation, noise reduction, and jitter management, and have optimized core algorithms for quality and performance.
- Wire uses Opus in LPC and Hybrid modes and scale dynamically over bitrates of 20–40 kbps and packet intervals of 20–60 ms.
— Alan Duric, Wire co-founder and CTO
— Koen Vos, Wire Chief Scientist