D DigitalCallers
ENGINEERING Multi-trunk SIP failover: how we handle 486 Busy and 429 Rate-limit. L DigitalCallers
← All posts

Engineering · 5 min read

Multi-trunk SIP failover: how we handle 486 Busy and 429 Rate-limit.

Real calling networks are messy. Carriers rate-limit. Trunks return 486. Our infrastructure assumes failure.

The Indian SIP carrier landscape is improving but still flaky. our SIP carrier is our primary; it’s reliable enough for production, but on a heavy day it returns occasional 486 Busy or 429 Rate-limit responses. Without failover, those calls just don’t happen.

Our handler catches the 486/429 response, marks the trunk as in-cooldown for 60 seconds, and dispatches the call on a backup trunk. The whole retry takes about 2 seconds end-to-end. The customer sees their call connect normally; the dispatch log shows the trunk-shift event for our ops team.

Dispatch INVITE pacing

Even with a healthy trunk, sending 50 INVITEs in the same second triggers carrier-level throttling. Our dispatcher staggers INVITEs across the second using a token-bucket pattern — at most N INVITEs per second per trunk, with the cap configurable. Carriers stop seeing us as a bursty load.

The combination — multi-trunk failover plus dispatch pacing — drove our connect rate from 51 % to 62 % across the 12,400-call sample we measured in April-May 2026.

Want to see how this works on your business?

Book a 20-min demo →