| < draft-manyfolks-sip-resource-00.txt | draft-manyfolks-sip-resource-01.txt > | |||
|---|---|---|---|---|
| SIP Working Group W. Marshall | SIP Working Group W. Marshall | |||
| Internet Draft K. Ramakrishnan | Internet Draft K. Ramakrishnan | |||
| Document: <draft-manyfolks-sip-resource-00.txt> AT&T | Document: <draft-manyfolks-sip-resource-01.txt> AT&T | |||
| Category: Informational | Category: Informational | |||
| E. Miller | E. Miller | |||
| G. Russell | G. Russell | |||
| CableLabs | CableLabs | |||
| B. Beser | B. Beser | |||
| M. Mannette | M. Mannette | |||
| K. Steinbrenner | K. Steinbrenner | |||
| 3Com | 3Com | |||
| D. Oran | D. Oran | |||
| F. Andreasen | F. Andreasen | |||
| M. Ramalho | ||||
| Cisco | Cisco | |||
| J. Pickens | J. Pickens | |||
| Com21 | Com21 | |||
| P. Lalwaney | P. Lalwaney | |||
| Nokia | ||||
| J. Fellows | J. Fellows | |||
| Motorola | Motorola | |||
| D. Evans | D. Evans | |||
| Secure Cable Solutions | Secure Cable Solutions | |||
| K. Kelly | K. Kelly | |||
| NetSpeak | NetSpeak | |||
| A. Roach | A. Roach | |||
| Ericsson | Ericsson | |||
| J. Rosenberg | J. Rosenberg | |||
| D. Willis | ||||
| dynamicsoft | dynamicsoft | |||
| H. Schulzrinne | H. Schulzrinne | |||
| Columbia University | Columbia University | |||
| S. Donovan | S. Donovan | |||
| MCI Worldcom | MCI Worldcom | |||
| March, 2000 | June, 2000 | |||
| Integration of Resource Management and SIP for IP Telephony | ||||
| Integration of Resource Management and SIP | ||||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft and is NOT offered in accordance | This document is an Internet-Draft and is in full conformance with | |||
| with Section 10 of RFC2026[1], and the author does not provide the | all provisions of Section 10 of RFC2026[1]. | |||
| IETF with any rights other than to publish as an Internet-Draft. | ||||
| Category Informational - Expiration 9/30/00 1 | ||||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
| Drafts. Internet-Drafts are draft documents valid for a maximum of | Drafts. Internet-Drafts are draft documents valid for a maximum of | |||
| six months and may be updated, replaced, or obsoleted by other | six months and may be updated, replaced, or obsoleted by other | |||
| documents at any time. It is inappropriate to use Internet- Drafts | documents at any time. It is inappropriate to use Internet- Drafts | |||
| as reference material or to cite them other than as "work in | as reference material or to cite them other than as "work in | |||
| progress." | progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt | http://www.ietf.org/ietf/1id-abstracts.txt | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| The distribution of this memo is unlimited. It is filed as <draft- | The distribution of this memo is unlimited. It is filed as <draft- | |||
| manyfolks-sip-resource-00.txt>, and expires September 30, 2000. | manyfolks-sip-resource-01.txt>, and expires December 31, 2000. | |||
| Please send comments to the authors. | Please send comments to the authors. | |||
| 1. Abstract | 1. Abstract | |||
| This document discusses how network QoS and security establishment | This document discusses how network QoS and security establishment | |||
| can be made a precondition to sessions initiated by the Session | can be made a precondition to sessions initiated by the Session | |||
| Initiation Protocol (SIP)[2], and described by SDP [3]. These | Initiation Protocol (SIP), and described by SDP. These preconditions | |||
| preconditions require that the participant reserve network resources | require that the participant reserve network resources (or establish | |||
| (or establish a secure media channel) before continuing with the | a secure media channel) before continuing with the session. We do | |||
| session. We do not define new QoS reservation or security | not define new QoS reservation or security mechanisms; these pre- | |||
| mechanisms; these pre-conditions simply require a participant to use | conditions simply require a participant to use existing resource | |||
| existing resource reservation and security mechanisms before | reservation and security mechanisms before beginning the session. | |||
| beginning the session. | ||||
| This results in a multi-phase call-setup mechanism, with the | This results in a multi-phase call-setup mechanism, with the | |||
| resource management protocol interleaved between two phases of call | resource management protocol interleaved between two phases of call | |||
| signaling. The objective of such a mechanism is to enable deployment | signaling. The objective of such a mechanism is to enable deployment | |||
| of robust IP Telephony services, by ensuring that resources are made | of robust IP Telephony services, by ensuring that resources are made | |||
| available before the phone rings and the participants of the call | available before the phone rings and the participants of the call | |||
| are "invited" to participate. | are "invited" to participate. | |||
| This document also proposes an extension to the Session Initiation | This document also proposes an extension to the Session Initiation | |||
| Protocol (SIP) to add a new PRECONDITION-MET method, which is used | Protocol (SIP) to add a new COMET method, which is used to confirm | |||
| to confirm the completion of all pre-conditions by the call | the completion of all pre-conditions by the session originator. | |||
| originator. | ||||
| 2. Conventions used in this document | 2. Conventions used in this document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in | |||
| this document are to be interpreted as described in RFC-2119[4]. | this document are to be interpreted as described in RFC-2119[4]. | |||
| Category Informational - Expiration 9/30/00 2 | ||||
| 3. Introduction | 3. Introduction | |||
| For an Internet Telephony service to be successfully used by a large | For an Internet Telephony service to be successfully used by a large | |||
| number of subscribers, it must offer few surprises to those | number of subscribers, it must offer few surprises to those | |||
| accustomed to the behavior of existing telephony services. One | accustomed to the behavior of existing telephony services. One | |||
| expectation is that of connection quality, implying resources must | expectation is that of connection quality, implying resources must | |||
| be set aside for each call. | be set aside for each call. | |||
| A key contribution of the DCS architecture, as described in [5], is | A key contribution of the DCS architecture, as described in [5], is | |||
| a recognition of the need for coordination between call signaling, | a recognition of the need for coordination between call signaling, | |||
| skipping to change at line 127 ¶ | skipping to change at line 125 ¶ | |||
| coordination is designed to meet the user expectations and human | coordination is designed to meet the user expectations and human | |||
| factors associated with telephony. | factors associated with telephony. | |||
| While customers may expect, during times of heavy load, to receive a | While customers may expect, during times of heavy load, to receive a | |||
| "fast busy" or an announcement saying "all circuits are busy now," | "fast busy" or an announcement saying "all circuits are busy now," | |||
| the general expectation is that once the destination phone rings | the general expectation is that once the destination phone rings | |||
| that the connection can be made. Blocking a call after ringing the | that the connection can be made. Blocking a call after ringing the | |||
| destination is considered a "call defect" and is a very undesirable | destination is considered a "call defect" and is a very undesirable | |||
| exception condition. | exception condition. | |||
| We consider the case where a provider may choose to block a call | This draft addresses both "QoS-Assured" and "QoS-Enabled" sessions. | |||
| when adequate resources for the call are not available. It may be | A "QoS-Assured" session will complete only if all the required | |||
| argued that best-effort connections may be an alternative in such a | resources are available and assigned to the session. A provider may | |||
| case. However, public policy demands that the phone system provide | choose to block a call when adequate resources for the call are not | |||
| available. Public policy demands that the phone system provide | ||||
| adequate quality at least in certain cases: e.g., for emergency | adequate quality at least in certain cases: e.g., for emergency | |||
| communications during times of disasters. Call blocking enables a | communications during times of disasters. Call blocking enables a | |||
| provider to meet such requirements. This draft and the overall DCS | provider to meet such requirements. | |||
| architecture assumes that the provider blocks calls when resources | ||||
| are unavailable. | ||||
| It is often the case that calls into a disaster area are blocked, to | A "QoS-Enabled" session allows the endpoints to complete the session | |||
| ensure resources are available for calls out of the disaster area. | establishment either with or without the desired resources. Such | |||
| Such policy-level controls also need to be available for the service | session will use dedicated resources if available, and use a best- | |||
| provider. | effort connection as an alternative if resources can not be | |||
| dedicated. In cases where resources are not available, the | ||||
| originating and/or terminating User Agent might consult with the | ||||
| customer to obtain guidance on whether the session should complete. | ||||
| Coordination between call signaling and resource management is also | Coordination between call signaling and resource management is also | |||
| needed to prevent fraud and theft of service. The coordination | needed to prevent fraud and theft of service. The coordination | |||
| between call-signaling and QoS setup protocols ensures that users | between call-signaling and QoS setup protocols ensures that users | |||
| are authenticated and authorized before receiving access to the | are authenticated and authorized before receiving access to the | |||
| enhanced QoS associated with the telephony service. | enhanced QoS associated with the telephony service. | |||
| This coordination, referred to in this draft as "preconditions," | This coordination, referred to in this draft as "preconditions," | |||
| require that the participant reserve network resources (or establish | require that the participant reserve network resources (or establish | |||
| a secure media channel) before continuing with the session. We do | a secure media channel) before continuing with the session. We do | |||
| not define new QoS reservation or security mechanisms; these pre- | not define new QoS reservation or security mechanisms; these pre- | |||
| conditions simply require a participant to use existing resource | conditions simply require a participant to use existing resource | |||
| reservation and security mechanisms before beginning the session. | reservation and security mechanisms before beginning the session. | |||
| In the case of SIP [2], this effectively means that the "phone won't | In the case of SIP [2], this effectively means that the "phone won't | |||
| ring" until the preconditions are met. These preconditions are | ring" until the preconditions are met. These preconditions are | |||
| described by new SDP parameters, defined in this document. The | described by new SDP parameters, defined in this document. The | |||
| Category Informational - Expiration 9/30/00 3 | ||||
| parameters can mandate end-to-end QoS reservations based on RSVP [6] | parameters can mandate end-to-end QoS reservations based on RSVP [6] | |||
| or any other end-to-end reservation mechanism (such as YESSIR [7], | or any other end-to-end reservation mechanism (such as YESSIR [7], | |||
| or PacketCable's Dynamic Quality of Service (D-QoS) [8]), and | or PacketCable's Dynamic Quality of Service (D-QoS) [8]), and | |||
| security based on IPSEC [9]. The preconditions can be defined | security based on IPSEC [9]. The preconditions can be defined | |||
| independently for each media stream. | independently for each media stream. | |||
| The QoS architecture of the Internet separates QoS signaling from | The QoS architecture of the Internet separates QoS signaling from | |||
| application level signaling. Application layer devices (such as web | application level signaling. Application layer devices (such as web | |||
| proxies and SIP servers) are not well suited for participation in | proxies and SIP servers) are not well suited for participation in | |||
| network admission control or QoS management, as this is | network admission control or QoS management, as this is | |||
| skipping to change at line 213 ¶ | skipping to change at line 211 ¶ | |||
| security association is needed for the application to execute. | security association is needed for the application to execute. | |||
| To solve both of these problems, we propose an extension to SDP | To solve both of these problems, we propose an extension to SDP | |||
| which allows indication of pre-conditions for sessions. These | which allows indication of pre-conditions for sessions. These | |||
| preconditions indicate that participation in the session should not | preconditions indicate that participation in the session should not | |||
| proceed until the preconditions are met. The preconditions we define | proceed until the preconditions are met. The preconditions we define | |||
| are (1) success of end-to-end resource reservation, and (2) success | are (1) success of end-to-end resource reservation, and (2) success | |||
| of end- to-end security establishment. We chose to implement these | of end- to-end security establishment. We chose to implement these | |||
| extensions in SDP, rather than SIP [2] or SAP [11], since they are | extensions in SDP, rather than SIP [2] or SAP [11], since they are | |||
| fundamentally a media session issue. SIP is session agnostic; | fundamentally a media session issue. SIP is session agnostic; | |||
| Category Informational - Expiration 9/30/00 4 | ||||
| information about codecs, ports, and RTP [10] are outside the scope | information about codecs, ports, and RTP [10] are outside the scope | |||
| of SIP. Since it is the media sessions that the reservations and | of SIP. Since it is the media sessions that the reservations and | |||
| security refer to, SDP is the appropriate venue for the extensions. | security refer to, SDP is the appropriate venue for the extensions. | |||
| Furthermore, placement of the extensions in SDP rather than SIP or | Furthermore, placement of the extensions in SDP rather than SIP or | |||
| SAP allows specification of preconditions for individual media | SAP allows specification of preconditions for individual media | |||
| streams. For example, a multimedia lecture might require reservation | streams. For example, a multimedia lecture might require reservation | |||
| for the audio, but not the video (which is less important). | for the audio, but not the video (which is less important). | |||
| Our extensions are completely backward compatible. If a recipient | Our extensions are completely backward compatible. If a recipient | |||
| does not understand them, normal SIP or SAP processing will occur, | does not understand them, normal SIP or SAP processing will occur, | |||
| skipping to change at line 267 ¶ | skipping to change at line 263 ¶ | |||
| of a packet classifier (source IP, destination IP, source port, | of a packet classifier (source IP, destination IP, source port, | |||
| destination port, protocol) to be available for resource allocation. | destination port, protocol) to be available for resource allocation. | |||
| 3.2 Overview | 3.2 Overview | |||
| For acceptable interactive voice communication it is important to | For acceptable interactive voice communication it is important to | |||
| achieve end-to-end QoS. The end-to-end QoS assurance implies | achieve end-to-end QoS. The end-to-end QoS assurance implies | |||
| achieving low packet delay and packet loss. End-to-end packet delay | achieving low packet delay and packet loss. End-to-end packet delay | |||
| must be small enough that it does not interfere with normal voice | must be small enough that it does not interfere with normal voice | |||
| conversations. The ITU recommends no greater than 300 ms roundtrip | conversations. The ITU recommends no greater than 300 ms roundtrip | |||
| Category Informational - Expiration 9/30/00 5 | ||||
| delay for telephony service. Packet loss must be small enough to | delay for telephony service. Packet loss must be small enough to | |||
| not perceptibly impede voice quality or the performance of fax and | not perceptibly impede voice quality or the performance of fax and | |||
| voice band modems. | voice band modems. | |||
| If it is found that the network cannot guarantee end-to-end QoS | If it is found that the network cannot guarantee end-to-end QoS | |||
| resources, there are two alternatives: either (1) allow call | resources, there are two alternatives: either (1) allow call | |||
| signaling to proceed with high probability of excessive delay and | signaling to proceed with high probability of excessive delay and | |||
| packet loss which could impair any interactive real-time | packet loss which could impair any interactive real-time | |||
| communication between the participants, or (2) block the call prior | communication between the participants, or (2) block the call prior | |||
| to the called party being alerted. When calls are blocked because | to the called party being alerted. When calls are blocked because | |||
| skipping to change at line 298 ¶ | skipping to change at line 292 ¶ | |||
| a way that the post-dial-delay must be minimized without increasing | a way that the post-dial-delay must be minimized without increasing | |||
| the probability of call defects. This means that the number of | the probability of call defects. This means that the number of | |||
| round-trip messages must be kept at an absolute minimum and messages | round-trip messages must be kept at an absolute minimum and messages | |||
| must be sent directly end-system to end-system if possible. | must be sent directly end-system to end-system if possible. | |||
| The general idea behind the extension is simple. We define two new | The general idea behind the extension is simple. We define two new | |||
| SDP attributes, "qos" and "security". The "qos" attribute indicates | SDP attributes, "qos" and "security". The "qos" attribute indicates | |||
| whether end-to-end resource reservation is optional or mandatory, | whether end-to-end resource reservation is optional or mandatory, | |||
| and in which direction (send, recv, or sendrecv). When the attribute | and in which direction (send, recv, or sendrecv). When the attribute | |||
| indicates mandatory, this means that the participant who has | indicates mandatory, this means that the participant who has | |||
| received the SDP MUST NOT proceed with participation in the session | received the SDP does not proceed with participation in the session | |||
| until resource reservation has completed in the direction indicated. | until resource reservation has completed in the direction indicated. | |||
| In this case, "not proceeding" means that the participant behaves as | In this case, "not proceeding" means that the participant behaves as | |||
| if they had not received the SDP at all. If the attribute indicates | if they had not received the SDP at all. If the attribute indicates | |||
| that QoS for the stream is optional, then the participant SHOULD | that QoS for the stream is optional, then the participant proceeds | |||
| proceed normally with the session, but SHOULD reserve network | normally with the session, but should reserve network resources in | |||
| resources in the direction indicated, if they are capable. Absence | the direction indicated, if they are capable. Absence of the "qos" | |||
| of the "qos" attribute means the participant MAY reserve resources | attribute means the participant reserves resources for this stream, | |||
| for this stream, and SHOULD proceed normally with the session. This | and proceeds normally with the session. This behavior is the normal | |||
| behavior is the normal behavior for SDP. | behavior for SDP. | |||
| Resource reservation takes place using whatever protocols | Resource reservation takes place using whatever protocols | |||
| participants must use, based on support by their service provider. | participants must use, based on support by their service provider. | |||
| If the ISP's of the various participants are using differing | If the ISP's of the various participants are using differing | |||
| resource reservation protocols, translation is necessary, but this | resource reservation protocols, translation is necessary, but this | |||
| is done within the network, without knowledge of the participants. | is done within the network, without knowledge of the participants. | |||
| The direction attribute indicates which direction reservations | The direction attribute indicates which direction reservations | |||
| should be reserved in. If "send", it means reservations should be | should be reserved in. If "send", it means reservations should be | |||
| made in the direction of media flow from the session originator to | made in the direction of media flow from the session originator to | |||
| participants. If "recv", it means reservations should be made in the | participants. If "recv", it means reservations should be made in the | |||
| direction of media flow from participants to the session originator. | direction of media flow from participants to the session originator. | |||
| In the case of "sendrecv", it means reservations should be made in | In the case of "sendrecv", it means reservations should be made in | |||
| both directions. | both directions. | |||
| Category Informational - Expiration 9/30/00 6 | ||||
| In the case of security, the same attributes are defined - | In the case of security, the same attributes are defined - | |||
| optional/mandatory, and send/recv/sendrecv. Their meaning is | optional/mandatory, and send/recv/sendrecv. Their meaning is | |||
| identical to the one above, except that a security association | identical to the one above, except that a security association | |||
| should be established in the given direction. The details of the | should be established in the given direction. The details of the | |||
| security association are not signaled by SDP; these depend on the | security association are not signaled by SDP; these depend on the | |||
| Security Policy Database of the participant. | Security Policy Database of the participant. | |||
| Either party MAY include a "confirm" attribute in the SDP. When the | Either party can include a "confirm" attribute in the SDP. When the | |||
| "Confirm" attribute is present, the recipient MUST send a | "Confirm" attribute is present, the recipient sends a COMET message | |||
| PRECONDITION-MET message to the sender, with SDP attached, telling | to the sender, with SDP attached, telling the status of each | |||
| the status of each precondition as "success" or "failure." If the | precondition as "success" or "failure." If the "confirm" attribute | |||
| "confirm" attribute is present in the SDP sent by the session | is present in the SDP sent by the session originator to the | |||
| originator to the participant (e.g. in the SIP INVITE message), then | participant (e.g. in the SIP INVITE message), then the participant | |||
| the participant MUST send the PRECONDITION-MET message to the | sends the COMET message to the originator. If the "confirm" | |||
| originator. If the "confirm" attribute is present in the SDP sent | attribute is present in the SDP sent by the recipient to the | |||
| by the recipient to the originator (e.g. in a SIP response message), | originator (e.g. in a SIP response message), then the originator | |||
| then the originator MUST send the PRECONDITION-MET message to the | sends the COMET message to the participant. | |||
| participant. | ||||
| When the "Confirm" attribute is present in both the SDP sent by the | When the "Confirm" attribute is present in both the SDP sent by the | |||
| session originator to the participant (e.g. in the SIP INVITE | session originator to the participant (e.g. in the SIP INVITE | |||
| message), and in the SDP sent by the recipient back to the | message), and in the SDP sent by the recipient back to the | |||
| originator (e.g. in a SIP response message), the session originator | originator (e.g. in a SIP response message), the session originator | |||
| MAY wait for the PRECONDITION-MET message with the success/failure | would wait for the COMET message with the success/failure | |||
| notification before responding with a PRECONDITION-MET message, and | notification before responding with a COMET message, and responds | |||
| MAY respond instead with a CANCEL if a mandatory precondition is not | instead with a CANCEL if a mandatory precondition is not met, or if | |||
| met, or if an insufficient combination of optional preconditions are | a sufficient combination of optional preconditions are not met. The | |||
| not met. The recipient MUST NOT wait for the PRECONDITION-MET | recipient does not wait for the COMET message from the originator | |||
| message from the originator before sending its PRECONDITION-MET | before sending its COMET message. | |||
| message. | ||||
| 4. SDP Syntax | 4. SDP Extension | |||
| The formatting of the qos attribute in the Session Description | The formatting of the qos attribute in the Session Description | |||
| Protocol (SDP) is described by the following BNF: | Protocol (SDP)[3] is described by the following BNF: | |||
| qos-attribute = "a=qos:" strength-tag SP direction-tag | qos-attribute = "a=qos:" strength-tag SP direction-tag | |||
| [SP confirmation-tag] | [SP confirmation-tag] | |||
| strength-tag = ("mandatory" | "optional" | "success" | | strength-tag = ("mandatory" | "optional" | "success" | | |||
| "failure") | "failure") | |||
| direction-tag = ("send" | "recv" | "sendrecv") | direction-tag = ("send" | "recv" | "sendrecv") | |||
| confirmation-tag = "confirm" | confirmation-tag = "confirm" | |||
| and the security attribute: | and the security attribute: | |||
| security-attribute = "a=secure:" SP strength-tag SP direction-tag | security-attribute = "a=secure:" SP strength-tag SP direction-tag | |||
| [SP confirmation-tag] | [SP confirmation-tag] | |||
| Category Informational - Expiration 9/30/00 7 | ||||
| 4.1 SDP Example | 4.1 SDP Example | |||
| The following example shows an SDP description carried in a SIP | The following example shows an SDP description carried in a SIP | |||
| INVITE message from A to B: | INVITE message from A to B: | |||
| v=0 | v=0 | |||
| o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 | o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 | |||
| s=SDP Seminar | s=SDP Seminar | |||
| i=A Seminar on the session description protocol | i=A Seminar on the session description protocol | |||
| u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps | u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps | |||
| skipping to change at line 427 ¶ | skipping to change at line 417 ¶ | |||
| both parties. | both parties. | |||
| B: response | B: response | |||
| A: request send recv sendrecv none | A: request send recv sendrecv none | |||
| send N/A A->B N/A -- | send N/A A->B N/A -- | |||
| recv B->A N/A N/A -- | recv B->A N/A N/A -- | |||
| sendrecv A->B B<-A A<->B -- | sendrecv A->B B<-A A<->B -- | |||
| none -- -- -- -- | none -- -- -- -- | |||
| Table 1: Allowed values of coupling | Table 1: Allowed values of coupling | |||
| Category Informational - Expiration 9/30/00 8 | ||||
| Table 2 illustrates the allowed values for the strength tag in the | Table 2 illustrates the allowed values for the strength tag in the | |||
| request and response. A "Y" means the combination is allowed, and a | request and response. A "Y" means the combination is allowed, and a | |||
| "N" means it is not. The value in the response is the one used by | "N" means it is not. The value in the response is the one used by | |||
| both parties. | both parties. | |||
| B: response | B: response | |||
| A: request mandatory optional none | A: request mandatory optional none | |||
| mandatory Y Y Y | mandatory Y Y Y | |||
| optional N Y Y | optional N Y Y | |||
| none N N Y | none N N Y | |||
| Table 2: Allowed values of strength parameter | Table 2: Allowed values of strength parameter | |||
| 5. SIP Extension: The COMET Method | ||||
| 5. SIP Extension: The PRECONDITION-MET Method | The COMET method is used for communicating successful completion of | |||
| preconditions from the calling to called user agents. | ||||
| The PRECONDITION-MET method is used for communicating successful | ||||
| completion of preconditions from the calling to called user agents. | ||||
| The signaling path for the PRECONDITION-MET method is the signaling | The signaling path for the COMET method is the signaling path | |||
| path established as a result of the call setup. This can be either | established as a result of the call setup. This can be either | |||
| direct signaling between the calling and called user agents or a | direct signaling between the calling and called user agents or a | |||
| signaling path involving SIP proxy servers that were involved in the | signaling path involving SIP proxy servers that were involved in the | |||
| call setup and added themselves to the Record-Route header on the | call setup and added themselves to the Record-Route header on the | |||
| initial INVITE message. | initial INVITE message. | |||
| The precondition information is communicated in the message body, | The precondition information is communicated in the message body, | |||
| which MUST contain an SDP. For every agreed precondition, the | which MUST contain an SDP. For every agreed precondition, the | |||
| strength-tag MUST indicate "success" or "failure". | strength-tag MUST indicate "success" or "failure". | |||
| If the initial request contained Record-Route headers, the | If the initial request contained Record-Route headers, the | |||
| provisional response MUST contain a copy of those headers, as if the | provisional response MUST contain a copy of those headers, as if the | |||
| response were a 200 OK to the initial request. Since provisional | response were a 200 OK to the initial request. Since provisional | |||
| responses MAY contain Record-Route and Contact headers, the | responses MAY contain Record-Route and Contact headers, the COMET | |||
| PRECONDITION-MET request MUST contain Route headers if the Record- | request MUST contain Route headers if the Record-Route headers were | |||
| Route headers were present in the provisional response. The Route | present in the provisional response. The Route header is constructed | |||
| header is constructed as specified in [2]. The Route header that is | as specified in [2]. The Route header that is constructed from some | |||
| constructed from some provisional response MUST NOT be placed in any | provisional response MUST NOT be placed in any other request except | |||
| other request except for the PRECONDITION-MET for that provisional | for the COMET for that provisional response. | |||
| response. | ||||
| A UAC MUST NOT insert a Route header into a PRECONDITION-MET request | ||||
| if no Record-Route header was present in the response. | ||||
| If the initial request was sent with credentials, the PRECONDITION- | A UAC MUST NOT insert a Route header into a COMET request if no | |||
| MET request SHOULD contain those credentials as well. | Record-Route header was present in the response. | |||
| The Call-ID in the PRECONDITION-MET MUST match that of the | If the initial request was sent with credentials, the COMET request | |||
| provisional response. The CSeq in this request MUST be larger than | SHOULD contain those credentials as well. | |||
| the last request sent by this UAC for this call leg. The To, From, | ||||
| Category Informational - Expiration 9/30/00 9 | The Call-ID in the COMET MUST match that of the provisional | |||
| and Via headers MUST be present, and MUST be constructed as they | response. The CSeq in this request MUST be larger than the last | |||
| would be for a re-INVITE or BYE as specified in [2]. In particular, | request sent by this UAC for this call leg. The To, From, and Via | |||
| if the provisional response contained a tag in the To field, this | headers MUST be present, and MUST be constructed as they would be | |||
| tag MUST be mirrored in the To field of the PRECONDITION-MET. | for a re-INVITE or BYE as specified in [2]. In particular, if the | |||
| provisional response contained a tag in the To field, this tag MUST | ||||
| be mirrored in the To field of the COMET. | ||||
| Once the PRECONDITION-MET request is created, it is sent by the UAC. | Once the COMET request is created, it is sent by the UAC. It is sent | |||
| It is sent as would any other non-INVITE request for a call. In | as would any other non-INVITE request for a call. In particular, | |||
| particular, when sent over UDP, the PRECONDITION-MET request is | when sent over UDP, the COMET request is retransmitted with an | |||
| retransmitted with an exponentially increasing interval, starting at | exponentially increasing interval, starting at 500 milliseconds and | |||
| 500 milliseconds and increasing to 4 seconds. Note that a UAC SHOULD | increasing to 4 seconds. Note that a UAC SHOULD NOT retransmit the | |||
| NOT retransmit the PRECONDITION-MET request when it receives a | COMET request when it receives a retransmission of the provisional | |||
| retransmission of the provisional response being acknowledged, | response being acknowledged, although doing so does not create a | |||
| although doing so does not create a protocol error. As with any | protocol error. As with any other non-INVITE request, the UAC | |||
| other non-INVITE request, the UAC continues to retransmit the | continues to retransmit the COMET request until it receives a final | |||
| PRECONDITION-MET request until it receives a final response. | response. | |||
| A PRECONDITION-MET request MAY be cancelled. However, whilst allowed | A COMET request MAY be cancelled. However, whilst allowed for | |||
| for purposes of generality, usage of CANCEL with PRECONDITION-MET is | purposes of generality, usage of CANCEL with COMET is NOT | |||
| NOT RECOMMENDED. | RECOMMENDED. | |||
| 5.1 Header Field Support for PRECONDITION-MET Method | 5.1 Header Field Support for COMET Method | |||
| Tables 3 and 4 are extensions of tables 4 and 5 in the SIP | Tables 3 and 4 are extensions of tables 4 and 5 in the SIP | |||
| specification[2]. Refer to Section 6 of [2] for a description of | specification[2]. Refer to Section 6 of [2] for a description of | |||
| the content of the tables. | the content of the tables. | |||
| 5.2 Responses to the PRECONDITION-MET Request Method | 5.2 Responses to the COMET Request Method | |||
| If a server receives a PRECONDITION-MET request it MUST send a final | If a server receives a COMET request it MUST send a final response. | |||
| response. | ||||
| A 200 OK response MUST be sent by a UAS for a PRECONDITION-MET | A 200 OK response MUST be sent by a UAS for a COMET request if the | |||
| request if the PRECONDITION-MET request was successfully received | COMET request was successfully received for an existing call. | |||
| for an existing call. Beyond that, no additional operations are | Beyond that, no additional operations are required. | |||
| required. | ||||
| A 481 Call Leg/Transaction Does Not Exist message MUST be sent by a | A 481 Call Leg/Transaction Does Not Exist message MUST be sent by a | |||
| UAS if the PRECONDITION-MET request does not match any existing call | UAS if the COMET request does not match any existing call leg. | |||
| leg. | ||||
| Category Informational - Expiration 9/30/00 10 | Header Where COMET | |||
| Header Where PRECONDITION-MET | ||||
| ------ ----- ---- | ------ ----- ---- | |||
| Accept R o | Accept R o | |||
| Accept-Encoding R o | Accept-Encoding R o | |||
| Accept-Language R o | Accept-Language R o | |||
| Allow 200 - | Allow 200 - | |||
| Allow 405 o | Allow 405 o | |||
| Authorization R o | Authorization R o | |||
| Call-ID gc m | Call-ID gc m | |||
| Contact R o | Contact R o | |||
| Contact 1xx - | Contact 1xx - | |||
| skipping to change at line 546 ¶ | skipping to change at line 527 ¶ | |||
| Content-Type e * | Content-Type e * | |||
| CSeq gc m | CSeq gc m | |||
| Date g o | Date g o | |||
| Encryption g o | Encryption g o | |||
| Expires g o | Expires g o | |||
| From gc m | From gc m | |||
| Hide R o | Hide R o | |||
| Max-Forwards R o | Max-Forwards R o | |||
| Organization g o | Organization g o | |||
| Table 3 Summary of header fields, A-0 | Table 3 Summary of header fields, A-0 | |||
| Header Where COMET | ||||
| Header Where PRECONDITION-MET | ||||
| ------ ----- ---- | ------ ----- ---- | |||
| Priority R o | Priority R o | |||
| Proxy-Authenticate 407 o | Proxy-Authenticate 407 o | |||
| Proxy-Authorization R o | Proxy-Authorization R o | |||
| Proxy-Require R o | Proxy-Require R o | |||
| Require R o | Require R o | |||
| Retry-After R - | Retry-After R - | |||
| Retry-After 404,480,486 o | Retry-After 404,480,486 o | |||
| Retry-After 503 o | Retry-After 503 o | |||
| Retry-After 600,603 o | Retry-After 600,603 o | |||
| skipping to change at line 574 ¶ | skipping to change at line 554 ¶ | |||
| Timestamp g o | Timestamp g o | |||
| To gc(1) m | To gc(1) m | |||
| Unsupported 420 o | Unsupported 420 o | |||
| User-Agent g o | User-Agent g o | |||
| Via gc(2) m | Via gc(2) m | |||
| Warning r o | Warning r o | |||
| WWW-Authenticate 401 o | WWW-Authenticate 401 o | |||
| Table 4 Summary of header fields, P-Z | Table 4 Summary of header fields, P-Z | |||
| Category Informational - Expiration 9/30/00 11 | ||||
| Other request failure (4xx), Server Failure (5xx) and Global Failure | Other request failure (4xx), Server Failure (5xx) and Global Failure | |||
| (6xx) responses MAY be sent for the PRECONDITION-MET Request. | (6xx) responses MAY be sent for the COMET Request. | |||
| 5.3 Message Body Inclusion | 5.3 Message Body Inclusion | |||
| The PRECONDITION-MET request MUST contain a message body. | The COMET request MUST contain a message body. | |||
| 5.4 Behavior of SIP User Agents | 5.4 Behavior of SIP User Agents | |||
| Unless stated otherwise, the protocol rules for the PRECONDITION-MET | Unless stated otherwise, the protocol rules for the COMET request | |||
| request governing the usage of tags, Route and Record-Route, | governing the usage of tags, Route and Record-Route, retransmission | |||
| retransmission and reliability, CSeq incrementing and message | and reliability, CSeq incrementing and message formatting follow | |||
| formatting follow those in [2] as defined for the BYE request. | those in [2] as defined for the BYE request. | |||
| A PRECONDITION-MET request MAY be cancelled. A UAS receiving a | A COMET request MAY be cancelled. A UAS receiving a CANCEL for an | |||
| CANCEL for an PRECONDITION-MET request SHOULD respond to the | COMET request SHOULD respond to the COMET with a "487 Request | |||
| PRECONDITION-MET with a "487 Request Cancelled" response if a final | Cancelled" response if a final response has not been sent to the | |||
| response has not been sent to the PRECONDITION-MET and then behave | COMET and then behave as if the request were never received. | |||
| as if the request were never received. | ||||
| 5.5 Behavior of SIP Proxy and Redirect Servers | 5.5 Behavior of SIP Proxy and Redirect Servers | |||
| 5.5.1 Proxy Server | 5.5.1 Proxy Server | |||
| Unless stated otherwise, the protocol rules for the PRECONDITION-MET | Unless stated otherwise, the protocol rules for the COMET request at | |||
| request at a proxy are identical to those for a BYE request as | a proxy are identical to those for a BYE request as specified in | |||
| specified in [2]. | [2]. | |||
| 5.5.2 Forking Proxy Server | 5.5.2 Forking Proxy Server | |||
| Unless stated otherwise, the protocol rules for the COMET request at | ||||
| Unless stated otherwise, the protocol rules for the PRECONDITION-MET | a proxy are identical to those for a BYE request as specified in | |||
| request at a proxy are identical to those for a BYE request as | [2]. | |||
| specified in [2]. | ||||
| 5.5.3 Redirection Server | 5.5.3 Redirection Server | |||
| Unless stated otherwise, the protocol rules for the PRECONDITION-MET | Unless stated otherwise, the protocol rules for the COMET request at | |||
| request at a proxy are identical to those for a BYE request as | a proxy are identical to those for a BYE request as specified in | |||
| specified in [2]. | [2]. | |||
| 6. SIP Extension: The 580-Precondition-Failure Response | 6. SIP Extension: The 580-Precondition-Failure Response | |||
| An additional error response is defined by this draft, which is | An additional error response is defined by this draft, which is | |||
| returned by a UAS if it is unable to perform the mandatory | returned by a UAS if it is unable to perform the mandatory | |||
| preconditions for the session. | preconditions for the session. | |||
| 6.1 Status Code and Reason Phrase | 6.1 Status Code and Reason Phrase | |||
| The following is to be added to Figure 8, Server error status codes | The following is to be added to Figure 8, Server error status codes | |||
| Server-Error = "580" ;Precondition-Failure | Server-Error = "580" ;Precondition-Failure | |||
| Category Informational - Expiration 9/30/00 12 | ||||
| 6.2 Status Code Definition | 6.2 Status Code Definition | |||
| The following is to be added to a new section 7.5.7. | The following is to be added to a new section 7.5.7. | |||
| 7.5.7 580 Precondition Failure | 7.5.7 580 Precondition Failure | |||
| The server was unable to establish the qos or security association | The server was unable to establish the qos or security association | |||
| mandated by the SDP precondition. | mandated by the SDP precondition. | |||
| 7. SIP Usage Rules | 7. SIP Usage Rules | |||
| skipping to change at line 660 ¶ | skipping to change at line 636 ¶ | |||
| The recipient of the INVITE (UAS) returns a 183-Session-Progress | The recipient of the INVITE (UAS) returns a 183-Session-Progress | |||
| provisional response containing SDP, along with the qos/security | provisional response containing SDP, along with the qos/security | |||
| attribute for each stream having a precondition, and would typically | attribute for each stream having a precondition, and would typically | |||
| include a confirmation request. This SDP is a subset of the | include a confirmation request. This SDP is a subset of the | |||
| preconditions indicated in the INVITE. Unlike normal SIP processing, | preconditions indicated in the INVITE. Unlike normal SIP processing, | |||
| the UAS MUST NOT alert the called user at this point. The UAS now | the UAS MUST NOT alert the called user at this point. The UAS now | |||
| attempts to reserve the qos resources and establish the security | attempts to reserve the qos resources and establish the security | |||
| associations. | associations. | |||
| The 183-Session-Progress is received by the UAC. If the 183 | The 183-Session-Progress is received by the UAC. If the 183 | |||
| contained SDP with mandatory qos/security parameters, the UAC SHOULD | contained SDP with mandatory qos/security parameters, the UAC does | |||
| NOT generate local ringback until the mandatory preconditions are | not generate local ringback until the mandatory preconditions are | |||
| met. The UAC attempts to reserve the needed resources and establish | met. The UAC attempts to reserve the needed resources and establish | |||
| the security associations. | the security associations. | |||
| If either party requests a confirmation, a PRECONDITION-MET message | If either party requests a confirmation, a COMET message is sent to | |||
| MUST be sent to that party. The PRECONDITION-MET message contains | that party. The COMET message contains the success/failure | |||
| the success/failure indication for each precondition. Upon receipt | indication for each precondition. Upon receipt of the COMET message, | |||
| of the PRECONDITION-MET message, the UAC/UAS continues normal SIP | the UAC/UAS continues normal SIP call handling, by (for a UAS) | |||
| call handling, by (for a UAS) alerting the user and sending either a | alerting the user and sending either a 180-Ringing or 183-Early- | |||
| 180-Ringing or 183-Early-Media provisional response. The UAC either | Media provisional response. The UAC either provides ringback (in | |||
| provides ringback (in the case that a 180 was received) or plays | the case that a 180 was received) or plays media from the remote | |||
| media from the remote party (in the case of 183), and the SIP | party (in the case of 183), and the SIP transaction completes | |||
| transaction completes normally. | normally. | |||
| Note that this extension requires usage of reliable provisional | Note that this extension requires usage of reliable provisional | |||
| responses [12]. This is because the 183 contains SDP with | responses [12]. This is because the 183 contains SDP with | |||
| information required for the session originator to initiate | information required for the session originator to initiate | |||
| reservations from it towards the participant. | reservations from it towards the participant. | |||
| 7.2 Behavior of Originator (UAC) | 7.2 Behavior of Originator (UAC) | |||
| Category Informational - Expiration 9/30/00 13 | ||||
| The session originator (UAC) MAY include QoS and security | The session originator (UAC) MAY include QoS and security | |||
| preconditions (including the desired direction) for each media flow | preconditions (including the desired direction) for each media flow | |||
| in the SDP sent with the INVITE. The token value "send" means the | in the SDP sent with the INVITE. The token value "send" means the | |||
| direction of media from originator (whichever entity created the | direction of media from originator (whichever entity created the | |||
| SDP) to recipient (whichever entity received the SDP in a SIP | SDP) to recipient (whichever entity received the SDP in a SIP | |||
| message), and "recv" is from recipient to originator. | message), and "recv" is from recipient to originator. If | |||
| preconditions are included in the INVITE request, the UAC MUST | ||||
| indicate support for reliable provisional responses [12]. | ||||
| If the UAC receives a 183-Session-Progress without SDP, or with SDP | If the UAC receives a 183-Session-Progress without SDP, or with SDP | |||
| but without any qos/security preconditions in any stream, UAC treats | but without any qos/security preconditions in any stream, UAC treats | |||
| it as an indication that the UAS is unable or unwilling to perform | it as an indication that the UAS is unable or unwilling to perform | |||
| the preconditions requested. As such, the UAC SHOULD proceed with | the preconditions requested. As such, the UAC SHOULD proceed with | |||
| normal call setup procedures. If the 183 contained SDP with | normal call setup procedures. If the INVITE or 183-Session-Progress | |||
| mandatory qos/security parameters, the UAC SHOULD NOT generate local | contained SDP with mandatory qos/security parameters, the UAC SHOULD | |||
| ringback until the mandatory preconditions are met. | NOT generate local ringback until the mandatory preconditions are | |||
| met. | ||||
| If the 183-Session-Progress response requested an acknowledgement | ||||
| (using the methods of [12]), the UAC MUST include an updated SDP in | ||||
| the PRACK if the UAC modified the original SDP based on the response | ||||
| from the UAS. Such a modification MAY be due to negotiation of | ||||
| compatible CODECs, or MAY be due to negotiation of mandatory | ||||
| preconditions. | ||||
| Upon receipt of the 183-Session-Progress with SDP, the UAC MUST | Upon receipt of the 183-Session-Progress with SDP, the UAC MUST | |||
| initiate the qos reservations and establish the security | initiate the qos reservations and establish the security | |||
| associations required. If the UAC had requested confirmation in the | associations required. If the UAC had requested confirmation in the | |||
| initial SDP, it MAY wait for the PRECONDITION-MET message from the | initial SDP, it MAY wait for the COMET message from the UAS | |||
| UAS containing the success/failure status of each precondition. The | containing the success/failure status of each precondition. The UAC | |||
| UAC MAY set a local timer to limit the time waiting for | MAY set a local timer to limit the time waiting for preconditions to | |||
| preconditions to complete. | complete. | |||
| If any of the mandatory preconditions cannot be met, the UAC MUST | If any of the mandatory preconditions cannot be met, the UAC MUST | |||
| send a CANCEL and terminate the session. | send a CANCEL and terminate the session. If any of the optional | |||
| preconditions cannot be met, the UAC MAY consult with the | ||||
| originating customer for guidance on whether to complete the | ||||
| session. | ||||
| When the optional preconditions have either been met or have failed, | When all the preconditions have either been met or have failed, and | |||
| and the SDP received from the UAS included a confirmation request, | the SDP received from the UAS included a confirmation request, the | |||
| the UAC MUST send a PRECONDITION-MET message to the UAS with SDP, | UAC MUST send a COMET message to the UAS with SDP, where each | |||
| where each precondition is updated to indicate success/failure. | precondition is updated to indicate success/failure. | |||
| The session now completes normally, as per [2]. | The session now completes normally, as per [2]. | |||
| 7.3 Behavior of Destination (UAS) | 7.3 Behavior of Destination (UAS) | |||
| On receipt of an INVITE request containing preconditions, the UAS | On receipt of an INVITE request containing preconditions, the UAS | |||
| MUST generate a 183-Session-Progress response containing a subset of | MUST generate a 183-Session-Progress response containing a subset of | |||
| the preconditions supported by the UAS. In the response, the token | the preconditions supported by the UAS. In the response, the token | |||
| value "send" means the direction of the media from the UAS to the | value "send" means the direction of the media from the UAS to the | |||
| originator, and "recv" is from the originator to the recipient. | originator, and "recv" is from the originator to the recipient. | |||
| This is reversed from the SDP in the initial INVITE. The 183 | This is reversed from the SDP in the initial INVITE. The 183 | |||
| provisional response MUST include a Session: header with parameter | provisional response MUST include a Session: header with parameter | |||
| "qos" and/or "security" and MUST NOT include the session parameter | "qos" and/or "security" and MUST NOT include the session parameter | |||
| "Media." | "Media." | |||
| Unlike normal SIP processing, the UAS MUST NOT alert the called user | If the INVITE request did not contain any preconditions, but did | |||
| at this point (unless the SDP in the 183 indicated no mandatory | indicate support for reliable provisional responses[12], the UAS MAY | |||
| preconditions and no confirmation requests). The UAS now attempts | include preconditions in a 183-Session-Progress response to the | |||
| to reserve the qos resources and establish the security | INVITE. The 183 provisional response MUST include a Session: header | |||
| associations. The UAS MAY set a local timer to limit the time | with the parameter "qos" and/or "security" and MUST NOT include the | |||
| waiting for preconditions to complete. | session parameter "Media." The 183 provisional response MUST | |||
| request an acknowledgement using the mechanism of [12]. If the | ||||
| PRACK includes an SDP without any preconditions, the UAS MAY | ||||
| complete the session without the preconditions, or MAY reject the | ||||
| INVITE request. | ||||
| The UAS SHOULD request an acknowledgement to the 183 provisional | ||||
| response, using the mechanism of [12]. The UAS SHOULD wait for the | ||||
| PRACK message before initiating resource reservation to allow the | ||||
| resource reservation to reflect 3-way SDP negotiation, or other | ||||
| information available only through receipt of the PRACK. | ||||
| If the INVITE request or PRACK message contained mandatory | ||||
| preconditions, or requested a confirmation of preconditions, the UAS | ||||
| MUST NOT alert the called user. | ||||
| The UAS now attempts to reserve the qos resources and establish the | ||||
| security associations. The UAS MAY set a local timer to limit the | ||||
| time waiting for preconditions to complete. | ||||
| Category Informational - Expiration 9/30/00 14 | ||||
| If the UAS is unable to perform any mandatory precondition, it MUST | If the UAS is unable to perform any mandatory precondition, it MUST | |||
| send a 580-Precondition-Failure response to the UAC. | send a 580-Precondition-Failure response to the UAC. If the UAS is | |||
| unable to perform any optional precondition, it MAY consult with the | ||||
| customer to obtain guidance regarding completion of the session. | ||||
| When processing of all preconditions is complete, if a precondition | When processing of all preconditions is complete, if a precondition | |||
| in the initial INVITE specified a confirmation request, the UAS MUST | in the initial INVITE specified a confirmation request, the UAS MUST | |||
| send a PRECONDITION-MET message to the originator containing SDP, | send a COMET message to the originator containing SDP, along with | |||
| along with the qos/security result of success/failure for each | the qos/security result of success/failure for each precondition. | |||
| precondition. The Request-URI, call-leg identification, and other | The Request-URI, call-leg identification, and other headers of this | |||
| headers of this PRECONDITION-MET message is to be constructed | COMET message is to be constructed identically to a BYE. | |||
| identically to a BYE. | ||||
| If the UAS had requested confirmation of a precondition in the | If the UAS had requested confirmation of a precondition in the | |||
| response SDP, it SHOULD wait for the PRECONDITION-MET message from | response SDP, it SHOULD wait for the COMET message from the | |||
| the originator containing the success/failure indication of each | originator containing the success/failure indication of each | |||
| precondition from the originator's point of view. If that | precondition from the originator's point of view. If that | |||
| confirmation indicates a failure for a mandatory precondition, the | confirmation indicates a failure for a mandatory precondition, the | |||
| UAS MUST send a 415-Precondition-Failure response to the UAC. | UAS MUST send a 580-Precondition-Failure response to the UAC. | |||
| Once the preconditions are met, the UAS alerts the user, and the SIP | Once the preconditions are met, the UAS alerts the user, and the SIP | |||
| transaction completes normally. | transaction completes normally. | |||
| 8. Examples | 8. Examples | |||
| 8.1 Basic (Single-Media) Call Flow | 8.1 Basic (Single-Media) Call Flow | |||
| Figure 1 presents a high-level overview of a basic end-point to end- | Figure 1 presents a high-level overview of a basic end-point to end- | |||
| point (UAC-UAS) call flow. This example is appropriate for a | point (UAC-UAS) call flow. This example is appropriate for a | |||
| skipping to change at line 784 ¶ | skipping to change at line 790 ¶ | |||
| each stream having a precondition, and requesting a confirmation | each stream having a precondition, and requesting a confirmation | |||
| when the preconditions are met. The UAS now attempts to reserve the | when the preconditions are met. The UAS now attempts to reserve the | |||
| qos resources and establish the security associations. | qos resources and establish the security associations. | |||
| The 183-Session-Progress provisional response is sent using the | The 183-Session-Progress provisional response is sent using the | |||
| reliability mechanism of [12]. UAC sends the appropriate PRACK and | reliability mechanism of [12]. UAC sends the appropriate PRACK and | |||
| UAS responds with a 200-OK to the PRACK. | UAS responds with a 200-OK to the PRACK. | |||
| The 183-Session-Progress is received by the UAC, and the UAC | The 183-Session-Progress is received by the UAC, and the UAC | |||
| requests the resources needed and establishes the security | requests the resources needed and establishes the security | |||
| associations. Once the preconditions are met, the UAS sends a | associations. Once the preconditions are met, the UAS sends a COMET | |||
| PRECONDITION-MET message as requested by the confirmation token. | message as requested by the confirmation token. | |||
| Category Informational - Expiration 9/30/00 15 | ||||
| Originating (UAC) Terminating (UAS) | Originating (UAC) Terminating (UAS) | |||
| | SIP-Proxy(s) | | | SIP-Proxy(s) | | |||
| | INVITE | | | | INVITE | | | |||
| |---------------------->|---------------------->| | |---------------------->|---------------------->| | |||
| | | | | | | | | |||
| | 183 w/SDP | 183 w/SDP | | | 183 w/SDP | 183 w/SDP | | |||
| |<----------------------|<----------------------| | |<----------------------|<----------------------| | |||
| | | | | | | |||
| | PRACK | | | PRACK | | |||
| |---------------------------------------------->| | |---------------------------------------------->| | |||
| | 200 OK (of PRACK) | | | 200 OK (of PRACK) | | |||
| |<----------------------------------------------| | |<----------------------------------------------| | |||
| | Reservation Reservation | | | Reservation Reservation | | |||
| ===========> <=========== | ===========> <=========== | |||
| | | | | | | |||
| | | | | | | |||
| | PRECONDITION-MET | | | COMET | | |||
| |---------------------------------------------->| | |---------------------------------------------->| | |||
| | 200 OK (of PRECONDITION-MET) | | | 200 OK (of COMET) | | |||
| |<----------------------------------------------| | |<----------------------------------------------| | |||
| | | | | |||
| | | | | |||
| | SIP-Proxy(s) User Alerted | | SIP-Proxy(s) User Alerted | |||
| | | | | | | | | |||
| | 180 Ringing | 180 Ringing | | | 180 Ringing | 180 Ringing | | |||
| |<----------------------|<----------------------| | |<----------------------|<----------------------| | |||
| | | | | | | |||
| | PRACK | | | PRACK | | |||
| |---------------------------------------------->| | |---------------------------------------------->| | |||
| skipping to change at line 832 ¶ | skipping to change at line 837 ¶ | |||
| | | | | | | | | |||
| | 200 OK | 200 OK | | | 200 OK | 200 OK | | |||
| |<----------------------|<----------------------| | |<----------------------|<----------------------| | |||
| | | | | | | | | |||
| | | | | | | |||
| | ACK | | | ACK | | |||
| |---------------------------------------------->| | |---------------------------------------------->| | |||
| Figure 1: Basic Call FLow | Figure 1: Basic Call FLow | |||
| On receipt of the PRECONDITION-MET message, the UAS knows all | On receipt of the COMET message, the UAS knows all preconditions | |||
| preconditions have been met, and continues with session | have been met, and continues with session establishment. At this | |||
| establishment. At this point it alerts the user, and sends a 180- | point it alerts the user, and sends a 180-Ringing provisional | |||
| Ringing provisional response. This provisional response is also | response. This provisional response is also sent using the | |||
| sent using the reliability mechanism of [12], resulting in a PRACK | reliability mechanism of [12], resulting in a PRACK message and 200- | |||
| message and 200-OK of the PRACK. | OK of the PRACK. | |||
| Category Informational - Expiration 9/30/00 16 | ||||
| When the destination party answers, the normal SIP 200-OK final | When the destination party answers, the normal SIP 200-OK final | |||
| response is sent through the proxies to the originator, and the | response is sent through the proxies to the originator, and the | |||
| originator responds with an ACK message. | originator responds with an ACK message. | |||
| Either party can terminate the call. An endpoint that detects an | Either party can terminate the call. An endpoint that detects an | |||
| "on-hook" (request to terminate the call) releases the QoS resources | "on-hook" (request to terminate the call) releases the QoS resources | |||
| held for the connection, and sends a SIP BYE message to the remote | held for the connection, and sends a SIP BYE message to the remote | |||
| endpoint, which is acknowledged with a 200-OK. | endpoint, which is acknowledged with a 200-OK. | |||
| 8.2 Advanced (Multiple-Media) Call Flow | 8.2 Advanced (Multiple-Media) Call Flow | |||
| skipping to change at line 870 ¶ | skipping to change at line 874 ¶ | |||
| The session originator (UAC) prepares an SDP message body for the | The session originator (UAC) prepares an SDP message body for the | |||
| INVITE describing the desired QoS and security preconditions for | INVITE describing the desired QoS and security preconditions for | |||
| each media flow, and the desired directions. UAC also requests | each media flow, and the desired directions. UAC also requests | |||
| confirmation of the preconditions. The UAS receiving the INVITE | confirmation of the preconditions. The UAS receiving the INVITE | |||
| message responds with 183-Session-Progress, as in the previous | message responds with 183-Session-Progress, as in the previous | |||
| example. | example. | |||
| When the UAS has completed the resource reservations and security | When the UAS has completed the resource reservations and security | |||
| session establishment, it sends a confirmation to the UAC in the | session establishment, it sends a confirmation to the UAC in the | |||
| form of a PRECONDITION-MET message, with each precondition marked in | form of a COMET message, with each precondition marked in the SDP as | |||
| the SDP as either success or failure. Note that if UAS was not | either success or failure. Note that if UAS was not satisfied with | |||
| satisfied with the combination of successful preconditions, it could | the combination of successful preconditions, it could instead have | |||
| instead have responded with 580-Precondition-Failure, and ended the | responded with 580-Precondition-Failure, and ended the INVITE | |||
| INVITE transaction. | transaction. | |||
| If the UAC has satisfied its preconditions, and is satisfied with | If the UAC has satisfied its preconditions, and is satisfied with | |||
| the preconditions achieved by the UAS, it responds with the | the preconditions achieved by the UAS, it responds with the COMET | |||
| PRECONDITION-MET message. The PRECONDITION-MET message contains the | message. The COMET message contains the SDP with the | |||
| SDP with the success/failure results of each precondition attempted | success/failure results of each precondition attempted by UAC. If | |||
| by UAC. If UAC is not satisfied with the combination of successful | UAC is not satisfied with the combination of successful | |||
| preconditions, it could instead have sent a CANCEL message. | preconditions, it could instead have sent a CANCEL message. | |||
| On receipt of the PRECONDITION-MET message, UAS examines the | On receipt of the COMET message, UAS examines the combination of | |||
| combination of satisfied preconditions reported by UAC, and makes a | satisfied preconditions reported by UAC, and makes a final decision | |||
| final decision whether to proceed with the session. If sufficient | whether to proceed with the session. If sufficient preconditions | |||
| preconditions are not satisfied, the UAS responds with 580- | are not satisfied, the UAS responds with 580-Precondition-Failure. | |||
| Precondition-Failure. Otherwise, the session proceeds as in the | Otherwise, the session proceeds as in the previous example. | |||
| previous example. | ||||
| Category Informational - Expiration 9/30/00 17 | ||||
| Originating (UAC) Terminating (UAS) | Originating (UAC) Terminating (UAS) | |||
| | SIP-Proxy(s) | | | SIP-Proxy(s) | | |||
| | INVITE | | | | INVITE | | | |||
| |---------------------->|---------------------->| | |---------------------->|---------------------->| | |||
| | | | | | | | | |||
| | 183 w/SDP | 183 w/SDP | | | 183 w/SDP | 183 w/SDP | | |||
| |<----------------------|<----------------------| | |<----------------------|<----------------------| | |||
| | | | | | | |||
| | Reservation Reservation | | | Reservation Reservation | | |||
| ===========> <=========== | ===========> <=========== | |||
| | | | | | | |||
| | PRECONDITION-MET | | | COMET | | |||
| |<----------------------------------------------| | |<----------------------------------------------| | |||
| | 200 OK (of PRECONDITION-MET) | | | 200 OK (of COMET) | | |||
| |---------------------------------------------->| | |---------------------------------------------->| | |||
| | | | | | | |||
| | PRECONDITION-MET | | | COMET | | |||
| |---------------------------------------------->| | |---------------------------------------------->| | |||
| | 200 OK (of PRECONDITION-MET) | | | 200 OK (of COMET) | | |||
| |<----------------------------------------------| | |<----------------------------------------------| | |||
| | | | | |||
| | | | | |||
| | SIP-Proxy(s) User Alerted | | SIP-Proxy(s) User Alerted | |||
| | | | | | | | | |||
| | 180 Ringing | 180 Ringing | | | 180 Ringing | 180 Ringing | | |||
| |<----------------------|<----------------------| | |<----------------------|<----------------------| | |||
| | | | | | | |||
| | | | | | | |||
| | User Picks-Up | | User Picks-Up | |||
| skipping to change at line 940 ¶ | skipping to change at line 942 ¶ | |||
| 9. Advantages of the Proposed Approach | 9. Advantages of the Proposed Approach | |||
| The use of two-phase call signaling makes it possible for SIP to | The use of two-phase call signaling makes it possible for SIP to | |||
| meet user expectations that come from the telephony services. | meet user expectations that come from the telephony services. | |||
| The reservation of resources before the user is alerted makes sure | The reservation of resources before the user is alerted makes sure | |||
| that the network resources are assured before the destination end- | that the network resources are assured before the destination end- | |||
| point is informed about the call. | point is informed about the call. | |||
| Category Informational - Expiration 9/30/00 18 | ||||
| The number of messages and the total delay introduced by these | The number of messages and the total delay introduced by these | |||
| messages is kept to a minimum without sacrificing compatibility with | messages is kept to a minimum without sacrificing compatibility with | |||
| SIP servers that do not implement preconditions. | SIP servers that do not implement preconditions. | |||
| 10. Security Considerations | 10. Security Considerations | |||
| If the contents of the SDP contained in the 183-Session-Progress are | If the contents of the SDP contained in the 183-Session-Progress are | |||
| private then end-to-end encryption of the message body can be used | private then end-to-end encryption of the message body can be used | |||
| to prevent unauthorized access to the content. | to prevent unauthorized access to the content. | |||
| The security considerations given in the SIP specification apply to | The security considerations given in the SIP specification apply to | |||
| the PRECONDITION-MET method. No additional security considerations | the COMET method. No additional security considerations specific to | |||
| specific to the PRECONDITION-MET method are necessary. | the COMET method are necessary. | |||
| 11. References | 11. Notice Regarding Intellectual Property Rights | |||
| AT&T may seek patent or other intellectual property protection for | ||||
| some or all of the technologies disclosed in the document. If any | ||||
| standards arising from this disclosure are or become protected by | ||||
| one or more patents assigned to AT&T, AT&T intends to disclose those | ||||
| patents and license them on reasonable and non-discriminatory terms. | ||||
| Future revisions of this draft may contain additional information | ||||
| regarding specific intellectual property protection sought or | ||||
| received. | ||||
| 3COM may seek patent or other intellectual property protection for | ||||
| some or all of the technologies disclosed in the document. If any | ||||
| standards arising from this disclosure are or become protected by | ||||
| one or more patents assigned to 3COM, 3COM intends to disclose those | ||||
| patents and license them on reasonable and non-discriminatory terms. | ||||
| Future revisions of this draft may contain additional information | ||||
| regarding specific intellectual property protection sought or | ||||
| received. | ||||
| 12. References | ||||
| 1. Bradner, S., "The Internet Standards Process -- Revision 3", BCP | 1. Bradner, S., "The Internet Standards Process -- Revision 3", BCP | |||
| 9, RFC 2026, October 1996. | 9, RFC 2026, October 1996. | |||
| 2. M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP: | 2. M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP: | |||
| Session Initiation Protocol," RFC 2543, March 1999. | Session Initiation Protocol," RFC 2543, March 1999. | |||
| 3. M. Handley and V. Jacobson, "SDP: Session Description Protocol," | 3. M. Handley and V. Jacobson, "SDP: Session Description Protocol," | |||
| RFC 2327, April 1998. | RFC 2327, April 1998. | |||
| skipping to change at line 992 ¶ | skipping to change at line 1013 ¶ | |||
| Technical Report TC20967. Available at | Technical Report TC20967. Available at | |||
| http://www.cs.columbia.edu/~hgs/papers/Pan98_YESSIR.ps.gz. | http://www.cs.columbia.edu/~hgs/papers/Pan98_YESSIR.ps.gz. | |||
| 8. PacketCable, Dynamic Quality of Service Specification, pkt-sp- | 8. PacketCable, Dynamic Quality of Service Specification, pkt-sp- | |||
| dqos-i01-991201, December 1, 1999. Available at | dqos-i01-991201, December 1, 1999. Available at | |||
| http://www.packetcable.com/specs/pkt-sp-dqos-i01-991202.pdf. | http://www.packetcable.com/specs/pkt-sp-dqos-i01-991202.pdf. | |||
| 9. S. Kent and R. Atkinson, "Security architecture for the internet | 9. S. Kent and R. Atkinson, "Security architecture for the internet | |||
| protocol," RFC 2401, November 1998. | protocol," RFC 2401, November 1998. | |||
| Category Informational - Expiration 9/30/00 19 | ||||
| 10. H. Schulzrinne, S. Casner, R. Frederick, and V. Jacobson, "RTP: | 10. H. Schulzrinne, S. Casner, R. Frederick, and V. Jacobson, "RTP: | |||
| a Transport Protocol for Real-Time Applications," RFC 1889, | a Transport Protocol for Real-Time Applications," RFC 1889, | |||
| January 1996. | January 1996. | |||
| 11. M. Handley, C. Perkins, and E. Whelan, "Session Announcement | 11. M. Handley, C. Perkins, and E. Whelan, "Session Announcement | |||
| Protocol," Internet Draft, <draft-ietf-mmusic-sap-v2-06.txt>, | Protocol," Internet Draft, <draft-ietf-mmusic-sap-v2-06.txt>, | |||
| March 2000, Work in Progress. | March 2000, Work in Progress. | |||
| 12. "Reliability of Provisional Responses in SIP," Internet Draft | 12. "Reliability of Provisional Responses in SIP," Internet Draft | |||
| <draft-ietf-sip-100rel-00.txt>, January 2000, Work in Progress. | <draft-ietf-sip-100rel-00.txt>, January 2000, Work in Progress. | |||
| 12. Acknowledgments | 13. Acknowledgments | |||
| The Distributed Call Signaling work in the PacketCable project is | The Distributed Call Signaling work in the PacketCable project is | |||
| the work of a large number of people, representing many different | the work of a large number of people, representing many different | |||
| companies. The authors would like to recognize and thank the | companies. The authors would like to recognize and thank the | |||
| following for their assistance: John Wheeler, Motorola; David | following for their assistance: John Wheeler, Motorola; David | |||
| Boardman, Daniel Paul, Arris Interactive; Bill Blum, Jon Fellows, | Boardman, Daniel Paul, Arris Interactive; Bill Blum, Jay Strater, | |||
| Jay Strater, Jeff Ollis, Clive Holborow, General Instruments; Doug | Jeff Ollis, Clive Holborow, General Instruments; Doug Newlin, Guido | |||
| Newlin, Guido Schuster, Ikhlaq Sidhu, 3Com; Jiri Matousek, Bay | Schuster, Ikhlaq Sidhu, 3Com; Jiri Matousek, Bay Networks; Farzi | |||
| Networks; Farzi Khazai, Nortel; John Chapman, Bill Guckel, Michael | Khazai, Nortel; John Chapman, Bill Guckel, Cisco; Chuck Kalmanek, | |||
| Ramalho, Cisco; Chuck Kalmanek, Doug Nortz, John Lawser, James | Doug Nortz, John Lawser, James Cheng, Tung-Hai Hsiao, Partho Mishra, | |||
| Cheng, Tung-Hai Hsiao, Partho Mishra, AT&T; Telcordia Technologies; | AT&T; Telcordia Technologies; and Lucent Cable Communications. | |||
| and Lucent Cable Communications. | ||||
| 13. Author's Addresses | 14. Author's Addresses | |||
| Bill Marshall | Bill Marshall | |||
| AT&T | AT&T | |||
| Florham Park, NJ 07932 | Florham Park, NJ 07932 | |||
| Email: wtm@research.att.com | Email: wtm@research.att.com | |||
| K. K. Ramakrishnan | K. K. Ramakrishnan | |||
| AT&T | AT&T | |||
| Florham Park, NJ 07932 | Florham Park, NJ 07932 | |||
| Email: kkrama@research.att.com | Email: kkrama@research.att.com | |||
| skipping to change at line 1042 ¶ | skipping to change at line 1061 ¶ | |||
| Louisville, CO 80027 | Louisville, CO 80027 | |||
| Email: E.Miller@Cablelabs.com | Email: E.Miller@Cablelabs.com | |||
| Glenn Russell | Glenn Russell | |||
| CableLabs | CableLabs | |||
| Louisville, CO 80027 | Louisville, CO 80027 | |||
| Email: G.Russell@Cablelabs.com | Email: G.Russell@Cablelabs.com | |||
| Burcak Beser | Burcak Beser | |||
| 3Com | 3Com | |||
| Category Informational - Expiration 9/30/00 20 | ||||
| Rolling Meadows, IL 60008 | Rolling Meadows, IL 60008 | |||
| Email: Burcak_Beser@3com.com | Email: Burcak_Beser@3com.com | |||
| Mike Mannette | Mike Mannette | |||
| 3Com | 3Com | |||
| Rolling Meadows, IL 60008 | Rolling Meadows, IL 60008 | |||
| Email: Michael_Mannette@3com.com | Email: Michael_Mannette@3com.com | |||
| Kurt Steinbrenner | Kurt Steinbrenner | |||
| 3Com | 3Com | |||
| skipping to change at line 1067 ¶ | skipping to change at line 1084 ¶ | |||
| Dave Oran | Dave Oran | |||
| Cisco | Cisco | |||
| Acton, MA 01720 | Acton, MA 01720 | |||
| Email: oran@cisco.com | Email: oran@cisco.com | |||
| Flemming Andreasen | Flemming Andreasen | |||
| Cisco | Cisco | |||
| Edison, NJ | Edison, NJ | |||
| Email: fandreas@cisco.com | Email: fandreas@cisco.com | |||
| Michael Ramalho | ||||
| Cisco | ||||
| Wall Township, NJ | ||||
| Email: mramalho@cisco.com | ||||
| John Pickens | John Pickens | |||
| Com21 | Com21 | |||
| San Jose, CA | San Jose, CA | |||
| Email: jpickens@com21.com | Email: jpickens@com21.com | |||
| Poornima Lalwaney | Poornima Lalwaney | |||
| Motorola | Nokia | |||
| San Diego, CA 92121 | San Diego, CA 92121 | |||
| Email: plalwaney@gi.com | Email: poornima.lalwaney@nokia.com | |||
| Jon Fellows | Jon Fellows | |||
| Motorola | Motorola | |||
| San Diego, CA 92121 | San Diego, CA 92121 | |||
| Email: jfellows@gi.com | Email: jfellows@gi.com | |||
| Doc Evans | Doc Evans | |||
| Secure Cable Solutions | Secure Cable Solutions | |||
| Westminster, CO 30120 | Westminster, CO 30120 | |||
| Email: drevans@securecable.com | Email: drevans@securecable.com | |||
| skipping to change at line 1097 ¶ | skipping to change at line 1119 ¶ | |||
| Keith Kelly | Keith Kelly | |||
| NetSpeak | NetSpeak | |||
| Boca Raton, FL 33587 | Boca Raton, FL 33587 | |||
| Email: keith@netspeak.com | Email: keith@netspeak.com | |||
| Adam Roach | Adam Roach | |||
| Ericsson | Ericsson | |||
| Richardson, TX 75081 | Richardson, TX 75081 | |||
| Email: adam.roach@ericsson.com | Email: adam.roach@ericsson.com | |||
| Category Informational - Expiration 9/30/00 21 | ||||
| Jonathan Rosenberg | Jonathan Rosenberg | |||
| dynamicsoft | dynamicsoft | |||
| West Orange, NJ 07052 | West Orange, NJ 07052 | |||
| Email: jdrosen@dynamicsoft.com | Email: jdrosen@dynamicsoft.com | |||
| Dean Willis | ||||
| Dynamicsoft | ||||
| West Orange, NJ 07052 | ||||
| Email: dwillis@dynamicsoft.com | ||||
| Henning Schulzrinne | Henning Schulzrinne | |||
| Columbia University | Columbia University | |||
| New York, NY | New York, NY | |||
| Email: schulzrinne@cs.columbia.edu | Email: schulzrinne@cs.columbia.edu | |||
| Steve Donovan | Steve Donovan | |||
| MCI Worldcom | MCI Worldcom | |||
| Richardson, Texas 75081 | Richardson, Texas 75081 | |||
| Email: steven.r.donovan@wcom.com | Email: steven.r.donovan@wcom.com | |||
| Category Informational - Expiration 9/30/00 22 | ||||
| Full Copyright Statement | Full Copyright Statement | |||
| "Copyright (C) The Internet Society (date). All Rights Reserved. | "Copyright (C) The Internet Society (date). All Rights Reserved. | |||
| This document and translations of it may be copied and furnished to | This document and translations of it may be copied and furnished to | |||
| others, and derivative works that comment on or otherwise explain it | others, and derivative works that comment on or otherwise explain it | |||
| or assist in its implmentation may be prepared, copied, published | or assist in its implmentation may be prepared, copied, published | |||
| and distributed, in whole or in part, without restriction of any | and distributed, in whole or in part, without restriction of any | |||
| kind, provided that the above copyright notice and this paragraph | kind, provided that the above copyright notice and this paragraph | |||
| are included on all such copies and derivative works. However, this | are included on all such copies and derivative works. However, this | |||
| document itself may not be modified in any way, such as by removing | document itself may not be modified in any way, such as by removing | |||
| skipping to change at line 1139 ¶ | skipping to change at line 1163 ¶ | |||
| English. The limited permissions granted above are perpetual and | English. The limited permissions granted above are perpetual and | |||
| will not be revoked by the Internet Society or its successors or | will not be revoked by the Internet Society or its successors or | |||
| assigns. This document and the information contained herein is | assigns. This document and the information contained herein is | |||
| provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE | provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE | |||
| INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR | INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR | |||
| IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | |||
| THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | |||
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE." | WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE." | |||
| Expiration Date This memo is filed as <draft-manyfolks-sip-resource- | Expiration Date This memo is filed as <draft-manyfolks-sip-resource- | |||
| 00.txt>, and expires September 30, 2000. | 01.txt>, and expires December 31, 2000. | |||
| Category Informational - Expiration 9/30/00 23 | ||||
| End of changes. 95 change blocks. | ||||
| 237 lines changed or deleted | 261 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||