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.