SIPPING Working Group G. Camarillo Internet-Draft Ericsson Intended status: Standards Track A. Niemi Expires: December 24, 2006 M. Isomaki M. Garcia-Martin Nokia H. Khartabil Telio June 22, 2006 Refering to Multiple Resources in the Session Initiation Protocol (SIP) draft-ietf-sipping-multiple-refer-06.txt 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 24, 2006. Copyright Notice Copyright (C) The Internet Society (2006). Abstract This document defines extensions to the SIP REFER method so that this method can be used to refer servers to multiple resources. These extensions include the use of pointers to Uniform Resource Identifier Camarillo, et al. Expires December 24, 2006 [Page 1] Internet-Draft Multiple REFER June 2006 (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. URI-List Format . . . . . . . . . . . . . . . . . . . . . . . 5 7. Behavior of SIP REFER-Issuers . . . . . . . . . . . . . . . . 7 8. Behavior of REFER-Recipients . . . . . . . . . . . . . . . . . 7 9. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 10. Security Considerations . . . . . . . . . . . . . . . . . . . 10 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 12.1. Normative References . . . . . . . . . . . . . . . . . . 10 12.2. Informational References . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12 Intellectual Property and Copyright Statements . . . . . . . . . . 14 Camarillo, et al. Expires December 24, 2006 [Page 2] Internet-Draft Multiple REFER June 2006 1. Introduction The SIP [5] REFER method [7] 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, this mechanism uses the suppression of the REFER method implicit subscription specified in RFC 4488 [8] to suppress 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 [7] that allows a SIP User Agent Client (UAC) to include a URI-list [9] 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. The URI-list of REFER-Targets is used in conjunction with the capacity attribute extension [11] to allow the sender indicate the capacity (e.g., 'to', 'cc', or anonymous) in which the REFER-Target is involved in the signalling. We represent the multiple REFER-Targets of a REFER using a URI-list [9]. 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 Camarillo, et al. Expires December 24, 2006 [Page 3] Internet-Draft Multiple REFER June 2006 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. 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 [13]. 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 field 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 [7], NOTIFY requests sent as a result of an implicit subscription created by a REFER request contain a body of type "message/sipfrag" [6] 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 Camarillo, et al. Expires December 24, 2006 [Page 4] Internet-Draft Multiple REFER June 2006 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 and SHOULD include a Refer-Sub header field set to "false" to indicate that no notifications about the requests should be sent to the REFER-Issuer. The REFER-Recipient SHOULD honor the suggestion and also include a Refer-Sub header field set to "false" in the 200 OK response. The "norefersub" SIP option-tag and the Refer-Sub header field are specified in RFC 4488 [8]. RFC 4488 [8] indicates that a condition for the REFER-Issuer to include a Refer-Sub header is that the REFER-Issue is sure that the REFER request will not fork. 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. URI-List Format As described in the Framework and Security Considerations for SIP URI-List Services [10], specifications of individual URI-list services, need to specify a default format for 'recipient-list' bodies used within the particular service. The default format for 'recipient-list' bodies for conferencing UAs (User Agents) and servers is the XML resource list format [9] extended with the XML Format Extension for Representing Capacity Attributes in Resource Lists [11]. UAs handling 'recipient-list' bodies MUST support both of these formats and MAY support other formats. As described in the XML Format Extension for Representing Capacity Attributes in Resource Lists [11], each URI can be tagged with a 'capacity' attribute set to either "to", "cc", or "bcc", indicating the capacity or role in which the recipient will get the referred SIP request. However, it must be noted that, depending on the target SIP method, a 'capacity' attribute may not have sense. For example, while a 'capacity' attribute can be applied to INVITE requests, it Camarillo, et al. Expires December 24, 2006 [Page 5] Internet-Draft Multiple REFER June 2006 may not make sense with mid-dialog requests such as BYE requests. In addition to the 'capacity' attribute, URIs can be tagged with the 'anonymize' attribute, also specified in the XML Format Extension for Representing Capacity Attributes in Resource Lists [11] to prevent that the server discloses the target URI in a URI-list. Additionally, the XML Format Extension for Representing Capacity Attributes in Resource Lists [11] defines a 'recipient-list-history' body that contains the list of recipients. The default format for 'recipient-list-history' bodies for conference services is also the XML resource list document format [7] extended with the XML Format Extension for Representing Capacity Attributes in Resource Lists [8]. Conferencing servers MUST support both of these formats; UASes MAY support these formats. Both conferencing servers and UASes MAY support other formats. Nevertheless, the XML resource list document [9] provides features, such as hierarchical lists and the ability to include entries by reference 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 %lt;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. Figure 1: URI List Camarillo, et al. Expires December 24, 2006 [Page 6] Internet-Draft Multiple REFER June 2006 7. 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 "norefersub" option-tags in the Require header field and, if appropriate, a Refer-Sub header field set to "false". The REFER-Issuer includes the set of REFER-Targets in body whose disposition type is 'recipient-list', as defined in the Framework and Security Considerations for SIP URI-List Services [10]. The URI-list body is further described in Section 6. 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) [3] ) 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. 8. Behavior of REFER-Recipients The REFER-Recipient follows the rules in Section 2.4.2 of RFC 3515 [7] to determine the status code of the response to the REFER. The REFER-Recipient SHOULD not create an implicit subscription, and SHOULD add a Refer-Sub header field set to "false" in the 200 OK response. If the URI-list of the REFER request contains a repeated URI, 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 incoming REFER request typically contains a URI-list document or reference with the actual list of recipients. If this URI-list includes resources tagged with the 'capacity' attribute set to a value of "to" or "cc", and if appropriate for the service, e.g., if it is non-mid dialog request, the URI-list server SHOULD include a URI-list in each of the outgoing requests. This list SHOULD be formatted according to the XML format for representing resource lists [9] and the capacity extension [11]. The URI-list server MUST follow the procedures specified in XML format for representing resource lists [9] with respect handling of the 'anonymize', 'count' and 'capacity' attributes. If the server includes a URI-list in an outgoing request, it MUST include a Content-Disposition header field [2] with the value set to 'recipient-list-history' and a 'handling' parameter [4] set to Camarillo, et al. Expires December 24, 2006 [Page 7] Internet-Draft Multiple REFER June 2006 "optional". The REFER-Recipient follows the rules in RFC 3515 [7] 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. 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 [14].) +--------+ +---------+ +--------+ +--------+ +--------+ | 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. 200K 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. In this example, the URI-list does not contain the capacity attribute extension. The REFER's Require header field carries the "multiple-refer" and "norefersub" option-tags. The Request-URI is set to a Globally Routable User Agent URIs (GRUU) [12] (as a guarantee that the REFER request will not fork). The Refer-Sub Camarillo, et al. Expires December 24, 2006 [Page 8] Internet-Draft Multiple REFER June 2006 header field is set to "false" to request the suppression of the implicit subscription. 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. REFER sip:conf-123@example.com;gruu;opaque=hha9s8d-999a SIP/2.0 Via: SIP/2.0/TCP client.chicago.example.com ;branch=z9hG4bKhjhs8ass83 Max-Forwards: 70 To: "Conference 123" From: Carol ;tag=32331 Call-ID: d432fa84b4c76e66710 CSeq: 2 REFER Contact: Refer-To: Refer-Sub: false 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: recipient-list Content-Length: 362 Content-ID: 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 December 24, 2006 [Page 9] Internet-Draft Multiple REFER June 2006 BYE sip:bill@example.com SIP/2.0 Via: SIP/2.0/TCP conference.example.com ;branch=z9hG4bKhjhs8assmm Max-Forwards: 70 From: "Conference 123" ;tag=88734 To: ;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 [10] 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 [10]. 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] Troost, R., Dorner, S., and K. Moore, "Communicating Camarillo, et al. Expires December 24, 2006 [Page 10] Internet-Draft Multiple REFER June 2006 Presentation Information in Internet Messages: The Content- Disposition Header Field", RFC 2183, August 1997. [3] Levinson, E., "Content-ID and Message-ID Uniform Resource Locators", RFC 2392, August 1998. [4] Zimmerer, E., Peterson, J., Vemuri, A., Ong, L., Audet, F., Watson, M., and M. Zonoun, "MIME media types for ISUP and QSIG Objects", RFC 3204, December 2001. [5] 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. [6] Sparks, R., "Internet Media Type message/sipfrag", RFC 3420, November 2002. [7] Sparks, R., "The Session Initiation Protocol (SIP) Refer Method", RFC 3515, April 2003. [8] Levin, O., "Suppression of Session Initiation Protocol (SIP) REFER Method Implicit Subscription", RFC 4488, May 2006. [9] Rosenberg, J., "Extensible Markup Language (XML) Formats for Representing Resource Lists", draft-ietf-simple-xcap-list-usage-05 (work in progress), February 2005. [10] Camarillo, G. and A. Roach, "Framework and Security Considerations for Session Initiation Protocol (SIP) Uniform Resource Identifier (URI)-List Services", draft-ietf-sipping-uri-services-05 (work in progress), January 2006. [11] Garcia-Martin, M. and G. Camarillo, "Extensible Markup Language (XML) Format Extension for Representing Capacity Attributes in Resource Lists", draft-ietf-sipping-capacity-attribute-00 (work in progress), February 2006. [12] Rosenberg, J., "Obtaining and Using Globally Routable User Agent (UA) URIs (GRUU) in the Session Initiation Protocol (SIP)", draft-ietf-sip-gruu-07 (work in progress), May 2006. 12.2. Informational References [13] Rosenberg, J., "A Session Initiation Protocol (SIP) Event Package for Conference State", draft-ietf-sipping-conference-package-12 (work in progress), Camarillo, et al. Expires December 24, 2006 [Page 11] Internet-Draft Multiple REFER June 2006 July 2005. [14] Levin, O., "Session Initiation Protocol Call Control - Conferencing for User Agents", draft-ietf-sipping-cc-conferencing-07 (work in progress), June 2005. Authors' Addresses Gonzalo Camarillo Ericsson Hirsalantie 11 Jorvas 02420 Finland Email: Gonzalo.Camarillo@ericsson.com 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 Camarillo, et al. Expires December 24, 2006 [Page 12] Internet-Draft Multiple REFER June 2006 Hisham Khartabil Telio P.O. Box 1203 Oslo 0110 Norway Email: Hisham.Khartabil@telio.no Camarillo, et al. Expires December 24, 2006 [Page 13] Internet-Draft Multiple REFER June 2006 Full 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. 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. Intellectual Property 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. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Camarillo, et al. Expires December 24, 2006 [Page 14]