SIP Working Group G. Camarillo
Internet-Draft Ericsson
Intended status: Standards Track A. Niemi
Expires: July 12, 2007 M. Isomaki
M. Garcia-Martin
Nokia
H. Khartabil
Khartabil Internet Telephony
Consulting
January 8, 2007
Referring to Multiple Resources in the Session Initiation Protocol (SIP)
draft-ietf-sip-multiple-refer-01.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 July 12, 2007.
Copyright Notice
Copyright (C) The IETF Trust (2007).
Abstract
This document defines extensions to the SIP REFER method so that this
method can be used to refer servers to multiple resources. These
Camarillo, et al. Expires July 12, 2007 [Page 1]
Internet-Draft SIP Multiple REFER January 2007
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. URI-List Format . . . . . . . . . . . . . . . . . . . . . . . 5
7. Behavior of SIP REFER-Issuers . . . . . . . . . . . . . . . . 7
8. Behavior of REFER-Recipients . . . . . . . . . . . . . . . . . 7
9. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
10. Security Considerations . . . . . . . . . . . . . . . . . . . 11
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
12.1. Normative References . . . . . . . . . . . . . . . . . . 11
12.2. Informative References . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13
Intellectual Property and Copyright Statements . . . . . . . . . . 15
Camarillo, et al. Expires July 12, 2007 [Page 2]
Internet-Draft SIP Multiple REFER January 2007
1. Introduction
RFC 3261 (SIP) [5] is extended by RFC 3515 [7] with a REFER method
that 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 the REFER method so that REFER request 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
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document 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 specified
in RFC 3515 [7] that allows a SIP User Agent Client (UAC) to include
a URI-list as specified in the XML Format for Representing Resource
Lists [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 XML
Format Extension for Representing Copy Control Attributes in Resource
Lists [11] to allow the sender indicate the role (e.g., 'to', 'cc',
or anonymous) in which the REFER-Target is involved in the
Camarillo, et al. Expires July 12, 2007 [Page 3]
Internet-Draft SIP Multiple REFER January 2007
signalling.
We represent the multiple REFER-Targets of a REFER using a URI-list
as specified in the XML Format for Representing Resource Lists [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
contains a pointer to a URI-list, which is included in a body part,
and an option-tag in the Require 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 can discover which participants were
successfully brought into the conference by subscribing to the
conference state event (RFC 4575) [12].
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", RFC 3420 [6], that
describes the status of the transaction initiated by the REFER-
Recipient.
Camarillo, et al. Expires July 12, 2007 [Page 4]
Internet-Draft SIP Multiple REFER January 2007
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 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-Issuer 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 the implicit subscription
associated with a REFER dialog. 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 Formats for Representing
Resource Lists [9] extended with the XML Format Extension for
Representing Copy Control Attributes in Resource Lists [11]. REFER-
Recipients handling 'recipient-list' bodies MUST support both of
these formats and MAY support other formats.
Camarillo, et al. Expires July 12, 2007 [Page 5]
Internet-Draft SIP Multiple REFER January 2007
As described in the XML Format Extension for Representing Copy
Control Attributes in Resource Lists [11], each URI can be tagged
with a 'copyControl' attribute set to either "to", "cc", or "bcc",
indicating the role in which the recipient will get the referred SIP
request. However, depending on the target SIP method, a
'copyControl' attribute lacks sense. For example, while a
'copyControl' attribute can be applied to INVITE requests, it does
not make sense with mid-dialog requests such as BYE requests.
In addition to the 'copyControl' attribute, URIs can be tagged with
the 'anonymize' attribute, also specified in the XML Format Extension
for Representing Copy Control 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 Copy Control
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 Formats for Representing Resource Lists [9] extended with the XML
Format Extension for Representing Copy Control Attributes in Resource
Lists [11]. Conferencing servers supporting this specification MUST
support both of these formats; UASes MAY support these formats. Both
conferencing servers and UASes MAY support other formats.
Nevertheless, the XML Format for Representing Resource Lists [9]
document 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 multiple REFER service defined in
this document.
Figure 1 shows an example of a flat list that follows the resource
list document.
Figure 1: URI List
Camarillo, et al. Expires July 12, 2007 [Page 6]
Internet-Draft SIP Multiple REFER January 2007
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 a recipient-
list 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) as per RFC 2392 [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.
The XML Format for Representing Resource Lists [9] document provides
features, such as hierarchical lists and the ability to include
entries by reference relative to the XCAP root URI. However, these
features are not needed by the multiple REFER service defined in this
document. Therefore, when using the default resource list document,
SIP REFER-Issuers generating REFER requests with multiple REFER-
Targets SHOULD use flat lists (i.e., no hierarchical lists) and
SHOULD NOT use elements.
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 'copyControl' 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
Camarillo, et al. Expires July 12, 2007 [Page 7]
Internet-Draft SIP Multiple REFER January 2007
formatted according to the XML Format for Representing Resource Lists
[9] and the XML Format Extension for Representing Copy Control
Attributes in Resource Lists [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
'copyControl' attributes.
If the server includes a URI-list in an outgoing request, it MUST
include a Content-Disposition header field, specified in RFC 2183
[2], with the value set to 'recipient-list-history' and a 'handling'
parameter, specified in RFC 3204 [4], set to "optional".
Since the multiple REFER service does not use hierarchical lists nor
lists that include entries by reference to the XCAP root URI, a
REFER-Recipient receiving a URI-list with more information than what
has been described in Section 6 MAY discard all the extra
information.
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. Details for using REFER request to remove participants from
a conference are specified in RFC 4579 [13].
Camarillo, et al. Expires July 12, 2007 [Page 8]
Internet-Draft SIP Multiple REFER January 2007
+--------+ +---------+ +--------+ +--------+ +--------+
| 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 copyControl 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) [14]
(as a guarantee that the REFER request will not fork). The Refer-Sub
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.
Camarillo, et al. Expires July 12, 2007 [Page 9]
Internet-Draft SIP Multiple REFER January 2007
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.
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
Camarillo, et al. Expires July 12, 2007 [Page 10]
Internet-Draft SIP Multiple REFER January 2007
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
REFER-Recipient accepting REFER requests with multiple REFER-targets
acts as an URI-list service, implementations of this type of server
MUST follow the security-related rules in the Framework and Security
Considerations for SIP URI-List Services [10]. These rules include
mandatory authentication and authorization of clients, and opt-in
lists.
Additionally, REFER-Recipients 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
REFER requests 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.
The following row shall be added to the "Option Tags" section of the
SIP Parameter Registry:
+-----------------+-------------------------------------+-----------+
| Name | Description | Reference |
+-----------------+-------------------------------------+-----------+
| multiple-refer | This option tag indicates support | [RFCXXXX] |
| | for REFER requests that contain a | |
| | resource list document describing | |
| | multiple REFER targets. | |
+-----------------+-------------------------------------+-----------+
Table 1: Registration of the 'multiple-refer' Option-Tag in SIP
Note to the RFC Editor: Please replace [RFCXXXX] with the RFC number
of this specification.
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.
Camarillo, et al. Expires July 12, 2007 [Page 11]
Internet-Draft SIP Multiple REFER January 2007
[2] Troost, R., Dorner, S., and K. Moore, "Communicating
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-06 (work in progress),
September 2006.
[11] Garcia-Martin, M. and G. Camarillo, "Extensible Markup Language
(XML) Format Extension for Representing Copy Control
Attributes in Resource Lists",
draft-ietf-sipping-capacity-attribute-03 (work in progress),
December 2006.
12.2. Informative References
[12] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session
Initiation Protocol (SIP) Event Package for Conference State",
RFC 4575, August 2006.
[13] Johnston, A. and O. Levin, "Session Initiation Protocol (SIP)
Camarillo, et al. Expires July 12, 2007 [Page 12]
Internet-Draft SIP Multiple REFER January 2007
Call Control - Conferencing for User Agents", BCP 119,
RFC 4579, August 2006.
[14] Rosenberg, J., "Obtaining and Using Globally Routable User
Agent (UA) URIs (GRUU) in the Session Initiation Protocol
(SIP)", draft-ietf-sip-gruu-11 (work in progress),
October 2006.
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 July 12, 2007 [Page 13]
Internet-Draft SIP Multiple REFER January 2007
Hisham Khartabil
Khartabil Internet Telephony Consulting
Phone: +61 416 108 890
Email: hisham.khartabil@gmail.com
Camarillo, et al. Expires July 12, 2007 [Page 14]
Internet-Draft SIP Multiple REFER January 2007
Full Copyright Statement
Copyright (C) The IETF Trust (2007).
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, THE IETF TRUST 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 July 12, 2007 [Page 15]