A "Conflict" Response Code for the Session Initiation Protocol (SIP)
dynamicsoft
5100 Tennyson Pkwy
Suite 1200
Plano TX 75024
US
adam@dynamicsoft.com
Transport
This document proposes an addition of a
"409 Conflict" response code for the Session Initiation
protocol. This response code is required for a number
of application-specific purposes, and is expected to be
useful in future extensions to the protocol.
The first published version of SIP, RFC 2543, included
a "409 Conflict" response code borrowed from HTTP/1.1
. When copied into SIP, however,
this response code was unfortunately defined to apply
to an extremely narrow use case. This single use case
was subsequently deprecated by RFC 3261
; seeing no further
use for the 409 response code, the authors elected to
removed it at the same time.
Operational experience has demonstrated that various
specialized applications occasionally encounter
circumstances in which a request cannot be processed
because doing so would result in an inconsistent or
disallowed state. This document seeks to reinstate
the 409 response code in a more general form
so that such situations can be accurately signalled
to UACs.
The 409 response is added to the "Client-Error" header
field definition. "409 Conflict" is used to indicate that
the request could not be completed due to a conflict with the current
state of the resource. This code is only allowed in situations where
it is expected that the user might be able to resolve the conflict
and resubmit the request.
Conflicts are most likely to occur in response to requests
that create state in the network, such as REGISTER and
SUBSCRIBE. The circumstances under which a 409 response
code is returned are expected to be highly dependent on the
application that the UAS provides.
It should be noted that section 8.1.3.2 of RFC 3261
defines UAC behavior upon
receipt of an unrecognized response code. Under the
behavior specified therein, a 409 response will be
treated by a client that does not understand it as
if it were a "400 Bad Request" response. The semantics
defined for that response indicate that the UAC should
not retry the same request without modification, which
is generally a reasonable course of action to take in
the case of a conflict.
It is not beleived that the addition of the described 409
response code
has the ability to reveal sensitive information or provide
any additional avenues for attack.
This document defines an additional SIP response code, which
is to be added to the method and response-code sub-registry under
http://www.iana.org/assignments/sip-parameters.
Response Code Number: 409
Default Reason Phrase: Conflict
SIP: Session Initiation Protocol
Hypertext Transfer Protocol -- HTTP/1.1
University of California, Irvine, Information and Computer Science
Irvine
CA
92697-3425
US
+1 949 824 1715
fielding@ics.uci.edu
World Wide Web Consortium, MIT Laboratory for Computer Science
545 Technology Square
Cambridge
MA
02139
US
+1 617 258 8682
jg@w3.org
Compaq Computer Corporation, Western Research Laboratory
250 University Avenue
Palo Alto
CA
94301
US
mogul@wrl.dec.com
World Wide Web Consortium, MIT Laboratory for Computer Science
545 Technology Square
Cambridge
MA
02139
US
+1 617 258 8682
frystyk@w3.org
Xerox Corporation
3333 Coyote Hill Road
Palo Alto
CA
94034
US
masinter@parc.xerox.com
Microsoft Corporation
1 Microsoft Way
Redmond
WA
98052
US
paulle@microsoft.com
World Wide Web Consortium, MIT Laboratory for Computer Science
545 Technology Square
Cambridge
MA
02139
US
+1 617 258 8682
timbl@w3.org
The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. It is a generic, stateless, protocol which can be used for many tasks beyond its use for hypertext, such as name servers and distributed object management systems, through extension of its request methods, error codes and headers. A feature of HTTP is the typing and negotiation of data representation, allowing systems to be built independently of the data being transferred.
HTTP has been in use by the World-Wide Web global information initiative since 1990. This specification defines the protocol referred to as "HTTP/1.1", and is an update to RFC 2068.