Reduce VoIP Latency on International Calls: What You Can Fix
To reduce VoIP latency on international calls, measure the delay first, then fix codec, ptime, jitter buffer, trunk location and local queuing. Distance sets a floor you cannot change. Keep one-way delay under 150 ms where physics allows.
- ITU-T G.114 treats under 150 ms one-way as good, 150 to 400 ms as acceptable with impairment, and over 400 ms as unacceptable.
- Light in fibre costs about 5 ms per 1000 km one-way, and real cable routes are longer than the great-circle distance.
- Local fixes (codec, ptime, jitter buffer, bufferbloat, Wi-Fi) usually save 10 to 50 ms, not 150 ms.
- A trunk with an SBC in your country and termination near the destination avoids tromboning, which is the biggest fix a provider change can deliver.
- Measure RTT to the provider's SBC with mtr and analyse RTP in Wireshark or sngrep before changing anything.
How much one-way delay is acceptable on a VoIP call?
ITU-T G.114 gives the planning numbers. Under 150 ms one-way is good for most conversations, 150 to 400 ms is acceptable but degraded, and above 400 ms is unacceptable for general use. These figures are mouth-to-ear, so they include codec, jitter buffer, handset and every network leg.
Talk-over becomes noticeable around 200 to 250 ms one-way. Both people start speaking during a pause, each hears the other late, and both stop and restart. That is why users describe the problem as interruptions rather than as lag.
Echo is a separate and stricter problem. Echo is bothersome above about 25 ms one-way delay if it is not cancelled, so a call can sound far worse than its delay alone suggests.
What is the physics floor for international routes?
Light in fibre travels about 200,000 km/s, which is roughly 5 ms per 1000 km one-way. Subsea cables do not follow great-circle paths, so real routes are often 20 to 50 percent longer. Europe to Australia or US West to Asia therefore costs 120 to 170 ms before any equipment touches the audio.
Satellite links add roughly 250 to 600 ms depending on orbit and hops. If a wholesale route uses one, no local tuning rescues it.
The table shows an illustrative one-way budget. Figures are planning estimates, not measurements of any provider. The G.711 totals are the sums of the rows above them.
| Component | US to India (ms) | UK to Australia (ms) | Notes |
|---|---|---|---|
| Codec algorithmic delay (G.711 / G.729 / Opus) | 0.125 / 15 / 5-26.5 | 0.125 / 15 / 5-26.5 | Opus depends on frame size |
| Packetization (ptime 20 ms) | 20 | 20 | 30 or 40 ms adds 10 to 20 ms |
| Propagation over cable | 110-150 | 120-160 | Route longer than map distance |
| Carrier and SBC processing | 5-20 | 5-20 | Each extra hop adds more |
| Jitter buffer (far end plus yours) | 20-80 | 20-80 | Adaptive buffers grow on jitter |
| Mobile or PSTN termination | 10-40 | 10-40 | Mobile networks add most |
| Typical total (G.711) | about 165-310 | about 175-320 | Above 150 ms is expected |
How do I measure where the delay comes from?
Ping to a website says little, because it does not follow the RTP path or the provider's SBC. Test the actual signalling and media addresses, and treat one-way as roughly half of RTT, noting that routes can be asymmetric.
- Find the provider's SBC IP with pjsip show endpoints or the trunk host, then run mtr to it.
- Compare RTT to the provider edge with the total call delay. If the edge is 10 ms and the far end feels like 300 ms, the delay is beyond your network.
- Capture a call with sngrep or tcpdump and open the RTP stream analysis in Wireshark (Telephony, RTP, RTP Streams). Read jitter, max delta and packet loss.
- Place a test call to an echo or loopback number at the destination and listen to your own delayed voice. Time the gap between speaking and hearing it, which approximates round trip.
- Repeat at different hours. Congestion that appears only in the evening points to peering or transit, not codec.
mtr -rwzc 100 sbc.provider.example
asterisk -rx "pjsip show endpoints"
asterisk -rx "rtp set debug on"
asterisk -rx "core show channel PJSIP/trunk-0000001a"
sngrep -d eth0 port 5060
tcpdump -i eth0 -w call.pcap udp portrange 10000-20000Which Asterisk and PJSIP settings reduce VoIP latency on international calls?
Keep one codec end to end. Every transcode adds algorithmic delay, buffering and often a quality drop. G.711 passes through with almost no added delay, and G.729 or Opus in a transcoding chain add delay at each conversion.
Restrict offered codecs and avoid stacking jitter buffers. Phone, PBX and carrier each running an adaptive buffer can add 100 ms or more combined.
Packetization is negotiated, not set in rtp.conf. The packet interval travels in SDP as a=ptime:20, and PJSIP endpoints have no ptime option. Set 20 ms on the phones (their provisioning or codec settings) and in the carrier's trunk profile, then confirm the negotiated value in the INVITE and 200 OK SDP with sngrep or a SIP trace.
Use direct media only where safe, since it removes the PBX from the media path but fails behind NAT in many setups. Avoid chaining PBXs or cloud proxies that relay audio.
; pjsip.conf
[trunk-intl]
type=endpoint
disallow=all
allow=ulaw
allow=alaw
direct_media=no
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
dtmf_mode=rfc4733
media_address=203.0.113.10
; ptime is not a pjsip.conf or rtp.conf option. It is negotiated in SDP (a=ptime:20).
; Set 20 ms on the phones and in the carrier's trunk profile,
; then confirm a=ptime:20 in the INVITE and 200 OK with sngrep or a SIP trace.
; Asterisk jitter buffer only if enabled (channel level)
; jbenable=yes
; jbimpl=adaptive
; jbmaxsize=100
; jbresyncthreshold=1000Which local network fixes help, and how much do they save?
Local fixes typically save 10 to 50 ms. Bufferbloat is the biggest: a saturated WAN uplink can queue hundreds of milliseconds ahead of voice packets. Enable SQM with fq_codel or cake on the router, set shaping slightly below the real uplink rate, and mark RTP as DSCP EF (46) and SIP as CS3.
Use wired Ethernet for desk phones. Wi-Fi power save and retries add variable delay. VPN and SD-WAN tunnels add encapsulation and sometimes a detour through a hub, so exempt voice or use a tunnel with a local breakout.
Check ISP peering with mtr. A route that leaves your country to reach a provider in the same country is a peering issue, and a different ISP or transit often removes tens of milliseconds.
| Symptom | Likely cause | Fix |
|---|---|---|
| Delay grows during uploads | Bufferbloat on WAN uplink | SQM fq_codel or cake, shape to 90-95 percent |
| Variable delay on handsets | Wi-Fi retries and power save | Wired Ethernet, separate voice VLAN |
| Higher delay only via tunnel | VPN or SD-WAN hub detour | Local breakout for voice |
| High RTT to provider edge | Poor peering or distant PoP | Different ISP, closer SBC |
| Voice repeats own words | Acoustic or hybrid echo | Enable echo cancellation, check PSTN leg |
What can only a provider or route change fix?
Choose a SIP trunk with an SBC in your country and carrier-grade termination near the destination. A distant trunk may hairpin calls through another continent, called tromboning, which can double the propagation cost. Ask for PoP locations and the route's termination city, then run trial calls to the target country at different hours.
The cheapest grey-route wholesale often uses extra hops, transcoding or even satellite. Low price on international minutes is a warning sign when delay matters.
Some delay is not yours to fix: distance, cable route, the far-end carrier, mobile network delay, the far-end jitter buffer and the handset. Mitigate with user habits such as pausing before replying and using a headset, and tune echo cancellation, because echo makes delay feel worse.
Routing paths matter too. BGP can send traffic by a longer path, and asymmetric routes mean forward and return delays differ. Run mtr from both ends, and consider a provider with a private backbone, different upstream transit or premium SD-WAN transit.
Common questions
Why do international VoIP calls have talk-over?
Once one-way delay passes about 200 to 250 ms, both speakers start in the same silence and only hear each other later. Long routes, jitter buffers and mobile legs add up past that point.
Is G.729 better than G.711 for international latency?
No for delay. G.729 adds about 15 ms of algorithmic delay and gets worse in a transcoding chain, while G.711 adds about 0.125 ms. G.729 only saves bandwidth.
Does Opus reduce latency?
Opus can use frames from 5 to 26.5 ms of algorithmic delay, so it can be low, but it only helps if used end to end without transcoding. Mixed with G.711 legs it adds conversion delay.
Is 300 ms one-way delay usable?
Yes, within G.114's acceptable-with-impairment band, but talk-over will be noticeable. Calls to far destinations often sit here even on good routes.
How do I tell echo from latency?
Echo is hearing your own voice back, while latency is a pause before the other person responds. Enable echo cancellation on gateways and check the PSTN hybrid when echo appears.