Due to human perception, VoIP is much more sensitive to certain network conditions that are considered well within spec for most applications.

Network issues such as packet loss, jitter, and packet sequence errors are inherent to IP networks, and are well corrected and tolerated by data transfer protocols. Voice transmissions are real‐time by the nature; hence the different approach to handling the network issues. Packet loss, jitter and out‐of‐order packets are tied closely to each other. Taking care of a single network issue can often reduce all three problems and significantly improve the quality of voice calls.

In this post I just want to discuss known network issues that affect the perceptual quality of VoIP calls.

Packet loss

Packet loss occurs in every kind of network. All network protocols are designed to cope with the loss ofpackets in one way or another. TCP protocol, for example, guarantees packet delivery by sending re‐deliveryrequests for the lost packets. RTP employed by the VoIP protocol does not provide delivery guarantee, and VoIP must implement the handling of lost packets.While a data transfer protocol can simply request re‐delivery of a lost packet, VoIP has no time to wait forthe packet to arrive. In order to maintain call quality, lost packets are substituted with interpolated data.

A technique called Packet Loss Concealment (PLC) is used in VoIP communications to mask the effect ofdropped packets. There are several techniques that may be used by different implementations.  Zero substitution is the simplest PLC technique that requires the least computational resources. Thesesimple algorithms generally provide the lowest quality sound when a significant number of packets are discarded. Waveform substitution is used in older protocols, and works by substituting the lost frames with artificially generated, substitute sound. The simplest form of substitution simply repeats the last received packet.  Unfortunately, waveform substitution often results in unnatural, “robotic” sound when a long burst of packets is lost.The more advanced algorithms interpolate the gaps, producing the best sound quality at the cost of usingextra computational resources. The best implementation can tolerate up to 20% of packets lost without significant degradation of voice quality. While some PLC techniques work better than others, no masking technique can compensate for a significant loss of packets. When bursts of packets are lost due to network congestion, noticeable degradation of callquality occurs.In VoIP, packets can be discarded for a number of reasons, including network congestion, line errors, andlate arrival. We need to select right Packet Loss Concealment technique that best matches the characteristics of a particular environment, as well as to implement measures to reduce packet loss on the network. I am going to write another post that will describe PLC techniques in more details later, as this article will be too long to read if I will write everything here.

Jitter

Jitter is a specific VoIP Quality of Service issue that may affect the quality of the conversation if it goes out of control. Unlike network delay, jitter does not occur because of the packet delay, but because of a variation of packetdelays. As VoIP endpoints try to compensate for jitter by increasing the size of the packet buffer, jittercauses delays in the conversation. If the variation becomes too high and exceeds 150ms, callers notice thedelay and often revert to a walkie‐talkie style of conversation.

There are several steps to be taken to reduce jitter both on the network level and in the VoIP end points such as VoIP software, IP phones or dedicated VoIP ATA’s (adaptors) or FXS/FXO gateways. By definition, reducing the delays on the network helps keep the buffer under 150ms even if a significant variation is present. While the reduceddelay does not necessarily remove the variation, it still effectively reduces the degree to which the effect is pronounced and brings it to the point where it’s unnoticeable by the callers. Prioritizing VoIP traffic andimplementing bandwidth shaping also helps reduce the variation of packet delay.At the endpoint, it is essential to optimize jitter buffering. While greater buffers reduce and remove the jitter, anything over 150ms noticeably affects the perceived quality of the conversation. Adaptive algorithms to control buffer size depending on the current network conditions are often quite effective. Fiddling with packet size (payload) or using a different codec often helps control jitter.

While jitter is caused by network delays more often than by endpoints, certain resource struggling systems that are executed in concurrent environments, such as VoIP soft phones, may introduce significant and unpredictable variations in packet delays. While developing VoIP endpoints or examining call quality problems within existing VoIP infrastructure, it is very important to isolate the cause of jitter.

Sequence Errors

Data packets travel independently of one another, and are subject to various delays depending on the exact route they take. Out‐of‐sequence packets are not considered a problem for data transfers, as data transfer protocols can re‐order packets and reconstruct data without corruption. Due to the time‐sensitive nature of voice communications, VoIP systems are required to handle out‐of‐sequence packets in quite a differentmanner.

Some VoIP systems discard packets received out of order, while other systems discard out‐of‐order packetsif they exceed the size of the internal buffer, which in turn causes jitter. Sequence errors cause significant degradation of call quality. Sequence errors may occur because of the way packets are routed. Packets may travel different pathsthrough different IP networks, causing different delivery times. As a result, lower‐numbered packets may arrive at the endpoint later than higher numbered ones. The packets are usually received in the buffer, allowing the endpoint to rearrange out‐of‐order frames and reconstruct the original signal. However, thesize of internal buffer is limited to control jitter, and significant variance in the orderly delivery of packetsmay cause the endpoints to discard frames, resulting in both jitter and dropped packet issues. Routing VoIP calls through consistent routes to avoid spreading packets from the same call over different paths allows for significant reduction in sequencing errors.

Codec Quality

A codec is software that converts audio signals into digital frames and vice versa. Codecs are characterized with different sampling rates and resolutions. Different codecs employ different compression methods and algorithms, using different bandwidth and computational requirements.  Choosing the best codec for particular network conditions may considerably increase the quality of voice calls. If the network has low effective bandwidth, choosing otherwise great lossless G.711 codec would be a big mistake, as the quality of the calls would suffer because of bandwidth limitations and lost packets rathert han codec quality. If there is less than 80 Kbit/s of available bandwidth, picking a low‐bitrate, high‐compression G.729 or G.723 codec’s is much more appropriate. Note that while a local area network (LAN) may provide high bandwidth, external calls may be subject to bandwidth bottleneck in the upstream. ADSL and cable network providers often limiting upstream bandwidth, which results in upstream congestion if multiple VoIP calls are carried concurrently. In this case, low‐bandwidth codecs may provide better results. G.711 (PCM), a high‐bandwidth codec, provides the best audio quality yet consumes the most bandwidth (about 80 Kbit/s with overhead). G.729a (CS‐ACELP), G.723.1 (MP‐MLQ) and G.726 (ADPCM) offer varying conversation quality, sorted by decreasing relative quality. The codec choice will not take place automatically. You have to specify and prioritize codecs available to the particular VoIP system. Taking care of the wrong choice of codec may significantly improve conversation quality.

Related topics/white papers:

Tagged with:
 

One Response to Typical VoIP Problems: not right codec, packet loss, jitter, out‐of‐order packets

  1. [...] Problems like not proper codec, packet loss, jitter, not in order packets has been discussed in this [...]

Leave a Reply