SIP 301 Moved Permanently vs 412 Conditional Request Failed
SIP 301 (Moved Permanently) is a 3xx Redirection response, while 412 (Conditional Request Failed) is a 4xx Client Failure response. 301 indicates that the user can no longer be found at the address in the Request-URI. The client should direct future requests to the new address in the Contact header. In contrast, 412 means that the precondition given in the request was not met. Used with SIP event state publication (RFC 3903).
Description
The user can no longer be found at the address in the Request-URI. The client should direct future requests to the new address in the Contact header.
When You See It
When a user has permanently changed their SIP address. All future calls should be directed to the new URI.
How to Fix
Update your address book or routing tables to use the new Contact URI provided in the response.
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
301 is a 3xx Redirection response, while 412 is a 4xx Client Failure response.
SIP 301: The user can no longer be found at the address in the Request-URI. The client should direct future requests to the new address in the Contact header.
SIP 412: The precondition given in the request was not met. Used with SIP event state publication (RFC 3903).
You encounter 301 when when a user has permanently changed their SIP address. All future calls should be directed to the new URI.
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 301 (Moved Permanently): Update your address book or routing tables to use the new Contact URI provided in the response. 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.