Throughout this article, we'll try to walk through some of the most common causes of audio quality problems when using Parakeet. There are three distinct categories of audio quality issues that we'll be discussing in this article:
- Network Issues
- Device Issues
- App Issues
Unlike emails or text messages, phone calls happen in real time. While it's great for communication purposes, it unfortunately makes them highly sensitive to volatile networks. Networks with low bandwidth (or very high jitter) are the most frequent cause for audio quality problems in all VoIP applications. Unfortunately, there's only so much that any VoIP provider can to to solve for unpredictable networks without introducing other issues.
When you're on the phone, your device captures audio from the microphone, encodes it into a sequence of ordered packets, and sends them over the network to the other person you're talking to. For the purposes of this article, let's imagine that your audio is a sequence of numbers (for example 1-2-3)
In a perfect network, the person you're talking to will receive the sequence of numbers in the same order you sent them. We'll then decode that stream of numbers, play it on the device's speaker, and the result is a perfect stream of audio.
However, networks aren't perfect in reality. Sometimes a network may deliver #2 before #1, or take 20 milliseconds (ms) to send #1 but 40ms to send #2. As a result, our app may end up receiving 1-3-2 instead of the 1-2-3 we expect. This is generally known as "jitter," which describes non-deterministic latency in a network.
Audio calls attempt to compensate for expected jitter by using something called a jitter buffer. A jitter buffer works by storing the last few frames of audio received in memory, intentionally delaying the output, and re-ordering them on-the-fly before delivering them to the speaker on your phone. In the example mentioned previously, if the app receives 1, then 20ms later receives 3, then 20ms later receives 2, our jitter buffer can overcome this by delaying the audio to your ear for 60ms so that it has enough buffer space to ensure packets get re-ordered appropriately.
Using a jitter buffer simply requires latency to be added to the call. Our aim is to keep the jitter buffer large enough to compensate for minor network blips, but small enough to not significantly impact the overall latency of the call (it's generally assumed that latency over 500ms is practically intolerable for a phone call). The Parakeet applications run an adapter jitter buffer, which means we'll dynamically scale the size of the buffer based on the actual jitter of the current call, capped to 60ms minimum and 360ms maximum.
Calls affected by jitter frequently sound garbled, but may also just have very brief clipping. This makes it easy to confuse with actual packet loss (detailed below).
High Packet Loss
Packet loss is, quite simply, when the Parakeet application does not receive a particular chunk of the audio for a call. While high packet loss is generally unlikely, mild packet loss can and does happen over time. Usually this is not enough to cause any notable issues with your calls, save for a very minor blip that should instantly resolve itself.
However, in cases of extremely high network pressure, or misconfigured components, it's possible to experience crippling packet loss. Any consistent packet loss is likely to make your VoIP calling frustrating, and regular packet loss exceeding 10% will practically make it unusable. The good news is, high packet loss like this is very uncommon in the wild, even over cellular connections.
Calls affected by high packet loss experience clipping or popping, which can generally be described as intermittent silence.
On most networks, Parakeet works perfectly fine with no configuration changes to your firewall. However, in some circumstances, Parakeet calls can be affected by firewall configurations that limit our ability to function properly. For more information on the steps to allow Parakeet through your firewall, check out our Network Requirements guide.
Calls affected by a misconfigured firewall have either one-way audio, or no audio at all.
Another source for audio problems are the devices running the Parakeet apps themselves. Unlike smartphones, most desktop computers are not specially designed for communications. They have low quality built-in microphones and speakers, and usually don't perform echo cancellation and noise reduction. This makes it important to use a good quality headset when you're talking through your computer.
Calls affected by device issues generally experience audio that sounds distant, or otherwise low quality.