Calculate bandwidth consumption per call for common VoIP codecs including overhead.
Each VoIP call's actual network bandwidth is higher than its raw codec bitrate because every RTP packet is wrapped in UDP and IP headers, and voice is typically packetized every 20ms, meaning small packets are sent frequently, amplifying the relative header overhead. G.711 (64 kbps raw) becomes about 87.2 kbps on the wire; G.729 (8 kbps raw, using compression) becomes about 31.2 kbps — proportionally much more overhead-heavy because its payload is so small per packet. Total required bandwidth is simply the per-call bandwidth multiplied by the number of concurrent calls.
Total bandwidth required
total_bandwidth = calls × codec_bandwidth_per_call
G.729 compresses voice down to just 8 kbps of actual payload, but the IP+UDP+RTP headers (typically 40 bytes) are the same fixed size regardless of payload, so on a small 20ms packet, header bytes make up a much larger fraction of the total — pushing effective bandwidth to about 31.2 kbps, nearly 4x the raw codec rate.
Even with that overhead, G.729's total ~31.2 kbps per call is still far less than G.711's ~87.2 kbps, so it remains the better choice for bandwidth-constrained links like WAN trunks — the tradeoff is somewhat lower audio quality and the CPU cost of compression.
Opus is a modern, royalty-free codec that adapts its bitrate (roughly 6-510 kbps) based on content and network conditions, offering better quality per kbps than older codecs. It's now the default in WebRTC and many modern VoIP/video platforms.
Use a lower-bitrate codec like G.729, enable RTP header compression (cRTP) to shrink the per-packet overhead, or use a larger packetization interval (e.g. 30ms instead of 20ms) to amortize header overhead across more payload per packet — at the cost of slightly higher latency.