VOIPCODECTECHNICAL

G.711 vs G.729: Choosing the Right Codec

SIPNEX ·

The codec you choose for your SIP trunk determines three things: how your calls sound, how much bandwidth each call consumes, and how accurately your AMD (Answering Machine Detection) classifies calls. For call center operators running VICIdial or other predictive dialers, the codec choice has a direct impact on agent efficiency and campaign performance. Most operators default to G.711 and never think about it again — which is usually the right decision. This guide explains why, and when G.729 makes sense instead.

What codecs do

A codec (coder-decoder) converts analog voice audio into digital data for transmission over IP networks, and converts it back to audio at the receiving end. Different codecs use different algorithms that produce different tradeoffs between audio quality, bandwidth consumption, and processing overhead.

When you place a call through your SIP trunk, the codec selection is negotiated during call setup via SDP (Session Description Protocol) in the SIP INVITE. Your system lists the codecs it supports in order of preference. The carrier responds with its supported codecs. The first mutually supported codec is used. This is why the order of allow= statements in your sip.conf matters — the first codec listed is the preferred codec.

G.711: the quality standard

G.711 is an ITU-T standard from 1972 — one of the oldest digital audio codecs still in active use. It comes in two variants: G.711u (µ-law, used in North America and Japan) and G.711a (A-law, used in Europe and most other regions). For US operations, G.711u (ulaw) is the standard.

Audio quality: Excellent. G.711 is uncompressed PCM audio at 64 kbps. It captures the full voice frequency range without compression artifacts. MOS baseline: 4.4 — effectively indistinguishable from landline quality. This is the reference standard against which other codecs are measured.

Bandwidth: Each G.711 call uses approximately 85 kbps in each direction (64 kbps audio + 21 kbps IP/UDP/RTP headers). At 200 concurrent calls, that is 17 Mbps each direction. For modern business internet connections, this is modest. A 100 Mbps dedicated connection can comfortably support 500+ concurrent G.711 calls.

Processing overhead: Minimal. G.711 does not compress audio — it simply digitizes the analog signal at 8000 samples per second with 8 bits per sample. No complex math, no DSP-intensive processing. Your Asterisk server can handle significantly more concurrent G.711 calls than G.729 calls because G.711 requires almost no CPU for encoding/decoding.

AMD accuracy: Best. AMD algorithms analyze the audio waveform in the first few seconds of an answered call to distinguish human speech patterns from voicemail greeting patterns. G.711’s uncompressed waveform gives the AMD algorithm the cleanest possible signal to work with. AMD false positive rates (human classified as machine) are lowest on G.711.

G.729: the bandwidth saver

G.729 is an ITU-T standard from 1996 that uses Code-Excited Linear Prediction (CELP) compression to reduce bandwidth consumption by approximately 8x compared to G.711.

Audio quality: Good but noticeably lower than G.711 on direct comparison. G.729 compresses audio to 8 kbps using psychoacoustic modeling — it discards audio information that the algorithm predicts humans will not notice. MOS baseline: 3.9. Most listeners describe G.729 audio as “slightly muffled” or “less crisp” compared to G.711. On a casual phone call, the difference is subtle. On an extended sales call or complex consultation, the reduced clarity can affect comprehension and professionalism.

Bandwidth: Each G.729 call uses approximately 32 kbps in each direction (8 kbps audio + 24 kbps IP/UDP/RTP headers — the overhead is proportionally larger because the payload is smaller). At 200 concurrent calls: 6.4 Mbps each direction versus G.711’s 17 Mbps. This is where G.729 excels — environments with severely limited bandwidth (satellite links, cellular backhaul, developing-country connections) where G.711 is not feasible.

Processing overhead: Higher than G.711. CELP compression requires significant CPU resources for encoding and decoding. On an Asterisk server, G.729 processing limits the maximum concurrent call capacity compared to G.711 — a server that handles 500 concurrent G.711 calls might handle only 200-300 G.729 calls before CPU saturation.

AMD accuracy: Lower than G.711. G.729’s compression algorithm modifies the audio waveform — removing frequency components and smoothing signal variations that the compression model deems imperceptible. These modifications affect the statistical features that AMD algorithms use to distinguish human speech from recorded greetings. The result: higher false positive rates on G.729 (more live answers incorrectly classified as machines). For predictive dialer operations where AMD drives agent efficiency, this accuracy reduction directly impacts revenue.

When to use each codec

Use G.711u (ulaw) when:

  • You have adequate bandwidth (100 kbps per concurrent call)
  • You run AMD on your predictive dialer (most VICIdial campaigns)
  • Audio quality is important (sales, consultations, customer service)
  • Your server has capacity for the call volume
  • You are on a standard business internet connection

This covers 90+ percent of US call center operations.

Use G.729 when:

  • Bandwidth is severely constrained (under 5 Mbps total available for voice)
  • You are operating over satellite, cellular backhaul, or very low-bandwidth connections
  • You are running remote agents on limited connections where per-agent bandwidth is under 1 Mbps
  • Audio quality is secondary to call completion (basic notification calls)

Do not use G.729 for:

  • Predictive dialing campaigns where AMD accuracy matters — the false positive rate increase costs more in lost conversations than the bandwidth savings
  • Sales or complex conversations where audio clarity affects conversion
  • Call recording intended for compliance or quality review — G.729 recordings sound noticeably worse on playback

Configuration

In VICIdial/Asterisk sip.conf, set codec preference in the trunk peer definition:

For G.711 (recommended):

disallow=all
allow=ulaw
allow=alaw

For G.729 (bandwidth-constrained only):

disallow=all
allow=g729
allow=ulaw

The first allow= line is the preferred codec. The second is the fallback if the preferred is not available. SIPNEX supports both G.711u and G.729 natively with no transcoding.

Opus: the modern alternative

Opus is an open, royalty-free codec developed by the IETF (RFC 6716, 2012). It uses adaptive bitrate from 6 to 128 kbps, automatically adjusting quality based on available bandwidth. At high bitrates (64+ kbps), Opus exceeds G.711 quality with better frequency response. At low bitrates (16 kbps), it provides better quality than G.729 at equivalent bandwidth.

Opus is increasingly supported in modern VoIP infrastructure but is not yet universal. Asterisk 13+ supports Opus via a plugin. Carrier support varies. SIPNEX supports Opus where your system negotiates it. If your infrastructure supports Opus and your carrier supports it, Opus is technically the best choice for new deployments — it adapts to network conditions automatically and provides superior quality across the bandwidth spectrum.

Frequently asked questions

Which codec should I use for VICIdial?

G.711u (ulaw). It provides the highest audio quality (MOS 4.4), the best AMD accuracy, and the lowest CPU overhead. The bandwidth cost (85 kbps per call) is trivial on modern business internet connections. Only use G.729 if your bandwidth is severely limited. Set your sip.conf to disallow=all then allow=ulaw then allow=alaw as a fallback. This gives your VICIdial installation the cleanest audio signal for both agent conversations and AMD analysis.

Does G.729 save enough bandwidth to matter?

G.729 reduces per-call bandwidth from ~85 kbps to ~32 kbps — a 62% reduction. At 100 concurrent calls, that is 8.5 Mbps vs 3.2 Mbps. On a 100 Mbps connection, this saving is irrelevant — you have abundant bandwidth for G.711. On a 10 Mbps connection supporting 100+ concurrent calls, the saving matters. On a satellite or cellular backhaul connection, it may be essential. For most US call centers with standard business internet, bandwidth is not the constraint — audio quality and AMD accuracy are more important, and both favor G.711.

Can I mix codecs on different campaigns?

In Asterisk/VICIdial, codec preference is configured per trunk peer, not per campaign. All campaigns sharing the same trunk use the same codec negotiation. To use different codecs for different campaigns, you would need separate trunk configurations pointing to separate carrier endpoints — which adds unnecessary complexity. The practical recommendation: use G.711u for everything on your primary trunk. If you have a specific low-bandwidth use case, configure a secondary trunk with G.729 preference for that specific scenario.


SIPNEX supports G.711u, G.711a, G.729, and Opus natively — no transcoding, no quality degradation. We recommend G.711u for call center operations and our trunk is optimized for it. Get started or see our rates.

SIPNEX

FCC-licensed carrier with its own STIR/SHAKEN SP certificate. Operator-owned. SIP trunks built for operators who dial at volume.