SIP

SIP 302 Moved Temporarily vs 412 Conditional Request Failed

SIP 302 (Moved Temporarily) is a 3xx Redirection response, while 412 (Conditional Request Failed) is a 4xx Client Failure response. 302 indicates that the callee has temporarily moved to a different address. The client should retry the request at the Contact address but continue using the original URI for future requests. In contrast, 412 means that the precondition given in the request was not met. Used with SIP event state publication (RFC 3903).

Description

The callee has temporarily moved to a different address. The client should retry the request at the Contact address but continue using the original URI for future requests.

When You See It

When a user is temporarily reachable at a different location, such as when traveling or using a different device.

How to Fix

Redirect the current call to the Contact URI provided, but keep the original URI for future requests.

Description

The precondition given in the request was not met. Used with SIP event state publication (RFC 3903).

When You See It

When a PUBLISH request includes an If-Match header with an entity tag that does not match the current state on the server.

How to Fix

Refresh the entity tag by performing a new PUBLISH without If-Match, then use the returned SIP-ETag for subsequent updates.

Key Differences

1.

302 is a 3xx Redirection response, while 412 is a 4xx Client Failure response.

2.

SIP 302: The callee has temporarily moved to a different address. The client should retry the request at the Contact address but continue using the original URI for future requests.

3.

SIP 412: The precondition given in the request was not met. Used with SIP event state publication (RFC 3903).

4.

You encounter 302 when when a user is temporarily reachable at a different location, such as when traveling or using a different device.

5.

You encounter 412 when when a PUBLISH request includes an If-Match header with an entity tag that does not match the current state on the server.

When to Use Which

For 302 (Moved Temporarily): Redirect the current call to the Contact URI provided, but keep the original URI for future requests. For 412 (Conditional Request Failed): Refresh the entity tag by performing a new PUBLISH without If-Match, then use the returned SIP-ETag for subsequent updates.

Learn More