draft-ietf-sip-reason-00.txt   draft-ietf-sip-reason-01.txt 
Internet Engineering Task Force SIP WG Internet Engineering Task Force SIP WG
Internet Draft H. Schulzrinne Internet Draft H. Schulzrinne
Columbia University Columbia University
D. Oran D. Oran
Cisco Cisco
G. Camarillo G. Camarillo
Ericsson Ericsson
draft-ietf-sip-reason-00.txt draft-ietf-sip-reason-01.txt
April 23, 2002 May 14, 2002
Expires: August 2002 Expires: August 2002
The Reason Header Field for the Session Initiation Protocol The Reason Header Field for the Session Initiation Protocol
STATUS OF THIS MEMO STATUS OF THIS MEMO
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
skipping to change at page 2, line 19 skipping to change at page 2, line 19
2 The Reason Request Header Field ..................... 3 2 The Reason Request Header Field ..................... 3
3 Examples ............................................ 5 3 Examples ............................................ 5
3.1 Call Completed Elsewhere ............................ 5 3.1 Call Completed Elsewhere ............................ 5
3.2 Refusing an Offer that Comes in a Response .......... 5 3.2 Refusing an Offer that Comes in a Response .......... 5
3.3 Third Party Call Control ............................ 5 3.3 Third Party Call Control ............................ 5
3.4 ISUP interworking ................................... 6 3.4 ISUP interworking ................................... 6
4 IANA Considerations ................................. 6 4 IANA Considerations ................................. 6
5 Security Considerations ............................. 7 5 Security Considerations ............................. 7
6 Acknowledgments ..................................... 7 6 Acknowledgments ..................................... 7
7 Authors' Addresses .................................. 7 7 Authors' Addresses .................................. 7
8 Bibliography ........................................ 7 8 Normative References ................................ 7
1 Introduction 1 Introduction
The same SIP [1] request can be issued for a variety of reasons. For The same SIP [1] request can be issued for a variety of reasons. For
example, a SIP CANCEL request can be issued if the call has completed example, a SIP CANCEL request can be issued if the call has completed
on another branch or was abandoned before answer. While the protocol on another branch or was abandoned before answer. While the protocol
and system behavior is the same in both cases, namely, alerting will and system behavior is the same in both cases, namely, alerting will
cease, the user interface may well differ. In the second case, the cease, the user interface may well differ. In the second case, the
call may be logged as a missed call, while this would not be call may be logged as a missed call, while this would not be
appropriate if the call was picked up elsewhere. appropriate if the call was picked up elsewhere.
skipping to change at page 3, line 25 skipping to change at page 3, line 25
Third party call controllers sometimes generate a SIP request upon Third party call controllers sometimes generate a SIP request upon
reception of a SIP response from another dialog. Gateways generate reception of a SIP response from another dialog. Gateways generate
SIP requests after receiving messages from a different protocol than SIP requests after receiving messages from a different protocol than
SIP. In both cases the client may be interested in knowing what SIP. In both cases the client may be interested in knowing what
triggered the SIP request. triggered the SIP request.
SIP responses already have a means of informing the user of why a SIP responses already have a means of informing the user of why a
request failed. The simple mechanism in this draft accomplishes request failed. The simple mechanism in this draft accomplishes
something roughly similar for requests. something roughly similar for requests.
When an INVITE is rejected, not because the call is declined, but An INVITE can sometimes be rejected not because the session
because some aspect of the request was not acceptable, if the INVITE initiation was declined, but because some aspect of the request was
was forked, the error response is not forwarded towards the UAC by not acceptable. If the INVITE forked and resulted in a rejection, the
the forking proxy. This problem is known as the "Heterogeneous Error error response may never be forwarded to the client unless all the
Response Forking Problem", or HERFP. The header field defined in this other branches also reject the request. This problem is known as the
draft allows encapsulating the final error response in a 155 (Update "Heterogeneous Error Response Forking Problem", or HERFP. The header
Requested) provisional response [2]. field defined in this draft allows encapsulating the final error
response in a 155 (Update Requested) provisional response [2].
Initially, the Reason header field defined here appears to be most Initially, the Reason header field defined here appears to be most
useful for BYE and CANCEL requests, but it can appear in any request useful for BYE and CANCEL requests, but it can appear in any request
and in 155 (Update Requested) responses. within a dialog, in any CANCEL request and in 155 (Update Requested)
responses.
When used in requests, clients and servers are free to ignore this When used in requests, clients and servers are free to ignore this
header field. It has no impact on protocol processing. header field. It has no impact on protocol processing.
1.1 Terminology 1.1 Terminology
In this document, the key words "MUST", "MUST NOT", "REQUIRED", In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" are to be interpreted as described in RFC 2119 [3] and and "OPTIONAL" are to be interpreted as described in RFC 2119 [3] and
indicate requirement levels for compliant SIP implementations. indicate requirement levels for compliant SIP implementations.
2 The Reason Request Header Field 2 The Reason Request Header Field
The Reason header field can appear in any request and in 155 (Update The Reason header field can appear in any request within a dialog, in
Requested) responses. The syntax of the header field follows the any CANCEL request and in 155 (Update Requested) responses. The
standard SIP parameter syntax. syntax of the header field follows the standard SIP parameter syntax.
Reason = "Reason" HCOLON protocol *(SEMI reason-params) Reason = "Reason" HCOLON reason-value *(COMMA reason-value)
Protocol = SIP / Q.850 / token reason-value = protocol *(SEMI reason-params)
protocol = SIP / Q.850 / token
reason-params = protocol-cause / reason-text reason-params = protocol-cause / reason-text
/ reason-extension / reason-extension
protocol-cause = "cause" EQUAL cause protocol-cause = "cause" EQUAL cause
cause = 1*DIGIT cause = 1*DIGIT
reason-text = "text" EQUAL quoted-string reason-text = "text" EQUAL quoted-string
reason-extension = generic-param reason-extension = generic-param
The following values for the protocol field have been defined: The following values for the protocol field have been defined:
SIP/2.0: The cause parameter contains a SIP status code. SIP: The cause parameter contains a SIP status code.
Q.850: The cause parameter contains an ITU-T Q.850 cause value Q.850: The cause parameter contains an ITU-T Q.850 cause value
in decimal representation. in decimal representation.
Examples are: Examples are:
Reason: SIP ;cause=200 ;text="Call completed elsewhere" Reason: SIP ;cause=200 ;text="Call completed elsewhere"
Reason: Q.850 ;cause=16 ;text="Terminated" Reason: Q.850 ;cause=16 ;text="Terminated"
Reason: SIP ;cause=600 ;text="Busy Everywhere" Reason: SIP ;cause=600 ;text="Busy Everywhere"
Reason: SIP ;cause=580 ;text="Precondition Failure" Reason: SIP ;cause=580 ;text="Precondition Failure"
skipping to change at page 7, line 19 skipping to change at page 7, line 24
no impact on protocol operation, the user interface may change and no impact on protocol operation, the user interface may change and
end systems may provide services based on this header field. Spoofing end systems may provide services based on this header field. Spoofing
or removing the Reason header field from a 155 (Update Requested) or removing the Reason header field from a 155 (Update Requested)
response can make impossible for a client to update properly its response can make impossible for a client to update properly its
previous request, making therefore session establishment impossible. previous request, making therefore session establishment impossible.
Thus, it is RECOMMENDED that this header field is protected by a Thus, it is RECOMMENDED that this header field is protected by a
suitable integrity mechanism. suitable integrity mechanism.
6 Acknowledgments 6 Acknowledgments
Jonathan Rosenberg and Rohan May provided helpful comments and Jonathan Rosenberg, Rohan Mahy and Vijay K. Gurbani provided helpful
suggestions. comments and suggestions.
7 Authors' Addresses 7 Authors' Addresses
Henning Schulzrinne Henning Schulzrinne
Dept. of Computer Science Dept. of Computer Science
Columbia University Columbia University
1214 Amsterdam Avenue 1214 Amsterdam Avenue
New York, NY 10027 New York, NY 10027
USA USA
electronic mail: schulzrinne@cs.columbia.edu electronic mail: schulzrinne@cs.columbia.edu
skipping to change at page 7, line 45 skipping to change at page 7, line 50
USA USA
electronic mail: oran@cisco.com electronic mail: oran@cisco.com
Gonzalo Camarillo Gonzalo Camarillo
Ericsson Ericsson
Advanced Signalling Research Lab. Advanced Signalling Research Lab.
FIN-02420 Jorvas FIN-02420 Jorvas
Finland Finland
electronic mail: Gonzalo.Camarillo@ericsson.com electronic mail: Gonzalo.Camarillo@ericsson.com
8 Bibliography 8 Normative References
[1] J. Rosenberg, H. Schulzrinne, et al. , "SIP: Session initiation [1] J. Rosenberg, H. Schulzrinne, et al. , "SIP: Session initiation
protocol," Internet Draft, Internet Engineering Task Force, Feb. protocol," Internet Draft, Internet Engineering Task Force, Feb.
2002. Work in progress. 2002. Work in progress.
[2] J. Rosenberg, "The SIP UPDATE method," Internet Draft, Internet [2] J. Rosenberg, "The SIP UPDATE method," Internet Draft, Internet
Engineering Task Force, Mar. 2002. Work in progress. Engineering Task Force, Mar. 2002. Work in progress.
[3] S. Bradner, "Key words for use in RFCs to indicate requirement [3] S. Bradner, "Key words for use in RFCs to indicate requirement
levels," RFC 2119, Internet Engineering Task Force, Mar. 1997. levels," RFC 2119, Internet Engineering Task Force, Mar. 1997.
 End of changes. 

This html diff was produced by rfcdiff 1.25, available from http://www.levkowetz.com/ietf/tools/rfcdiff/