summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc4411.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc4411.txt')
-rw-r--r--doc/rfc/rfc4411.txt1235
1 files changed, 1235 insertions, 0 deletions
diff --git a/doc/rfc/rfc4411.txt b/doc/rfc/rfc4411.txt
new file mode 100644
index 0000000..25555a1
--- /dev/null
+++ b/doc/rfc/rfc4411.txt
@@ -0,0 +1,1235 @@
+
+
+
+
+
+
+Network Working Group J. Polk
+Request for Comments: 4411 Cisco Systems
+Category: Standards Track February 2006
+
+
+ Extending the Session Initiation Protocol (SIP)
+ Reason Header for Preemption Events
+
+Status of This Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2006).
+
+Abstract
+
+ This document proposes an IANA Registration extension to the Session
+ Initiation Protocol (SIP) Reason Header to be included in a BYE
+ Method Request as a result of a session preemption event, either at a
+ user agent (UA), or somewhere in the network involving a
+ reservation-based protocol such as the Resource ReSerVation Protocol
+ (RSVP) or Next Steps in Signaling (NSIS). This document does not
+ attempt to address routers failing in the packet path; instead, it
+ addresses a deliberate tear down of a flow between UAs, and informs
+ the terminated UA(s) with an indication of what occurred.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Polk Standards Track [Page 1]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+Table of Contents
+
+ 1. Introduction ....................................................2
+ 1.1. Conventions Used in This Document ..........................4
+ 2. Access Preemption Events ........................................4
+ 2.1. Effects of Preemption at the User Agent ....................6
+ 2.2. Reason Header Requirements for Access Preemption Events ....6
+ 3. Network Preemption Events .......................................7
+ 3.1. Reason Header Requirements for Network Preemption Events ..10
+ 4. Including a Hybrid Infrastructure ..............................10
+ 4.1. Hybrid Infrastructure Requirements ........................11
+ 5. Preemption Reason Header Cause Codes and Semantics .............11
+ 5.1. Access Preemption Event Reason Code .......................12
+ 5.1.1. Access Preemption Event Call Flow ..................12
+ 5.2. Network Preemption Events Reason Code .....................14
+ 5.2.1. Network Preemption Event Call Flow .................15
+ 5.3. Generic Preemption Event Reason Code ......................16
+ 5.4. Non-IP Preemption Event Reason Code .......................16
+ 5.4.1. Non-IP Preemption Event Call Flow ..................17
+ 6. Security Considerations ........................................17
+ 7. IANA Considerations ............................................17
+ 7.1. "Preemption" Namespace Registry ...........................18
+ 7.2. Default Reason-Text IANA Registry for the SIP
+ Reason Header .............................................20
+ 8. Contributions ..................................................20
+ 9. Acknowledgements ...............................................20
+ 10. References ....................................................21
+ 10.1. Normative References .....................................21
+ 10.2. Informative References ...................................21
+
+1. Introduction
+
+ With the introduction of the SIP Resource-Priority (R-P) header [4],
+ there became the possibility of sessions being torn down for (scarce)
+ resource reasons, meaning there weren't enough resources for a
+ particular session to continue. Certain domains will implement this
+ mechanism where resources may become constrained either at the user
+ agent (UA) or at congested router interfaces where more important
+ sessions are to be completed at the expense of less important
+ sessions. Which sessions are more or less important than others will
+ not be discussed here. What is proposed here is a SIP [2] extension
+ to synchronize SIP elements as to why a preemption event occurred and
+ which type of preemption event occurred, as viewed by the element
+ that performed the preemption of a session.
+
+ The SIP Reason Header is an application layer feedback mechanism to
+ synchronize SIP elements of events; the particular event explained
+ here deals with preemption of a session. Q.850 [5] provides an
+
+
+
+Polk Standards Track [Page 2]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+ indication for preemption (cause=8) and for preemption "circuit
+ reserved for reuse" (cause=9). Q.850 Cause=9 does not apply to IP,
+ as IP has no concept of circuits. Some domains wish to differentiate
+ appropriate IP reasons for preemption of sessions and to indicate
+ topologically where the preemption event occurred. No other means
+ exists today to give feedback as to why a session was torn down on
+ preemption grounds.
+
+ In the event that a session is terminated for a specific reason that
+ can (or should) be shared with SIP Servers and UAs sharing dialog,
+ the Reason Header [1] was created to be included in the BYE Request.
+ This was not the only Method for this new Header; [1] also discusses
+ the CANCEL Method usage.
+
+ This document will define two use cases in which new preemption
+ Reason values are necessary:
+
+ Access Preemption Event - This is when a UA receives a new SIP
+ session request message with a valid R-P value that is
+ higher than the one associated with the currently active
+ session at that UA. The UA must discontinue the existing
+ session in order to accept the new one (according to local
+ policy of some domains).
+
+ Network Preemption Event - This is when a network element - such
+ as a router - reaches capacity on a particular interface and
+ has the ability to statefully choose which session(s) will
+ remain active when a new session/reservation is signaled for
+ under the parameters outlined in SIP Preconditions per [3]
+ that would otherwise overload that interface (perhaps
+ adversely affecting all sessions). In this case, the router
+ must terminate one or more reservations of lower priority in
+ order to allow this higher priority reservation access to
+ the requested amount of bandwidth (according to local policy
+ of some domains).
+
+ This document will cover the semantics for these two cases and
+ request IANA registration of the new protocol value "Preemption" for
+ the Reason Header field, with 4 cause values for the above preemption
+ conditions. Additionally, this document will create a new IANA
+ Registry for reason-text strings that are not currently defined
+ through existing SIP Response codes or Q.850 cause codes. This new
+ Registry will be useful for future protocols used by the SIP Reason
+ header.
+
+ This document will emphasize an existing SIP RFC [3] as the starting
+ point for network preemption events. RFC 3312 set rules surrounding
+ SIP interaction using a reservation protocol for QoS preconditions,
+
+
+
+Polk Standards Track [Page 3]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+ using RSVP as the example protocol. That effort did not preclude
+ other preconditions or future protocol work from becoming a means of
+ preconditions. NSIS is a new reservation protocol effort that
+ specifies a preemption operation similar to RSVP's ResvErr message
+ involving the NSIS NOTIFY message in [8] with a Transient error code
+ 0x04000005 (Resources Pre-empted).
+
+ Note that SIP itself does not cause RSVP or NSIS reservation
+ signaling to start or end. That operation is part of a separate API
+ within each UA.
+
+1.1. Conventions Used in This Document
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in [6].
+
+2. Access Preemption Events
+
+ As mentioned previously, Access Preemption Events (APE) occur at the
+ user agent. It does not matter which UA in a unicast or multicast
+ session this happens to (the UAC or UAS of a session). If local
+ policy dictates in a particular domain rules regarding the
+ functionality of a UA, there must be a means by which that UA (not
+ the user) informs the other UA(s) why a session was just torn down
+ prematurely. The appropriate mechanism is the BYE Method. The user
+ of the other far side UA will not understand why that session "just
+ went away" without there being a means of informing the UA of what
+ occurred (if this event was purposeful). Through this type of
+ indication to the preempted UA, it can indicate to the user of that
+ device appropriately.
+
+ The rules within a domain surrounding the UA to be informed can be
+ different from the rules for informing the user. Local policy should
+ determine if the user should be informed of the specific reason.
+ This indication in SIP will provide a means for the UA to react in a
+ locally determined way, if appropriate (play a certain tone or tone
+ sequence, point towards a special announcement uri, cause the UA's
+ visual display to do something, etc.).
+
+ Figure 1 illustrates the scenario. UA1 invites UA2 to a session with
+ the Resource Priority level of 3 (levels 1 and 2 are higher is this
+ domain, and the namespace element is not necessary for this
+ discussion).
+
+
+
+
+
+
+
+Polk Standards Track [Page 4]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+ UA1 UA2 UA3
+ | | |
+ | INVITE (R-P:3) | |
+ |----------------------->| |
+ | 200 OK | |
+ |<-----------------------| |
+ | ACK | |
+ |----------------------->| |
+ | RTP | |
+ |<======================>| |
+ | | INVITE (R-P:2) |
+ | |<------------------------|
+ | BYE (Reason : ? ) | |
+ |<-----------------------| |
+ | | 200 OK |
+ | |------------------------>|
+ | 200 OK | |
+ |----------------------->| |
+ | | ACK |
+ | |<------------------------|
+ | | RTP |
+ | |<=======================>|
+ | | |
+
+ Figure 1. Access Preemption with obscure Reason
+
+ After the session between UA1 and UA2 is established, UA3 invites UA2
+ to a new session with an R-P of 2 (a higher priority than the current
+ session between UA1 and UA2). Local policy within this domain
+ dictates that UA2 must preempt all existing calls of lower priority
+ in order to accept a higher priority call.
+
+ What Reason value could be inserted above to mean "preemption" at a
+ UA? There are several choices: 410 "Gone", 480 "Temporarily
+ Unavailable", 486 "Busy Here", and 503 "Service Unavailable". The
+ use of any of these here is questionable because the session is
+ already established. It is further complicated if there needs to be
+ a difference in the Reason value for an Access versus a Network
+ Preemption Event (which is a requirement here). The limits of Q.850
+ [5] have been stated previously in this document.
+
+ It should be possible to configure UAs receiving a preemption
+ indication to indicate to the user that no particular type of
+ preemption occurred. There are some domains that might prefer their
+ users to remain unaware of the specifics of network behavior. This
+ should not ever prevent a known preemption indication from being sent
+ in a BYE from a UA.
+
+
+
+
+Polk Standards Track [Page 5]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+2.1. Effects of Preemption at the User Agent
+
+ If 2 UAs are in a session and one UA must preempt that session to
+ accept another session, a BYE Method message is the appropriate
+ mechanism to perform this task. However, taking this a step further,
+ if a UA is the common point of a 3-way (or more) ad hoc conference
+ and must preempt all sessions in that conference due to receipt of a
+ higher-priority session request (that this UA must accept), then a
+ BYE message must be sent to all UAs in that ad hoc conference.
+
+2.2. Reason Header Requirements for Access Preemption Events
+
+ The following is a list of requirements for adding an appropriate
+ Reason value for an Access Preemption Event (APE) as described above
+ and shown in Figure 1:
+
+ APE_REQ#1 - create a means by which one UA can inform another UA
+ (within the same active session) that the active
+ session between the two devices is being purposely
+ preempted at one UA for a higher-priority session
+ request from another UA.
+
+ APE_REQ#2 - create a means by which all relevant SIP elements can
+ be informed of this Access Preemption Event to a
+ specific session.
+
+ For example: perhaps SIP Servers that have incorporated a Record-
+ Route header into that session set up need to be informed of this
+ occurrence.
+
+ APE_REQ#3 - create a means of informing all participants in an ad
+ hoc conference that the primary UA (the mixer) has
+ preempted the conference by accepting a higher-
+ priority session request.
+
+ APE_REQ#4 - create a separate indication for the access preemption
+ event than the one used for a Network Preemption Event
+ (described in the next section) in the session BYE
+ message.
+
+ APE_REQ#5 - create a means to generate a specific indication of a
+ preemption event at the user agent to inform all
+ relevant SIP entities, yet have the ability to
+ generalize this indication (based on local policy) to
+ the receiving UA such that this UA cannot display more
+ information than the domain wants the user to see.
+
+
+
+
+
+Polk Standards Track [Page 6]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+3. Network Preemption Events
+
+ Network Preemption Events (NPE) are instances in which an
+ intermediate router between SIP user agents preempts one or more
+ sessions at one of its interfaces to place a higher-priority session
+ through that interface. Within RSVP, there exists a means to execute
+ this functionality per [7]: ResvErr messages, which travel downstream
+ towards appropriate receivers. The ResvErr message has the ability
+ to carry within it a code indicating why a reservation is being torn
+ down. The ResvErr does not travel upstream to the other UA. This
+ document proposes that a SIP message be generated to synchronize all
+ relevant SIP elements to this preemption event, including the
+ upstream UA. Creating another Reason value describing that a network
+ element preempted the session is necessary in certain domains.
+
+ Figures 2 and 3 illustrate a network preemption scenario with RSVP.
+ NSIS, not shown in examples here, can be imagined from [8] with a
+ NOTIFY error message indicating that a reservation has been preempted
+ with the Transient ERROR_SPEC 0x04000005. SIP behavior will be
+ identical using either reservation protocol.
+
+ UA1 invites UA2 to a session with the Resource Priority level of 3
+ (levels 1 and 2 are higher in this domain) and is accepted. This SIP
+ signaling translated the Resource Priority value to an appropriate
+ RSVP priority level for that flow. The link between Router 1 and
+ Router 2 became saturated with this session reservation between UA1
+ and UA2 (in this example).
+
+ UA1 UA2
+ \ /
+ \ /
+ +--------+ +--------+
+ | | | |
+ | RTR1 | | RTR2 |
+ | Int7-------Int5 |
+ | | | |
+ +--------+ +--------+
+ / \
+ / \
+ UA3 UA4
+
+ Figure 2. Network Diagram Scenario A
+
+ After the session between UA1 and UA2 is established, UA3 invites UA4
+ to a new session with a Resource Priority level of 2 (a higher
+ priority than the current reservation between UA1 and UA2). Again,
+ the priority value within the Resource-Priority header of this INVITE
+ is translated into an appropriate RSVP priority (that is also higher
+
+
+
+Polk Standards Track [Page 7]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+ in relative priority to the UA1_UA2 session/RSVP flow). When this
+ second, higher-priority session is signaled, one Path message goes
+ from UA3 to UA4, resulting in the RESV message going from UA4 back to
+ UA3. Because this link between the two routers is at capacity (at
+ Int7 in Figure 5), Router 1 will (in this example) make the decision
+ or will communicate with another network entity that will make the
+ decision to preempt lower-priority BW to ensure that this higher-
+ priority session reservation is completed. A ResvErr message is sent
+ to UA2. The result is that UA2 will know that there has been a
+ preemption event in a router (because the ResvErr message has a error
+ code within it, stating "preemption"). At this point, UA1 will not
+ know anything of this preemption. If there are any SIP Proxies
+ between UAs 1 and 2 (perhaps that inserted a Record-Route Header),
+ each will also need to be informed as to why this reservation was
+ torn down.
+
+ Figure 3 shows the call flow with Router 2 from Figure 2 included at
+ the RSVP layer sending the ResvErr message. A complete call flow
+ including all UAs and Routers is not shown here for diagram
+ complexity reasons. The complete signaling between UA3 and UA4 is
+ also not included.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Polk Standards Track [Page 8]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+ UA1 Rtr2 UA2
+ | | |
+ | INVITE with QoS Preconditions (R-P:3) |
+ |------------------------------------------------->|
+ | ******************************************** |
+ | * - QoS Preconditions established UA1-UA2 * |
+ | * - SIP signaling continues... * |
+ | ******************************************** |
+ | 200 OK |
+ |<-------------------------------------------------|
+ | ACK |
+ |------------------------------------------------->|
+ | RTP |
+ |<================================================>|
+ | ******************************************** |
+ | * -UA3 sends INV with QoS Preconditions * |
+ | * to UA4 w/ RP:2; * |
+ | * -Reservation set-up occurs between UA3 * |
+ | * and UA4 * |
+ | * -Router 2 in Figure 2 must preempt * |
+ | * reservation between UA1 & UA2 * |
+ | * ****************************************** |
+ | |
+ | | ResvErr |
+ | |------------------------>|
+ | | |
+ | |
+ | BYE (Reason : ? ) |
+ |<-------------------------------------------------|
+ | 200 OK |
+ |------------------------------------------------->|
+ | |
+
+ Figure 3. Network Preemption with obscure Reason
+
+ What Reason value could be inserted above to mean "preemption at a
+ router interface"? There are several choices: 410 "Gone", 480
+ "Temporarily Unavailable", 486 "Busy Here", and 503 "Service
+ Unavailable". The use of any of these here is questionable because
+ the session is already established. It is further complicated if
+ there needs to be a difference between the Reason value for an Access
+ Preemption Event versus a Network Preemption Event. The limits of
+ Q.850 [5] have already been stated previously, showing there is
+ nothing in that spec to indicate a problem in an IP network.
+
+ To state that all preemptions are equal is possible, but will not
+ provide adequate information. Therefore, another Reason Header value
+ is necessary to differentiate the APE from the NPE.
+
+
+
+Polk Standards Track [Page 9]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+3.1. Reason Header Requirements for Network Preemption Events
+
+ The following are the requirements for the appropriate SIP signaling
+ in reaction to a Network Preemption Event (NPE):
+
+ NPE_REQ#1 - create a means of informing the far-end UA that a
+ Network Preemption Event has occurred in an
+ intermediate router.
+
+ NPE_REQ#2 - create a means by which all relevant SIP elements can
+ be informed of a Network Preemption Event to a
+ specific session.
+
+ For example: perhaps SIP Servers have incorporated a Record-Route
+ header into that session set up.
+
+ NPE_REQ#3 - create a means of informing all participants in an ad
+ hoc conference that the primary UA (the mixer) has
+ been preempted by a Network Preemption Event.
+
+ NPE_REQ#4 - create a separate description of the Network
+ Preemption Event relative to an Access Preemption
+ Event in SIP.
+
+4. Including a Hybrid Infrastructure
+
+ If User 1 is in a non-IP portion of infrastructure (using a TDM
+ phone) in a session with a UA through a SIP gateway, and if the TDM
+ portion had the ability to preempt the session and indicate to the
+ SIP gateway when it did such a preemption, the SIP GW would need to
+ be able to convey this preemption event into the SIP portion of this
+ session just as if User 1 were a UA in the session. Below is a
+ diagram of this:
+
+ **************************
+ * TDM network *
+ * +---------+
+ * User 1 | |
+ * O ==========>| SIP GW1 |================> UA2
+ * /|\ ^ | | |
+ * / \ | +---------+ |
+ * | * |
+ **********|*************** | |
+ | | Preemption |
+ Preemption ---------> |--------------------->|
+ Event Indication
+
+ Figure 4. TDM/IP Preemption Event
+
+
+
+Polk Standards Track [Page 10]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+4.1. Hybrid Infrastructure Requirements
+
+ The following are the requirements unique to the topology involving
+ both IP infrastructure and TDM (or non-IP) infrastructure.
+
+ HYB_REQ#1 - create a means of informing the far-end UA in a dialog
+ through a SIP gateway with a non-IP phone that the TDM
+ portion of the session indicated to the SIP gateway
+ that a preemption event terminated the session.
+
+ HYB_REQ#2 - create a means of identifying this preemption event
+ uniquely with respect to an access preemption and
+ network preemption event.
+
+5. Preemption Reason Header Cause Codes and Semantics
+
+ This document defines the following new protocol value for the
+ protocol field of the Reason header field in RFC 3326 [1]:
+
+ Preemption: The cause parameter contains a preemption cause code.
+
+ We define the following preemption cause codes:
+
+ Value Default Text Description
+
+ 1 UA Preemption The session has been preempted by a UA.
+
+ 2 Reserved Resources The session preemption has been
+ Preempted initiated within the network via a
+ purposeful RSVP preemption occurrence,
+ and not a link error.
+
+ 3 Generic Preemption This is a limited-use preemption
+ indication to be used on the final leg
+ to the preempted UA to generalize the
+ event.
+
+ 4 Non-IP Preemption The session preemption has occurred in
+ a non-IP portion of the infrastructure,
+ and this is the Reason cause code given
+ by the SIP Gateway.
+
+ Example syntax for the above preemption types are as follows:
+
+ Reason: preemption ;cause=1 ;text="UA Preemption"
+ Reason: preemption ;cause=2 ;text="Reserved Resources Preempted"
+ Reason: preemption ;cause=3 ;text="Generic Preemption"
+ Reason: preemption ;cause=4 ;text="Non-IP Preemption"
+
+
+
+Polk Standards Track [Page 11]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+ Sections 5.1, 5.2, 5.3, and 5.4 provide use cases and extended
+ definitions for the above four cause codes with message flow
+ diagrams.
+
+5.1. Access Preemption Event Reason Code
+
+ A more elaborate description of the Access Preemption Event cause=1
+ is as follows:
+
+ A user agent in a session has purposely preempted a session and is
+ informing the far-end user agent, or user agents (if part of a
+ conference), and SIP Proxies (if stateful of the session's
+ transactions)
+
+ An example usage of this header value would be:
+
+ Reason: preemption ;cause=1 ;text="UA Preemption"
+
+5.1.1. Access Preemption Event Call Flow
+
+ Figure 5 replicates the call flow from Figure 1, but with an
+ appropriate Reason value indication that was proposed in Section 4.1,
+ above:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Polk Standards Track [Page 12]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+ UA1 UA2 UA3
+ | | |
+ | INVITE (R-P:3) | |
+ |---------------------------------->| |
+ | 200 OK | |
+ |<----------------------------------| |
+ | ACK | |
+ |---------------------------------->| |
+ | RTP | |
+ |<=================================>| |
+ | | INVITE (R-P:2) |
+ | |<-------------------|
+ | BYE (Reason: Preemption ; | |
+ | cause=1 ;text="UA Preemption") | |
+ |<----------------------------------| |
+ | | 200 OK |
+ | |------------------->|
+ | 200 OK | |
+ |---------------------------------->| |
+ | | ACK |
+ | |<-------------------|
+ | | RTP |
+ | |<==================>|
+ | | |
+
+ Figure 5. Access Preemption with Reason: UA Preemption
+
+ UA1 invites UA2 to a session with the Resource Priority level of 3
+ (levels 1 and 2 are higher in this domain). After the session
+ between UA1 and UA2 is established, UA3 invites UA2 to a new session
+ with an R-P of 2 (a higher priority than the current session to UA1).
+ Local policy within this domain dictates that UA2 must preempt all
+ existing calls of lower priority in order to accept a higher-priority
+ call.
+
+ UA2 sends a BYE Request message with a Reason header with a value of
+ UA Preemption. This will inform the far-end UA (UA1) and all
+ relevant SIP elements (for example, SIP Proxies). The cause code is
+ unique to what is proposed in the RSVP Preemption Event for
+ differentiation purposes.
+
+
+
+
+
+
+
+
+
+
+
+Polk Standards Track [Page 13]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+5.2. Network Preemption Events Reason Code
+
+ A more elaborate description of the Reserved Resources Preempted
+ Event cause=2 is as follows:
+
+ A router has preempted a reservation flow and generated a
+ reservation error message: a ResvErr traveling downstream in RSVP,
+ and a NOTIFY in NSIS. The UA receiving the preemption error
+ message generates a BYE request towards the far-side UA with a
+ Reason Header with this value indicating that somewhere between
+ two or more UAs, a router has administratively preempted this
+ session.
+
+ An example usage of this header value would be:
+
+ Reason: Preemption :cause=2 ;text="Reserved Resources Preempted"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Polk Standards Track [Page 14]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+5.2.1. Network Preemption Event Call Flow
+
+ Figure 6 replicates the call flow from Figure 5, but with an
+ appropriate Reason value indication that was proposed in Section 4.2,
+ above.
+
+ UA1 Rtr2 UA2
+ | | |
+ | INVITE with QoS Preconditions (R-P:3) |
+ |---------------------------------------------------->|
+ | ******************************************** |
+ | * - QoS Preconditions established UA1-UA2 * |
+ | * - SIP signaling continues... * |
+ | ******************************************** |
+ | 200 OK |
+ |<----------------------------------------------------|
+ | ACK |
+ |---------------------------------------------------->|
+ | RTP |
+ |<===================================================>|
+ | ******************************************** |
+ | * -UA3 sends INV with QoS Preconditions * |
+ | * to UA4 w/ RP:2; * |
+ | * -Reservation set-up occurs between UA3 * |
+ | * and UA4 * |
+ | * -Router 2 in Figure 2 must preempt * |
+ | * reservation between UA1 & UA2 * |
+ | * ********************************************* |
+ | |
+ | | ResvErr |
+ | |------------------------>|
+ | | |
+ | |
+ | BYE (Reason : Preemption ;cause=2 ; |
+ | text="Reserved Resources Preempted") |
+ |<----------------------------------------------------|
+ | 200 OK |
+ |---------------------------------------------------->|
+ | |
+
+ Figure 6. Network Preemption with "Reserved Resources Preempted"
+
+ Above is the call flow with Router 2 from Figure 2 included at the
+ RSVP layer sending the Resv messages. A complete call flow including
+ all UAs and Routers is not included for diagram complexity reasons.
+ The signaling between UA3 and UA4 is also not included.
+
+
+
+
+
+Polk Standards Track [Page 15]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+ Upon receipt of the ResvErr message with the preemption error code,
+ UA2 can now appropriately inform UA1 why this event occurred. This
+ BYE message will also inform all relevant SIP elements, synchronizing
+ them. The cause value is unique to that proposed in Section 4.1 for
+ Access Preemption Events for differentiation purposes.
+
+5.3. Generic Preemption Event Reason Code
+
+ A more elaborate description of the Generic Preemption Event cause=3
+ is as follows:
+
+ This cause code is for infrastructures that do not wish to provide
+ the preempted UA with a more precise reason than just
+ "preemption". It is possible that UAs will have code that will
+ indicate the type of preemption event that is contained in the
+ Reason header, and certain domains have expressed this as not
+ being optimal, and wanted to generalize the indication. This MUST
+ NOT be the initial indication within these domains, as valuable
+ traffic analysis and other NM applications will be generalized as
+ well. If this cause value is to be implemented, it SHOULD only be
+ done at the final SIP Proxy in such a way that the cause value
+ indicating which type of preemption event actually occurred is
+ changed to this generalized preemption indication to be received
+ by the preempted UA.
+
+ An example usage of this header value would be:
+
+ Reason: preemption ;cause=3 ;text="Generic Preemption"
+
+5.4. Non-IP Preemption Event Reason Code
+
+ A more elaborate description of the Non-IP Preemption Event cause=4
+ is as follows:
+
+ A session exists in a hybrid IP/non-IP infrastructure and the
+ preemption event occurs in the non-IP portion, and was indicated
+ by that portion that this call termination was due to preemption.
+ This is the indication that would be generated by a SIP Gateway
+ towards the SIP UA that is being preempted, traversing whichever
+ SIP Proxies are involved in session signaling (a question of
+ server state).
+
+ An example usage of this header value would be:
+
+ Reason: preemption ;cause=4 ;text="Non-IP Preemption"
+
+
+
+
+
+
+Polk Standards Track [Page 16]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+5.4.1. Non-IP Preemption Event Call Flow
+
+ Figure 7 is a simple call flow diagram of the Non-IP Preemption
+ Event.
+
+ ............
+ UA1 SIP GW1 . User3 .
+ | | . .
+ | INVITE (R-P:1) | . .
+ |-------------------------------------->| . Non-IP .
+ | 200 OK | . .
+ |<--------------------------------------| . Network .
+ | ACK | . .
+ |-------------------------------------->| . .
+ | RTP | . .
+ |<=====================================>| . .
+ | | . .
+ | BYE (Reason: Preemption ; |<==Preemption Indication
+ | cause=4 ;text="Non-IP Preemption") | . .
+ |<--------------------------------------| . .
+ | | ............
+
+ Figure 7. Non-IP Preemption Flow
+
+ In this case, UA1 signals User3 to a session. Once established,
+ there is a preemption event in the non-IP portion of the
+ session/call, and the TDM portion has the ability to inform the SIP
+ GW of this type of event. This non-IP signal can be translated into
+ SIP signaling (into the BYE session termination message). Within
+ this BYE, there should be a Reason header indicating such an event to
+ synchronize all SIP elements.
+
+6. Security Considerations
+
+ Eavesdropping on this header field should not prevent proper
+ operation of the SIP protocol, although some domains utilizing this
+ mechanism for notifying and synchronizing SIP elements will likely
+ want the integrity to be assured. It is therefore RECOMMENDED that
+ integrity protection be applied when using this header to prevent
+ unwanted changes to the field and snooping of the messages. The
+ accepted choices for providing integrity protection in SIP are TLS
+ and S/MIME.
+
+7. IANA Considerations
+
+ This document adds to one existing IANA Registry and creates one new
+ Registry. The existing IANA Registry for the SIP Reason Header is as
+ follows:
+
+
+
+Polk Standards Track [Page 17]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+ Protocol Value Protocol Cause Reference
+ -------------- -------------- ---------
+ SIP Status code RFC 3261
+ Q.850 Cause value in decimal ITU-T Q.850
+
+ This document adds to that Registry with the following entry
+ (including the '*' comment):
+
+ Protocol Value Protocol Cause Reference
+ -------------- -------------- ---------
+ Preemption Cause value in decimal* RFC 4411
+
+ * See the separate "Preemption" Registry for default reason-text
+ strings.
+
+ The cause values created by the Preemption Protocol namespace in this
+ document are defined in Section 7.1. Each cause value has a Reason-
+ text string as a general description of what the cause value is for.
+ This is shown for the existing Reason header in Section 2 of RFC
+ 3326. Before this document, the Reason-text was taken from the SIP
+ Response code string from all SIP Response codes, or the default
+ description from Q.850 cause codes. Currently, there is no place to
+ register new reason-text strings other than from those two sources.
+ Because this document defines a new Reason header protocol namespace,
+ a new IANA Registry is created in Section 7.2 just for this and
+ future Reason header protocol namespaces (other than SIP Response
+ codes or Q.850 cause values) to register their respective general
+ descriptive text strings. These text strings are non-binding and
+ merely the default for human understanding, but they are deemed
+ important enough to have their own Registry.
+
+7.1. "Preemption" Namespace Registry
+
+ RFC 4411 creates the new SIP "Reason Header" [1] protocol namespace:
+ "Preemption", with 4 defined cause codes:
+
+ In instances where this namespace is used to indicate preemption
+ at a UA, the following syntax shall be used (the reason-text is a
+ default string; it is not mandatory, and may be different):
+
+ Reason: preemption ;cause=1 ;text="UA Preemption"
+
+ Section 5.1 of this document describes in detail the semantics
+ of this cause code.
+
+ The default text above is part of a new IANA Registry for
+ default text strings for any new protocol namespace cause code.
+ See Section 7.2 for details.
+
+
+
+Polk Standards Track [Page 18]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+ In instances where this namespace is used to indicate preemption
+ because an RSVP ResvErr message was received at a SIP UA, the
+ following syntax shall be used (the reason-text is a default
+ string; it is not mandatory, and may be different):
+
+ Reason: preemption ;cause=2 ;text="Reserved Resources Preempted"
+
+ Section 5.2 of this document describes in detail the semantics
+ of this cause code.
+
+ The default text above is part of a new IANA Registry for
+ default text strings for any new protocol namespace cause code.
+ See section 7.2 for details.
+
+ In instances where this namespace is used to indicate a
+ generalized preemption event to the destination UA from a Proxy
+ that modifies the Reason value only during this last SIP hop, the
+ following syntax shall be used (the reason-text is a default
+ string; it is not mandatory, and may be different):
+
+ Reason: preemption ;cause=3 ;text="Generic Preemption"
+
+ Section 5.3 of this document describes in detail the semantics
+ of this cause code.
+
+ The default text above is part of a new IANA Registry for
+ default text strings for any new protocol namespace cause code.
+ See Section 7.2 for details.
+
+ In instances where this namespace is used to indicate preemption
+ from a non-IP portion of a call leg, a SIP Gateway shall use the
+ following syntax to inform the SIP infrastructure of this event
+ (the reason-text is a default string; it is not mandatory, and may
+ be different):
+
+ Reason: preemption ;cause=4 ;text=" Non-IP Preemption"
+
+ Section 5.4 of this document describes in detail the semantics
+ of this cause code.
+
+ The default text above is part of a new IANA Registry for
+ default text strings for any new protocol namespace cause code.
+ See Section 7.2 for details.
+
+ Additional definitions of the preemption namespace and its cause
+ codes MUST be defined in Standards Track documents.
+
+
+
+
+
+Polk Standards Track [Page 19]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+7.2. Default Reason-Text IANA Registry for the SIP Reason Header
+
+ Below is a new IANA Registry for SIP Reason Header reason-text
+ strings, associated with their respective protocol type and Reason-
+ param cause values. Per RFC 3326, the Reason-text string is a quoted
+ default string with only human understandability meant. These
+ strings can be changed by local policy.
+
+ Reason-
+ Protocol param Reason-Text Reference
+ -------- ------- ------------ ---------
+ Preemption Cause=1 UA Preemption RFC 4411
+ Preemption Cause=2 Reserved Resources RFC 4411
+ Preempted
+ Preemption Cause=3 Generic Preemption RFC 4411
+ Preemption Cause=4 Non-IP Preemption RFC 4411
+
+8. Contributions
+
+ The following individuals contributed to this effort:
+
+ Subhasri Dhesikan
+ Gonzalo Camarillo
+ Dave Oran
+
+ The author thanks these individuals greatly for their aid in this
+ effort.
+
+9. Acknowledgements
+
+ To Haluk Keskiner for providing a valued sanity check. To Dean
+ Willis, Rohan Mahy, and Allison Mankin for their belief in and
+ backing of this effort. To Adam Roach and Arun Kumar for helpful
+ comments to this document.
+
+ Thanks to Mike Pierce for helpful comments and catching a flaw in
+ this spec late in the process (before it was too late).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Polk Standards Track [Page 20]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+10. References
+
+10.1. Normative References
+
+ [1] Schulzrinne, H., Oran, D., and G. Camarillo, "The Reason Header
+ Field for the Session Initiation Protocol (SIP)", RFC 3326,
+ December 2002.
+
+ [2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
+ Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
+ Session Initiation Protocol", RFC 3261, June 2002.
+
+ [3] Camarillo, G., Marshall, W., and J. Rosenberg, "Integration of
+ Resource Management and Session Initiation Protocol (SIP)", RFC
+ 3312, October 2002.
+
+ [4] Schulzrinne, H. and J. Polk, "Communications Resource-Priority
+ Header in the Session Initiation Protocol (SIP)", RFC 4412,
+ February 2006.
+
+ [5] ITU-T Recommendation Q.850 (1993)
+
+ [6] Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", BCP 14, RFC 2119, March 1997.
+
+ [7] Braden, R., Zhang, L., Berson, S., Herzog, S., and S. Jamin,
+ "Resource ReSerVation Protocol (RSVP) -- Version 1 Functional
+ Specification", RFC 2205, September 1997.
+
+10.2. Informative References
+
+ [8] J. Manner, G. Karagiannis, A. McDonald, S. Van den Bosch, "NSLP
+ for Quality-of-Service signalling", Work in Progress, September
+ 2005.
+
+Author Information
+
+ James M. Polk
+ Cisco Systems
+ 2200 East President George Bush Turnpike
+ Richardson, Texas 75082 USA
+
+ EMail: jmpolk@cisco.com
+
+
+
+
+
+
+
+
+Polk Standards Track [Page 21]
+
+RFC 4411 SIP Reason Header for Preemption Events February 2006
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2006).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+ ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+ INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at
+ ietf-ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is provided by the IETF
+ Administrative Support Activity (IASA).
+
+
+
+
+
+
+
+Polk Standards Track [Page 22]
+