SIP 480

SIP 480 Temporarily Unavailable in Asterisk

A 480 says the destination exists but could not be reached right now. It is a statement about availability, not about the number being wrong, and that distinction is what separates it from a 404.

What it looks like in the log

[2026-08-17 14:47:15] VERBOSE[15024][C-00001b3e] res_pjsip_logger.c: <--- Received SIP response (688 bytes) --->
SIP/2.0 480 Temporarily Unavailable
CSeq: 102 INVITE
[2026-08-17 14:47:15] VERBOSE[15024][C-00001b3e] app_dial.c: Everyone is busy/congested at this time (1:0/0/1)

What it means

In Asterisk, a 480 most often means the registrar has no current contact for the endpoint you tried to dial. The endpoint is configured, the dialplan found it, and there is simply nowhere to send the INVITE because the device has not registered or its registration has expired. On FreePBX, this is the extension that shows as Unavail in pjsip show endpoints or under Reports → Asterisk Info.

It also appears when a device is registered but unreachable: the contact URI points at an address that no longer accepts traffic, typically because a NAT binding closed between registrations. Asterisk qualifies the contact, finds it dead, and returns a 480 rather than sending an INVITE into a black hole.

Most common causes

  1. 01The endpoint was not registered at the time of the call

    The device was off, rebooting, or its registration had lapsed. Registration state at the moment of the call is what matters, not what pjsip show endpoints reports now, which is the trap in diagnosing this after the fact.

  2. 02A NAT binding expired between registrations

    The device registered with a one-hour expiry but the router dropped the UDP mapping after two minutes of silence. Asterisk still holds a contact, sends to it, and gets nothing back. Frequent 480s on remote extensions and none on local ones is the signature.

  3. 03qualify_frequency marked the contact unreachable

    If OPTIONS pings are failing, Asterisk takes the contact out of service and returns 480 to anything dialling it, even though the device may believe it is registered.

  4. 04A provider returning 480 for an out-of-service number

    On inbound-to-carrier calls, some networks use 480 where others use 404 for a number that is provisioned but not currently in service. The response tells you about the far end's state, not your dial string.

  5. 05Do Not Disturb implemented as unavailable

    Some devices and some dialplan logic express DND as a 480 rather than a 486, which makes an intentional rejection look like an infrastructure problem.

How to tell which one it is

The useful question is what registrations existed at the timestamp on the 480, and the log answers it. Look backwards from the failed call for the last successful REGISTER from that endpoint and check whether its expiry had already passed by the time the INVITE went out.

If you find registrations arriving far more often than the configured expiry, the device is already fighting a NAT timeout, which is a strong indicator that the same timeout is what killed this call.

How to fix it

Related failures