The codec’s advertised bit rate is not what a call uses on the wire. Every voice packet carries IP, UDP and RTP headers, and at the usual 50 packets per second those headers cost as much as a low-bit-rate codec itself. This guide gives real VoIP codec bandwidth figures per call, explains where the overhead comes from, and shows how to size an office connection so calls stay clear when the line is busy.
Short answer: With 20 ms packets, one call direction needs about 80 kbps for G.711 or G.722, 24 kbps for G.729 and roughly 40 kbps for Opus at 24 kbps, measured at the IP layer. Add about 7 kbps for Ethernet, 4 kbps for SRTP and around 24 kbps if the call crosses a WireGuard or IPsec tunnel. Multiply by concurrent calls, add 20% headroom, and remember the figure applies to upload and download separately.
Table of Contents
Per-call figures
| Codec | Payload rate | Packet interval | IP / UDP / RTP per direction | With Ethernet | Typical use |
|---|---|---|---|---|---|
| G.711 (µ-law / A-law) | 64 kbps | 20 ms | 80 kbps | 87.2 kbps | Trunks, LAN, best compatibility |
| G.722 (HD voice) | 64 kbps | 20 ms | 80 kbps | 87.2 kbps | Desk phones, wideband internal calls |
| G.729 | 8 kbps | 20 ms | 24 kbps | 31.2 kbps | Low-bandwidth branch links |
| iLBC | 13.33 kbps | 30 ms | 24 kbps | 28.8 kbps | Lossy links |
| Opus (voice, 24 kbps) | 6 to 40 kbps, adaptive | 20 ms | about 40 kbps | about 47 kbps | WebRTC apps and softphones |
Where the overhead comes from
Each packet carries 20 bytes of IPv4 header, 8 bytes of UDP and 12 bytes of RTP, 40 bytes in total. At 50 packets per second that is 40 Ă— 8 Ă— 50 = 16 kbps on top of the codec, whatever the codec. IPv6 adds another 20 bytes per packet, or 8 kbps. Ethernet framing adds 18 bytes, which is 7.2 kbps. The same arithmetic explains why 30 ms packets save bandwidth: fewer packets per second means less header overhead, at the cost of slightly more delay.
# bandwidth per direction in kbps
# (payload_bytes + 40) * 8 * packets_per_second / 1000
# G.711, 20 ms: (160 + 40) * 8 * 50 / 1000 = 80
# G.729, 20 ms: (20 + 40) * 8 * 50 / 1000 = 24
Encryption and VPN overhead
SRTP with the common HMAC-SHA1-80 authentication tag adds 10 bytes per packet, about 4 kbps. Carrying calls over a site-to-site tunnel costs far more: WireGuard adds 60 bytes per IPv4 packet, which is 24 kbps per call direction at 50 packets per second, and IPsec in tunnel mode with NAT traversal is similar or slightly higher. That can turn a G.729 call into a 50 kbps stream, so check the tunnel MTU and overhead as well; the VPN MTU fragmentation guide covers that.
Sizing a connection
Voice is symmetric, so size upload and download separately using the busiest hour’s concurrent calls:
required_kbps = concurrent_calls * per_call_kbps * 1.2
# 15 calls on G.711 over Ethernet: 15 * 87.2 * 1.2 = about 1.6 Mbps each way
# 15 calls on G.729: 15 * 31.2 * 1.2 = about 0.6 Mbps each way
Bandwidth is rarely the real limit on modern fibre; queueing is. A large upload saturating the line adds delay and jitter to every call, so give voice priority with QoS on the edge router (DSCP EF for RTP, CS3 or AF31 for SIP) and shape total upload slightly below the line rate so the router, not the ISP, controls the queue. You can do the maths for your own numbers with the free VoIP bandwidth calculator on srvScripts.
Which codec to choose
Use G.711 on SIP trunks and anywhere bandwidth is plentiful: it needs no transcoding and every provider supports it. Use G.722 or Opus between internal phones and softphones for clearer wideband audio. Keep G.729 for constrained links only, because transcoding between G.729 and other codecs costs CPU on the PBX and slightly reduces quality. Avoid transcoding in general by making the codec order the same on phones, PBX and trunk.
VoIP codec bandwidth at a glance

Official documentation: RFC 3550: RTP, RFC 6716: Opus codec, ITU-T G.711.
Related guides: VoIP call quality: jitter, packet loss and MOS · VPN MTU fragmentation · SIP ports firewall rules.
Frequently asked questions
Does a VoIP call use the same bandwidth in both directions?
Yes, a normal two-party call sends a stream each way at the same rate, so size upload and download separately. Upload is usually the constraint on asymmetric connections such as ADSL or cable.
How many calls can a 10 Mbps connection carry?
In theory over 100 G.711 calls each way, but in practice keep voice under about half the upload capacity unless QoS is in place, because other traffic will cause jitter long before the line is full.
Is Opus better than G.711 for call quality?
For internal and app calls Opus usually sounds better because it is wideband and copes well with packet loss. On the path to the public phone network the call is converted to G.711 anyway, so the gain is mainly for internal and app-to-app calls.