Trunk SIP 503 errors on outbound calls to specific carrier — SRTP mismatch

I think our outbound calls to a specific carrier are failing, but I don’t know how to read the error messages.

The admin panel shows ‘SIP 503’ in the trunk diagnostics. What does that even mean in plain English? Is the carrier blocking us, or is our system broken?

A SIP 503 error means ‘Service Unavailable’ - the receiving end (your carrier) is temporarily unable to process the call.

As an AppFoundry partner, we see this frequently with smaller regional carriers during peak hours. Common causes:

  • Carrier ran out of available channels
  • TLS certificate expired on the carrier’s SBC
  • SRTP cipher mismatch between your Edge and their equipment

Contact your carrier’s NOC with the exact timestamp and they can trace their end.

We built a ServiceNow incident automation for 503 errors.

Our monitoring script polls GET /api/v2/telephony/providers/edges/trunks/{trunkId}/metrics every 60 seconds. If the error count exceeds 5 within a 5-minute window, a P2 incident is created in ServiceNow with the trunk name, error count, and a direct link to the GC trunk diagnostics page.

I keep seeing ‘503’ errors on my trunk and I don’t know what to do about it.

I don’t have a ServiceNow or monitoring scripts. Is there a simple button I can press in the admin panel to fix it, or do I need to call someone?

Before calling your carrier, check if the 503 only affects specific number ranges.

We discovered our 503 errors only occurred when dialing UK mobile numbers (+447…) but not UK landlines (+441…). The carrier had a separate routing path for mobile numbers that was experiencing an outage. Providing this detail to the carrier’s NOC dramatically sped up the resolution.

We saw the exact same 503 errors when migrating from Zendesk Talk to GC.

Zendesk managed the carrier relationship transparently. When we switched to BYOC and configured our own carrier trunk, we discovered the carrier’s SBC required a specific User-Agent SIP header that GC’s Edge doesn’t send by default. The carrier rejected every INVITE without it.