SIPPING Working Group                                       G. Camarillo
Internet-Draft                                                  Ericsson
Expires: May 2, 2005                                            A. Niemi
                                                              M. Isomaki
                                                        M. Garcia-Martin
                                                                   Nokia
                                                            H. Khartabil
                                                                   Telio
                                                           November 2004


   Refering to Multiple Resources in the Session Initiation Protocol
                                 (SIP)
                draft-ietf-sipping-multiple-refer-02.txt

Status of this Memo

   This document is an Internet-Draft and is subject to all provisions
   of section 3 of RFC 3667.  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 become aware will be disclosed, in accordance with
   RFC 3668.

   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 May 2, 2005.

Copyright Notice

   Copyright (C) The Internet Society (2004).

Abstract

   This document defines extensions to the SIP REFER method so that this



Camarillo, et al.         Expires May 2, 2005                   [Page 1]


Internet-Draft               Multiple REFER                November 2004


   method can be used to refer servers to multiple resources.  These
   extensions include the use of pointers to Uniform Resource Identifier
   (URI)-lists in the Refer-To header field and the "multiple-refer" SIP
   option-tag.

Table of Contents

   1.   Introduction . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.   Terminology  . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.   Overview of operation  . . . . . . . . . . . . . . . . . . .   3
   4.   The multiple-refer SIP Option-Tag  . . . . . . . . . . . . .   4
   5.   Suppressing REFER's Implicit Subscription  . . . . . . . . .   4
   6.   Behavior of SIP REFER-Issuers  . . . . . . . . . . . . . . .   5
   7.   Behavior of REFER-Recipients . . . . . . . . . . . . . . . .   5
   8.   Default URI-List Format  . . . . . . . . . . . . . . . . . .   5
   9.   Example  . . . . . . . . . . . . . . . . . . . . . . . . . .   6
   10.  Security Considerations  . . . . . . . . . . . . . . . . . .   9
   11.  IANA Considerations  . . . . . . . . . . . . . . . . . . . .   9
   12.  References . . . . . . . . . . . . . . . . . . . . . . . . .   9
   12.1   Normative References . . . . . . . . . . . . . . . . . . .   9
   12.2   Informational References . . . . . . . . . . . . . . . . .  10
        Authors' Addresses . . . . . . . . . . . . . . . . . . . . .  10
        Intellectual Property and Copyright Statements . . . . . . .  12




























Camarillo, et al.         Expires May 2, 2005                   [Page 2]


Internet-Draft               Multiple REFER                November 2004


1.  Introduction

   The SIP [3] REFER method [5] allows a user agent to request a server
   to send a request to a third party.  Still, a number of applications
   need to request a server to initiate transactions towards a set of
   destinations.  In one example, the moderator of a conference may want
   the conference server to send BYE requests to a group of
   participants.  In another example, the same moderator may want the
   conference server to INVITE a set of new participants.

   We define an extension to REFER so that REFER can be used to refer
   servers to multiple destinations.  In addition, we use the REFER
   extension defined in [7] which suppresses REFER's implicit
   subscription.

2.  Terminology

   In this document, the key words "MUST", "MUST NOT", "REQUIRED",
   "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
   RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
   described in BCP 14, RFC 2119 [1] and indicate requirement levels for
   compliant implementations.

   We define the following three new terms:

      REFER-Issuer: the user agent issuing the REFER request.
      REFER-Recipient: the user agent receiving the REFER request.
      REFER-Target: the intended final recipient of the request to be
      generated by the REFER-Recipient.

3.  Overview of operation

   This document defines an extension to the SIP REFER method [5] that
   allows a SIP User Agent Client (UAC) to include a list of
   REFER-Targets in a REFER request and send it to a server.  The server
   will create a new request for each entry in the list of REFER-Target
   URIs.

   We represent the multiple REFER-Targets of a REFER using a URI-list.
   A UAC (User Agent Client) that wants to refer a server to a set of
   destinations creates a SIP REFER request.  The Refer-To header
   contains a pointer to a URI-list, which is included in a body part,
   and an option-tag in the Required header field: "multiple-refer".
   This option-tag indicates the requirement to support the
   functionality described in this specification.

   When the server receives such request it creates a new request per
   destination and sends them.



Camarillo, et al.         Expires May 2, 2005                   [Page 3]


Internet-Draft               Multiple REFER                November 2004


   This document does not provide any mechanism for UACs to find out
   about the results of a REFER with multiple REFER-Targets.
   Furthermore, it does not provide support for the implicit
   subscription mechanism that is part of the SIP REFER method.  The way
   UACs are kept informed about the results of a REFER is service
   specific.  For example, a UAC sending a REFER to INVITE a set of
   participants to a conference may discover which participants were
   successfully brought into the conference by subscribing to the
   conference state event [9].

4.  The multiple-refer SIP Option-Tag

   We define a new SIP option-tag for the Require and Supported header
   fields: "multiple-refer".

   A user agent including the "multiple-refer" option-tag in a Supported
   header indicates compliance with this specification.

   A user agent generating a REFER with a pointer to a URI-list in its
   Refer-To header field MUST include the "multiple-refer" option-tag in
   the Require header field of the REFER.

5.  Suppressing REFER's Implicit Subscription

   REFER requests with a single REFER-Target establish implicitly a
   subscription to the refer event.  The REFER-Issuer is informed about
   the result of the transaction towards the REFER-Target through this
   implicit subscription.  As described in RFC 3515 [5], NOTIFY requests
   sent as a result of an implicit subscription created by a REFER
   request contain a body of type "message/sipfrag" [4] that describes
   the status of the transaction initiated by the REFER-Recipient.

   In the case of a REFER-Issuer that generates a REFER with multiple
   REFER-targets, the REFER-Issuer is typically already subscribed to
   other event package that can provide the information about the result
   of the transactions towards the REFER-Targets.  For example, a
   moderator instructing a conference server to send a BYE request to a
   set of participants is usually subscribed to the conference state
   event package for the conference.  Notifications to this event
   package will keep the moderator and the rest of the subscribers
   informed of the current list of conference participants.

   Most of the applications using multiple REFER do not need its
   implicit subscription.  Consequently, a SIP REFER-Issuer generating a
   REFER request with multiple REFER-Targets SHOULD include the
   "norefersub" option-tag in a Require header field to indicate that no
   notifications about the requests should be sent to the REFER-Issuer.
   The "norefersub" SIP option-tag is defined in [7] and suppresses the



Camarillo, et al.         Expires May 2, 2005                   [Page 4]


Internet-Draft               Multiple REFER                November 2004


   REFER's implicit subscription.

   At the time of writing, there is no extension that allows to report
   the status of several transactions over a REFER's implicit
   subscription.  That is the motivation for this document to recommend
   the usage of the "norefersub" option-tag.  If in the future such an
   extension is defined, REFER-Issuers using it could refrain from using
   the "norefersub" option-tag and use the new extension instead.

6.  Behavior of SIP REFER-Issuers

   As indicated in Section 4 and Section 5 a SIP REFER-Issuer that
   creates a REFER request with multiple REFER-Targets includes a
   "multiple-refer" and a "norefersub" option-tags in the Require header
   field.

   The Refer-To header field of a REFER request with multiple
   REFER-Targets MUST contain a pointer (i.e., a Content-ID Uniform
   Resource Locator (URL) [2]) that points to the body part that carries
   the URI-list.  The REFER-Issuer SHOULD NOT include any particular URI
   more than once in the URI-list.

7.  Behavior of REFER-Recipients

   The REFER-Recipient follows the rules in Section 2.4.2 of RFC 3515
   [5] to determine the status code of the response to the REFER.

   If the URI-list contains a URI more than once, the REFER-Recipient
   MUST behave as if that URI appeared in the URI-list only once.  The
   REFER-Recipient uses the comparison rules specific to the URI scheme
   of each of the URIs in the URI-list to determine if there is any URI
   which appears more than once.

   The REFER-Recipient follows the rules in RFC 3515 [5] to generate the
   necessary requests towards the REFER-Targets, acting as if it had
   received a regular (no URI-list) REFER per each URI in the URI-list.

8.  Default URI-List Format

   The default format for URI-list bodies used in a multiple REFER
   request is the resource list document specified in [6].  User agents
   able to generate or receive REFERs with multiple REFER-Targets MUST
   support this format as specified in [6] and MAY support other
   formats.

   Nevertheless, the Extensible Markup Language (XML) Configuration
   Access Protocol (XCAP) resource list document provides features, such
   as hierarchical lists and the ability to include entries by reference



Camarillo, et al.         Expires May 2, 2005                   [Page 5]


Internet-Draft               Multiple REFER                November 2004


   relative to the XCAP root URI, that are not needed by the multiplet
   REFER service defined in this document.  Therefore, when using the
   default resource list document, SIP REFER-Issuers generating REFERs
   with multiple REFER-Targets SHOULD use flat lists (i.e., no
   hierarchical lists) and SHOULD NOT use <entry-ref> elements.

   A REFER-Recipient receiving a URI-list with more information than
   what has just been described MAY discard all the extra information.

   Figure 1 shows an example of a flat list that follows the resource
   list document.


   <?xml version="1.0" encoding="UTF-8"?>
   <resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <list>
       <entry uri="sip:bill@example.com" />
       <entry uri="sip:joe@example.org" />
       <entry uri="sip:ted@example.net" />
     </list>
   </resource-lists>

                           Figure 1: URI List


9.  Example

   Figure 2 shows an example flow where a REFER-Issuer sends a
   multiple-REFER request to the focus of a conference, which acts as
   the REFER-Recipient.  The REFER-Recipient generates a BYE request per
   REFER-Target.  (How to use REFER to remove participants from a
   conference is specified in [10].)


















Camarillo, et al.         Expires May 2, 2005                   [Page 6]


Internet-Draft               Multiple REFER                November 2004


   +--------+         +---------+      +--------+  +--------+  +--------+
   | REFER  |         |  REFER  |      | REFER  |  | REFER  |  | REFER  |
   | issuer |         |recipient|      |target 1|  |target 2|  |target 3|
   +--------+         +---------+      +--------+  +--------+  +--------+
        | 1. REFER         |               |           |           |
        | ---------------->|               |           |           |
        | 2. 202 Accepted  |               |           |           |
        |<---------------- |   3. BYE      |           |           |
        |                  | ------------->|           |           |
        |                  |   4. BYE      |           |           |
        |                  | ------------------------->|           |
        |                  |   5. BYE      |           |           |
        |                  | ------------------------------------->|
        |                  |   6. 200 OK   |           |           |
        |                  |<------------- |           |           |
        |                  |   7. 200 OK   |           |           |
        |                  |<------------------------- |           |
        |                  |   8. 200 OK   |           |           |
        |                  |<------------------------------------- |
        |                  |               |           |           |
        |                  |               |           |           |
        |                  |               |           |           |


      Figure 2: Example flow or a REFER request containin multiple
                             REFER-Targets

   The REFER request (1) contains a Refer-To header field that includes
   a pointer to the message body, which carries a list with the URIs of
   the REFER-Targets.  The REFER's Require header field carries both the
   "multiple-refer" and the "norefersub" option-tags.  Figure 3 shows an
   example of this REFER request.  The resource list document contains
   the list of REFER-Target URIs along with the method of the SIP
   request that the REFER-Recipient generates.

















Camarillo, et al.         Expires May 2, 2005                   [Page 7]


Internet-Draft               Multiple REFER                November 2004


   REFER sip:conf-123@example.com SIP/2.0
   Via: SIP/2.0/TCP client.chicago.example.com
           ;branch=z9hG4bKhjhs8ass83
   Max-Forwards: 70
   To: "Conference 123" <sip:conf-123@example.com>
   From: Carol <sip:carol@chicago.example.com>;tag=32331
   Call-ID: d432fa84b4c76e66710
   CSeq: 2 REFER
   Contact: <sip:carol@client.chicago.example.com>
   Refer-To: <cid:cn35t8jf02@example.com>
   Require: multiple-refer, norefersub
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
   Allow-Events: dialog
   Accept: application/sdp, message/sipfrag
   Content-Type: application/resource-lists+xml
   Content-Disposition: uri-list
   Content-Length: 307
   Content-ID: <cn35t8jf02@example.com>

   <?xml version="1.0" encoding="UTF-8"?>
   <resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <list>
       <entry uri="sip:bill@example.com?method=BYE" />
       <entry uri="sip:joe@example.org?method=BYE" />
       <entry uri="sip:ted@example.net?method=BYE" />
     </list>
   </resource-lists>

          Figure 3: REFER request with multiple REFER-Targets

   Figure 4 shows an example of the BYE request (3) that the
   REFER-Recipient sends to the first REFER-Target.


















Camarillo, et al.         Expires May 2, 2005                   [Page 8]


Internet-Draft               Multiple REFER                November 2004


   REFER sip:bill@example.com SIP/2.0
   Via: SIP/2.0/TCP conference.example.com
           ;branch=z9hG4bKhjhs8assmm
   Max-Forwards: 70
   From: "Conference 123" <sip:conf-123@example.com>;tag=88734
   To: <sip:bill@example.com>;tag=29872
   Call-ID: d432fa84b4c34098s812
   CSeq: 34 BYE
   Content-Length: 0

                         Figure 4: BYE request


10.  Security Considerations

   The Framework and Security Considerations for SIP URI-List Services
   [8] discusses issues related to SIP URI-list services.  Given that a
   server accepting REFERs with multiple REFER-targets acts as an
   URI-list service, implementations of this type of server MUST follow
   the security-related rules in [8].  These rules include mandatory
   authentication and authorization of clients, and opt-in lists.

   Additionally, servers SHOULD only accept REFER requests within the
   context of an application the server understands (e.g., a
   conferencing application).  This implies that servers MUST NOT accept
   REFERs for methods they do not understand.  The idea behind these two
   rules is that servers are not used as dumb servers whose only
   function is to fan-out random messages they do not understand.

11.  IANA Considerations

   This document defines a new SIP option-tag: "multiple-refer".  This
   option-tag should be registered in the SIP Parameters registry.

   SIP user agents that place the "multiple-refer" option-tag in a
   Supported header field understand REFER requests that contain
   resource list document describing multiple REFER-Targets.

12.  References

12.1  Normative References

   [1]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

   [2]  Levinson, E., "Content-ID and Message-ID Uniform Resource
        Locators", RFC 2392, August 1998.




Camarillo, et al.         Expires May 2, 2005                   [Page 9]


Internet-Draft               Multiple REFER                November 2004


   [3]  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.

   [4]  Sparks, R., "Internet Media Type message/sipfrag", RFC 3420,
        November 2002.

   [5]  Sparks, R., "The Session Initiation Protocol (SIP) Refer
        Method", RFC 3515, April 2003.

   [6]  Rosenberg, J., "Extensible Markup Language (XML) Formats for
        Representing Resource Lists",
        draft-ietf-simple-xcap-list-usage-04 (work in progress), October
        2004.

   [7]  Olson, S., "REFER extensions",
        draft-olson-sipping-refer-extensions-02 (work in progress), July
        2004.

   [8]  Camarillo, G., "Requirements and Framework for Session
        Initiation Protocol (SIP)Uniform  Resource Identifier (URI)-List
        Services", draft-ietf-sipping-uri-services-01 (work in
        progress), October 2004.

12.2  Informational References

   [9]   Rosenberg, J. and H. Schulzrinne, "A Session Initiation
         Protocol (SIP) Event Package for Conference State",
         draft-ietf-sipping-conference-package-06 (work in progress),
         October 2004.

   [10]  Johnston, A. and O. Levin, "Session Initiation Protocol Call
         Control - Conferencing for User Agents",
         draft-ietf-sipping-cc-conferencing-05 (work in progress),
         October 2004.


Authors' Addresses

   Gonzalo Camarillo
   Ericsson
   Hirsalantie 11
   Jorvas  02420
   Finland

   EMail: Gonzalo.Camarillo@ericsson.com





Camarillo, et al.         Expires May 2, 2005                  [Page 10]


Internet-Draft               Multiple REFER                November 2004


   Aki Niemi
   Nokia
   P.O. Box 321
   NOKIA GROUP, FIN 00045
   Finland

   EMail: Aki.Niemi@nokia.com


   Markus Isomaki
   Nokia
   Itamerenkatu 11-13
   Helsinki  00180
   Finland

   EMail: Markus.Isomaki@nokia.com


   Miguel A. Garcia-Martin
   Nokia
   P.O.Box 407
   NOKIA GROUP, FIN  00045
   Finland

   EMail: miguel.an.garcia@nokia.com


   Hisham Khartabil
   Telio
   P.O. Box 1203
   Olso  0110
   Norway

   EMail: Hisham.Khartabil@telio.no

















Camarillo, et al.         Expires May 2, 2005                  [Page 11]


Internet-Draft               Multiple REFER                November 2004


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 (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.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Camarillo, et al.         Expires May 2, 2005                  [Page 12]