SIP D. R. Worley Internet-Draft Pingtel Expires: December 20, 2006 June 18, 2006 The Five Meanings of the REFER Method draft-worley-sip-many-refers-00 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. 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. This Internet-Draft will expire on December 20, 2006. Copyright Notice Copyright (C) The Internet Society (2006). Abstract The REFER method is defined in RFC 3515. That RFC defines the syntax of the REFER request and some of the machinery involved in its execution, but it defines the semantics of the method only so far as to specify that the recipient will initiate a request to the target specified in the Refer-To header. But since almost all requests that can be sent by the recipient are inherently part of an encompassing UA action that affects the state of the recipient in ways that are not directly reflected in SIP protocol actions, the standardized action of initiating a request implicitly has further consequences Worley Expires December 20, 2006 [Page 1] Internet-Draft The Five Meanings of the REFER Method June 2006 which are often not clearly specified. As a result, various SIP call-control proposals assume that a UA receiving a REFER will perform the UA operation that is needed at that moment without specifying clearly how the UA recognizes which UA operation is needed. As a result there are now five semantically distinct defined uses of REFER. All five uses bear a family resemblance, and each involves sending a SIP request, but the exact meaning of each use is logically independent of the others, and the rules by which a UA distinguishes the five cases are at best implicit. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. The Meanings . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1. Remote Dial . . . . . . . . . . . . . . . . . . . . . . . 4 2.2. Transfer . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3. Third-Party Conference Departure . . . . . . . . . . . . . 4 2.4. Remote Hangup . . . . . . . . . . . . . . . . . . . . . . 5 2.5. Remotely Induced Response . . . . . . . . . . . . . . . . 5 3. Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 5. Informative References . . . . . . . . . . . . . . . . . . . . 8 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 9 Intellectual Property and Copyright Statements . . . . . . . . . . 10 Worley Expires December 20, 2006 [Page 2] Internet-Draft The Five Meanings of the REFER Method June 2006 1. Introduction The REFER method is defined in [1]. That RFC defines the syntax of the REFER request, that its recipient is expected to "contact" the resource designated by the Refer-To URI, and some of the machinery involved in its execution. But the RFC does not specify what the request causes the recipient to do in relationship to other SIP dialogs, its users, etc. This allows a SIP call-control process to assume that a REFER will cause the UA to perform the operation that would be convenient for that particular call-control process - an operation which would naturally be implemented by sending the SIP request specified, but unfortunately, the implementing SIP request does not uniquely determine the UA operation. As a result, there are now five defined uses of REFER. All five uses bear a family resemblance, but the exact meaning of each use is logically independent of the others. The purpose of this document is to enumerate all semantically distinct uses of REFER, expose the logic that is used to determine which use is implied by any particular REFER request, and to make people aware of the need to clearly specify any additional uses they desire to create. The reader is expected to be familiar with the machinery of the REFER request as described in [1]. Worley Expires December 20, 2006 [Page 3] Internet-Draft The Five Meanings of the REFER Method June 2006 2. The Meanings 2.1. Remote Dial The simplest application of REFER can be called "remote dial" [2]. In this usage, a REFER is sent out-of-dialog to a recipient UA. The recipient UA sends a dialog-initiating INVITE to the Refer-To URI, to establish a dialog for its user. At first sight, this use may appear unlikely in practice, but sending such a REFER to a UA can be used to induce it to join a conference [4]. (That is feasible because each conference has a unique "conference URI".) Similarly, a remote dial REFER can be sent to a conference focus to induce it to send an INVITE to a UA that one wishes to have join the conference. This is a natural way to implement "click-to-dial" functionality. 2.2. Transfer The most popular use of REFER is for transferring calls [3]. From a user perspective, there are several different kinds of call transfer, but in all cases, the crucial step is performed by a REFER request. Using the terminology of [3], there is an existing dialog between Transferor and Transferee. Transferor wants to terminate that dialog, changing Transferee's focus from the existing dialog to a new dialog with Transfer Target. This action is done by Transferor sending a REFER in the existing dialog to Transferee. Transferee sends a dialog-initiating INVITE to Transfer Target. If and when the INVITE receives a successful response, Transferee terminates the original dialog and changes its focus to the new dialog. 2.3. Third-Party Conference Departure Another envisioned use of REFER is to delete a third party from a conference [5]. In this use, the executor sends a REFER with a Refer-To containing the header parameter "method=BYE" to a conference focus, causing it to send a BYE to the participant. In this use of REFER, the recipient UA is requested to insert a BYE request into an existing dialog, rather than sending an out-of-dialog request. The dialog in question is implicitly identified by the Refer-To URI, which is expected to be the URI of a participant in the conference. Of course, this requires that there be only one participant in the conference that entered using that URI. Worley Expires December 20, 2006 [Page 4] Internet-Draft The Five Meanings of the REFER Method June 2006 2.4. Remote Hangup REFER can also be used more generally to terminate a dialog by causing one UA in the dialog to send a BYE request. The dialog to be terminated is specified by using Call-ID, To, and From header parameters in the Refer-To URI [2] to specify that the BYE should be sent within the specified dialog. The example given in [2] is (after correcting the escaping): sip:bob@babylon.biloxi.example.com;method=BYE ?Call-ID=13413098 &To=%3Csip:bob%40biloxi.com%3E%3Btag%3D879738 &From=%3Csip:alice%40atlanta.example.com%3E%3Btag%3D023214 Beware that using header parameters to specify Call-ID and From headers contravenes section 19.1.5 of RFC 3261 [8]. We interpret this contradiction to mean that the values specified must be validated by the UA to match one of its dialogs (and that the REFER requester is allowed to manipulate that dialog). 2.5. Remotely Induced Response The Internet-Draft [6] proposes a URI parameter "response" to be used in the Refer-To URI. Its presence indicates that the recipient of the REFER should send a response to one of its existing early dialogs, using the value of the "response" URI parameter as the response code. The early dialog in question is identified by the Target-Dialog header in the REFER request. However, it is not clear (to this author) whether this use of Target- Dialog is semantically compatible with the definition given in [7], which specifies that Target-Dialog is to be used to authorize a request because "it indicates to the recipient that the sender is aware of an existing dialog with the recipient". Worley Expires December 20, 2006 [Page 5] Internet-Draft The Five Meanings of the REFER Method June 2006 3. Summary +----------+--------------------+-----------------------------------+ | Meaning | Distinguishing | Action | | | features | | +----------+--------------------+-----------------------------------+ | Remote | Out-of-dialog, | UA sends a dialog-initiating | | Dial | method=INVITE | INVITE to Refer-To URI. | | | | | | Transfer | In-dialog, | UA sends a dialog-initiating | | #1 | method=INVITE | INVITE to Refer-To URI. When new | | | | dialog is confirmed, UA | | | | terminates the original dialog | | | | transfers its focus to the new | | | | dialog. | | | | | | Transfer | Out-of-dialog, | (Same implementation as Transfer | | #2 | method=INVITE, | #1.) UA sends a dialog- | | | Replaces header | initiating INVITE with a Replaces | | | parameter | header to Refer-To URI. when new | | | | dialog is conformed (thus | | | | replacing the specified dialog | | | | at the Refer-To URI), UA | | | | terminates the original dialog | | | | and transfers its focus to the | | | | new dialog. | | | | | | Transfer | Out-of-dialog, | (Same implementation as Remote | | #3 | method=INVITE, | Dial.) UA sends a dialog- | | | Replaces header | initiating INVITE with a Replaces | | | parameter | header to Refer-To URI. New | | | | dialog replaces the specified | | | | dialog at the Refer-To UA. | | | | | | Third- | recipient is conf. | Conference focus uses Refer-To | | Party | URI, method=BYE | URI to look up a dialog currently | | Conf. | | in the conference, then | | Depart. | | terminates it by sending BYE on | | | | it. | | | | | | Remote | method-BYE, | UA terminates the specified | | Hangup | Call-ID, To, and | dialog by sending BYE on it. | | | From header | | | | parameters | | | | | | Worley Expires December 20, 2006 [Page 6] Internet-Draft The Five Meanings of the REFER Method June 2006 +----------+--------------------+-----------------------------------+ | Meaning | Distinguishing | Action | | | features | | +----------+--------------------+-----------------------------------+ | (cont'd.) | | | | | | Remotely | response URI | UA sends the specified response | | Induced | parameter, Target- | to the early dialog identified by | | Response | Dialog header | the Target-Dialog header. | +----------+--------------------+-----------------------------------+ Worley Expires December 20, 2006 [Page 7] Internet-Draft The Five Meanings of the REFER Method June 2006 4. Security Considerations None. 5. Informative References [1] Sparks, R., "The Session Initiation Protocol (SIP) Refer Method", RFC 3515, April 2003. [2] Mahy, R., Campbell, B., Sparks, R., Rosenberg, J., Petrie, D., and A. Johnston, "A Call Control and Multi-party usage framework for the Session Initiation Protocol (SIP)", March 2006. [3] Sparks, R., Johnston, A., and D. Petrie, "Session Initiation Protocol Call Control - Transfer", March 2006. [4] Rosenberg, J., "A Framework for Conferencing with the Session Initiation Protocol (SIP)", RFC 4353, February 2006. [5] Johnston, A. and O. Levin, "Session Initiation Protocol Call Control - Conferencing for User Agents", June 2005. [6] Mahy, R. and C. Jennings, "Remote Call Control in SIP using the REFER method and the session-oriented dialog package", October 2005. [7] Rosenberg, J., "Request Authorization through Dialog Identification in the Session Initiation Protocol (SIP)", December 2005. [8] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. Worley Expires December 20, 2006 [Page 8] Internet-Draft The Five Meanings of the REFER Method June 2006 Author's Address Dale R. Worley Pingtel Corp. 400 West Cummings Park, Suite 2200 Woburn, MA 01801 US Phone: +1 781 938 5306 x173 Email: dworley@pingtel.com URI: http://www.pingtel.com Worley Expires December 20, 2006 [Page 9] Internet-Draft The Five Meanings of the REFER Method June 2006 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 procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. 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 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 (2006). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Worley Expires December 20, 2006 [Page 10]