Rosenberg Request for Comments: dynamicsoft Obsoletes: H. 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. All Rights Reserved. Abstract This document defines a mechanism by which two entities can make use of the Session Description Protocol SDP to arrive at a common view of a multimedia session between them.
|Published (Last):||19 April 2019|
|PDF File Size:||3.1 Mb|
|ePub File Size:||10.85 Mb|
|Price:||Free* [*Free Regsitration Required]|
Schulzrinne Columbia U. June Reliability of Provisional Responses in the Session Initiation Protocol SIP 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. All Rights Reserved. Table of Contents 1 Introduction Full Copyright Statement SIP defines two types of responses, provisional and final. Final responses convey the result of the request processing, and are sent reliably.
Provisional responses provide information on the progress of the request processing, but are not sent reliably in RFC It was later observed that reliability was important in several cases, including interoperability scenarios with the PSTN.
Therefore, an optional capability was needed to support reliable transmission of provisional responses. That capability is provided in this specification. In order to achieve reliability for provisional responses, we do nearly the same thing. Reliable provisional responses are retransmitted by the TU with an exponential backoff.
There is an important difference, however. As such, its own reliability is ensured hop-by-hop through each stateful proxy. Each provisional response is given a sequence number, carried in the RSeq header field in the response. The PRACK messages contain an RAck header field, which indicates the sequence number of the provisional response that is being acknowledged. The acknowledgments are not cumulative, and the specifications recommend a single outstanding provisional response at a time, for purposes of congestion control.
While this specification does not allow reliable provisional responses for any method but INVITE, extensions that define new methods that can establish dialogs may make use of the mechanism. Only provisional responses numbered to may be sent reliably.
For this reason, the reliability mechanisms described here, which are end-to-end, cannot be used. An element that can act as a proxy can also send reliable provisional responses. In this case, it acts as a UAS for purposes of that transaction. That is, a proxy cannot generate reliable provisional responses to requests sent within the context of a dialog.
There are several reasons why a UAS might want to send a reliable provisional response. As discussed in Section The rest of this discussion assumes that the initial request contained a Supported or Require header field listing rel, and that there is a provisional response to be sent reliably.
The RSeq numbering space is within a single transaction. This means that provisional responses for different requests MAY use the same values for the RSeq number. The reliable provisional response MAY contain a body. The usage of session descriptions is described in Section 5. Once passed to the server transaction, it is added to an internal list of unacknowledged reliable provisional responses. The transaction layer will forward each retransmission passed from the UAS core.
This differs from retransmissions of 2xx responses, whose intervals cap at T2 seconds. A matching PRACK is defined as one within the same dialog as the response, and whose method, CSeq-num, and response-num in the RAck header field match, respectively, the method from the CSeq, the sequence number from the CSeq, and the sequence number from the RSeq of the reliable provisional response.
The UAS can be certain at this point that the provisional response has been received in order. After the first reliable provisional response for a request has been acknowledged, the UAS MAY send additional reliable provisional responses. The first reliable provisional response receives special treatment because it conveys the initial sequence number. If additional reliable provisional responses were sent before the first was acknowledged, the UAS could not be certain these were received in order.
The value of the RSeq in each subsequent reliable provisional response for the same request MUST be greater by exactly one. The UAS MAY send a final response to the initial request before having received PRACKs for all unacknowledged reliable provisional responses, unless the final response is 2xx and any of the unacknowledged reliable provisional responses contained a session description.
To do that, it inserts a Require header field with the option tag rel into the request. If a provisional response is received for an initial request, and that response contains a Require header field containing the option tag rel, the response is to be sent reliably.
This request is sent within the dialog associated with the provisional response indeed, the provisional response may have created the dialog.
Once a reliable provisional response is received, retransmissions of that response MUST be discarded. The UAC MUST maintain a sequence number that indicates the most recently received in-order reliable provisional response for the initial request. This sequence number MUST be maintained until a final response is received for the initial request. Its value MUST be initialized to the RSeq header field in the first reliable provisional response received for the initial request.
Handling of subsequent reliable provisional responses for the same initial request follows the same rules as above, with the following difference: reliable provisional responses are guaranteed to be in order. An implementation MAY discard the response, or MAY cache the response in the hopes of receiving the missing responses. The semantics of this method are described above. Tables 1 and 2 extend Tables 2 and 3 from RFC for this new method.
Table 3 extends Tables 2 and 3 from RFC for these headers. For details on its usage, see Section 3. It contains two numbers and a method tag. The first number is the value from the RSeq header in the provisional response that is being acknowledged. The next number, and the method, are copied from the CSeq in the response that is being acknowledged. The method name in the RAck header is case sensitive. The required information for this registration, as specified in RFC , is: Name: rel Description: This option tag is for reliability of provisional responses.
When present in a Supported header, it indicates that the UA can send or receive reliable provisional responses. When present in a Require header in a reliable provisional response, it indicates that the response is to be sent reliably. Authentication procedures are specified in RFC This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works.
However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
IETF RFC 3263 PDF
Rosenberg Request for Comments: dynamicsoft Obsoletes: H. 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. All Rights Reserved.
The implementation of these applications is complicated by the practices of participants: users may move between endpoints, they may be addressable by multiple names, and they may communicate in several different media - sometimes simultaneously. Numerous protocols have been authored that carry various forms of real-time multimedia session data such as voice, video, or text messages. For locating prospective session participants, and for other functions, SIP enables the creation of an infrastructure of network hosts called proxy servers to which user agents can send registrations, invitations to sessions, and other requests. SIP is an agile, general-purpose tool for creating, modifying, and terminating sessions that works independently of underlying transport protocols and without dependency on the type of session that is being established. SIP can also invite participants to already existing sessions, such as multicast conferences. Media can be added to and removed from an existing session.
Goll The necessity in the IMS of reserving resources to provide quality of service QoS leads to another security issue: The extension for service route discovery during registration  consists of a Service-Route header field that is used by the registrar in a 2XX response to a REGISTER request to inform the registering user of the entity that must forward every request originated by him or her. In the IMS context, there are certain rvc entities i. Retrieved December 1, SIP is ketf exceptionally popular and extensible protocol. Moreover, there is also a mechanism for conditional event notification that allows the notifier to decide whether or not to send the complete Idtf message depending on if there is something new to notify since last subscription or there is not. A typical use of this mechanism is call transfer: Comments on RFCs and corresponding changes are accommodated through the existing standardization process. The degree of stability or maturity of the document:.