VoIP Codec Guide: G.711, G.722, G.729, Opus, AMR

Five parallel beams of light representing G.711, G.722, G.729, Opus, and AMR VoIP codecs, each with a distinct color and thickness illustrating the differences in bandwidth and bit rate across the codec spectrum

Every VoIP call rides on a codec. Five of them carry the overwhelming majority of voice traffic on the planet, and each was designed around the constraints of the internet at the time of its creation. G.711 came out of fixed-line digital telephony and needed to fit in 56k modems. G.722 brought wideband audio to enterprise IP phones and is what the industry markets as HD Voice on the desk-phone side. G.729 was built to squeeze voice through dial-up internet. Opus arrived after 2010 and was designed for a world with fiber internet and powerful encoder and decoder capabilities, scaling from low-bandwidth chat to studio-quality streaming. AMR and EVRC are the codec families that mobile networks standardised on, first for 2G and 3G and now for VoLTE.

This is a landscape guide, not a head-to-head. The goal is to give a network architect, MSP, or service provider the mental map needed to choose a codec on each leg of a real network: which one fits where, what trade-offs come with each, how Opus changed the default, and how an SBC arbitrates when the two ends of a call cannot agree. For the deeper two-way comparison between G.711 and G.729, see the dedicated G.711 vs G.729 article. For the mechanics of converting between codecs in a live call, the SBC AMR to G.711 transcoding article goes deep on the transcoding plane.

Key Terms and Concepts
A quick-reference glossary for terms used throughout this article.
Answer-Seizure Rate (ASR)A key performance indicator used by telecom carriers and VoIP providers to measure the overall efficiency and quality of their call routing and network infrastructure.
Bit rateThe number of compressed bits per second produced by the codec for one voice channel, before any network headers are added. G.711 is fixed at 64 kbps; Opus can vary from 6 kbps to 510 kbps in the same call.
CodecThe algorithm that encodes raw voice samples into a compressed bitstream for transport over an IP network and decodes them at the far end. Controls bit rate, audio quality, latency, and CPU cost.
Codec negotiationThe SDP exchange in which two endpoints announce supported codecs in priority order and converge on a common one. When the offered lists do not overlap, the SBC must transcode or the call fails with 488 Not Acceptable Here.
FEC (Forward Error Correction)Redundant data carried in adjacent packets so a lost packet can be reconstructed without a retransmission. Opus has FEC built in; G.711 and G.729 do not.
MOS (Mean Opinion Score)A perceptual 1-to-5 quality score for speech. G.711 sits around 4.2, G.722 around 4.1, G.729 around 3.9, AMR-NB around 3.8, AMR-WB around 4.1, and Opus reaches 4.5 in wideband mode.
Narrowband, wideband, super-wideband, fullbandThe four audio bandwidth tiers used by modern codecs. G.711 and G.729 are narrowband; G.722 and AMR-WB are wideband; Opus scales across all four including fullband stereo. “HD Audio” refers to wideband.
VBR (Variable Bit Rate)A codec mode that adjusts bit rate frame by frame based on the complexity of the audio. Opus and AMR both support VBR; G.711 and G.729 are constant bit rate.
Pulse-Code Modulation (PCM)The encoding scheme that converts analog sound waves into discrete digital data by repeatedly sampling the wave’s amplitude. PCM is the raw uncompressed format that codecs encode from and decode to.
ptime (packetization time)The duration of audio carried in one RTP packet, typically 20, 30, or 40 ms. 20 ms is considered “real-time” and anything above this level is perceptible to the user. Larger ptime cuts header overhead at the cost of more lost audio per dropped packet.
Sampling rateThe number of audio samples taken per second of speech, measured in kHz. 8 kHz sampling produces narrowband audio capped around 3.4 kHz, 16 kHz produces wideband, 32 kHz super-wideband, and 48 kHz fullband.
TranscodingOn-the-fly conversion of an audio stream from one codec to another. The SBC decodes the incoming media, then re-encodes it in the destination codec for the other call leg.
VAD (Voice Activity Detection)A codec feature that stops sending packets during silence periods when there is no voice activity during a connected call. Useful on constrained links and purposefully deactivated for data exchanges including fax and some IVRs.
VoLTEVoice over LTE, the 4G mobile voice standard that runs over IMS. Default audio codec is AMR-WB, fallback AMR-NB. This is where most of today’s AMR traffic originates.

The Codec Landscape

Before comparing them, it helps to see what each codec was designed to do. The five were built in different decades for different networks, and each one’s strengths still trace back to its original design context.

G.711 is the codec the PSTN runs on. Standardised by the ITU-T in 1972, it samples speech at 8 kHz and applies a simple logarithmic compression (A-law in most of the world, µ-law in North America and Japan) to produce a steady 64 kbps stream. The encoding and decoding work is trivial, voice quality is essentially what you get from a wired phone call, and the codec carries fax tones and in-band DTMF without trouble. Nearly every SIP trunk, IP-PBX, and carrier interconnect supports G.711 natively, which is why it remains the lingua franca of VoIP forty years after it was written.

G.722 is the wideband codec the enterprise voice world settled on for HD audio. Standardised by the ITU-T in 1988, it samples at 16 kHz and uses sub-band ADPCM to deliver wideband speech (50 Hz to 7 kHz) at 48, 56, or 64 kbps, with most deployments running the 64 kbps mode. The CPU cost is trivial, the codec is royalty-free, and almost every business-class IP phone from Polycom, Cisco, Yealink, Snom, and Mitel ships with G.722 enabled by default. G.722 is what the industry brands as HD Voice on the desk-phone and enterprise SIP side. It is not fax-safe and does not carry in-band DTMF, but on a clean SIP trunk between two HD desk phones, it is the simplest way to get wideband audio without changing anything else in the stack.

G.729 is the codec corporate VoIP used in the 1990s and 2000s. Standardised in 1996 when WAN links were narrow and expensive, it samples at the same 8 kHz as G.711 but compresses each 10 ms frame down to 80 bits using CS-ACELP, a predictive vocal-tract model that delivers 8 kbps. The math is tuned for clean human voice and does not survive fax modem tones, music on hold, or in-band DTMF. G.729 patents began expiring in 2017 and the codec is now effectively royalty-free, though commercial PBX vendors often still charge per-channel licenses on the legacy revenue model.

Opus is the codec for the modern era of the internet. Standardised by the IETF in 2012 as RFC 6716, it combines two algorithms in one codec: SILK (the codec used by Skype) for speech at low to medium bit rates and CELT for music and high-bit-rate audio. Opus scales from 6 kbps narrowband mono to 510 kbps fullband stereo within a single negotiated session, includes FEC and packet-loss concealment, and is patent-free under a permissive licence. WebRTC made Opus mandatory, Microsoft Teams uses it on the client side, and most modern UCaaS and CPaaS platforms negotiate it by default. Opus does require more compute than the older codecs, which is why mobile telephony and smaller endpoint industries have been slower to adopt it.

AMR (Adaptive Multi-Rate) is the codec mobile networks standardised on. Two main variants are in use: AMR-NB at 8 kHz sampling and 4.75 to 12.2 kbps, originally introduced for GSM, and AMR-WB at 16 kHz and up to 23.85 kbps, mandatory for VoLTE on most carriers. AMR encodes speech in 20 ms frames with VBR rate adaptation, so a degrading radio link can drop to the lowest bit rate without renegotiating the call. AMR rarely appears on enterprise SIP trunks because mobile-to-IP traffic is almost always transcoded to G.711 at the mobile carrier’s media gateway or at a downstream SBC.

Comparison Matrix at a Glance

The five codecs differ on roughly ten dimensions that matter in production. The table below puts them side by side so the trade-offs are visible in one view. Numbers are typical defaults; each codec has modes and annexes that move some of the values.

Dimension G.711 G.722 G.729 Opus AMR
Sampling rate 8 kHz 16 kHz 8 kHz 8 / 12 / 16 / 24 / 48 kHz 8 kHz (NB), 16 kHz (WB)
Audio bandwidth Narrowband Wideband Narrowband Narrowband to fullband Narrowband (NB), wideband (WB)
Bit rate (payload) 64 kbps fixed 48 / 56 / 64 kbps fixed 8 kbps fixed 6 to 510 kbps VBR 4.75 to 23.85 kbps VBR
Typical MOS 4.2 4.1 (wideband) 3.9 4.5 (wideband) 3.8 (NB), 4.1 (WB)
FEC built in No No No Yes No
VAD support No (passthrough) No (PLC only) Yes (G.729b) Yes (DTX) Yes
Fax-safe Yes (with passthrough) No No No No
In-band DTMF Yes No No No No
CPU cost Trivial Trivial Modest Modest to high Modest
License status Royalty-free Royalty-free Royalty-free (since 2017) Royalty-free Royalty-bearing (3GPP)
Primary use case PSTN, SIP trunks, fax HD desk phones, enterprise wideband SIP Bandwidth-constrained WAN WebRTC, Teams, UCaaS, voice chat Mobile, VoLTE

Three things stand out in the matrix. First, only G.711 carries fax and in-band DTMF reliably; every other codec on this list requires out-of-band DTMF (RFC 4733) and T.38 for fax. Second, G.722 delivers wideband audio at the same 64 kbps wire bandwidth as G.711, which is why HD desk phones default to it on enterprise SIP without renegotiating bandwidth budgets. Third, Opus is the only codec that spans the full audio-bandwidth range in a single negotiated session (at the cost of heavier computing performance), which is why it works for both a constrained voice call and a music streaming application without changing codecs.

Wideband vs Narrowband as a First-Class Choice

The sampling-rate dimension matters more than the bit-rate dimension in most modern deployments, and it is the one that gets overlooked most often. G.711 and G.729 both sample at 8 kHz, which caps the carried audio at roughly 3.4 kHz. That is the bandwidth of a wired PSTN call and the reason traditional phone audio sounds slightly muffled compared with an in-person conversation. G.722, AMR-WB, and Opus all operate at 16 kHz or higher, doubling the carried audio bandwidth to roughly 7 kHz. The difference is immediately audible: consonants are sharper, sibilants survive intact, and the call sounds closer to a face-to-face conversation. On the enterprise SIP side, G.722 has been the wideband workhorse for over a decade; on the cloud side, Opus has taken the same role.

This matters in three places. The first is any call that bridges Microsoft Teams or WebRTC to a traditional carrier. Both Teams and browser endpoints can negotiate wideband audio on their side; the moment the call hits a G.711 SIP trunk, the wideband signal is downsampled and the listener on the cloud side hears narrowband. The second is contact centers running speech analytics. ASR accuracy climbs noticeably when the codec is wideband, so call recordings on Opus or AMR-WB are easier to transcribe from speech to text than the same calls recorded after a G.729 hop. The third is executive conferencing and HD voice services, where the wideband experience is the product itself.

The practical implication for codec policy: a deployment that already pays for wideband-capable endpoints loses the wideband experience the moment a narrowband codec enters any leg of the path. The fix is not always to upgrade every trunk to a wideband codec, but to know exactly which leg is collapsing the bandwidth and decide whether the loss is acceptable for that segment.

Codec Selection by Use Case

Choosing a codec at the platform level rarely produces the right answer. The decision belongs at the trunk-group level, sometimes at the per-call level, and the right codec depends entirely on what the call is doing and which network it traverses. The patterns below cover the cases that come up most often in production voice networks.

A greenfield SIP trunk between two modern endpoints, with bandwidth that is not the binding constraint, should default to G.711. The codec is universally supported, free of licensing, fax-safe with passthrough conditions met, and trivially cheap on CPU. If both endpoints support Opus and the platform is fully greenfield with no fax or DTMF passthrough requirement, Opus is a stronger default for the same use case because it scales to wideband when the network can carry it.

A Microsoft Teams Direct Routing deployment or a WebRTC bridge almost always means Opus on the cloud-facing leg and G.711 on the carrier-facing leg, with the SBC transcoding between them. Teams will not negotiate G.711 with the client and the PSTN carrier will not negotiate Opus, so the SBC sits in the middle and converts. Wideband audio survives on the Teams or WebRTC side; the carrier side stays narrowband. Asking either side to change its codec list rarely produces a better outcome than letting the SBC bridge the two.

A constrained WAN segment, typically a branch office on a 1 to 4 Mbps shared link where every 50 kbps of headroom matters, is still a legitimate place for G.729. The bandwidth saving is real, the perceived quality drop is manageable, and the trade-offs (fax over T.38, RFC 4733 for DTMF) are well understood. On a greenfield deployment with modern equipment and modern fiber capabilities, Opus at 16 to 24 kbps usually beats G.729 on quality at a similar wire bandwidth, with the added benefit of FEC and graceful packet loss recovery.

A mobile-to-IP path almost always involves AMR on the mobile side and G.711 on the IP side. The transcoding boundary lives at either the mobile carrier’s media gateway or at the enterprise SBC, depending on the interconnection contract. VoLTE-to-PSTN, mobile contact center, and roaming voice all fall in this pattern. The hardware DSP capacity to do AMR transcoding cleanly at scale is the practical bottleneck, which is what TSBC-HW-TRANS exists to provide.

A fax-bearing call path is the one situation where codec choice is not negotiable. CS-ACELP, SILK, and AMR all destroy T.30 modem tones. The call has to stay on G.711 end to end with passthrough conditions met (echo cancellation disabled, VAD disabled, near-zero packet loss) or switch to T.38 relay at the SBC. The Fax over IP and T.38 article covers the relay mechanics in full.

A contact center with recording, sales analytics, or ASR-driven scoring is best served by Opus on any leg the platform supports, and G.711 elsewhere. Tandem transcoding hits ASR accuracy the same way it hits human perception, so the goal is to minimise the number of codec conversions in the recorded path. The same logic applies to voice AI deployments: every transcoding hop adds latency and degrades the STT signal, so codec policy gets tuned to the AI stack’s tolerances.

Why Opus Is Reshaping the Default Stack

Opus is the first codec to seriously challenge G.722 as the default wideband codec for new VoIP deployments, and the reasons are structural rather than incremental. G.711 is not really the competitor here. It holds the narrowband, fax, and carrier-facing floor and is not going anywhere. The contest is on the wideband layer, where G.722 has been the enterprise SIP incumbent for over a decade. Opus was designed by the IETF to solve the problems WebRTC ran into when it tried to standardise real-time voice in a browser, and the same design choices give it three advantages over G.722 on greenfield deployments.

The first is range. Opus negotiates a single session that can carry anything from a 6 kbps narrowband voice channel to a 510 kbps fullband stereo music stream, and it can shift between modes mid-call without renegotiating SDP. G.722, by contrast, runs at three fixed bit rates (48, 56, 64 kbps) at a single 16 kHz sampling rate. A call on Opus that needs to drop to a low bit rate when the network degrades can do so without a re-INVITE; a G.722 call at 64 kbps stays at 64 kbps until the call ends.

The second is built-in resilience. Opus carries Forward Error Correction in adjacent packets, so a lost packet can be reconstructed from the next one rather than retransmitted or concealed with silence. G.722 has only basic packet-loss concealment, no FEC, no DTX. On a network that loses 2 to 3 percent of its packets, Opus still sounds intelligible where G.722 starts to develop audible artefacts and where G.729 cracks outright.

The third is ubiquity in modern endpoints. WebRTC made Opus mandatory, every browser ships with it, Microsoft Teams uses it on the client side, Zoom uses an Opus variant, and Discord, Slack huddles, Google Meet, and almost every consumer voice and video application have Opus in their codec list. G.722 has essentially never left the enterprise IP-phone world. The result is that Opus is the natural wideband codec for any deployment whose endpoints include browsers, soft clients, or UCaaS users alongside traditional desk phones, which today is most of them.

The reason Opus has not yet swept the wideband layer wholesale is interop, not technology. Carriers, PBX vendors, and SBC products have all been built around G.711, G.722, and G.729 for decades; adding Opus to a carrier’s offered codec list is a contractual and operational change as much as a technical one. G.722 still wins by default on a clean SIP trunk between two HD desk phones because both sides already speak it and no transcoding is required. Opus is now starting to displace G.722 on greenfield deployments where both endpoints negotiate it, and on hybrid deployments that bridge enterprise SIP into Teams, WebRTC, or a UCaaS platform. The bridge between the Opus-native world (browsers, Teams, UCaaS) and the G.711 / G.722-native world (carriers, PBX, HD desk phones, fax) is exactly where the SBC sits, and Opus-to-G.711 transcoding is now one of the most common codec conversions in production. ProSBC supports Opus transcoding through TSBC-HW-TRANS today.

Negotiating Codecs Across Vendor Boundaries

Picking a codec for each leg is one decision. Getting the two ends of a call to actually use the codec you chose is another. Codec negotiation happens in the SDP body of the SIP INVITE and 200 OK, where each side advertises its supported codecs in priority order and the call converges on the highest-priority overlap. When the lists are asymmetric, the SBC has three options: rewrite the offered codec list on one leg so a match exists, transcode in the middle, or fail the call with 488 Not Acceptable Here.

The first option, SDP codec list rewriting, is the cheapest. If a North American carrier offers G.711 µ-law first and a European customer’s PBX prefers G.711 A-law, the SBC can reorder or trim the offered list per leg so both sides see a codec they accept. No transcoding hardware is involved. This is how most G.711 A-law to µ-law interop runs in production, and the SBC behaves the same way for any audio-path asymmetry where the inbound and outbound legs disagree on the preferred codec.

The second option, transcoding, is what every Opus-to-G.711 bridge ultimately becomes. The SBC decodes the incoming media to raw PCM, re-encodes it in the destination codec, and forwards the result with new RTP timestamps and a new payload type. Software transcoding inside the SBC covers the simple cases (G.711 A-law to µ-law, G.711 ptime conversion); hardware DSP transcoding handles the complex codecs at carrier scale. The transcoding plane mechanics, including how a B2BUA SBC handles the SDP handshake and re-INVITE flows, are covered in detail in the SBC AMR to G.711 transcoding article.

The third option, failing the call, is a configuration decision. Some operators prefer to reject calls that would require an unwanted codec conversion (for cost, quality, or compliance reasons) rather than silently transcode. The SBC enforces this through per-NAP codec policy: each trunk group carries its own preferred-codec list, fallback list, and “transcode if no match” flag, all enforced at the boundary without either endpoint needing to know what the other is doing. That per-leg, per-trunk codec policy is the operational unit of codec management on a real network.

The Cost of Transcoding

Transcoding is the lever that makes mixed-codec networks work, and it carries three costs that need to be sized at design time. None of them are dealbreakers, but ignoring them produces networks that sound worse than they should.

The first cost is voice quality. Every transcoding hop applies a lossy round trip through PCM, and the MOS drops at each conversion. A single G.711-to-Opus-to-G.711 path picks up a few tenths of a MOS point of degradation, and a call that crosses two transcoding boundaries can land below either codec’s headline MOS. The architectural goal is to minimise the number of codec conversions in the routed path, not to optimise each leg in isolation.

The table below puts each codec on the lossy-versus-lossless and narrowband-versus-fullband spectrum so the quality picture is visible in one view.

Codec Type Bandwidth
FLAC / PCM Lossless Fullband
G.711 Lossy (mild) Narrowband (8 kHz)
G.722 Lossy (mild) Wideband (16 kHz)
G.729 Lossy (aggressive) Narrowband
Opus Lossy (perceptual) Up to fullband

The second cost is latency. Each transcoding step adds roughly 20 ms of frame-buffered processing per direction. On a single-hop bridge this is invisible; on a path that already runs near the conversational latency budget (mobile to AI agent, intercontinental SIP trunk, satellite backhaul), an extra transcoding hop can push the conversation into perceptible delay territory.

The third cost is hardware capacity. Software transcoding for narrowband G.711 variants runs on commodity CPU at high density. At carrier scale today, complex-codec transcoding lives on hardware DSP boards because predictable per-channel latency matters more than peak throughput. ProSBC pairs with TSBC-HW-TRANS for that role, with up to 2,744 sessions per 1U enclosure and stacking to 30,000 sessions.

Frequently Asked Questions

Which of these five codecs gives the best voice quality?

Opus in wideband mode, by a clear margin. Its MOS of around 4.5 sits above G.711’s 4.2, G.722’s and AMR-WB’s 4.1, G.729’s 3.9, and AMR-NB’s 3.8. The catch is that Opus only wins when both endpoints negotiate it and the network carries it end to end. A call that bridges to a G.711 SIP trunk falls back to narrowband regardless of what the Opus endpoint can do.

Why is Opus rarely seen on traditional SIP trunks despite being technically superior?

Two reasons. The first is legacy: carrier infrastructure, contractual codec lists, and PBX systems were all built around G.711 and G.729 long before Opus existed, and adding Opus to a carrier’s offered codec list is an operational, billing, and interop project rather than a code change. The second, and the more interesting one, is that the SIP-trunk world that wanted wideband audio did not wait for Opus to arrive. It standardised on G.722 instead, more than a decade ago. G.722 is royalty-free, ships enabled by default on every business-class IP phone, runs at the same 64 kbps as G.711 (so it fits the existing bandwidth budget without renegotiation), and needs no new transcoding hardware to interop with anything on a typical enterprise SIP trunk. Opus is technically superior, with better FEC, a full bandwidth range, and lower bit rates at the same quality, but those advantages do not show up on a clean SIP trunk between two HD desk phones, which is exactly the scenario G.722 was designed for. Opus has won the cloud-native side of the network (browsers, Teams, UCaaS, CPaaS) because that side had no incumbent wideband codec; the enterprise SIP side already did.

Is AMR ever something I need to support directly outside mobile networks?

In most enterprise voice networks, no. Mobile carriers transcode AMR to G.711 at their media gateway before handing the call off to the IP world, so the AMR codec never reaches a typical enterprise SIP trunk. The exceptions are service providers running mobile interconnect themselves, MSPs serving mobile-heavy verticals, and any deployment that exposes a SIP interface directly into VoLTE or an IMS core. For those use cases, AMR-NB and AMR-WB transcoding capacity is a real planning item, and the transcoding usually lives on hardware DSP today.

When does codec choice actually matter versus when is it operationally irrelevant?

It matters in the context of CPU constraints, when fax or DTMF is in the path, when the call recording or ASR pipeline downstream is sensitive to compression artifacts, or when the call crosses a wideband-capable platform (Teams, WebRTC) into a narrowband carrier. It is operationally irrelevant on a well-provisioned modern LAN or a dedicated SIP trunk that comfortably carries the call load, where the difference between 87 kbps and 31 kbps per call is invisible.

Will Opus eventually replace G.722, G.729, and AMR as the default VoIP codec?

Yes, the industry is slowly converging towards this outcome. On the carrier and PSTN side, replacement will be slow because the codec is embedded in interconnection contracts, hardware DSP boards, PBX licensing terms, and fax interop requirements. The realistic long-term picture is two default codecs coexisting: Opus everywhere a modern stack negotiates it, G.711 everywhere a traditional carrier or fax-bearing path is involved, and an SBC bridging between the two.

Conclusion

The five codecs that cover almost all VoIP traffic each occupy a clear lane. G.711 remains the default for fixed-line, fax-bearing, and carrier-facing legs. G.722 is the wideband incumbent on the enterprise SIP side, especially between HD desk phones where both sides already speak it. G.729 still earns its place on bandwidth-constrained segments and legacy interconnects, with patents expired and licensing simplified. Opus has become the default on the cloud-native side, from WebRTC to Teams to mobile UCaaS, and its flexibility, FEC, and royalty-free status make it the strongest candidate for new greenfield deployments with high CPU capabilities. AMR carries the mobile world from 2G handsets through VoLTE, but rarely surfaces on enterprise SIP trunks because mobile carriers transcode at the media gateway. The operational question is rarely which single codec to standardise on; it is how to set codec policy per leg, where the SBC enforces it, and how to keep the number of transcoding hops as low as the topology allows.

Set Codec Policy Per Leg with ProSBC

ProSBC handles SIP signaling, B2BUA media control, per-NAP codec negotiation, and the SDP rewriting that lets a single SBC bridge G.711, G.722, G.729, Opus, and AMR across any combination of carriers, PBX systems, mobile interconnects, and UCaaS platforms. For G.711 A-law to µ-law conversion and ptime alignment, ProSBC transcodes natively in software with no external hardware required. For G.729, Opus, AMR, and the full set of complex codecs at carrier scale, ProSBC pairs with TSBC-HW-TRANS, a hardware transcoding unit supporting up to 2,744 sessions per 1U enclosure and stacking to 30,000 sessions.

ProSBC itself runs on VMware, KVM, AWS, Azure, or bare metal, and integrates with the transcoding unit over the same management plane. The codec policy you set on each trunk group is what your network actually does on the wire.

Prefer to evaluate on your own first? Start your 30-day free trial.