VoIP

G.729

G.729 is a compressed audio codec that encodes voice at 8 kbps — one-eighth the bitrate of G.711 — making it the standard choice for bandwidth-constrained VoIP environments. G.729 uses a Code-Excited Linear Prediction (CELP) algorithm to achieve high compression while maintaining acceptable voice quality, with a maximum MOS score of approximately 3.9 under ideal network conditions. The tradeoff for bandwidth savings is increased CPU consumption and slightly reduced audio fidelity.

How It Works in VICIdial

G.729 is configured as a codec option in Asterisk’s SIP or PJSIP endpoint settings. When both ends of a call negotiate G.729, the audio is encoded at 8 kbps per direction, resulting in approximately 31 kbps total bandwidth per call when including IP/UDP/RTP headers — roughly one-third the bandwidth of a G.711 call. This dramatic bandwidth reduction makes G.729 valuable for scenarios where network capacity is limited.

Historically, G.729 required a commercial license per concurrent channel because it was a patented codec. The core G.729 patents expired in 2017, and the open-source implementation (bcg729) is now freely available and included in modern Asterisk builds. However, some enterprise Asterisk distributions may still reference legacy licensing — check your specific build.

When a G.729 call needs to be bridged with a G.711 endpoint (common in mixed environments), Asterisk must transcode between the two codecs. Each transcoded call consumes measurably more CPU than a native-bridged call. A VICIdial server that handles 300 concurrent G.711 calls natively might only handle 100-150 concurrent calls if all require G.729 transcoding, depending on CPU specifications.

Recording files stored in G.729 format are significantly smaller — approximately 60 KB per minute compared to 480 KB per minute for G.711. For operations that record all calls and retain recordings for extended periods, the storage savings can be substantial.

Why It Matters

G.729 is the right choice when bandwidth is the limiting factor. Common scenarios include: remote agents working from home on residential internet connections, international SIP trunks where bandwidth costs are high, satellite or cellular backhaul connections, and VICIdial deployments in regions with limited internet infrastructure.

However, G.729 should not be used as the default codec when bandwidth is adequate. The quality reduction (MOS 3.9 maximum versus 4.4 for G.711), increased CPU load from encoding and transcoding, and added complexity are not worth the bandwidth savings in a well-provisioned data center environment. The best practice for VICIdial deployments is to use G.711 as the default for carrier trunks and local agents, and configure G.729 selectively for remote agents or specific routes where bandwidth constraints exist.

Related Terms

G.711 View definition → Codec View definition → Real-time Transport Protocol (RTP) View definition → Mean Opinion Score (MOS) View definition →

Related Articles

Platform Comparisons

Open Source Call Center Software: The Complete Guide

· 26 min read
VICIdial Optimization

How to Reduce VICIdial AMD False Positives from 20% to Under 5%

· 12 min read
VICIdial Optimization

VICIdial AMD Configuration: The Only Guide That Doesn't Waste Your Time

· 22 min read

Part of the VICIdial Performance Optimization Guide

Need Help With Your VICIdial Setup?

Get a free performance audit from our team of VICIdial experts. We'll identify quick wins and long-term improvements.

Get Your Free Audit →