After 15 years of deploying phone systems, I finally did what I had been meaning to do: a controlled, side-by-side comparison of every major voice codec used in VoIP today.
The test setup: two identical endpoints on the same LAN, recording both the input signal and the decoded output. I tested at multiple bitrates and introduced artificial jitter and packet loss to simulate real-world conditions.
The Codecs Tested
| Codec | Bitrate (Kbps) | Sample Rate | Frame Size | Algorithm |
|---|---|---|---|---|
| G.711 PCMU | 64 | 8 kHz | 20ms | PCM (uncompressed) |
| G.711 PCMA | 64 | 8 kHz | 20ms | PCM (uncompressed) |
| G.729 | 8 | 8 kHz | 10ms | CS-ACELP |
| G.722 | 64 | 16 kHz | 20ms | SB-ADPCM |
| iLBC | 13.3/15.2 | 8 kHz | 20/30ms | Block-independent LC |
| Opus | 6-510 | 8-48 kHz | 2.5-60ms | SILK+CELT hybrid |
| Opus (VoIP mode) | 24 | 16 kHz | 20ms | SILK |
| Opus (FB) | 64 | 48 kHz | 20ms | CELT |
Results: Clean Network (0% loss, <5ms jitter)
| Codec | MOS Score | Bandwidth | CPU Load | Verdict |
|---|---|---|---|---|
| Opus 48kHz | 4.5 | 80 Kbps | Low | Best quality |
| G.722 | 4.3 | 100 Kbps | Very Low | Best wideband legacy |
| Opus 16kHz | 4.2 | 48 Kbps | Low | Best efficiency |
| G.711 | 4.1 | 100 Kbps | Minimal | Most compatible |
| G.729 | 3.7 | 40 Kbps | Medium | Low bandwidth king |
| iLBC | 3.5 | 28 Kbps | Medium | Packet loss specialist |
Results: Degraded Network (1% loss, 30ms jitter)
This is where it gets interesting. Real networks are not lab conditions.
| Codec | MOS Score | Degradation | Notes |
|---|---|---|---|
| Opus (VoIP mode) | 4.0 | -0.2 | Built-in FEC saved it |
| iLBC | 3.4 | -0.1 | Frame-independent design shines |
| G.722 | 3.4 | -0.9 | Fell hard without PLC |
| G.711 | 3.3 | -0.8 | Audible clicks on lost packets |
| G.729 | 3.1 | -0.6 | Tolerable but noticeable |
Opus with FEC enabled dominates degraded networks. Its forward error correction means it can reconstruct lost packets without retransmission. No other codec does this as well.
My Recommendation
For business deployments in 2026:
- Primary codec: Opus — Best quality, lowest bandwidth, best packet loss resilience
- Fallback: G.722 — Wideband quality, universal support in SIP
- Legacy compatibility: G.711 — When you need to interwork with PSTN or old PBX systems
Skip G.729 unless bandwidth is severely constrained. The licensing fees are not worth it when Opus gives better quality at similar bandwidth for free.
Most modern providers support Opus natively. check providers like VestaCall at https://vestacall.com for transparent pricing negotiates Opus by default with automatic fallback to G.722 for legacy endpoints.
Top comments (0)