Internet DRAFT - draft-worley-sip-many-refers

draft-worley-sip-many-refers






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]