When it comes to VoIP, call quality depends of the quality of internet, which includes speed/packet loss/jitter. This varies greatly between sources:
– Mobile users have a data plan which provides them with GPRS/EDGE/3G/HDSPA/HSPA+/4G speeds: 50Kbps/250Kbps/384Kbps/7.2Mbps/42Mbps/150Mbps
– Residential/Corporate users usually have a broadband or DSL connection: 128Kbps -> 10Mbps
– Rural areas where only telephone lines are available use a dial-up connection or ISDN: 33kbps, 56kbps, 64kbps
– Off-Grid users typically have WiFI or Satellite connections: 128kbps -> 10Mbps
The part of internet speed which affects VoIP is the slowest one between uplink and downlink, and usually that is the uplink. Hence make sure to inquire about your uplink speed, even if your internet provider advertises by default only the downlink.
In order to combine best use of internet along with best call quality, analog voice is converted to digital signals using the adequate Codecs. FreelyCall users should choose the codec which suits their internet and expected voice quality.
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 is to use a codec with configurable jitter buffer size and to increase that to 30ms.
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.
To evaluate the quality of a call, the Mean opinion score (MOS) is a test that is used in telephony networks to obtain the human user’s view of the quality of the call
|4||Good||Perceptible but not annoying|
Bandwidth/MOS for these codecs is as follows:
|Mean Opinion Score
Additional factors which impact call quality and bandwidth used are :
– sampling rate: Codecs support different sampling. More sampling consumes more bandwidth but transmits more voice details
– header compression: Reduces size of each voice packet by compressing it, at the expense of using more processing.
Many websites such as visualware offer free tests for your internet and how it will perform with VoIP: http://myspeed.visualware.com/
Most commonly used Codecs are:
PSTN quality codec which is supported in 99% of all devices/providers (but often disabled to save traffic).
It has best quality but highest bandwidth (64kbps + ~20 kbps overhead ~= 84kbps to one direction).
It comes in 2 flavours – G711u (ulaw) – used in USA, and G711a (alaw) – used mostly in Europe and other countries.
Do not use this codec if you have Voice quality issues!
Little worse quality than G711 but is often used because it saves traffic (~8kbps + ~20kbps overhead ~= 28kbps to one direction).
It takes a lot of CPU power to transcode so make sure your device has enough power to support it
Not all devices have it, and some require for it to be purchased separately