Internet Engineering Task Force J. Elwell Internet Draft Siemens V. Venkataramanan Sylantro Systems Corp draft-elwell-sip-state-update-02.txt Expires: December 2004 June 2004 State update during a SIP dialog Status of this Memo By submitting this Internet-Draft, I certify that any applicable patent or other IPR claims of which I am aware have been disclosed, and any of which I become aware will be disclosed, in accordance with RFC 3667. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress. " The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Copyright Notice Copyright (C) The Internet Society (2004). All Rights Reserved. Abstract This document examines the need for updating state information, such as remote party identity, during a SIP dialog. It explores existing mechanisms that might be appropriate and proposes minor clarifications to existing RFCs and drafts to achieve this. Elwell et alia Expires - December 2004 [Page 1] State update during a SIP dialog June 2004 Table of Contents 1 Introduction....................................................3 2 State information subject to change during a dialog.............3 3 Applicability of existing mechanisms............................4 3.1 UPDATE........................................................4 3.2 re-INVITE.....................................................5 3.3 INVITE with Replaces header...................................6 4 Proposal........................................................6 5 Clarifications to RFC 3261[1]...................................7 6 Clarifications to RFC 3311 [2]..................................8 7 Clarification to RFC 3325 [4]..................................10 8 Clarification to draft-ietf-sip-authid-body-02 [6].............11 9 Changes........................................................11 10 Author's Addresses............................................11 11 Normative References..........................................11 Elwell et alia Expires - December 2004 [Page 2] State update during a SIP dialog June 2004 1 Introduction Certain information exchanged between SIP [1] UAs during an INVITE transaction can be stored at a receiving UA for the lifetime of the resulting dialog and/or made available to the user (e.g., via a display in the case of a human user). One example is the identity of the peer user (as supplied in the To or From header, the Authenticated Identity Body (AIB) or the P-Asserted-Identity header). Another example is the Subject header. This information forms part of the state of a dialog at a UA. Under certain circumstances some of this state information may need to be changed. For example, when interworking with a PSTN, there may be a change of party in the PSTN (e.g., because of call transfer). The PSTN party identity sent to the peer SIP UA in the To or From header, the AIB or the P-Asserted-Identity header during dialog establishment normally reflects the identity of the PSTN user. If the identity of the PSTN user changes during the lifetime of the dialog, this information needs to be updated at the UA. A second example involves 3rd party call control. A B2BUA performing 3rd party call control can perform actions such as call transfer that cause a change of membership of the call. An existing UA that remains involved in the call and retains its dialog with the B2BUA needs to be updated with the identity of the new remote party. A third example also involves 3rd party call control. In this case a B2BUA forms a conference and acts as a conference focus. It therefore needs to indicate this to any existing UA whose dialog is "transferred" into that conference. A fourth example is where a user changes the subject during a dialog. The revised subject needs to be communicated to the remote UA. Existing mechanisms for changing a session during a dialog (re-INVITE and UPDATE transactions) may be a suitable basis for making other state changes, but it is not at present clear if and how these mechanisms are applicable. 2 State information subject to change during a dialog The following information exchanged during the INVITE transaction can change during the lifetime of the resulting dialog. - Call-Info header. - Alert-Info header (early dialogs only). Elwell et alia Expires - December 2004 [Page 3] State update during a SIP dialog June 2004 - Contact header (change of feature tags [3]). - Reply-To header. - Subject header. - P-Asserted-Identity header [4]. - Privacy header [5] (for use in conjunction with updated identity information). - Authenticated Identity Body (AIB) [6]. - Bodies with Content-Disposition "icon" or "alert". In addition consideration should be given to the following headers: Allowed, Supported, Required. These would not normally be expected to change at a UA reporting a state change. However, there might be some B2BUA arrangements where Allowed, Supported and Required are sent by the B2BUA on behalf of another UA, and if that other UA changes, these headers might change. Current studies on including location information in SIP messages [7] should also take into account the need to update location information during a dialog. One application might be a direction service, which provides directions from the caller's current location to a given venue. As the caller's location changes (e.g., as detected by GPS), the location information may need to be updated. Another application is emergency calling, where more accurate location information becomes known during the dialog. 3 Applicability of existing mechanisms 3.1 UPDATE The UPDATE mechanism [2] provides a means for updating the session using a 2-message sequence (request/response) during an INVITE- initiated dialog. Although one of the prime motivations for UPDATE is use during an early dialog (in conjunction with the PRACK method), where re-INVITE cannot be used, UPDATE can also be used during a confirmed dialog. The RFCs concerned are unclear on the use of UPDATE for updating the following state information: Call-Info header. According to [2], this is optional in an UPDATE request, but no semantics are given. It is unclear whether this is allowed to differ from what was in the INVITE request or response, and if so the meaning of this. Elwell et alia Expires - December 2004 [Page 4] State update during a SIP dialog June 2004 Alert-Info header. According to [2], this is not applicable in an UPDATE request. However, a possible use during an early dialog would be to change the alerting indication or ringback tone. Contact header. According to [2], this is mandatory in an UPDATE request. In [3] there is mention of updating feature parameters during a dialog. Reply-To header. This is not allowed in an UPDATE request. Subject header. According to [2], this is not allowed in an UPDATE request. P-Asserted-Identity header. According to [4], this header is not allowed in an UPDATE request. Privacy header. There is no mention in [5] of using this header in an UPDATE request. AIB. [6] does provide for the use of AIB in a request within the context of an existing dialog. However, it does not mention UPDATE specifically. Also, it does not mention semantics, e.g., whether an AIB in a request in an existing dialog overrides any AIB in the original request or response. Content-Disposition "icon" or "alert". There is no mention of bodies with these Content-Disposition values, but presumably nothing to prevent their inclusion. 3.2 re-INVITE The re-INVITE mechanism [1] provides a means for updating the session during an INVITE-initiated dialog. It differs from UPDATE in that it uses a three message sequence (request, response, ACK), and this takes account of possible delays while a user is consulted on the proposed update. Therefore for updating the session on a confirmed dialog, re-INVITE will often be preferred to UPDATE. If state information needs to be updated at the same time as the session, re- INVITE might be the preferred choice. At other times UPDATE might be the preferred choice for updating state information. Another consideration is that some SIP implementations do not currently support UPDATE. The RFCs concerned are unclear on the use of re-INVITE for updating the following state information: Call-Info header. According to [1], this is optional in an INVITE request, but there is no specific mention of re-INVITE. It is unclear Elwell et alia Expires - December 2004 [Page 5] State update during a SIP dialog June 2004 whether this is allowed to differ from what was in the original INVITE request or response, and if so the meaning of this. Contact header. According to [1], this is mandatory in a re-INVITE request. In [3] there is mention of updating feature parameters during a dialog. Reply-To header. According to [1], this is optional in an INVITE request, but there is no specific mention of re-INVITE. It is unclear whether this is allowed to differ from what was in the original INVITE request or response, and if so the meaning of this. Subject header. According to [2], this is optional in an INVITE request, but there is no specific mention of re-INVITE. It is unclear whether this is allowed to differ from what was in the original INVITE request or response, and if so the meaning of this. P-Asserted-Identity header. There is no mention in [4] of using this header in a re-INVITE request. Privacy header. There is no mention in [5] of using this header in a re-INVITE request. AIB. [6] does provide for the use of AIB in a request within the context of an existing dialog. However, it does not mention re-INVITE specifically. Also, it does not mention semantics, e.g., whether an AIB in a request in an existing dialog overrides any AIB in the original request or response. Content-Disposition "icon" or "alert". There is no mention of bodies with these Content-Disposition values in a re-INVITE request, but presumably nothing to prevent their inclusion. 3.3 INVITE with Replaces header Rather than updating state information for the existing dialog, a new dialog could be created using an INVITE addressed to the remote contact (assuming this is a GRUU) and the Replaces header, thereby causing the new dialog to replace the existing dialog. This is a heavyweight method of achieving the desired results. In particular it requires support of the Replaces header, support of GRUUs, and re- negotiation of the session. 4 Proposal It is proposed that the use of the UPDATE method for updating state information during a confirmed or early dialog be endorsed. It is also proposed that the use of the re-INVITE method be endorsed for updating state information during a confirmed dialog for cases where Elwell et alia Expires - December 2004 [Page 6] State update during a SIP dialog June 2004 the peer UA does not support UPDATE or when the session is to be updated at the same time. In order to achieve this, clarifications are required to some existing RFCs: - RFC 3261: Clarify that a re-INVITE can be used to update dialog- related information during a dialog, i.e., not just a target refresh or a session description change. - RFC 3311: Clarify that an UPDATE can be used without a session description in order to update dialog-related information. This is already implicit in some places, but a few places seem to require an UPDATE request to contain an SDP offer. - RFC 3323: This does not specify specific procedures for particular methods and does not make any distinction between a request outside of an existing dialog or a request within a dialog. Therefore as it stands it is in theory equally applicable to UPDATE and re-INVITE as it is to INVITE. However, certain privacy services may not be possible to provide during a dialog if not already provided from the start of the dialog. Its main usefulness seems to be to indicate privacy for an updated P-Asserted-Identity header or an updated Authenticated Identity Body. No changes are proposed. - RFC 3325: Allow the use of the P-Asserted-Identity header with the UPDATE method. The RFC does not specify specific procedures for particular methods and does not make any distinction between a request outside of an existing dialog or a request within a dialog. Therefore as it stands it is equally applicable to UPDATE (with the proposed change) and re-INVITE as it is to INVITE. Therefore no procedural changes need to be made. - draft-ietf-sip-authid-body-02: Add mention of use of AIB in re- INVITE or UPDATE. The remainder of this draft proposes detailed clarifications. 5 Clarifications to RFC 3261[1] Add the following paragraph to the end of 12 (prior to 12.1): "A dialog can also have certain other state information that can change during the lifetime of the dialog. This includes the session description (as negotiated by SDP offer/answer), information from certain other headers and information from certain other bodies. Examples from this RFC include the Alert-Info, Call-Info, Reply-To and Subject headers and bodies with a value of "icon" or "alert" in the Content-Disposition header. Extensions may define other headers Elwell et alia Expires - December 2004 [Page 7] State update during a SIP dialog June 2004 or bodies containing information that contributes to the state of a dialog and can change during the lifetime of the dialog." Add two new paragraphs to the end of 12.2 (prior to 12.2.1): "A request, whether or not it is a target refresh request, MAY update certain other information transmitted at the time of dialog establishment. Examples include the following headers from this RFC: Alert-Info, Call-Info, Reply-To and Subject. Other extensions may define other headers that are appropriate for updating during a dialog. In addition, a request, whether or not it is a target refresh request, MAY update a body with a value of "icon" or "alert" in the Content-Disposition header. "In this RFC, the only request defined that is suitable for updating information during a dialog is re-INVITE (see section 14). Other extensions may define different requests suitable for updating information during a dialog." Add to the end of the first paragraph of 14.1: "A UAC MAY send a session description that is unchanged, if the purpose of the re-INVITE is solely for updating dialog-related information." 6 Clarifications to RFC 3311 [2] General Call-Info Alert-Info Reply-To Subject Add to the end of the last paragraph of section 1: "It can also be sent by a UA within a dialog (early or confirmed) to update dialog-related information in addition to or instead of updating session parameters." Replace the last sentence of section 3: Old text: "There are additional constraints on when UPDATE can be used, based on the restrictions of the offer/answer model." New text: "The UPDATE method can also be used without SDP offer/answer in order to update only dialog-related information and not the session. There are additional constraints on when UPDATE can be used with SDP offer/answer, based on restrictions of the offer/answer model." Elwell et alia Expires - December 2004 [Page 8] State update during a SIP dialog June 2004 Change "MAY" to "SHOULD" in the 2nd paragraph of section 4: Old text: "An unreliable provisional response MAY contain an Allow header field listing the UPDATE method ... New text: "An unreliable provisional response SHOULD contain an Allow header field listing the UPDATE method ... Extend the last sentence of the 3rd paragraph of section 4: Old text: "Creation of this dialog is necessary in order to receive UPDATE requests from the callee." New text: "Creation of this dialog is necessary in order to receive UPDATE requests from the callee and in order to receive an SDP offer in an UPDATE request from the caller." Add the following paragraph at the end of section 4: "Although a UAS for an INVITE request must use a reliable provisional response in order to ensure that an early dialog is created before issuing an UPDATE request towards the caller, a UAC for an INVITE request will know that an early dialog is established even if it receives an unreliable provisional response. The UAC for the INVITE request MAY then issue an UPDATE request without an SDP offer towards the callee, subject to having received an appropriate Allow header field." Replace the 3rd sentence of section 5.1: Old text: "Although UPDATE can be used on confirmed dialogs, it is RECOMMENDED that a re-INVITE be used instead." New text: "Although UPDATE can be used on confirmed dialogs, it is RECOMMENDED that a re-INVITE be used instead if there is a need to seek user approval." Replace the last sentence of the 2nd bullet of section 5.1: Old text: "Of course, it can't send an UPDATE if it has not received answers to any other offers it sent in either PRACK or UPDATE, or has not generated answers for any other offers it received in an UPDATE from the callee." New text: "Of course, it can't send an UPDATE containing an offer if it has not received answers to any other offers it sent in either PRACK or UPDATE, or has not generated answers for any other offers it received in an UPDATE from the callee." Elwell et alia Expires - December 2004 [Page 9] State update during a SIP dialog June 2004 Add a new paragraph at the end of section 5.2: "If a UA receives an UPDATE request with no session description for an existing dialog, the UA MUST NOT include a session description in the response. In this case the UPDATE request is for the purpose of target refresh or updating other dialog-related information". Change the following row in table 1: Old: Alert-Info - New: Alert-Info o Change the following rows in table 2: Old: Reply-To - New: Reply-To o Old: Subject - - New: Subject o 7 Clarification to RFC 3325 [4] In section 9.1, change the additional entry to table 1 of RFC 3261 as follows (to make UPDATE optional): Old: Header field where proxy ACK BYE CAN INV OPT REG ------------ ----- ----- --- --- --- --- --- --- P-Asserted-Identity adr - o - o o - SUB NOT REF INF UPD PRA --- --- --- --- --- --- o o o - - - New: Header field where proxy ACK BYE CAN INV OPT REG ------------ ----- ----- --- --- --- --- --- --- P-Asserted-Identity adr - o - o o - SUB NOT REF INF UPD PRA --- --- --- --- --- --- o o o - o - Elwell et alia Expires - December 2004 [Page 10] State update during a SIP dialog June 2004 8 Clarification to draft-ietf-sip-authid-body-02 [6] Add the following to the first paragraph of section 5: "An AIB in a request within the context of an existing dialog (e.g., re-INVITE, UPDATE) can be used to replace the corresponding identity transmitted at the start of the dialog." 9 Changes Draft-02: The following changes have been made compared with draft 01: - Addition of bodies with Content-Disposition "icon" or "alert" to state information that can be changed during a call. (Sections 2, 3.1, 3.2 and 5). - Addition to section 5 of proposed text for section 12 of RFC3261 elaborating on the state of a dialog. - Deletion of the open issue in section 5 concerning the ability to have more than one concurrent re-INVITE request outstanding. There was a feeling that it might get too complex. - Addition of discussion on location information in section 2. 10 Author's Addresses John Elwell Siemens Communications Technology Drive Beeston Nottingham, UK, NG9 1LA email: john.elwell@siemens.com Venkatesh Venkataramanan Sylantro Systems Corp 910 E Hamilton Ave, Campbell, CA 95008 Sylantro inc. email: Venkatesh.Venkataramanan@sylantro.com 11 Normative References [1] J. Rosenberg, H. Schulzrinne, et al., "SIP: Session initiation protocol", RFC 3261. Elwell et alia Expires - December 2004 [Page 11] State update during a SIP dialog June 2004 [2] J. Rosenberg, "The Session Initiation Protocol (SIP) UPDATE method", RFC 3311. [3]J. Rosenberg, H. Schulzrinne, P. Kyzivat, "Indicating User Agent Capabilities in the Session Initiation Protocol (SIP)", draft-ietf- sip-callee-caps-03.txt (work in progress). [4] C. Jennings, J. Peterson, M. Watson, "Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks", RFC 3325. [5] J. Peterson. "A Privacy Mechanism for the Session Initiation Protocol (SIP)", RFC 3323. [6] J. Peterson. "SIP Authenticated Identity Body (AIB) Format", draft-ietf-sip-authid-body-02.txt (work in progress). [7] J. Polk, B. Rosen. "Requirement for Session Initiation Protocol Location Conveyance", draft-ietf-sipping-location-requirements-00.txt (work in progress). Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the IETF's procedures with respect to rights in IETF Documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf- ipr@ietf.org. Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS Elwell et alia Expires - December 2004 [Page 12] State update during a SIP dialog June 2004 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Elwell et alia Expires - December 2004 [Page 13]