TamoSoft: Network Analysis Tools & Security Software
Contents

Monitoring and Troubleshooting VoIP Networks with a Network Analyzer

 
Codecs


In order to convert an analog voice signal into a set of digital packets and then reconstruct the packets back into audible voice, special voice codecs were developed. Codecs are used to encode voice into digital form, and decode it back into audible analog form when received. In VoIP, codecs are used to encode voice for streaming across the IP network. There are numerous codecs on the market, many being publicly available at no charge. Codecs vary in the sound quality they deliver, using different bandwidth and computational requirements. With few exceptions, codecs employ compression to save network bandwidth at the expense of using more CPU and memory resources and/or delivering lower voice quality on the receiving end. The less bandwidth and computational power a codec requires for achieving identical sound quality, the better it is considered to serve its purpose.

G.711 is a common open-source and royalty-free, high bitrate codec. This codec does not require licensing fees and uses very little computational resources while providing the best possible sound quality at the expense of higher than usual network bandwidth. On the other hand, G.723 and G.729 (patent-protected in some countries) consume 3 to 4 times less bandwidth than G.711 at the expense of increased CPU and memory load and slightly lower sound quality. There are numerous other free and licensed codecs on the market, each offering a different tradeoff between computational requirements, bandwidth, and voice quality.

Each VoIP service or endpoint supports several different codecs. In order to successfully communicate, the two endpoints must negotiate a common codec they will both use. While issues resulting from codec incompatibility or the lack of common codecs among heterogeneous infrastructures are rare, these problems are also hard to detect. One can identify SIP session errors by looking at codec mismatches, as illustrated by the CommView screen shot.