SIP Response Code

SIP 603 Decline

6 min read  ·  Updated April 2026

SIP 603 Decline is a global failure response — it means the called party refused the call and forking branches should stop. It is widely misused: some endpoints send 603 when they should send 486 Busy Here, and some forking proxies misinterpret 603 as a hint to keep trying.

In this guide

1. What SIP 603 means

SIP 603 Decline is a 6xx-class global failure response. The 6xx class as a whole means the request cannot be completed at any location — not just at the destination contacted, but anywhere. 603 specifically means the called party explicitly declined the call.

The intent behind 603 is to tell forking proxies to stop trying. If a call is being forked to multiple endpoints (desk phone, mobile, secondary) and one of them returns 603, the proxy should cancel the other branches and propagate 603 back to the caller. Compare this to 486 Busy Here, which only stops the one branch that returned it.

In practice, 603 is one of the most misused response codes in SIP. Many endpoints and PBXes send 603 when they should send 486, and many forking proxies do not respect the global-failure semantics.

2. Global failure vs other 6xx responses

The 6xx class has four members. Each carries different semantic weight:

CodeMeaningForking effect
600 Busy EverywhereThe user is busy at all locationsStop all branches
603 DeclineThe user explicitly refused the callStop all branches
604 Does Not Exist AnywhereThe user does not exist at any locationStop all branches
606 Not AcceptableThe session description is unacceptableStop all branches

What separates 6xx from 4xx (which also includes failure responses like 486 Busy Here) is that 6xx is global. A 4xx response only describes the state of the specific endpoint that responded; the proxy may still try other branches. A 6xx response says the call should not be retried anywhere.

3. 603 vs 486 vs 487 — when each is correct

486 Busy Here

The endpoint cannot accept the call right now because it is on another call or otherwise busy. Use this when the user might be reachable on another device. The proxy may still fork to alternate destinations.

487 Request Terminated

A CANCEL arrived before the INVITE got a final response. Use this only after CANCEL is processed. It is not a rejection by the user — it is the protocol confirming that a canceled transaction was terminated.

603 Decline

The user has refused the call and does not want it to ring elsewhere. Use this when the rejection is meaningful at all locations — the user pressed reject specifically, or do-not-disturb is enabled at the user level rather than the device level.

The choice in practice

If the user has a desk phone, mobile, and tablet all ringing, and rejects the call from the desk phone, what should the desk phone send? If the rejection means “I don't want to take this call right now on any device,” 603 is correct. If the rejection means “not on this device, try my mobile,” 486 is correct. Many phones default to 603 for simplicity, even when 486 would be more appropriate.

4. 603 and forking behavior

The forking implications of 603 are why getting it right matters. Consider a typical hunt group with three endpoints:

  1. Proxy receives INVITE for extension 1001
  2. Proxy forks to desk phone, mobile, and secondary
  3. Desk phone returns 603 Decline

An RFC-compliant proxy treats this as a global failure and:

If the desk phone had returned 486 instead, the proxy would have ignored that branch and waited for mobile or secondary to answer.

This is why 603 is often called a “global reject” or “final reject” in vendor documentation. It carries weight that 486 does not.

5. Common misuses of 603

Misuse 01
Phone defaults 603 when busy
Many SIP phones send 603 by default when the user rejects a call, regardless of whether other devices for the same user might be available. This breaks hunt groups and parallel ringing — rejecting on one phone stops the call from reaching any other phone for that user.
Misuse 02
DND configured per-device
Do-not-disturb on a single device should send 486 (try elsewhere), not 603 (refuse globally). Many implementations send 603 because it makes the phone stop ringing, but it also stops the call from reaching the user's other devices.
Misuse 03
Proxy not respecting 603 global semantics
Some forking proxies treat 603 like 486 and continue trying other branches. This violates RFC 3261 but is common in PBX-to-PBX bridging and SBC chains. The result: 603 from one endpoint does not stop forking, and the call rings phones the user explicitly declined.
Misuse 04
Carrier returning 603 for blocked numbers
Some carriers return 603 when a number is blocked or out of service. While not strictly wrong (the call cannot be completed anywhere), the more accurate response is usually 404 Not Found or 410 Gone. 603 in this context can confuse upstream PBXes that expected a 4xx for invalid destinations.

6. Diagnosing 603 from a SIP trace

When 603 appears in a trace, the questions to ask are about intent and effect:

The most common production fix is reconfiguring endpoints to send 486 instead of 603 when the rejection is local rather than global. This restores expected hunt group and follow-me behavior.

Frequently asked questions

What does SIP 603 Decline mean?

SIP 603 Decline is a global failure response indicating the called party explicitly refused the call. It tells forking proxies to stop trying alternate destinations and propagate the rejection back to the caller. It differs from 486 Busy Here (which only fails one branch) by carrying global meaning across all forking branches.

What is the difference between SIP 603 and SIP 486?

SIP 486 Busy Here means the specific endpoint cannot accept the call but other endpoints might. The proxy may continue trying alternate branches. SIP 603 Decline means the user has refused the call globally — all forking branches should be canceled and the rejection propagated back to the caller. Many phones incorrectly send 603 when 486 would be more appropriate.

Why is SIP 603 stopping my hunt group from ringing other phones?

603 is a global failure response. RFC 3261 requires forking proxies to cancel all parallel branches when 603 is received. If your desk phone sends 603 when the user rejects a call, the proxy will stop ringing the mobile and secondary devices. The fix is to configure the desk phone to send 486 Busy Here for local rejections instead of 603.

603 stopping calls from forking correctly?

Paste your SIP trace into SIPSymposium. The analyzer identifies 603 vs 486 misuse, missing CANCEL propagation, and forking-related rejection patterns.

Analyze my trace Create free account
Related guides