< draft-miniero-bfcp-control-package-00.txt   draft-miniero-bfcp-control-package-01.txt >
Network Working Group L. Miniero Network Working Group L. Miniero
Internet-Draft A. Amirante Internet-Draft S P. Romano
Expires: August 15, 2008 T. Castaldi Expires: January 9, 2009 University of Napoli
S P. Romano R. Even
University of Napoli Polycom
February 12, 2008 S. McGlashan
Hewlett-Packard
July 8, 2008
A Binary Floor Control Protocol (BFCP) Control Package for the Session A Binary Floor Control Protocol (BFCP) Control Package for the Media
Initiation Protocol (SIP) Control Channel Framework
draft-miniero-bfcp-control-package-00.txt draft-miniero-bfcp-control-package-01
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware 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 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. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 37 skipping to change at page 1, line 39
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on August 15, 2008. This Internet-Draft will expire on January 9, 2009.
Copyright Notice
Copyright (C) The IETF Trust (2008).
Abstract Abstract
This document defines a Session Initiation Protocol (SIP) Control This document defines a Media Control Channel Framework Package for
Package for BFCP-based conference moderation. The control of Media BFCP-based conference moderation. The control of Media Servers and
Servers and their related resources in decomposed network their related resources in decomposed network architectures plays an
architectures plays an important role in various Next Generation important role in various Next Generation Networks. This Control
Networks. This Control Package aims at adding BFCP functionality to Package aims at adding BFCP functionality to conferences using the
conferences using the SIP Control Framework. Media Control Channel Framework.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5. Control Package Definition . . . . . . . . . . . . . . . . . . 4 5. Control Package Definition . . . . . . . . . . . . . . . . . . 4
5.1. Control Package Name . . . . . . . . . . . . . . . . . . . 4 5.1. Control Package Name . . . . . . . . . . . . . . . . . . . 5
5.2. Framework Message Usage . . . . . . . . . . . . . . . . . 4 5.2. Framework Message Usage . . . . . . . . . . . . . . . . . 5
5.3. Common XML Support . . . . . . . . . . . . . . . . . . . . 5 5.3. Common XML Support . . . . . . . . . . . . . . . . . . . . 6
5.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . . 5 5.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . . 6
5.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 5 5.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 6
6. Element Definitions . . . . . . . . . . . . . . . . . . . . . 6 5.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6.1. Requests . . . . . . . . . . . . . . . . . . . . . . . . . 6 6. Floors Manipulation . . . . . . . . . . . . . . . . . . . . . 7
6.1.1. <moderateconference> . . . . . . . . . . . . . . . . . 6 7. Element Definitions . . . . . . . . . . . . . . . . . . . . . 8
6.1.2. <unmoderateconference> . . . . . . . . . . . . . . . . 7 7.1. <mscbfcp> . . . . . . . . . . . . . . . . . . . . . . . . 9
6.1.3. <addfloor> . . . . . . . . . . . . . . . . . . . . . . 8 7.1.1. Shared elements . . . . . . . . . . . . . . . . . . . 10
6.1.4. <modifyfloor> . . . . . . . . . . . . . . . . . . . . 8 7.1.2. Requests . . . . . . . . . . . . . . . . . . . . . . . 11
6.1.5. <removefloor> . . . . . . . . . . . . . . . . . . . . 9 7.1.3. Responses . . . . . . . . . . . . . . . . . . . . . . 17
6.1.6. <addparticipant> . . . . . . . . . . . . . . . . . . . 10 7.1.4. Notifications . . . . . . . . . . . . . . . . . . . . 18
6.1.7. <removeparticipant> . . . . . . . . . . . . . . . . . 10 7.2. Audit Elements . . . . . . . . . . . . . . . . . . . . . . 19
6.2. Responses . . . . . . . . . . . . . . . . . . . . . . . . 10 7.2.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 19
6.2.1. <response> . . . . . . . . . . . . . . . . . . . . . . 10 7.2.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 19
6.3. Notifications . . . . . . . . . . . . . . . . . . . . . . 11 8. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.3.1. <subscribe> . . . . . . . . . . . . . . . . . . . . . 11 9. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 19
6.3.2. <event> . . . . . . . . . . . . . . . . . . . . . . . 11 10. Security Considerations . . . . . . . . . . . . . . . . . . . 19
6.4. Floors Manipulation . . . . . . . . . . . . . . . . . . . 12 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19
6.4.1. <floor> . . . . . . . . . . . . . . . . . . . . . . . 13 12. Change Summary . . . . . . . . . . . . . . . . . . . . . . . . 19
7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 20
8. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 15 14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9. Security Considerations . . . . . . . . . . . . . . . . . . . 15 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 Intellectual Property and Copyright Statements . . . . . . . . . . 23
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 16
Intellectual Property and Copyright Statements . . . . . . . . . . 18
1. Introduction 1. Introduction
The SIP Control Framework [11] provides a generic approach for The Media Control Channel Framework
establishment and reporting capabilities of remotely initiated [I-D.ietf-mediactrl-sip-control-framework] provides a generic
commands. The Framework utilizes many functions provided by the approach for establishment and reporting capabilities of remotely
Session Initiation Protocol (SIP) [4] for the rendezvous and initiated commands. The Framework utilizes many functions provided
establishment of a reliable channel for control interactions. The by the Session Initiation Protocol (SIP) [RFC3261] for the rendezvous
Control Framework also introduces the concept of a Control Package. and establishment of a reliable channel for control interactions.
A Control Package is an explicit usage of the Control Framework for a The Control Framework also introduces the concept of a Control
particular interaction set. This specification defines a package for Package. A Control Package is an explicit usage of the Control
floor control in conferences based on the use of the Binary Floor Framework for a particular interaction set. This specification
Control Protocol (BFCP) [8]. defines a package for floor control in conferences based on the use
of the Binary Floor Control Protocol (BFCP) [RFC4582].
2. Conventions 2. Conventions
In this document, the key words "MUST", "MUST NOT", "REQUIRED", In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
described in BCP 14, RFC 2119 [2] and indicate requirement levels for described in BCP 14, RFC 2119 [RFC2119] and indicate requirement
compliant implementations. levels for compliant implementations.
3. Terminology 3. Terminology
TBD. TBD. Inherited from other documents, including
[I-D.ietf-mediactrl-sip-control-framework] and
[I-D.ietf-mediactrl-mixer-control-package].
Application Server: TBD.
Media Server: TBD.
Control Package: TBD.
4. Overview 4. Overview
The SIP Control Framework [11] provides a generic approach for The Media Control Channel Framework
establishment and reporting capabilities of remotely initiated [I-D.ietf-mediactrl-sip-control-framework] provides a generic
commands. The Framework utilizes many functions provided by the approach for establishment and reporting capabilities of remotely
Session Initiation Protocol (SIP) [4] for the rendezvous and initiated commands. The Framework utilizes many functions provided
establishment of a reliable channel for control interactions. The by the Session Initiation Protocol (SIP) [RFC3261] for the rendezvous
Control Framework also introduces the concept of a Control Package. and establishment of a reliable channel for control interactions.
A Control Package is an explicit usage of the Control Framework for a The Control Framework also introduces the concept of a Control
particular interaction set. This specification defines a package for Package. A Control Package is an explicit usage of the Control
floor control in conferences based on the use of the Binary Floor Framework for a particular interaction set. This specification
Control Protocol (BFCP) [8]. defines a package for floor control in conferences based on the use
of the Binary Floor Control Protocol (BFCP) [RFC4582].
Floor control is needed whenever access to a resource, or set of Floor control is needed whenever access to a resource, or set of
resources, needs to be moderated. A typical example is the right to resources, needs to be moderated. A typical example is the right to
talk in a conference. In such a scenario, a participant willing to talk in a conference. In such a scenario, a participant willing to
talk would first have to place a request concerning the floor talk would first have to place a request concerning the floor
associated with such audio resource. The participant would then be associated with such audio resource. The participant would then be
added to the conference mix only when his request has been granted, added to the conference mix only when his request has been granted,
by the server itself or by a designated chair. RFC4582 [8] defines a by the server itself or by a designated chair. RFC4582 [RFC4582]
Binary Floor Control Protocol (BFCP) to specifically deal with such a defines a Binary Floor Control Protocol (BFCP) to specifically deal
need. It defines all the relevant entities (floors, queues, with such a need. It defines all the relevant entities (floors,
requests) and related actors (floor control servers, participants and queues, requests) and related actors (floor control servers,
chairs). So, the scope of this package is adding BFCP-based floor participants and chairs). So, the scope of this package is adding
control functionality to complementary packages that might need it, BFCP-based floor control functionality to complementary packages that
as the Conference Control Package [13]. might need it, as the Mixer Control Package
[I-D.ietf-mediactrl-mixer-control-package]. In particular, this
package aims at dealing with the case where the Floor Control Server
(FCS), as defined in [RFC4582], is co-located with the Media Server
(MS). In fact, if the FCS were co-located with the Application
Server (AS), floor control would be part of the AS application logic,
and thus out of scope for the MS. A typical example of how this
could be accomplished is the 'controller' mechanism as specified in
[I-D.ietf-mediactrl-mixer-control-package], where mixing in the MS
and its contributors are actively setup by the AS, according to any
policy the AS might be enforcing, including floor control.
In particular, this package aims at dealing with the case where the
Floor Control Server (FCS), as defined in [8], is co-located with the
Media Server (MS). In fact, if the FCS were co-located with the
Application Server (AS), floor control would be part of the AS
application logic, and consequently out of scope for the MS.
Considering users are added by the AS to the MS by means of a 3PCC Considering users are added by the AS to the MS by means of a 3PCC
[6] mechanism, a way to include BFCP negotiation is needed. In fact, [RFC3725] mechanism, a way to include BFCP negotiation is needed. In
users willing to act as floor participants will need to be made aware fact, users willing to act as floor participants will need to be made
of all the relevant identifiers (i.e. the transport address of the aware of all the relevant identifiers (i.e. the transport address of
floor control server, the BFCP conference ID associated with the mix, the floor control server, the BFCP conference ID associated with the
the BFCP user ID the user has been assigned, all the floor mix, the BFCP user ID the user has been assigned, all the floor
identifiers and their mapping with existing resources, and so on) to identifiers and their mapping with existing resources, and so on) to
opportunely interact with a floor control server. To achieve this, properly interact with a floor control server. To achieve this,
RFC4583 [8] provides with a way to negotiate BFCP connections within RFC4583 [RFC4583] provides with a way to negotiate BFCP connections
the context of a SDP offer/answer [5]. within the context of a SDP offer/answer [RFC3264].
5. Control Package Definition 5. Control Package Definition
This section fulfills the mandatory requirement for information that This section fulfills the mandatory requirement for information that
MUST be specified during the definition of a Control Framework MUST be specified during the definition of a Control Framework
Package, as detailed in Section 9 of [11]. Package, as detailed in Section 9 of
[I-D.ietf-mediactrl-sip-control-framework].
5.1. Control Package Name 5.1. Control Package Name
The Control Framework requires a Control Package definition to The Control Framework requires a Control Package definition to
specify and register a unique name and version. specify and register a unique name and version.
The name and version of this Control Package is "msc-conf-bfcp/1.0" The name and version of this Control Package is "msc-bfcp/1.0" (Media
(Media Server Control - Conferencing - BFCP - version 1.0 ). Server Control - Binary Floor Control - version 1.0).
5.2. Framework Message Usage 5.2. Framework Message Usage
BFCP functionality includes several different capabilities. There BFCP functionality includes several different capabilities. There
must be means to appropriately create, modify and destroy each of the must be means to appropriately create, modify and destroy each of the
available resources. This includes means to create a BFCP conference available resources. This includes means to create a BFCP conference
with specified settings, adding and removing floors to the with specified settings, adding and removing floors to the
conference, setting or unsetting designated chairs for such floors conference, setting or unsetting designated chairs for such floors
and so on. and so on. Proper subscription and notification mechanisms must also
be made available, in order to make the AS aware of all the relevant
events it might be interested to.
This package defines XML elements in Section 6 and provides an XML This package defines XML elements in Section 7 and provides an XML
Schema in Section 8. Additionally, some examples are provided in Schema in Section 9. Additionally, some examples are provided in
Section 7. Section 8.
The XML elements in this package are split into requests, responses The XML elements in this package are split into requests, responses
and event notifications. Requests are carried in CONTROL message and event notifications, all of which are contained within a root
bodies; <moderateconference> and <addfloor> elements are examples of <mscbfcp> element. Requests are carried in CONTROL message bodies;
package requests. Responses are carried either in REPORT message or <moderateconference> and <addfloor> elements are examples of package
Control Framework 200 response bodies; the <response> element is requests. Responses are carried either in REPORT message or Control
defined as a package response. Event notifications are also carried Framework 200 response bodies; the <response> element is defined as a
in REPORT message bodies; the <event> element is defined for package package response. Event notifications are instead carried in CONTROL
event notifications. Event subscription is accomplished by means of message bodies; the <event> element is defined for package event
the <subscribe> element. notifications. Event subscription is accomplished by means of the
<subscribe> element.
Note that package responses are different from framework response Note that package responses are different from framework response
codes. Framework error response codes (see Section 8 of [11]) are codes. Framework error response codes (see Section 8 of
used when the request or event notification is invalid; for example, [I-D.ietf-mediactrl-sip-control-framework]) are used when the request
a request is invalid XML (400), or not understood (500). Package or event notification is invalid; for example, a request is invalid
responses are carried in 200 response or REPORT message bodies. This XML (400), or not understood (500). Package responses are carried in
package's response codes are defined in Section 6.2.1. 200 response or REPORT message bodies. This package's response codes
are defined in Section 7.1.3.1.
The schema uses the "connection-id" and "conf-id" attributes which The schema uses the "connection-id" and "conf-id" attributes which
are imported from the schema defined in the core Control Framework are imported from the schema defined in the core Control Framework
[11]. [I-D.ietf-mediactrl-sip-control-framework].
5.3. Common XML Support 5.3. Common XML Support
The Control Framework requires a Control Package definition to The Control Framework requires a Control Package definition to
specify if the attributes for media dialog or conference references specify if the attributes for media dialog or conference references
are required. are required.
This package requires that the XML Schema in Section 16.1 of [11] This package requires that the XML Schema in Section 17.1 of
MUST be supported for media dialogs and conferences. [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for
media dialogs and conferences.
5.4. CONTROL Message Body 5.4. CONTROL Message Body
A valid CONTROL body message MUST conform to the schema defined in The Control Framework requires a Control Package to define the
Section 8 and described in Section 6. XML messages appearing in control body that can be contained within a CONTROL command request
CONTROL messages MUST contain one of the elements described in and to indicate the location of detailed syntax definitions and
Section 6.1. semantics for the appropriate body types.
When operating as Control Framework Server, the MS receives CONTROL
messages with a body containing an <mscbfcp> element with either a
floor control management or audit request child element.
The following mixer management request elements are carried in
CONTROL message bodies to MS: <moderateconference> (Section 7.1.2.1),
<unmoderateconference> (Section 7.1.2.2), <addfloor>
(Section 7.1.2.3), <modifyfloor> (Section 7.1.2.4), <removefloor>
(Section 7.1.2.5), <addparticipant> (Section 7.1.2.6),
<modifyparticipant> (Section 7.1.2.7) and <removeparticipant>
(Section 7.1.2.8) elements.
The <audit> request element (Section 7.2.1) is also carried in
CONTROL message bodies.
When operating as Control Framework Client, the MS sends CONTROL
messages with a body containing a notification <event&gT; element
(Section 7.1.4.2).
5.5. REPORT Message Body 5.5. REPORT Message Body
A valid REPORT body MUST conform to the schema defined in Section 8 A valid REPORT body MUST conform to the schema defined in Section 9
and described in Section 6. XML messages appearing in REPORT and described in Section 7. XML messages appearing in REPORT
messages MUST contain a <response> (Section 6.2.1), or a messages MUST contain a <response> (Section 7.1.3.1), or a
(notification) <event> element (Section 6.3.2). (notification) <event> element (Section 7.1.4.2).
6. Element Definitions 5.6. Audit
The Control Framework encourages Control Packages to specify whether
auditing is available, how it is triggered as well as the query/
response formats.
This Control Packages supports auditing of package capabilities and
dialogs on the MS. An audit request is carried in a CONTROL messages
and an audit response in a REPORT message (or a 200 reponse to the
CONTROL if it can execute the audit in time).
The syntax and semantics of audit request and response elements is
defined in Section 4.4.
6. Floors Manipulation
Before delving into the details of the package elements, a few words
are worth being spent with respect to how floors are assumed to be
manipulated in this package.
Floors are defined as tokens associated with a resource, or set of
resources, in order to moderate the access to their functionality by
users. This introduces the need for a mechanism in the package to
properly take care of this kind of association, especially when
dealing about resources directly manipulated by the Media Server
(e.g. andio and video).
Let's consider the following figure, which presents the view of an
audio conference with three participants, and the related media
labels associated with each participant's media stream:
MS
+---------------+
UAC A | | UAC B
o-----------+--x x--+-----------o
a1b2c3 | | d4e5f6
| |
| x |
| | |
+-------+-------+
|
| g7h8i9
|
o
UAC C
Figure 1: Audio Conference with labels
Even if each participant sees a different label for the stream it has
with the mixer, the floor associated with the only available resource
in the conference (audio) is the same. This means that the package
needs to have a way to address each resource in the conference
according to how it is defined in
[I-D.ietf-mediactrl-mixer-control-package], e.g. "associate media
'audio' with floor 11" or any other more complex assignment involving
labels and the like. Once a participant's media stream is attached
to the resource, the related label is consequently associated with
the floor as specified in [RFC4583]. Figure 2 depicts such the case
where all the participants have been attached to the mix.
MS
+---------------+
UAC A | | UAC B
o-----------+--+~~>[ ]<~~+--+-----------o
a1b2c3 | ^ | d4e5f6
(floor 11) | | | (floor 11)
| + |
| | |
+-------+-------+
|
| g7h8i9
| (floor 11)
o
UAC C
Figure 2: Audio Conference with labels and floors
The same approach can be considered when dealing with different
floors associated with one or more different resources, e.g.
conferences with an audio and a video stream, conferences with two
different audio streams, and so on. Each floor needs to be
unambiguously associated with a subset of the available resources
(e.g. floor 11 is audio1 and floor 22 is video, or floor 11 is audio1
while floor 22 is audio2, or floor 11 is audio1 AND audio2 AND
video2, and so on).
To achieve this, each floor, together with its configuration, is
defined in the package by the <floor> element, as described in
Section 7.1.1.1.
7. Element Definitions
This section defines the XML messages for this control package. This section defines the XML messages for this control package.
[Editors Note: since XML Schema may not be able to express all [Editors Note: since XML Schema may not be able to express all
constraints expressed in these definitions, in cases where there is a constraints expressed in these definitions, in cases where there is a
difference in constraints, the definitions in the section take difference in constraints, the definitions in the section take
priority.] priority.]
6.1. Requests 7.1. <mscbfcp>
The following request elements are defined: The <mscbfcp> element has the following attributes (in addition to
standard XML namspace attributes such as xmlns):
version: a string specifying the mscbfcp package version. The value
is fixed as '1.0' for this version of the package. The attribute is
mandatory.
The <mscbfcp> element has the following defined child elements, only
one of which can occur:
<moderateconference>: create and configure a new BFCP conference, <moderateconference>: create and configure a new BFCP conference,
associated with an existing framework conference instance to associated with an existing framework conference instance to
moderate - see Section 6.1.1 for details; moderate - see Section 7.1.2.1 for details;
<unmoderateconference>: destroy a BFCP conference, thus stopping the <unmoderateconference>: destroy a BFCP conference, thus stopping the
moderation of the associated framework conference instance - see moderation of the associated framework conference instance - see
Section 6.1.2 for details; Section 7.1.2.2 for details;
<addfloor>: add and configure a new floor to an existing BFCP <addfloor>: add and configure a new floor to an existing BFCP
conference - see Section 6.1.3 for details; conference - see Section 7.1.2.3 for details;
<modifyfloor>: modify the configuration of a currently handled floor <modifyfloor>: modify the configuration of a currently handled floor
in an existing BFCP conference - see Section 6.1.4 for details; in an existing BFCP conference - see Section 7.1.2.4 for details;
<removefloor>: remove a currently handled floor from an existing <removefloor>: remove a currently handled floor from an existing
BFCP conference - see Section 6.1.5 for details; BFCP conference - see Section 7.1.2.5 for details;
<addparticipant>: add a floor participant to a BFCP conference - see <addparticipant>: add a floor participant to a BFCP conference - see
Section 6.1.6 for details; Section 7.1.2.6 for details;
<modifyparticipant>: modify an existing floor participant in a BFCP
conference - see Section 7.1.2.7 for details;
<removeparticipant>: remove a floor participant from a BFCP <removeparticipant>: remove a floor participant from a BFCP
conference - see Section 6.1.7 for details. conference - see Section 7.1.2.8 for details.
6.1.1. <moderateconference> <response>: response to a floor control request - see Section 7.1.3
for details.
<event>: bfcp or subscription notification - see Section 7.1.4 for
details.
7.1.1. Shared elements
All the previously introduced requests make use of the same element
specification to describe the desired operation. Specifically,
<moderateconference>, <addfloor> and <modifyfloor> make use of the
<floor> element (Section 7.1.1.1), while <addparticipant>,
<modifyparticipant> and <removeparticipant> make use of the
<participant> element (Section 7.1.1.2).
7.1.1.1. <floor>
The <floor> element is used in the package to configure a floor in a
BFCP conference. It addresses all the relevant settings for a floor,
including the resource (or, again, set of resources) it must be
associated with, the maximum number of users that can be granted the
floor at the same time, the maximum number of requests the same
participant can place for this floor at the same time, and the
default policy the FCS considers for incoming requests about the
floor.
The <floor> element has the following attributes:
bfcp-floor-id: string indicating the name of the BFCP floor. This
attribute is optional.
<media>: an element indicating the type of media associated with the
floor, i.e. the resource associated with the floor, as defined in
[I-D.ietf-mediactrl-mixer-control-package]. The string might be a
comma-separated list in case the floor is associated with more
than one resource (e.g. media="audio,video"). This element is
mandatory.
<max-users>: an element indicating the maximum number of users that
can be granted this floor at the same time: this basically sets
the size of the granted floor queue. In case all the queue slots
have already been granted, subsequent requests are put on hold.
This element is optional: if missing, the default value (max-
users="1") is used.
<max-requests>: an element indicating the maximum number of requests
each user can place for the floor before being granted it. This
element is optional: if missing, the default value (max-
requests"="1) is used.
<policy>: an element indicating the default policy the FCS must take
whenever receiving requests for this floor and the chair is
missing. In fact, in case a chair is involved, the request is
forwarded to him, which then takes a decision about it. The
policy can be an 'autodeny' (deny all the requests for this
floor), 'autoaccept' (accept all the requests for this floor) or
'ignore' (ignore all the requests for this floor and put them on
ice, waiting for a chair to appear) policy. This element is
optional: if missing, the default value (policy="autoaccept") is
used.
The "bfcp-floor-id" attribute has different roles according to the
request the <floor> element is part of. The behaviour of the package
changes accordingly. Specifically:
<moderateconference|addfloor>: if the attribute is not specified,
the MS creates a unique name for the BFCP floor. The value is
used in subsequent references to the conference (e.g. as bfcp-
floor-id in a <modifyfloor>). The new value of this attribute
MUST be unique or else a 403 'Floor already exists' package level
error will be reported.
<modifyfloor>: if the attribute is not specified, the value of the
attribute in the father element is used. If it is specified,
instead, it must not conflict with the value of the attribute in
the father element, otherwise it is an error.
TBD. Elaborate the floor mechanism.
[Note: the first problem that comes to mind is the actual association
between a floor and a resource in the MS. Specifically, enforcing
the decisions might be an issue, since there's no way this package
and msc-mixer can talk with each other...]
7.1.1.2. <participant>
TBD. Elaborate the participant mechanism.
[Note: this element will include the same mechanism used in other
packages to address a connection, in order to associate a BFCP user
identifier to it. Besides, it will include means to specify whether
or not a participant is chair of any of the available floors.]
7.1.2. Requests
7.1.2.1. <moderateconference>
<moderateconference> is used in a request by the AS to moderate an <moderateconference> is used in a request by the AS to moderate an
existing conference instance, by associating to it a new, properly existing conference instance, by associating to it a new, properly
configured, BFCP conference. configured, BFCP conference.
The <moderateconference> element has the following attributes: The <moderateconference> element has the following attributes:
conf-id: string indicating the name of the conference to moderate. conf-id: string indicating the name of the conference to moderate.
The conference MUST be known by the receiving entity or else a 404 The conference MUST be known by the receiving entity or else a 404
'Conference does not exist' package level error will be generated. 'Conference does not exist' package level error will be generated.
This attribute is mandatory. This attribute is mandatory.
bfcp-conf-id: string (an unsigned integer) indicating a unique name bfcp-conf-id: string (an unsigned integer) indicating a unique name
for the BFCP conference. If this attribute is not specified, the for the BFCP conference. If this attribute is not specified, the
MS creates a unique name for the BFCP conference. The value is MS creates a unique name for the BFCP conference. The value is
used in subsequent references to the conference (e.g. as bfcp- used in subsequent references to the conference (e.g. as bfcp-
conf-id in a <response>). When present in a <moderateconference> conf-id in a <response>), and in actual BFCP protocol contents as
request, the new value of this attribute MUST be unique or else a well, and as such MUST adhere to the syntax defined in [RFC4582].
403 'Conference already exists' package level error will be When present in a <moderateconference> request, the new value of
reported. The attribute is optional. this attribute MUST be unique or else a 403 'Conference already
exists' package level error will be reported. The attribute is
optional.
Additionally, to configure the new BFCP conference, the Additionally, to configure the new BFCP conference, the
<moderateconference> element has the following child elements <moderateconference> element has the following child elements
defined: defined:
<floor>: an element to configure a floor in the new BFCP conference <floor>: an element (Section 7.1.1.1) to configure a floor in the
(see Section 6.4.1 for more details). This element only refers to new BFCP conference (see Section 7.1.1.1 for more details). This
floors already available at creation time. New floors can still element only refers to floors already available at creation time.
be added subsequently by means of an <addfloor> request (see New floors can still be added subsequently by means of an
Section 6.1.3). This element is optional. <addfloor> request (see Section 7.1.2.3). This element is
optional.
<subscribe>: an element to request subscription to conference <subscribe>: an element to request subscription to conference
events. (see Section 6.3.1 for more details). This element is events. (see Section 7.1.4.1 for more details). This element is
optional. optional.
Multiple <floor> elements may be defined, in case several floors are Multiple <floor> elements may be defined, in case several floors are
needed. needed.
When a MS has finished processing a <moderateconference> request, it When a MS has finished processing a <moderateconference> request, it
MUST reply with an appropriate <response> element (Section 6.2.1). MUST reply with an appropriate <response> element (Section 7.1.3).
6.1.2. <unmoderateconference> 7.1.2.2. <unmoderateconference>
<unmoderateconference> is used in a request by the AS to destroy a <unmoderateconference> is used in a request by the AS to destroy a
BFCP conference, thus stopping the moderatation of the associated BFCP conference, thus stopping the moderatation of the associated
existing framework conference instance. A successful processing of existing framework conference instance. A successful processing of
this request does NOT result in a destruction of the associated media this request does NOT result in a destruction of the associated media
conference: it only results in the media conference not being conference: it only results in the media conference not being
moderated by means of BFCP anymore. The actual destruction of the moderated by means of BFCP anymore. The actual destruction of the
media conference itself is accomplished through the means provided in media conference itself is accomplished through the means provided in
[13]. [I-D.ietf-mediactrl-mixer-control-package].
The <unmoderateconference> element has the following attributes: The <unmoderateconference> element has the following attributes:
bfcp-conf-id: string indicating the name of the BFCP conference to bfcp-conf-id: string indicating the name of the BFCP conference to
destroy. The conference MUST be known by the receiving entity or destroy. The conference MUST be known by the receiving entity or
else a 404 'Conference does not exist' package level error will be else a 404 'Conference does not exist' package level error will be
generated. This attribute is mandatory. generated. This attribute is mandatory.
The <unmoderateconference> element does not specify any child The <unmoderateconference> element does not specify any child
elements. elements.
When a MS has finished processing an <unmoderateconference> request, When a MS has finished processing an <unmoderateconference> request,
it MUST reply with an appropriate <response> element (Section 6.2.1). it MUST reply with an appropriate <response> element
(Section 7.1.3.1).
6.1.3. <addfloor> 7.1.2.3. <addfloor>
<addfloor> is used in a request by the AS to add one or more floors <addfloor> is used in a request by the AS to add one or more floors
to an existing BFCP conference instance. to an existing BFCP conference instance.
The <addfloor> element has the following attributes: The <addfloor> element has the following attributes:
bfcp-conf-id: string indicating the name of the BFCP conference to bfcp-conf-id: string indicating the name of the BFCP conference to
add the floor(s) to. The conference MUST be known by the add the floor(s) to. The conference MUST be known by the
receiving entity or else a 404 'Conference does not exist' package receiving entity or else a 404 'Conference does not exist' package
level error will be generated. This attribute is mandatory. level error will be generated. This attribute is mandatory.
Additionally, to configure the new floor(s), the <addfloor> element Additionally, to configure the new floor(s), the <addfloor> element
has the following child elements defined: has the following child elements defined:
<floor>: an element to configure a new floor in the specified BFCP <floor>: an element to configure a new floor in the specified BFCP
conference (see Section 6.4.1 for more details). This element is conference (see Section 7.1.1.1 for more details). This element
mandatory. is mandatory.
Multiple <floor> elements may be defined, in case several floors are Multiple <floor> elements may be defined, in case several floors are
to be added at the same time. to be added at the same time.
When a MS has finished processing a <addfloor> request, it MUST reply When a MS has finished processing an <addfloor> request, it MUST
with an appropriate <response> element (Section 6.2.1). reply with an appropriate <response> element (Section 7.1.3.1).
6.1.4. <modifyfloor> 7.1.2.4. <modifyfloor>
<modifyfloor> is used in a request by the AS to modify the
configuration of a floor in an existing BFCP conference instance.
The <modifyfloor> element has the following attributes:
bfcp-conf-id: string indicating the name of the BFCP conference to
modify the floor's in. The conference MUST be known by the
receiving entity or else a 404 'Conference does not exist' package
level error will be generated. This attribute is mandatory.
bfcp-floor-id: string indicating the name of the BFCP floor to
modify the floor. The floor MUST be known by the receiving entity
or else a 404 'Floor does not exist' package level error will be
generated. This attribute is mandatory.
Additionally, to modify the configuration of the floor, the
<modifyfloor> element has the following child elements defined:
<floor>: an element to configure the specified floor in the
specified BFCP conference (see Section 7.1.1.1 for more details).
This element is mandatory.
It is an error if the provided <floor> element conflicts with the
BFCP floor identifier attribute.
When a MS has finished processing a <modifyfloor> request, it MUST
reply with an appropriate <response> element (Section 7.1.3.1).
7.1.2.5. <removefloor>
<removefloor> is used in a request by the AS to remove an existing <removefloor> is used in a request by the AS to remove an existing
floor from the BFCP conference instance it is in. A successful floor from the BFCP conference instance it is in. A successful
processing of this request does NOT result in a destruction of the processing of this request does NOT result in a destruction of the
associated resource (or set of resources): it only results in the associated resource (or set of resources): it only results in the
associated resource not being moderated by means of BFCP anymore. associated resource not being moderated by means of BFCP anymore.
The actual destruction of the resource (in case it is directly The actual destruction of the resource (in case it is directly
handled and manipulated by the MS itself) is accomplished through the handled and manipulated by the MS itself) is accomplished through the
means provided in [13]. means provided in [I-D.ietf-mediactrl-mixer-control-package].
The <removefloor> element has the following attributes: The <removefloor> element has the following attributes:
bfcp-conf-id: string indicating the name of the BFCP conference to bfcp-conf-id: string indicating the name of the BFCP conference to
remove the floor from. The conference MUST be known by the remove the floor from. The conference MUST be known by the
receiving entity or else a 404 'Conference does not exist' package receiving entity or else a 404 'Conference does not exist' package
level error will be generated. This attribute is mandatory. level error will be generated. This attribute is mandatory.
bfcp-floor-id: string indicating the name of the BFCP floor to bfcp-floor-id: string indicating the name of the BFCP floor to
remove. The floor MUST be known by the receiving entity or else a remove. The floor MUST be known by the receiving entity or else a
404 'Floor does not exist' package level error will be generated. 404 'Floor does not exist' package level error will be generated.
This attribute is mandatory. This attribute is mandatory.
The <removefloor> element does not specify any child elements. The <removefloor> element does not specify any child elements.
When a MS has finished processing a <removefloorfloor> request, it When a MS has finished processing a <removefloor> request, it MUST
MUST reply with an appropriate <response> element (Section 6.2.1). reply with an appropriate <response> element (Section 7.1.3.1).
6.1.5. <removefloor> 7.1.2.6. <addparticipant>
<modifyfloor> is used in a request by the AS to modify the <addparticipant> is used in a request by the AS to add a new BFCP
configuration of a floor in an existing BFCP conference instance. participant instance to an existing BFCP conference. Some additional
details can also be provided about the new participant, if it will be
the chair of one of the floors for example.
The <modifyfloor> element has the following attributes: The <addparticipant> element has the following attributes:
bfcp-conf-id: string indicating the name of the BFCP conference to
add the participant to. The conference MUST be known by the
receiving entity or else a 404 'Conference does not exist' package
level error will be generated. This attribute is mandatory.
bfcp-user-id: string (an unsigned integer) indicating a unique name
for the new BFCP participant. If this attribute is not specified,
the MS creates a unique name for the BFCP participant. The value
is used in subsequent references to the conference (e.g. as bfcp-
conf-id in a <response>), and in actual BFCP protocol contents as
well, and as such MUST adhere to the syntax defined in [RFC4582].
When present in an <addparticipant> request, the new value of this
attribute MUST be unique or else a 405 'User already exists'
package level error will be reported. The attribute is optional.
Additionally, to configure the new participant, the <addparticipant>
element has the following child elements defined:
<participant>: an element to configure a new floor in the specified
BFCP conference (see Section 7.1.1.2 for more details). This
element is mandatory.
Only one <participant> element can be present, which means only one
BFCP participant instance can be added at the same time.
When a MS has finished processing an <addparticipant> request, it
MUST reply with an appropriate <response> element (Section 7.1.3.1).
[Note: is this really needed? there may be RFC4583 for that...]
7.1.2.7. <modifyparticipant>
<modifyparticipant> is used in a request by the AS to modify the
configuration of a participant in an existing BFCP conference
instance. A typical use case for this request is to set or unset a
participant as chair of a floor in a conference.
The <modifyparticipant> element has the following attributes:
bfcp-conf-id: string indicating the name of the BFCP conference to bfcp-conf-id: string indicating the name of the BFCP conference to
modify the floor's in. The conference MUST be known by the modify the floor's in. The conference MUST be known by the
receiving entity or else a 404 'Conference does not exist' package receiving entity or else a 404 'Conference does not exist' package
level error will be generated. This attribute is mandatory. level error will be generated. This attribute is mandatory.
bfcp-floor-id: string indicating the name of the BFCP floor to bfcp-user-id: string indicating the name of the BFCP participant
modify the floor. The floor MUST be known by the receiving entity whose settings must be modified. The participant MUST be known by
or else a 404 'Floor does not exist' package level error will be the receiving entity or else a 406 'User does not exist' package
generated. This attribute is mandatory. level error will be generated. This attribute is mandatory.
Additionally, to modify the configuration of the floor, the Additionally, to modify the configuration of the participant, the
<modifyfloor> element has the following child elements defined: <modifyparticipant> element has the following child elements defined:
<floor>: an element to configure the specified floor in the <participant>: an element to configure the specified participant in
specified BFCP conference (see Section 6.4.1 for more details). the specified BFCP conference (see Section 7.1.1.2 for more
This element is mandatory. details). This element is mandatory.
It is an error if the provided <floor> element conflicts with the It is an error if the provided <participant> element conflicts with
BFCP floor identifier attribute. the BFCP participant identifier attribute.
When a MS has finished processing a <modifyfloor> request, it MUST When a MS has finished processing a <modifyparticipant> request, it
reply with an appropriate <response> element (Section 6.2.1). MUST reply with an appropriate <response> element (Section 7.1.3.1).
6.1.6. <addparticipant> 7.1.2.8. <removeparticipant>
TBD. (is this really needed? there's RFC4583 for that...) <removeparticipant> is used in a request by the AS to remove an
existing participant from the BFCP conference instance it is in. A
successful processing of this request does NOT result in a
termination of the participant's media session: it only results in
the associated media streams not being moderated by means of BFCP
anymore..
6.1.7. <removeparticipant> The <removeparticipant> element has the following attributes:
TBD. (is this really needed? there's RFC4583 for that...) bfcp-conf-id: string indicating the name of the BFCP conference to
remove the floor from. The conference MUST be known by the
receiving entity or else a 404 'Conference does not exist' package
level error will be generated. This attribute is mandatory.
6.2. Responses bfcp-user-id: string indicating the name of the BFCP participant to
remove. The participant MUST be known by the receiving entity or
else a 406 'User does not exist' package level error will be
generated. This attribute is mandatory.
The <removeparticipant> element does not specify any child elements.
When a MS has finished processing a <removeparticipant> request, it
MUST reply with an appropriate <response> element (Section 7.1.3.1).
[Note: is this really needed? there may be RFC4583 for that...]
7.1.3. Responses
All responses to the previously described requests are specified in a All responses to the previously described requests are specified in a
<response> element. This element may be contained in the body either <response> element. This element may be contained in the body either
of a REPORT framework message or in a 200 framework message. of a REPORT framework message or in a 200 framework message.
6.2.1. <response> 7.1.3.1. <response>
Reponses to requests are indicated by a <response> element. Reponses to requests are indicated by a <response> element.
The <response> element has the following attributes: The <response> element has the following attributes:
status: numeric code indicating the response status. This attribute status: numeric code indicating the response status. This attribute
is mandatory. is mandatory.
reason: string specifying a human readable description of the reason reason: string specifying a human readable description of the reason
for the response status. This attribute is optional. for the response status. This attribute is optional.
skipping to change at page 11, line 5 skipping to change at page 18, line 16
| code | description | | code | description |
+------+-------------+ +------+-------------+
| 200 | OK | | 200 | OK |
| 4xx | whatever | | 4xx | whatever |
+------+-------------+ +------+-------------+
Table 1: <response> Status codes Table 1: <response> Status codes
TBD. Add all error codes and their meanings TBD. Add all error codes and their meanings
6.3. Notifications 7.1.4. Notifications
In case the a controlling client is interested in receiving events In case the AS is interested in receiving events regarding a BFCP
regarding a BFCP conference, a notification mechanism is provided in conference, a notification mechanism is provided in the package. The
the package. The client requests subscription to such events by AS requests subscription to such events by adding a <subscribe> child
adding a <subscribe> child element to the <moderateconference> element to the <moderateconference> request, whereas the MS triggers
request, whereas the MS triggers the related events in subsequent the related events in subsequent REPORT messages. Event
REPORT messages. Event notifications are then delivered using the notifications are then delivered using the <event> element.
<event> element.
6.3.1. <subscribe> 7.1.4.1. <subscribe>
BFCP event notifications are defined when a controlling client BFCP event notifications are defined when an AS subscribes to
subscribes to notifications for BFCP-related events using the notifications for BFCP-related events using the <subscribe> element
<subscribe> element in a <moderateconference> request. in a <moderateconference> request.
The <subscribe> element has no attributes, but has the following The <subscribe> element has no attributes, but has the following
child elements defined: child elements defined:
<notify>: contains the following attributes: <notify>: contains the following attributes:
name a string indicating the name of the event to be notified. name: a string indicating the name of the event to be notified.
The attribute is mandatory. This attribute is mandatory.
Multiple <notify> elements may be specified. Multiple <notify> elements may be specified.
The MS would then use the <event> element to send notifications to The MS would then use the <event> element to send notifications to
the controlling client. the AS.
6.3.2. <event> 7.1.4.2. <event>
Delivery of events the AS subscribed for is accomplished by means of Delivery of events the AS subscribed for is accomplished by means of
an <event> element. an <event> element.
The <event> element has the following attributes: The <event> element has the following attributes:
name: string indicating the name of the BFCP event. This attribute name: string indicating the name of the BFCP event. This attribute
is mandatory. is mandatory.
bfcp-conf-id: string identifying the BFCP conference the event bfcp-conf-id: string identifying the BFCP conference the event
happened in. This attribute is mandatory. happened in. This attribute is mandatory.
Additionally, to provide the AS with details upon the event, the Additionally, to provide the AS with details upon the event, the
<event> element has the following child elements defined: <event> element has the following child elements defined:
TBD. Elaborate the notification mechanism. TBD. Elaborate the notification mechanism.
6.4. Floors Manipulation 7.2. Audit Elements
Floors are defined as tokens associated with a resource, or set of
resources, in order to moderate the access to their functionality by
users. This introduces the need for a mechanism in the package to
properly take care of this kind of association, especially when
dealing about resources directly manipulated by the Media Server
(e.g. andio and video).
Let's consider the following figure, which presents the view of an
audio conference with three participants, and the related media
labels associated with each participant's media stream:
MS
+---------------+
UAC A | | UAC B
o-----------+--x x--+-----------o
a1b2c3 | | d4e5f6
| |
| x |
| | |
+-------+-------+
|
| g7h8i9
|
o
UAC C
Figure 1: Audio Conference with labels
Even if each participant sees a different label for the stream he has
with the mixer, the floor associated with the only available resource
in the conference (audio) is the same. This means that the package
needs to have a way to address each resource in the conference
according to how it is defined in [13], e.g. "associate media 'audio'
with floor 11". Once a participant's media stream is attached to the
resource, the related label is consequently associated with the floor
as specified in [9]. Figure 2 depicts such the case where all the
participants have been attached to the mix.
MS
+---------------+
UAC A | | UAC B
o-----------+--+~~>[ ]<~~+--+-----------o
a1b2c3 | ^ | d4e5f6
(floor 11) | | | (floor 11)
| + |
| | |
+-------+-------+
|
| g7h8i9
| (floor 11)
o
UAC C
Figure 2: Audio Conference with labels and floors
The same approach can be considered when dealing with different
floors associated with one or more different resources, e.g.
conferences with an audio and a video stream, conferences with two
different audio streams, and so on. Each floor needs to be
unambiguously associated with a subset of the available resources
(e.g. floor 11 is audio1 and floor 22 is video, or floor 11 is audio1
while floor 22 is audio2, or floor 11 is audio1 AND audio2 AND
video2, and so on).
To achieve this, each floor, together with its configuration, is
defined in the package by the <floor> element.
6.4.1. <floor>
The <floor> element is used in the package to configure a floor in a
BFCP conference. It addresses all the relevant settings for a floor,
including the resource (or, again, set of resources) it must be
associated with, the maximum number of users that can be granted the
floor at the same time, the maximum number of requests the same
participant can place for this floor at the same time, and the
default policy the FCS considers for incoming requests about the
floor.
The <floor> element has the following attributes: 7.2.1. <audit>
bfcp-floor-id: string indicating the name of the BFCP floor. This TBD.
attribute is optional.
<media>: an element indicating the type of media associated with the 7.2.2. <auditresponse>
floor, i.e. the resource associated with the floor, as defined in
[13]. The string might be a comma-separated list in case the
floor is associated with more than one resource (e.g.
media="audio,video"). This element is mandatory.
<max-users>: an element indicating the maximum number of users that TBD.
can be granted this floor at the same time: this basically sets
the size of the granted floor queue. In case all the queue slots
have already been granted, subsequent requests are put on hold.
This element is optional: if missing, the default value (max-
users="1") is used.
<max-requests>: an element indicating the maximum number of requests 8. Examples
each user can place for the floor before being granted it. This
element is optional: if missing, the default value (max-
requests"="1) is used.
<policy>: an element indicating the default policy the FCS must take TBD.
whenever receiving requests for this floor and the chair is
missing. In fact, in case a chair is involved, the request is
forwarded to him, which then takes a decision about it. The
policy can be an 'autodeny' (deny all the requests for this
floor), 'autoaccept' (accept all the requests for this floor) or
'ignore' (ignore all the requests for this floor and put them on
ice, waiting for a chair to appear) policy. This element is
optional: if missing, the default value (policy="autoaccept") is
used.
The "bfcp-floor-id" attribute has different roles according to the 9. Formal Syntax
request the <floor> element is part of. The behaviour of the package
changes accordingly. Specifically:
<moderateconference|addfloor>: if the attribute is not specified, TBD.
the MS creates a unique name for the BFCP floor. The value is
used in subsequent references to the conference (e.g. as bfcp-
floor-id in a <modifyfloor>). The new value of this attribute
MUST be unique or else a 403 'Floor already exists' package level
error will be reported.
<modifyfloor>: if the attribute is not specified, the value of the 10. Security Considerations
attribute in the father element is used. If it is specified,
instead, it must not conflict with the value of the attribute in
the father element, otherwise it is an error.
TBD. Elaborate the floor mechanism. TBD.
7. Examples 11. IANA Considerations
TBD. TBD.
8. Formal Syntax 12. Change Summary
TBD. The following are the major changes between the -00 and the -01
versions of the draft:
9. Security Considerations o updated references (mixer draft);
TBD. o updated authors;
10. IANA Considerations o aligned syntax to the one used in msc-ivr and msc-mixer
(<mscbfcp>);
TBD. o added placeholders for event notifications and auditing;
11. Acknowledgements o added participant related methods, and moved floor related
discussions;
13. Acknowledgements
TBD. TBD.
12. References 14. References
[1] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax [RFC2234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", RFC 2234, November 1997. Specifications: ABNF", RFC 2234, November 1997.
[2] Bradner, S., "Key words for use in RFCs to Indicate Requirement [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[3] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an
Considerations Section in RFCs", BCP 26, RFC 2434, IANA Considerations Section in RFCs", BCP 26, RFC 2434,
October 1998. October 1998.
[4] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: A., Peterson, J., Sparks, R., Handley, M., and E.
Session Initiation Protocol", RFC 3261, June 2002. Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002.
[5] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
Session Description Protocol (SDP)", RFC 3264, June 2002. with Session Description Protocol (SDP)", RFC 3264,
June 2002.
[6] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. Camarillo, [RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G.
"Best Current Practices for Third Party Call Control (3pcc) in Camarillo, "Best Current Practices for Third Party Call
the Session Initiation Protocol (SIP)", BCP 85, RFC 3725, Control (3pcc) in the Session Initiation Protocol (SIP)",
April 2004. BCP 85, RFC 3725, April 2004.
[7] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
"RTP: A Transport Protocol for Real-Time Applications", STD 64, Jacobson, "RTP: A Transport Protocol for Real-Time
RFC 3550, July 2003. Applications", STD 64, RFC 3550, July 2003.
[8] Camarillo, G., Ott, J., and K. Drage, "The Binary Floor Control [RFC4582] Camarillo, G., Ott, J., and K. Drage, "The Binary Floor
Protocol (BFCP)", RFC 4582, November 2006. Control Protocol (BFCP)", RFC 4582, November 2006.
[9] Camarillo, G., "Session Description Protocol (SDP) Format for [RFC4583] Camarillo, G., "Session Description Protocol (SDP) Format
Binary Floor Control Protocol (BFCP) Streams", RFC 4583, for Binary Floor Control Protocol (BFCP) Streams",
November 2006. RFC 4583, November 2006.
[10] Levin, O. and G. Camarillo, "The Session Description Protocol [RFC4574] Levin, O. and G. Camarillo, "The Session Description
(SDP) Label Attribute", RFC 4574, August 2006. Protocol (SDP) Label Attribute", RFC 4574, August 2006.
[11] Boulton, C., "A Control Framework for the Session Initiation [I-D.ietf-mediactrl-sip-control-framework]
Protocol (SIP)", draft-ietf-mediactrl-sip-control-framework-00 Boulton, C., Melanchuk, T., and S. McGlashan, "Media
(work in progress), September 2007. Control Channel Framework",
draft-ietf-mediactrl-sip-control-framework-02 (work in
progress), April 2008.
[12] Boulton, C., Melanchuk, T., and S. McGlashan, "A Basic [I-D.ietf-mediactrl-ivr-control-package]
Interactive Voice Response (IVR) Control Package for the McGlashan, S., Melanchuk, T., and C. Boulton, "An
Session Initiation Protocol (SIP)", Interactive Voice Response (IVR) Control Package for the
draft-boulton-ivr-control-package-05 (work in progress), Media Control Channel Framework",
November 2007. draft-ietf-mediactrl-ivr-control-package-00 (work in
progress), June 2008.
[13] Boulton, C., Melanchuk, T., McGlashan, S., and A. Shiratzky, "A [I-D.ietf-mediactrl-mixer-control-package]
Conference Control Package for the Session Initiation Protocol Melanchuk, T., McGlashan, S., and C. Boulton, "A Mixer
(SIP)", draft-boulton-conference-control-package-03 (work in Control Package for the Media Control Channel Framework",
progress), November 2007. draft-ietf-mediactrl-mixer-control-package-00 (work in
progress), July 2008.
[14] Boulton, C., Melanchuk, T., McGlashan, S., and A. Shiratzky, "A [I-D.boulton-ivr-vxml-control-package]
VoiceXML Interactive Voice Response (IVR) Control Package for Boulton, C., Melanchuk, T., and S. McGlashan, "A VoiceXML
the Session Initiation Protocol (SIP)", Control Package for the Media Control Channel Framework",
draft-boulton-ivr-vxml-control-package-03 (work in progress), draft-boulton-ivr-vxml-control-package-04 (work in
November 2007. progress), February 2008.
Authors' Addresses Authors' Addresses
Lorenzo Miniero Lorenzo Miniero
University of Napoli University of Napoli
Via Claudio 21 Via Claudio 21
Napoli 80125 Napoli 80125
Italy Italy
Email: lorenzo.miniero@unina.it Email: lorenzo.miniero@unina.it
Alessandro Amirante Simon Pietro Romano
University of Napoli University of Napoli
Via Claudio 21 Via Claudio 21
Napoli 80125 Napoli 80125
Italy Italy
Email: alessandro.amirante@unina.it Email: spromano@unina.it
Tobia Castaldi Roni Even
University of Napoli Polycom
Via Claudio 21 94 Derech Em Hamoshavot
Napoli 80125 Petach Tikva 49130
Italy Israel
Email: tobia.castaldi@unina.it Email: roni.even@polycom.co.il
Simon Pietro Romano Scott McGlashan
University of Napoli Hewlett-Packard
Via Claudio 21 Gustav III:s boulevard 36
Napoli 80125 Stockholm SE-16985
Italy Sweden
Email: spromano@unina.it Email: scott.mcglashan@hp.com
Full Copyright Statement Full Copyright Statement
Copyright (C) The IETF Trust (2008). Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors contained in BCP 78, and except as set forth therein, the authors
retain all their rights. retain all their rights.
This document and the information contained herein are provided on an This document and the information contained herein are provided on an
skipping to change at page 18, line 44 skipping to change at line 1010
attempt made to obtain a general license or permission for the use of attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr. http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at this standard. Please address the information to the IETF at
ietf-ipr@ietf.org. ietf-ipr@ietf.org.
Acknowledgment
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
 End of changes. 109 change blocks. 
382 lines changed or deleted 607 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/