Search code examples
androidwifivoip

How to improve VoIP quality using my home Wi-Fi?


I'm using a VoIP service on my Android, and it's working great from the office, and even over 3G/4G, as I have purchased the g.729 codec.

However, when I'm home, my 3G switches to home wifi, and I can barely have a decent conversation, and after some time, the quality deteriorates.

I know the problem is not related to bandwidth used by other connected devices, since g.729 uses very little bandwidth, so it's not a matter of having QoS. What could be the problem ?

Thanks


Solution

  • Call quality depends not only on available bandwidth, but also Jitter and Packet Loss, which are noticeable over WiFi links.

    Jitter is the variation in time between packets arriving, 'caused by network congestion, timing drift, or route changes. A jitter buffer is used in codecs to handle jitter problem. The way jitter buffer works is by storing/resending packes, thus inserting a little delay (20ms to 30ms) in the call in order to keep the talking arriving at a constant rate, so this would slow down fast packets, and speed up slow packets. As you're using g.729, the mean jitter buffer value is 20ms, however, due to network congestion, 20ms may not be enough to cope for the variation of time between arriving packets, thus some packets would be lost, and the voice quality would be impacted. Since g729 has high compression compared to g711, any packet lost will have significant impact on the call quality compared to g711. The solution for this is to ask your provider if they support other Codecs which have higher buffer jitter

    Packet Loss, beyond the one caused by Jitter as explained above, is due to the nature of networking where data is transmitted in small packets. As VoIP uses UDP for transmitting audio by default, any packets lost are not resent, and the impact would be noticeable on the quality of a g729 call.

    Now what causes Packet Loss over wi-fi links is the SNR (Signal/Noise ratio) on your Wifi. Wifi access points can hook to any of the available 11 channels, which means surrounding access points will share channels, and this results in decreasing SNR. Why? as packets flow on your own access point but are not destined to it, this will increase noise. the solution here is to use a spectrum analysis (there are mobile apps on google play/apple store just for that) and see which channels are not used, and hook your access point to that.

    Above information can be found as well on FreelyCall support page: Bandwidth Consumption and Call Quality