Transport Area                                            P. Koskelainen
Internet-Draft                                                     Nokia
Expires: January 17, April 23, 2005                                           J. Ott
                                                          Uni Bremen TZI
                                                          H. Schulzrinne
                                                                   X. Wu
                                                     Columbia University
                                                           July 19,
                                                        October 23, 2004

                Requirements for Floor Control Protocol

Status of this Memo

   This document is an Internet-Draft and is subject to all provisions
   of section 3 of RFC 3667.  By submitting this Internet-Draft, each
   author represents that any applicable patent or other IPR claims of
   which he or she is aware have been or will be disclosed, and any of
   which he or she become aware will be disclosed, in accordance with
   RFC 3668.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as

   Internet-Drafts 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://

   The list of Internet-Draft Shadow Directories can be accessed at

   This Internet-Draft will expire on January 17, April 23, 2005.

Copyright Notice

   Copyright (C) The Internet Society (2004).  All Rights Reserved.


   Floor control is a means to manage joint or exclusive access to
   shared resource in a (multiparty) conferencing environment.  Thereby,
   floor control complements other functions -- such as conference and
   media session setup, conference policy manipulation, and media
   control -- that are realized by other protocols.  This document
   defines the requirements for a floor control protocol for multiparty
   conferences in the context of an existing framework.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Conventions Used in This Document  . . . . . . . . . . . . . .  4
   3.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  5
   4.  Model  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6
   5.  Integration with Conferencing  . . . . . . . . . . . . . . . .  7
   6.  Assumptions about a Conference Policy  . . . . . . . . . . . .  8
   7.  Floor Control Protocol Requirements  . . . . . . . . . . . . . 10
     7.1   Communication between Participant and Server . . . . . . . 10
     7.2   Communicaton between Chair and Server  . . . . . . . . . . 11
     7.3   General Protocol Requirements  . . . . . . . . . . . . . . 12
   8.  Open Issue . . .  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13
   9.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 14
   10.  References . . . . . . . . . . . . . . . . . . . . . . . . . 15
   10.1 . 14
   9.1   Normative References . . . . . . . . . . . . . . . . . . . . 15
   10.2 14
   9.2   Informative References . . . . . . . . . . . . . . . . . . . 15 14
       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 16 15
       Intellectual Property and Copyright Statements . . . . . . . . 17 16

1.  Introduction

   Conference applications often have shared resources such as the right
   to talk, input access to a limited-bandwidth video channel, or a
   pointer or input focus in a shared application.

   In many cases, it is desirable to be able to control who can provide
   input (send/write/control, depending on the application) to the
   shared resource.

   Floor control enables applications or users to gain safe and mutually
   exclusive or non-exclusive input access to the shared object or
   resource.  The floor is an individual temporary access or
   manipulation permission for a specific shared resource (or group of
   resources) [8]. [7].

   Floor control is an optional feature for conferencing applications.
   SIP [2] conferencing applications may also decide not to support this
   feature at all.  Two-party applications may use floor control outside
   conferencing, although the usefulness of this kind of scenario is
   limited.  Floor control may be used together with conference policy
   control protocol (CPCP) [9], [8], or it may be used as independent
   standalone protocol, e.g.  with SIP but without CPCP.

   Floor control has been studied extensively over the years, (e.g.
   [10], [8], [7])
   [9], [7], [6]) therefore earlier work can be leveraged here.

   The present document describes the requirements for a floor control
   protocol.  As a requirements specification, the document makes no
   assumptions about the later implementation of the respective
   requirements as parts of one or more protocols and about the entities
   implementing it/them and their roles.

   This document may be used in conjunction with other documents, such
   as the Conferencing framework document [3].  In particular, when
   speaking about a floor control server, this entity may be identical
   to or co-located with the focus or a conference policy server defined
   in the framework document, while participants and floor chairs
   referred to in this specificiation may be regular participants as
   introduced in the conferencing framework document.  The term "floor
   control protocol" is used in an abstract sense in this specification
   and may ultimately be mapped to any of the existing conference
   control or other signaling protocols (including CPCP and SIP).  But
   defining those relationships is left to a concrete floor control
   protocol specification.

2.  Conventions Used in This Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   document are to be interpreted as described in RFC 2119.

3.  Terminology

   This document uses the definitions from [3].

   The following additional definitions apply:

   Floor: A permission to temporarily access or manipulate a specific
   shared resource or set of resources.

   Conference owner: A privileged user who controls the conference,
   creates floors and assigns and deassigns floor chairs.  The
   conference owner does not have to be a member in a conference.

   Floor chair: A user (or an entity) who manages one floor (grants,
   denies or revokes a floor).  The floor chair does not have to be a
   member in a conference.

   Floor control: A mechanism that enables applications or users to gain
   safe and mutually exclusive or non-exclusive input access to the
   shared object or resource.

   Floor control server: A logical entity that maintains the state of
   the floor(s) including which floors exists, who the floor chairs are,
   who holds a floor, etc.  Requests to manipulate a floor are directed
   at the floor control server.

   Floor request set: A logical data structure holding all requests for
   a particular floor at a given point in time.

   Floor holder set: A logical data structure identifying all
   participants who currently hold the floor.

4.  Model

   The model for floor control comprises three logical entities: a
   single floor control server, one or more floor chairs (moderators),
   and any number of regular conference participants.

   A floor control protocol is used to convey the floor control messages
   among the floor chairs (moderators) of the conference, the floor
   control server, and the participants of the conference.  A
   centralized architecture is assumed in which all messages go via one
   point, the floor control server.  Processing (granting or rejecting)
   floor control requests is done by the one or more floor chairs or by
   the server itself, depending on the policy.

   Floor requests from the participants are received by the floor
   control server and kept in an -- at the level of the floor control
   protocol -- floor request set (i.e.  are not ordered in any
   particular fashion).  The current floor holders are reflected in a
   current floor holder set.  Floor chairs are capable of manipulating
   both sets to e.g.  grant, revoke, reject, and pass the floor.

   The order in which requests are processed, whether they are granted
   or rejected, how many participants obtain a floor simultaneously, is
   determined by a higher layer application operating on these sets and
   is not confined by the floor control protocol.

   A floor is associated with one or more media sessions.  The
   centralized conference server manages the floors and thus controls
   access to the media sessions.  There are two aspects to this: 1) The
   server maintains and distributes consistent state information about
   who has a certain floor at a certain point in time and does so
   following some rule set.  This provides all participants with the
   necessary information about who is allowed to e.g.  speak, but relies
   on a cooperative behavior among all participants.  2) In addition, to
   prevent individuals from ignoring the "hints" given by the floor
   control server, the latter may -- e.g.  in cooperation with other
   functional entities -- enforce compliance with floor status, e.g.  by
   blocking media streams from participants not entitled to speak.  The
   floor control server controls the floors at least at the signaling
   level (1); actively controlling also the actual (physical) media
   resources (2) is highly recommended, but beyond the scope of this

   As noted in the introduction, an actual protocol specification
   fulfilling the requirements defined in this memo may map the
   components of the above model onto the conferencing components
   defined in the conferencing framework document.  Some of these
   aspects are discussed briefly in the next subsection.

5.  Integration with Conferencing

   Floor control itself does not support privileges such as creating
   floors and appointing floor chairs, handing over chair privileges to
   other users (or taking them away).  Instead, some external mechanism,
   such as conference management (e.g.  CPCP or web interface for policy
   manipulation) is used for that.

   The conference policy (and thus the conference owner or creator)
   defines whether floor control is in use or not.  Actually enforcing
   conference media distribution in line with the respective media's
   floor status (e.g.  controlling an audio bridge) is beyond the scope
   of this document.  Floor control itself does not define media
   enforcement.  It is up to the conference and media policies to define
   which media streams may be used in a conference and which ones are
   floor controlled.

   Typically, the conference owner creates the floor(s) using conference
   policy control protocol (or some other mechanism) and appoints the
   floor chair.  The conference owner can remove the floor anytime (so
   that a media session is not floor-controlled anymore) or change floor
   chair or floor parameters.

   The floor chair just controls the access to the floor(s), according
   to the conference policy.

   A floor control server is a separate logical entity, typically
   co-located with focus and/or conference policy server.  Therefore,
   the floor control server can interact with focus, conference Policy
   Server and media servers as needed.  Communication mechanisms between
   floor control server and other central conferencing entities are not
   within the scope of the floor control protocol requirements described
   in this document.

   Conferences may be cascaded and hence a single participant in one
   conference representing a second conference (called subconference).
   From a floor control perspective there is no difference between a
   participant (identified by its URI) representing a single person or
   another (set of) subconference(s).

   Note: In the latter case, it is the responsibility of the
   subconference to internally negotiate floor requests before passing
   on a request to the conference and to internally assign a floor upon
   receiving a floor grant.  This may be done recursively by employing
   the floor control protocol with a different floor control server in
   the subconference.

6.  Assumptions about a Conference Policy

   The floor control protocol is supposed to be used to manage access to
   shared resources in the context of a conference.  It is up to this
   conference -- more precisely: its conference policy [4] -- to define
   the rules for the operation of the floor control protocol.
   Furthermore, a conference policy control protocol [4] may define
   mechanisms to alter those rules during the course of a conference.
   This section briefly outlines the assumptions made by a floor control
   protocol about the conference policy and means for its modification.

   The conference policy is expected to define the rules for floor
   control -- which particularly implies that it is not the
   responsibility of the floor control protocol to establish or
   communicate those rules.

   In general, it is assumed that the conference policy also defines who
   is allowed to create, change and remove a floor in a conference.

   Conference participants and floor chairs should be able to get and
   set floor-related parameters.  The conference policy may restrict who
   may access or alter which parameters.  Note that not all parameters
   maintained for a floor are also interpreted by the floor control
   protocol (e.g.  floor policy descriptions may be stored associated
   with a floor but may be interpreted by a higher layer application).
   Note also that changes to the floor control policy outside the scope
   of the floor control protocol and e.g.  to be carried out by a
   conference policy control protocol.

   (For example, it may be useful to see who the floor chair is, what
   kind of policy is in use, time limits, number of simultanous floor
   holders and current floor holder.)

   These following requirements on a conference policy related to floor
   control are identified in [4]:

   REQ-F1: It MUST be possible to define whether floor control is in use
   or not.

   REQ-F2: It MUST be possible to define the algorithm to be used in
   granting the floor.  (Note: Example algorithms might be e.g.
   moderator-controlled, FCFS, random.)

   Note: it must be possible to use an automated floor policy where the
   floor control server decides autonomously about granting, and
   rejecting floor requests as well as revoking the floor.  It must also
   be possible to use a chair-controlled floor policy in which the floor
   control server notifies the floor chair and waits for the chair to
   make a decision.  This enables the chair to fully control who has the
   floor.  The server MAY forward all requests immediately to the floor
   chair, or it may do filtering and send only occasional notifications
   to the chair.

   REQ-F3: It MUST be possible to define how many users can have the
   floor at the same time.

   REQ-F4: It MUST be possible to have one floor for one or more media

   REQ-F5: It MUST be possible to have multiple floors in a conference.

   REQ-F6: It MUST be possible to define whether a floor is
   moderator-controlled or not.

   REQ-F7: If the floor is moderator-controlled, it MUST be possible to
   assign and replace the floor moderator.

7.  Floor Control Protocol Requirements

   This section covers the requirements on a floor control protocol.
   The requirements are grouped as follows: 1) floor control protocol
   between participant and server; 2) floor control protocol between
   floor chairs and server; 3) floor control server management, and 4)
   general protocol requirements.

7.1  Communication between Participant and Server

   REQ-PS-1: Participants MUST be able to request (claim) a floor.

   REQ-PS-2: It SHOULD be possible for a participant requesting a floor
   to give additional information about the request, such as the topic
   of the question for an audio floor.  Note: In some scenarios, the
   floor control server or the floor chair may use this information when
   granting the floor to the user, or when making manipulation to the
   floor sets at the server.

   REQ-PS-3: It MUST be possible for a participant to modify (e.g.
   cancel) a previously placed floor request.

   REQ-PS-4: It SHOULD be possible for a participant to initiate a floor
   control operation (e.g.  floor request, release) on behalf of another
   participant (third-party floor control) provided that he is
   authorized to do so.

   REQ-PS-5: A participant MUST be informed that she has been granted
   the floor.

   REQ-PS-6: A participant MUST be informed that his floor request has
   been rejected.

   REQ-PS-7: A participant MUST be informed that the floor was revoked
   from her.

   REQ-PS-8: A participant SHOULD be informed that her floor request is
   pending and will be processed later.

   REQ-PS-9: A floor holder MUST be able to release a floor.

   REQ-PS-10: It MUST be possible to notify conference participants
   (changes to) the floor holder(s)

   REQ-PS-11: It MUST be possible to notify conference participants when
   a new floor request is being made.

   RRQ-PS-12: It MUST be possible for a floor requester to request
   privacy for claiming the floor.

   anonymous: the participants (including the floor chair) cannot see
   the floor requester's identity.  The floor chairs grant the floor
   based on the claim id and the topic of the claim.

   known to the floor chair: only the floor chair is able to see the
   floor requester's identity; all other participants do not obtain this

   public: all the participants can see the floor requester's identity.

   REQ-PS-13: It MUST be possible for a participant to request privacy
   for holding the floor along with a floor request.  Note that identity
   information about the particpant may become available to others
   through different means (e.g.  application/media protocols or the
   mmedia itself such as the voice).

7.2  Communicaton between Chair and Server

   REQ-CS-1: It MUST be possible to inform the floor chairs, if present,
   about a participant's floor request.

   It SHOULD be possible to convey additional information the
   participant may have provided along with her request.

   It MUST be possible to hide the requesting participant's identity
   from the chair, i.e.  not include this identity information in the
   floor request.

   REQ-CS-2: It MUST be possible to grant a floor to a participant.

   REQ-CS-3: It MUST be possible to reject a participant's floor

   REQ-CS-4: The floor chair MUST be able to revoke a floor from (one
   of) its current holder(s).  Note that the floor chair may also remove
   pending floor requests from the request set (by rejecting them).

   REQ-CS-5: It MUST be possible to notify floor chairs about changes to
   the floor holder(s)

   REQ-CS-6: There SHOULD be operations to manipulate the request set
   available for floor chair(s).  Such request set SHOULD at least
   include creating, maintaining, and re-ordering floor requests a queue
   and clearing the floor control queue.

   RRQ-CS-7: It MUST be possible to hide the identity of a floor chair
   from a subset or all participants of a conference.

   REQ-CS-8: It MUST be possible for a newly assigned floor chair to
   learn about (e.g.  inquire) the existing floor request set.

7.3  General Protocol Requirements

   REQ-GEN-1: Bandwidth and terminal limitations SHOULD be taken into
   account in order to ensure that floor control can be efficiently used
   in mobile environments.

   It should be noted that efficient communication by means of minimal
   sized messages may contradict the desire to express reasons for
   requesting a floor along with other information.  Therefore, a floor
   control protocol SHOULD be designed in a way that it allow for
   expressive as well as minimal messaging, as (negotiable)
   configuration option and/or selectable on a per-message basis.

   REQ-GEN-2: The floor control MUST be a reliable client-server
   protocol.  Hence, it MUST provide a positive response indicating that
   a request has been received or an error response if an error has

   REQ-GEN-3: It MUST be possible for the floor control server to
   authenticate participants and chairs.

   REQ-GEN-4: It MUST be possible for the participants and chairs to
   authenticate the server.

   REQ-GEN-5: It MUST be possible to ensure message integrity between
   participants and chairs and the floor control server.

   REQ-GEN-6: It MUST be possible to ensure privacy of messages
   exchanged between participants and chairs and the floor control

8.  Open Issue

   Conferences can be cascaded, such that a participant of the
   conference can be a conference in its own right.  What implications
   (if any) does this have on floor control and the requirements on a
   floor control protocol?

9.  Acknowledgements

   The authors would like to thank IETF conferencing design team and
   Keith Drage, Marcus Brunner, Sanjoy Sen, Eric Burger, Brian Rosen,
   and Nermeen Ismail for their feedback.


9.  References


9.1  Normative References

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

   [2]  Rosenberg et al., J., "SIP: Session Initiation Protocol", RFC
        3261, June 2002.

   [3]  Rosenberg, J., "A Framework for Conferencing with the Session
        Initiation Protocol",
        draft-ietf-sipping-conferencing-framework-02.txt (work in
        progress), June 2004.


9.2  Informative References

   [4]  Koskelainen, P. and H. Khartabil, "Additional Requirements to
        Conferencing", January August 2004.

   [5]  Wu, X., Schulzrinne, H. and P. Koskelainen, "Use of SIP and SOAP
        for conference floor control", January 2003.

   [6]   Camarillo, G., Ott, J. and K. Drage, "", June 2004.

   [7]  Koskelainen, P., Schulzrinne, H. and X. Wu, "A sip-based
        conference control framework", Nossdav'2002 Miami Beach, May


   [7]  Dommel, H. and J. Garcia-Luna-Aceves, "Floor control for
        activity coordination in networked multimedia applications",
        Proc. of 2nd Asian-pacific Conference on Communications APPC,
        Osaka Japan, June 1995.


   [8]  Koskelainen, P. and H. P., Khartabil, "An Extensible Markup
         Language (XML) Configuration Access Protocol (XCAP)  Usage for H. and A. Niemi, "The Conference
        Policy Manipulation",
         draft-koskelainen-xcon-xcap-cpcp-usage-02.txt Control Protocol (CPCP)", draft-ietf-xcon-cpcp-01.txt
        (work in progress), February October 2004.


   [9]  Borman, C., Kutscher, D., Ott, J. and D. Trossen, "Simple
        conference control protocol service specification",
        draft-ietf-mmusic-sccp-00.txt (work in progress), March 2001.

Authors' Addresses

   Petri Koskelainen
   P.O. Box 100 (Visiokatu 1)
   Tampere  FIN-33721
   5 Wayside Road
   Burlington  01803


   Joerg Ott
   Uni Bremen TZI
   Bibliothekstr. 1
   Bremen  D-28359


   Henning Schulzrinne
   Columbia University
   1214 Amsterdam Avenue
   New York  10027


   Xiaotao Wu
   Columbia University
   1214 Amsterdam Avenue
   New York  10027


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at

   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

Disclaimer of Validity

   This document and the information contained herein are provided on an

Copyright Statement

   Copyright (C) The Internet Society (2004).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


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