XCON Working Group                                            C. Boulton
Internet-Draft                             Ubiquity Software Corporation
Expires: October 15, 2005 April 26, 2006                                       U. Chandra
                                                   Nokia Research Center
                                                          April 13,
                                                        October 23, 2005

                    Media Policy Templates for XCON
                  draft-boulton-xcon-media-template-01
                  draft-boulton-xcon-media-template-02

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 October 15, 2005. April 26, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   Media Policy control is

   The xcon framework[1] specifies the mechanism by object model for centralized
   conferencing.  The Conference Object, which participants is defined in the
   framework data model, comprises of a
   conference manipulates two distinct components - the media in
   Common Conference Information and Conference Templates.  This memo
   specifies the conference. Conference Templates that describe various common
   conference scenarios.  The templates define controls
   provided to conference (and media
   properties like type of media supported, what streams are supported
   etc) through which participants to of the conference can manipulate the
   media enhances
   participants experience in they receive from the conference. conference server.  This document
   provides a minimum set of media policy templates that can be instantiated
   during conference creation and manipulated during the life cycle of a
   conference instance.  The templates define conference properties like
   what streams are supported, what controls are available etc.

   This draft is currently under major revision and should be considered
   a work in progress as it aligns with current technical direction of
   the Working Group.  A revision of this draft will be submitted very
   soon.

   This work is being discussed on the xcon@ietf.org mailing list.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . .   4
   2.   Guidelines for writers of Media Policy Templates . . . . . .   4
   3.   Templates  . . . . . . . . . . . . . . . . . . . . . . . . .  4
     3.1  Basic-Audio Template . . . . . . . . . . . . . . . . . . .   4
       3.1.1  Description  . . . . .
   2.  XML Conventions and Practices  . . . . . . . . . . . . . . . .  4
       3.1.2  Roles  . . . . . . . . . . . . .
   3.  Guidelines for writers of Media Policy Templates . . . . . . .  5
   4.  Templates  . . . .   4
       3.1.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  5
       3.1.4  Controls . . . .
     4.1.  Basic-Audio Template . . . . . . . . . . . . . . . . . . .  5
       3.1.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .   7
       3.1.6  XML Definition . . . . .
       4.1.1.  Description  . . . . . . . . . . . . . . .   8
       3.1.7  XML Schema Definition . . . . . .  5
       4.1.2.  Roles  . . . . . . . . . .   9
     3.2  Advanced Audio Template . . . . . . . . . . . . . .  5
       4.1.3.  Parameters . . .  12
       3.2.1  Description . . . . . . . . . . . . . . . . . . .  6
       4.1.4.  Controls . .  12
       3.2.2  Roles . . . . . . . . . . . . . . . . . . . . .  6
       4.1.5.  Control Arrays . . .  12
       3.2.3  Parameters . . . . . . . . . . . . . . . . .  7
       4.1.6.  Streams  . . . . .  12
       3.2.4  Controls . . . . . . . . . . . . . . . . . .  8
       4.1.7.  Blueprint - XML example  . . . . .  13
       3.2.5  Streams . . . . . . . . . .  9
       4.1.8.  XML Schema Definition  . . . . . . . . . . . . .  15
       3.2.6  XML Definition . . . 11
     4.2.  Advanced Audio Template  . . . . . . . . . . . . . . . . .  16
     3.3 14
     4.3.  Basic-Video Template . . . . . . . . . . . . . . . . . . .  18
       3.3.1 14
       4.3.1.  Description  . . . . . . . . . . . . . . . . . . . . .  18
       3.3.2 14
       4.3.2.  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  18
       3.3.3 14
       4.3.3.  Parameters . . . . . . . . . . . . . . . . . . . . . .  18
       3.3.4 15
       4.3.4.  Controls . . . . . . . . . . . . . . . . . . . . . . .  19
       3.3.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  20
       3.3.6  XML Definition . . . . . . . . . . . . . . . . . . . .  22
     3.4  Advanced Video Template  . . . . . . . . . . . . . . . . .  23
       3.4.1  Description  . . . . . . . . . . . . . . . . . . . . .  23
       3.4.2  Roles  . . . . . . . . . . . . . . . . . . . . . 15
       4.3.5.  Control Array  . . .  23
       3.4.3  Parameters . . . . . . . . . . . . . . . . . 16
       4.3.6.  Streams  . . . . .  23
       3.4.4  Controls . . . . . . . . . . . . . . . . . . 16
       4.3.7.  Blueprint - XML Example  . . . . .  24
       3.4.5  Streams . . . . . . . . . . 17
       4.3.8.  XML Schema Definition  . . . . . . . . . . . . .  25
       3.4.6  XML Definition . . . 19
     4.4.  Advanced Video Template  . . . . . . . . . . . . . . . . .  27
     3.5 22
     4.5.  Basic Text Template  . . . . . . . . . . . . . . . . . . .  28
       3.5.1 22
       4.5.1.  Description  . . . . . . . . . . . . . . . . . . . . .  28
       3.5.2 22
       4.5.2.  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  28
       3.5.3 22
       4.5.3.  Parameters . . . . . . . . . . . . . . . . . . . . . .  29
       3.5.4 23
       4.5.4.  Controls . . . . . . . . . . . . . . . . . . . . . . .  29
       3.5.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  30
       3.5.6  XML Definition . . . . . . . . . . . . . . . . . . . .  32
     3.6  Advanced Text Template . . . . . . . . . . . . . . . . . .  33
       3.6.1  Description  . . . . . . . . . . . . . . . . . . . . .  33
       3.6.2  Roles  . . . . . . . . . . . . . . . . . . 23
       4.5.5.  Control Array  . . . . . .  33
       3.6.3  Parameters . . . . . . . . . . . . . . . 23
       4.5.6.  Streams  . . . . . . .  33
       3.6.4  Controls . . . . . . . . . . . . . . . . 23
       4.5.7.  Blueprint - XML Example  . . . . . . .  33
       3.6.5  Streams . . . . . . . . 25
       4.5.8.  XML Schema Definition  . . . . . . . . . . . . . . .  33
       3.6.6  XML Definition . . 26
     4.6.  Advanced Text Template . . . . . . . . . . . . . . . . . .  33
     3.7 29
     4.7.  Basic Audio-Video Template . . . . . . . . . . . . . . . . . . .  33
       3.7.1 29
       4.7.1.  Description  . . . . . . . . . . . . . . . . . . . . .  33
       3.7.2 29
       4.7.2.  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  33
       3.7.3 29
       4.7.3.  Parameters . . . . . . . . . . . . . . . . . . . . . .  33
       3.7.4 30
       4.7.4.  Controls . . . . . . . . . . . . . . . . . . . . . . .  33
       3.7.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  33
       3.7.6  XML Definition . . . . . . . . . . . . . . . . . . . .  33
     3.8  audio-text Template  . . . . . . . . . . . . . . . . . . .  36
       3.8.1  Description  . . . . . . . . . . . . . . . . . . . . .  36
       3.8.2  Roles  . . . . . . . . . . . . . . . . . . . 30
       4.7.5.  Control Array  . . . . .  37
       3.8.3  Parameters . . . . . . . . . . . . . . . 30
       4.7.6.  Streams  . . . . . . .  37
       3.8.4  Controls . . . . . . . . . . . . . . . . 30
       4.7.7.  Blueprint - XML Example  . . . . . . .  37
       3.8.5  Streams . . . . . . . . 31
       4.7.8.  XML Schema Definition  . . . . . . . . . . . . . . .  37
       3.8.6  XML Definition . 33
     4.8.  Audio-text Template  . . . . . . . . . . . . . . . . . . . 37
     3.9
     4.9.  Basic Multimedia Template  . . . . . . . . . . . . . . . .  40
       3.9.1  Description  . . . . . . . . . . . . . . . . . . . . .  40
       3.9.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  40
       3.9.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  40
       3.9.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  40
       3.9.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  40
       3.9.6  XML Definition . . . . . . . . . . . . . . . . . . . .  40
     3.10 37
     4.10. Advanced Multimedia Template . . . . . . . . . . . . . .  40
       3.10.1   Description  . . . . . . . . . . . . . . . . . . . .  40
       3.10.2   Roles  . . . . . . . . . . . . . . . . . . . . . . .  41
       3.10.3   Parameters . . . . . . . . . . . . . . . . . . . . .  41
       3.10.4   Controls . . . . . . . . . . . . . . . . . . . . . .  41
       3.10.5   Streams  . . . . . . . . . . . . . . . . . . . . . .  41
       3.10.6   XML Definition . . . . . . . . . . . . . . . . . . .  41
   4. 37
   5.  Security Considerations  . . . . . . . . . . . . . . . . . .  41
   5. . 37
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . .  41
   6. . 37
   7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . .  41
   7. . 37
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . .  41
     7.1 . 37
     8.1.  Normative References . . . . . . . . . . . . . . . . . . .  41
     7.2 37
     8.2.  Informative References . . . . . . . . . . . . . . . . . .  41 38
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . .  41 . . . 39
   Intellectual Property and Copyright Statements . . . . . . .  43 . . . 40

1.  Introduction

   The XCON architecture defined in [1] is built around a fundamental
   concept of Conference Object.  A Conference Object is a logical
   representation of a conference instance.  For conference creation, a
   conference object provides a "blueprint" representing the system
   capabilities which consists of a Common Conference Information part
   [4] and a Conference Template (as defined in this document).  A
   conference object also provides the logical representation of a
   conference during each of the various stages of a conference (e.g.
   reservation, active, completed etc).

   [Editors Note: Need explicit reference relating to where the CCI is
   derived from.]

   The mechanism described in the 'Media Conference Server Control[1] Control[2]'
   draft defines a protocol between the centralized conference server Centralized Conference System
   and conference participants. individual Conference Participants.  The mechanism details the
   construction of media templates that provide a wide range of
   functionality to a client for the purpose of manipulating a media
   profile.  The templates are constructed using an XML rule set
   described in [1]. [2].

   This document supplies a a set of core media templates that should be
   used in conjunction with [1]. [2].  The templates specified SHOULD be
   supported at a minimum. minimum but MAY NOT be supported if a core related
   feature is not available on the Conference System.

   The editors of this document would like to point out that this
   document is currently 'Work In Progress' and fully identify that more
   work is required on the text and XML for the next revision.  In the
   current draft revision we have defined only four templates - basic
   audio, basic video, basic audio & video and basic-text.  The
   document has been released intent
   of defining these templates is to gain get a complete picture of
   conference object which comprises of the common conference
   information which is defined in [4] and the conference template.  The
   idea is to get early feedback. feedback from the working group regarding
   templates which would help in defining the more complex templates for
   different conference scenarios in the next revision.

2.  XML Conventions and Practices

   It is intended that future iterations of this document will provide
   an individual namespace for each template schema definition.  The
   schema will then be registered in an appropriate IANA registry.  In
   the future, when new templates are constructed, they can also be
   registered.

   It is also intended that common components of this draft will be
   removed and incorporated in a separate namespace.  Templates will
   then import the common components and use appropriately.  This will
   save on repetition of common elements that appear in multiple media
   templates.  This section will be expanded to include all the relevant
   details of these changes.

3.  Guidelines for writers of Media Policy Templates

   [Editors Note: TODO]

3.

4.  Templates

3.1

4.1.  Basic-Audio Template

3.1.1

4.1.1.  Description

   The Basic-Audio template can be used to achieve the simplest form of
   audio interaction between multiple voice input streams from
   participating entities.  The output stream consists mix of all the
   participants audio excluding the input stream of the receiving
   entity.  If a participant needs to talk in the conference, it first
   needs to get a floor from the moderator of the conference.

3.1.2  The floor
   control can be enabled or disabled by the moderator during the
   conference creation stage.  When the floor control is not enabled
   then any participant can speak in the conference at any time.  In
   this conference very basic controls like muting the output stream,
   changing the volume of the output stream are provided to end
   participants.  If more advanced control (or user defined control) are
   required, it is recommended to use the advance-audio template.

4.1.2.  Roles

   Participant:

   Roles define different privileges that are available to the
   conference participants.  In [3] different types of roles that the
   participants can assume in a conference are defined.  For the basic
   audio template, there can be only two types of roles - participants
   and moderator.

   Issue : Do we limit that there can be only two types of participants
   or we remove this restriction and let the conference creator to
   define as many roles as possible and name them as they wish.

4.1.2.1.  Participant

   The basic audio template specifies the role of 'Participant' to
   signify an entry level user with no privileges by default.  The
   participant role could obtain access to all controls available for
   this template if set accordingly by a privileged user.
   Access to  This is
   achieved during the blueprint creation phase by setting the enable
   attribute of the controls available to a participant can be controlled
   using floor control, as defined in [ref control draft].

   Moderator: element to TRUE.

4.1.2.2.  Moderator

   The basic audio template specifies the role of 'Moderator' to signify
   a user with advanced privileges by default.  The 'Moderator' role for
   this template has the same controls as a 'Participant' with an
   additional control for muting any participant in a conference
   instance.  Another  The primary difference being that the default value for
   the 'enable' attribute on the 'mute' control on an output media
   stream is set to 'true'.  See the individual control definitions for
   the impact of attribute settings.

3.1.3

4.1.3.  Parameters

   max-particpants:

4.1.3.1.  max-participants

   The 'max-particpants' parameter specifies the maximum number of
   participants (Entity with signaling connection to the focus) that are
   permitted to be involved in an instantiated instance of the template
   (or sub-element, depending on where specified) for the specified
   role.  The example Blue-Print provides a minimum value permitted is of
   "1" and the maximum value permitted is "128".

   max-audio-streams:

4.1.3.2.  max-audio-streams

   The 'max-audio-streams' parameter specifies the maximum number of
   audio media streams that are permitted to be involved in an
   instantiated instance of the template for the specified role.  The
   example Blue-Print provides a minimum value permitted is of "1" and the
   maximum value permitted is "128".

3.1.4

4.1.4.  Controls

3.1.4.1

   In the basic-audio template, only two types of controls are defined -
   mute and gain.  It is expected that for most of the basic audio
   conferencing, these two controls are sufficient.  If the conference
   server wants to support more advanced control, then it is recommended
   that advance-audio template to be used.  In those templates the
   schema for controls is extensible, hence new control types can be
   added.

   Issue : For the basic audio template, we are restricting the type of
   the control to boolean and real (for mute and gain control).  The
   motivation for that was you cannot define new control types in the
   basic-audio template.  Should we keep the restriction or let the
   capability to define new control in a basic-audio template.

4.1.4.1.  mute

   The 'mute' control is used in conjunction with a media stream to
   cease transmission of associated media.  It has a 'Boolean' value.
   The 'mute' control can exist in two forms, depending on if the
   control appears on input or output media streams.
   When appearing as
   a control on an input media stream, the control locally manipulates
   the clients media stream to be active or inactive.  When muting
   locally, muting, the control consists of the following attributes:-

   type: The 'mute' control has a type of 'Boolean'.

   name: The control is named 'mute'.

   default: Indicates the default value for the 'mute' control when not
   set.  The attribute type is 'Boolean' with a default value of
   'false'.  Setting the 'mute' attribute to 'false' specifies that
   media should be transported for the associated media stream.  When
   set to the value of 'true', media should not be transported for the
   associated media stream.

   enable: The enable attribute specifies if access to the control is
   available to the client.  The value is of type 'boolean' and is set
   to 'true' as default.

   The 'mute' control can Control also appear on an output stream.  This
   indicates that the mute will manipulate outgoing media streams from
   the mixer to alternative clients.  When used in this instance, the
   attributes for the control are identical to that of the input
   definition with the exception that the 'enable' and 'default' values
   are both set to 'true'.  This instance consists of the control defines an following additional 'controlArray' that represents other participating
   clients.  This provides elements:-

   label: Provides a privileged user the ability to mute/un-mute
   media being distributed to every client defined.

3.1.4.2  MuteInputAudio

   'MuteInputAudio' is a controlarray Control label that is used in conjunction with
   media input streams of other participants and allows any input media
   stream of the participants to be muted.  The moderator can use this
   control to mute any paritcipant if it doesn't follows conference
   code.  The controlArray enables a specific media stream to be muted
   by passing in the associated identifying number of the participant
   into the name attribute e.g.  The first participant rendered to enter the mix
   could be identified by the number '1' and so the operation
   'MuteInoutAudio[1]' would result in client.
   For the participant identified within Blue-Print example the policy with vlaue is 'Mute-Audio'.

   value: Provides a default value of '1' being muted.  The upper bound of for the
   number being passed in is controlled by Control.  For the 'max-participants'
   parameter value.

3.1.4.3 Blue-Print
   example the value is 'True'.

4.1.4.2.  gain

   The 'gain' control is used in conjunction with a media output stream
   to indicate the amount of amplification of an audio stream.  It has a
   'Real' number value.  The control consists of the following
   attributes:-

   type: The 'gain' control has a type of 'Real'.

   name: The control is named 'gain'.

   enable: The enable attribute specifies if access to the control is
   available to the client.

   The Control also consists of the following additional elements:-

   default: Indicates the default value for the 'gain' control when not
   set.

3.1.4.4  MuteOutputAudio

   This controlarray

4.1.5.  Control Arrays

   The definition for Templates is used by derived from [2] which permits for
   Control Arrays.  The controlArray defines a control for an logical
   stream.  In the moderator to mute actual conference object, there would be one instance
   of control for each of the outgoing audio stream to a participant in case the participant logical stream.  Logical
   streams are defined in [2].  With the controlArray an control is not confirming
   defined which applies to all the conference policy.  The moderator can choose streams which are contributing to set this control
   temporaraly till
   the participant follows conference rules. logical stream.  The
   controlarray enables a specific outgoing audio logical stream to be muted by
   passing in element has an attribute type
   which defines the associated identifying number media type of the participant into
   the name attribute e.g. logical stream.  The first participant to enter attribute
   name in the Logicalstream has a semantic meaning.  The conference would be identified by
   server based on the number '1' and so name of the operation
   'StopoutputText[1]' would result logical stream knows what streams
   constitutes the logical stream.  For example in the participant identified within basic audio we
   have an logical stream called MainAudioIn, which comprises of the policy with a value
   incoming streams from the participants.  We also define another
   logical stream in basic audio called MainAudioOut which comprises of '1' not hearing
   the conference.  The
   control type is boolean and output stream from the default value server to the end points.

   In the basic-audio template, for the role of the moderator, two
   controlArray elements are defined which work on the two logical
   streams - MainAudioIn, MainAudioOut.  For both these logical streams,
   the controlArray element defines the control when not
   set is false indicating that all participant get Mute, which enables the text stream.

3.1.5
   moderator to mute any participants incoming audio stream or out going
   audio stream

4.1.6.  Streams

   The 'Basic Audio Template' consists of two audio streams:

3.1.5.1

4.1.6.1.  AudioIn

   The 'AudioIn' media stream details properties associated with the
   incoming audio to the mixer.  The 'AudioIn' stream has the following
   attributes:
   attributes and properties:

   type: The stream type is 'audio'.

   name: The descriptive name for this stream is 'AudioIn'.

   dir: The direction of the stream is set to 'in'.

3.1.5.1.1

   stream-id : The identifier which uniquely identifies the stream.  It
   is optional because during the blueprint creation phase there is no
   need to specify the stream-id.  But once the conference starts and
   the streams are created in the server, each stream element is
   assigned an stream-id, through which the server and the client can
   uniquely identify the streams.

4.1.6.1.1.  Floor

   The 'AudioIn' media stream consists of the following floor:

3.1.5.1.1.1

4.1.6.1.1.1.  Send_audio

   The 'Send-audio' floor is associated with the 'AudioIn' stream.  It
   provides a mechanism to control the input to a media mix.  A
   participant with a role of 'Moderator' should always have floor
   preference - this is considered out of scope for this document.  The
   following attributes are defined:

   floor_id: Uniquely identifies the floor within the context of this
   template and has a value of '1'.

   instances: Value of '1' implies only one occurrence of this floor at
   any one time.

   enable: A value of 'false' indicates that this floor is not enabled
   by default.

   value: A value of false specifies that the instance represented by
   this template does not have control of the floor.

3.1.5.2

4.1.6.2.  AudioOut

   The 'AudioOut' media stream details properties associated with the
   outgoing audio from the mixer.  The 'AudioOut' stream has the
   following attributes:

   type: The stream type is 'audio'.

   name: The descriptive name for this stream is 'AudioOut'.

   dir: The direction of the stream is set to 'out'.

3.1.6

4.1.7.  Blueprint - XML Definition example

   <template name="basic-audio">
                  <parameter type="integer" name="max-participants" value="1" min="1" max="128"/>
                  <parameter type="integer" name="max-audio-streams" value="1" min="1" max="128"/>

                    <role name="Participant">
                         <parameter type="integer" name="max-participants" value="1" min="1" max="128"/>

                          <stream type="audio" name="AudioIn" dir="in">
                           <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="false">
                            <control type ="boolean" name="mute" enable="true">
                              <label> Mute-Audio </label>
                              <value>True</value>
                           </control>
                           </floor>
                         </stream>

                         <stream type="audio" name="AudioOut" dir="out">
                          <control type="real" name="gain" enable="true" >
                            <label>Volume</label>
                            <value>0</value>
                          </control>
                          </stream>
                     </role>

                    <role name="moderator">
                        <parameter type="integer" name="max-participants" value="0" min="0" max="128"/>

                         <controlArray name="MuteInputAudio" index="0" type="boolean" enable="true" >
                           <LogicaStream type="audio" name="MainAudioIn" />
                           <control type="boolean" name="mute" enable="false">
                             <label>MuteInputAudio</label>
                             <value>False</value>
                            </control>
                         </controlArray>
                      <controlArray name="MuteOutputAudio" index="0"

                         <controlArray>
                           <LogicalStream type="audio" name="MainAudioOut" />
                           <control name="mute" type="boolean" enable="true" > enable="false">
                            <label>MuteOutputAudio</label>
                            <value>False</value>
                           </control>
                          </controlArray>

                         <stream type="audio" name="AudioIn" dir="in">
                          <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="true">
                           <control type ="boolean" name="mute" enable="true">
                              <label> Mute-Audio </label>
                              <value>True</value>
                           </control>
                          </floor>
                         </stream>

                         <stream type="audio" name="AudioOut" dir="out">
                          <control type="real" name="gain" enable="true" >
                            <label>Volume</label>
                            <value>1.0</value>
                           </control>
                         </stream>
                    </role>
      </template>

3.1.7

4.1.8.  XML Schema Definition

   This section provides the XML schema definition for the 'Basic-Audio'
   template.  This schema in currently in the process of being defined
   and was included as an early hint of working group direction.

   <?xml version="1.0" encoding="UTF-8"?>
      <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:role="urn:ietf:params:xml:ns:role-schema">

   <import namespace="urn:ietf:params:xml:ns:role-schema" />

   <xs:element name="template-basic-audio">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="role" minOccurs="0" minOccurs="1" maxOccurs="unbounded"/>
       </xs:sequence>
    </xs:complexType>
   </xs:element>

   <xs:element name="parameter">
     <xs:complexType>
       <xs:attribute name="type" type="parameter-defined" use="required"/>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="value" type="parameter-value" use="required"/>
       <xs:attribute name="min" type="xs:positiveInteger"  use="optional"/>
       <xs:attribute name="max" type="xs:positiveInteger" use="optional"/>
     </xs:complexType>
   </xs:element>

   <xs:simpleType name="parameter-value">
     <xs:union>
      <xs:simpleType>
       <xs:restriction base="xs:integer"/>
      </xs:simpleType>
      <xs:simpleType>
       <xs:restriction base="xs:real"/>
      </xs:simpleType>
      <xs:simpleType>
       <xs:restriction base="xs:enumeration"/>
      </xs:simpleType>
     </xs:union>
    </xs:simpleType>

   <xs:simpleType name="parameter-defined">
     <xs:restriction base="xs:string">
       <xs:enumeration value="integer"/>
       <xs:enumeration value="real"/>
       <xs:enumeration value="enumeration"/>
     </xs:restriction>
   </xs:simpleType>

   <xs:element name="role">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="controlArray" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="stream" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="name" type="role-type" type="rtype" use="required"/>
     </xs:complexType>
   </xs:element>

      <xs:simpleType name="role-type"> name="rtype">
        <xs:restriction base="xs:string"> base="role:role-type">
          <xs:enumeration value="Participant"/>
          <xs:enumeration value="Presenter"/>
       <xs:enumeration value="Moderator"/>
       <xs:enumeration value="Observer"/>
        </xs:restriction>
      </xs:simpleType>
   <xs:element name="controlArray">
    <xs:complexType>
      <element name="label" type="xs:string"/>
      <element name="value" type="control-type"/>
     <xs:sequence>
      <xs:element ref="LogicalStream" minoccurs="1" maxoccurs="unbounded" />
      <xs:element ref="control" minoccurs="1" maxoccurs="1"/>
      </xs:sequence>
     </xs:complexType>
     <xs:attribute name="type" type="control-type" use="required"/>
     <xs:attribute name="name" type="xs:string" use="required"/>
     <xs:attribute name="enable" type="xs:boolean" use="required"/>
     <xs:attribute name="arrayIndex" type="xs:positiveInteger" use="required"/>
    </xs:element>

   <xs:element name="stream">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="floor" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="control" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="type" type="media-type" use="required"/>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="dir" type="direction-type" use="required"/>
       <xs:attribute name="stream-id" type="xs:positiveInteger" use="optional"/>
     </xs:complexType>
   </xs:element>

   <xs:element name="LogicalStream">
    <xs:complexType>
     <xs:attribute name="type" type="media-type" />
     <xs:attribute name="name" type="logical-Streamtype" />
    <xs:complexType>
   </xs:element>

   <xs:simpleType name="logical-streamType >
    <xs:restriction base="xs:string">
     <xs:enumeration value="MainAudioIn"/>
     <xs:enumeration value="MainAudioOut"/>
   </xs:simpleType>

   <xs:simpleType name="media-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="audio"/>
       <xs:enumeration value="video"/>
      </xs:restriction>
   </xs:simpleType>

   <xs:simpleType name="direction-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="in"/>
       <xs:enumeration value="out"/>
     </xs:restriction>
   </xs:simpleType>

   <xs:element name="floor">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="control" minOccurs="1" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="floor_id" type="xs:positiveInteger" use="required"/>
       <xs:attribute name="instances" type="xs:positiveInteger" use="required"/>
       <xs:attribute name="enable" type="xs:boolean" use="required"/>
       <xs:attribute name="value" type="xs:boolean" use="required"/>
     </xs:complexType>
   </xs:element>

   <xs:element name="control">
      <xs:complexType>
        <element name="label" type="xs:string"/>
        <element name="value" type="control-value"/>
      </xs:complexType>
       <xs:attribute name="type" type="control-type" use="required"/>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="enable" type="xs:boolean" use="required"/>
       </xs:complexType>
   </xs:element>
   <xs:simpleType name="control-value">
     <xs:union>
      <xs:simpleType>
       <xs:restriction base="xs:real"/>
      </xs:simpleType>
      <xs:simpleType>
       <xs:restriction base="xs:boolean"/>
      </xs:simpleType>
     </xs:union>
    </xs:simpleType>

   <xs:simpleType name="control-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="integer"/>
       <xs:enumeration value="real"/>
       <xs:enumeration value="boolean"/>
     </xs:restriction>
   </xs:simpleType>

   </xs:schema>

3.2

4.2.  Advanced Audio Template

3.2.1  Description

   The 'Advanced-Audio' template builds on the functionality provided by
   the 'Basic-Audio' template.  Additional features include 'sidebar'
   support and the ability to output both 'mix-minus' style audio or the
   active speakers audio stream.

3.2.2  Roles

   Participant: The advanced audio template specifies the role of
   'Participant' to signify an entry level user with no privileges by
   default.  The participant role could obtain access to all controls
   available for this template if set accordingly by a privileged user.
   Access to the controls available to a participant can be controlled
   using floor control, as defined in [ref control draft].

   Moderator: The advanced audio template specifies the role of
   'Moderator' to signify a user with advanced privileges by default.
   The 'Moderator' role for this template has the same controls as a
   'Participant' with an additional control for muting any participant
   in a conference instance and one for specifying the type of output
   mix (e.g. mix-minus or Active speaker).  Another difference being
   that the default value for the 'enable' attribute on the 'mute'
   control on an output media stream is set to 'true'.  See the
   individual control definitions for the impact of attribute settings.

3.2.3  Parameters

   max-particpants: The 'max-particpants' parameter specifies the
   maximum number of participants (Entity with signalling connection to
   the focus) that are permitted to be involved in an instantiated
   instance of the template (or sub-element, depending on where
   specified) for the specified role.  The minimum value permitted is
   "1" and the maximum value permitted is "128".

   max-audio-streams: The 'max-streams' parameter specifies the maximum
   number of audio media streams that are permitted to be involved in an
   instantiated instance of the template for the specified role.  The
   minimum value permitted is "1" and the maximum value permitted is
   "128".

3.2.4  Controls

3.2.4.1  mute

   The 'mute' control is used in conjunction with a media stream to
   cease transmission of associated media.  It has a 'Boolean' value.
   The 'mute' control can exist in two forms, depending on if the
   control appears on input or output media streams.  When appearing as
   a control on an input media stream, the control locally manipulates
   the clients media stream to be active or inactive.  When muting
   locally, the control consists of the following attributes:-

   type: The 'mute' control has a type of 'Boolean'.

   name: The control is named 'mute'.

   default: Indicates the default value for the 'mute' control when not
   set.  The attribute type is 'Boolean' with a default value of
   'false'.  Setting the 'mute' attribute to 'false' specifies that
   media should be transported for the associated media stream.  When
   set to the value of 'true', media should not be transported for the
   associated media stream.

   enable: The enable attribute specifies if access to the control is
   available to the client.  The value is of type 'boolean' and is set
   to 'true' as default.

   The 'mute' control can also appear on an output stream.  This
   indicates that the mute will manipulate outgoing media streams from
   the mixer to alternative clients.  When used in this instance, the
   attributes for the control are identical to that of the input
   definition with the exception that the 'enable' and 'default' values
   are both set to 'true'.  This instance of the control defines an
   additional 'controlArray' that represents other participating
   clients.  This provides a privileged user the ability to mute/un-mute
   media being distributed to every client defined.

3.2.4.2  MuteInputAudio

   'MuteInputAudio' is a controlarray that is used in conjunction with
   media input streams of other participants and allows any input media
   stream of the participant to be muted.  The moderator can use this
   control to mute any participant if it doesn't follows conference
   code.  The controlArray enables a specific media stream to be muted
   by passing in the associated identifying number of the participant
   into the name attribute e.g.  The first participant to enter the mix
   could be identified by the number '1' and so the operation
   'MuteInoutAudio[1]' would result in the participant identified within
   the policy with a value of '1' being muted.  The upper bound of the
   number being passed in is controlled by the 'max-participants'
   parameter value.

3.2.4.3  gain

   The 'gain' control is used in conjunction with a media output stream
   to indicate the amount of amplification of an audio stream.  It has a
   'Real' number value.  The control consists of the following
   attributes:-

   type: The 'gain' control has a type of 'Real'.

   name: The control is named 'gain'.

   enable: The enable attribute specifies if access to the control is
   available to the client.

   default: Indicates the default value for the 'gain' control when not
   set.

3.2.4.4  MuteOutputAudio

   This controlarray is used by the moderator to mute the outgoing audio
   stream to a participant in case the participant is not confirming to
   the conference policy.  The moderator can choose to set this control
   temporaraly till the participant follows conference rules.  The
   controlarray enables a specific outgoing audio stream to be muted by
   passing in the associated identifying number of the participant into
   the name attribute e.g.  The first participant to enter the
   conference would be identified by the number '1' and so the operation
   'StopoutputText[1]' would result in the participant identified within
   the policy with a value of '1' not hearing the conference.  The
   control type is boolean and the default value of the control when not
   set is false indicating that all participant get the text stream.

3.2.4.5  individual-stream-gain

   The 'individual-stream-gain' controlArray can be used in conjunction
   with an 'AudioOut-Mix' media stream.  It allows the gain of
   individual audio media streams involved in the mix to be controlled.
   The controlArray enables gain to be controlled on a specific media
   stream by passing in the associated identifying number of the
   participant into the name attribute e.g.  The first participant to
   enter the mix could be identified by the number '1' and so the
   operation 'individual-stream-gain[1]' would result in the media
   involved in the output mix, identified within the media policy with a
   value of '1', having it's gain adjusted.  The upper bound of the
   number being passed in is controlled by the 'max-participants'
   parameter value.

3.2.4.6  MuteParticipantsfromMix

   The 'MuteParticipantsfromMix' controlArray is also used in
   conjunction with an 'AudioOut-Mix' media stream.  It allows
   individual participants audio streams involved in the mix to be
   muted.  Participants to be muted are selected in a similar manner to
   'individual-stream-gain'control by passing in the associated
   identifying number of the participant into the name attribute e.g.
   The first participant to enter the mix could be identified by the
   number '1' and so the operation 'MuteParticipantsfromMix[1]' would
   result in the media involved in the output mix, identified within the
   media policy with a value of '1', being muted.  The upper bound of
   the number being passed in is controlled by the 'max-participants'
   parameter value.

3.2.5  Streams

   The 'Advanced-Audio' Template consists of two audio streams:

3.2.5.1  AudioIn

   The 'AudioIn' media stream details properties associated with the
   incoming audio to the mixer.  The 'AudioIn' stream has the following
   attributes:

   type: The stream type is 'audio'.

   name: The descriptive name for this stream is 'AudioIn'.

   dir: The direction of the stream is set to 'in'.

3.2.5.1.1  Floor

   The 'AudioIn' media stream consists of the following floor:

3.2.5.1.1.1  Send_audio

   The 'Send-audio' floor is associated with the 'AudioIn' stream.  It
   provides a mechanism to control the input to a media mix.  A
   participant with a role of 'Moderator' should always have floor
   preference - this is considered out of scope for this document.  The
   following attributes are defined:

   floor_id: Uniquely identifies the floor within the context of this
   template and has a value of '1'.

   instances:  Value of '1' implies only one occurrence of this floor at
   any one time.

   enable: A value of 'false' indicates that this floor is not enabled
   by default.

   value: A value of false specifies that the instance represented by
   this template does not have control of the floor.

3.2.5.2  AudioOut

   The 'AudioOut' media stream details properties associated with the
   outgoing audio from the mixer.  Two types of AudioOut streams are
   defined based on the mix type.  This gives the participant the
   ability to choose either the audio of the active speaker of the
   conference or can choose to hear the audio mix of all the
   participants(excluding itself).  The 'AudioOut' stream has the
   following attributes:

   type: The stream type is 'audio'.

   name: The descriptive name for this stream is 'AudioOut'.

   dir: The direction of the stream is set to 'out'.

3.2.6  XML Definition

   <template name="Advanced-audio">
                 <parameter type="integer" name="max-participants" min="1" max="128"/>
                 <parameter type="integer" name="max-audio-streams" min="1" max="128"/>

                 <role name="Participant">
                     <parameter type="integer" name="max-participants" min="1" max="128"/>
                     <parameter type="integer" name="max-audio-input-streams" min="1" max="1"/>

                      <stream type="audio" name="AudioIn" dir="in">
                        <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="false">
                         <control type ="boolean" name="mute"  enable="true">
                           <label>Mute-Audio</label>
                           <value>True</value>
                         </control>
                        </floor>
                      </stream>
                      <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out">
                       <control type="real" name="gain" enable="true">
                         <label>Volume</label>
                         <value>1.0</value>
                       </control>
                      </stream>

                      <stream type="audio" name="AudioOut-Mix" dir="out">
                       <controlArray type="real" name="gain" index="0" enable="true" >
                         <label>Volume</label>
                         <value>1.0</value>
                       </controlArray>
                       <controlArray name=MuteParticipantsfromMix" index="0" type="boolean" enable="true">
                         <label>MuteParticipant</label>
                         <value>False</value>
                       </controlArray>
                      </stream>

                 </role>

                 <role name="moderator">
                     <parameter type="integer" name="max-participants" min="0" max="1"/>
                     <parameter type="integer" name="max-audio-input-streams" min="1" max="1"/>
                      <controlArray name="MuteInputAudio" type="enumeration" index="0" enable="true" >
                        <label>MuteInputAudio</label>
                        <value>False</value>
                      </controlArray>
                      <controlArray name="MuteOutputAudio" type="enumeration" index="0" enable="true" >
                        <label>MuteOutputAudio</label>
                         <value>False</value>
                       </controlArray>
                     <stream type="audio" name="AudioIn" dir="in">
                       <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="true">
                        <control type ="boolean" name="mute"  enable="true">
                           <label>Mute-Audio</label>
                           <value>True</value>
                         </control>
                       </floor>
                      </stream>

                      <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out">
                       <control type="real" name="gain" enable="true">
                         <label>Volume</label>
                         <value>1.0</value>
                       </control>
                      </stream>
                      <stream type="audio" name="AudioOut-Mix" dir="out">
                       <controlArray type="real" name="gain" index="0" enable="true" >
                         <label>Volume</label>
                         <value>1.0</value>
                       </controlArray>
                       <controlArray name="MuteParticipantsfromMix" index="0" type="boolean" enable="true">
                         <label>MuteParticipant</label>
                         <value>False</value>
                       </controlArray>
                      </stream>
                 </role>
         </template>

   [Editors Note: Sidebar support to be added in next revision]

3.3

   TODO

4.3.  Basic-Video Template

3.3.1

4.3.1.  Description

   The 'Basic-Video Template' is used to convey the basic set of video
   functionality.  The template allows participants to send and receive
   video media with a control that allows input to be paused.  The
   conference server chooses the output video stream for each
   participant based on local policy.  The local policy for example can
   be active-speaker or the video of the host of the conference or the
   moderator of the conference.  The template also defines a moderator
   role who has the ability to pause a users video input.

3.3.2

4.3.2.  Roles

   Participant: The basic video template specifies the role of
   'Participant' to signify an entry level user with no priviledges privileges by
   default.  The participant role could obtain access to all controls
   available for this template if set accordingly by a privileged user.

   Moderator: The basic video template specifies the role of 'Moderator'
   to signify a user with advanced privileges by default.  The
   'Moderator' role for this template has exactly the same controls as a
   'Participant'.  The major difference being that the default value for
   the 'enable' attribute on the 'pause-video' control of the output
   video stream is set to 'false'.

3.3.3

4.3.3.  Parameters

   max-participants:

4.3.3.1.  max-participants

   The 'max-participants' parameter specifies the maximum number of
   entities that are permitted to be involved in an instantiated
   instance of the template for the specified template category.  The
   minimum value permitted is "1" and the maximum value permitted is
   "128".  The parameter can appear at either a template or role level.

   max-video-streams:

4.3.3.2.  max-video-streams

   The 'max-video-streams' parameter specifies the maximum number of
   video media streams that are permitted to be involved in an
   instantiated instance of the template.  The minimum value permitted
   is "1" and the maximum value permitted is "128".  This parameter is
   required as participant of the mix can contribute more than one video
   stream.

   max-video-input-streams: The parameter "max-video-input-streams"
   indicates the number of input video streams each participant can
   inject into the conference.  The convenor of the conference can set
   this value when instantiating a conference.  This reduces the
   requirement to define multiple templates for a number of media stream
   of same type that participants can send to the conference.

3.3.4

4.3.4.  Controls

3.3.4.1  pause-video

   The 'pause-video' control is used in conjunction with a media stream
   to cease transmission of associated media.  It has a 'Boolean' value.
   The 'pause-video' control consists of the following attributes:-

   type: The 'pause-video' control has a type of 'Boolean'.

   name: The control is named 'pause-video'.

   default: Indicates the default value for

   In the 'pause-video' control
   when not set.  The attribute type is 'Boolean' with basic-video template, a default value
   of 'false.  Setting the 'default' attribute to 'false' specifies that
   media should be transported for the associated media stream.  When
   set to the value of 'true', media should not be transported for the
   associated media stream.

   enable: The enable attribute specifies if access to the pause-video control is
   available to defined which
   basically pauses the client.  The value is of type 'boolean' and is set
   to 'true' as default.

3.3.4.2  PauseInputVideo

   'PauseInputVideo' is a controlarray that is used in conjuntion with
   video media input streams of other participants and allows to pause
   any input media streams from the participants.  The moderator of the
   conference can use this control to pause the incoming video stream in
   case the participant does not follow the conference code.  The
   controlarray enables a specific video output stream to be paused by passing
   in the associated identifying number of the participant into the name
   attribute e.g.  The first participant to enter the conference would
   be identified by the number '1' from and so the operation
   'PauseInputVideo[1]' would result in the participant identified
   within the policy with a value of '1' being paused.  This result
   would be such that this participants video would not be sent to any
   one in the
   conference or would not be mixed in case the server is
   mixing the video streams.

3.3.4.3  PauseOutputVideo

   This controlarray server.  It is used by the moderator to pause the outgoing
   video stream to expected that for a participant in case the participant is not
   confirming to the conference policy.  The moderator can choose to set very basic video
   conferencing this control temporaraly till is sufficient.  If the participant follows conference
   rules.  The controlarray enables a specific outgoing video stream to
   be paused by passing in the associated identifying number of the
   participant into the name attribute e.g.  The first participant server
   wants to
   enter the conference would be identified by the number '1' and so the
   operation 'StopoutputText[1]' would result in the participant
   identified within the policy with a value of '1' not seeing the
   conference.  The control type is boolean and the default value of the
   control when not set support more advance features, then it is false indicating recommended that all participant get the
   text stream.

3.3.5  Streams

   The 'Basic-Video Template' consists of two video streams:

3.3.5.1  VideoIn

   The 'VideoIn' media stream details properties associated with the
   incoming video to the mixer.  The 'VideoIn' stream has the following
   attributes:

   type: The stream type is 'video'.

   name: The descriptive name for this stream is 'VideoIn'.

   dir: The direction of the stream is set to 'in'.

3.3.5.1.1  Floor

3.3.5.1.1.1  Send_Video

   The 'Send_Video' floor is associated with the 'VideoIn' stream.  It
   provides a mechanism to control the Video input to a media mix.  A
   participant with a role of 'Moderator' should always have floor
   preference - this is considered out of scope for this document.  The
   following attributes are defined:

   floor_id: Uniquely identifies the floor within the context of this
   advance-video template and has a value of '1'.

   instances:  Value of '1' implies only one occurrence of this floor at
   any one time.

   enable: A value of 'false' indicates that this floor is not enabled
   by default.

   value: A value of 'false' specifies that the instance represented by
   this to be used.  In advance-video template does not have control of the floor.  A value of 'true'
   indicates conttrol of the floor.

   enable: A value of 'true' specifies that floor control is in
   operation while 'false' specifies that floor control is not in
   operation.

3.3.5.2  VideoOut

   The 'ViedoOut' media stream details properties associated with the
   outgoing audio from the mixer.  The 'VideoOut' stream has the
   following attributes:

   type: The stream type is 'video'.

   name: The descriptive name
   schema for this stream is 'VideoOut'.

   dir: The direction of the stream controls is set to 'out'.

3.3.6  XML Definition

   <template name="basic-video">
                <parameter type="integer" name="max-participants" min="1" max="128"/>
                <parameter type="integer" name="max-video-streams" min="1" max="128"/>

                 <role name="Participant">
                     <parameter type="integer" name="max-participants" min="1" max="128"/>
                     <parameter type="integer" name="max-video-input-streams" min="1" max="128"/>

                      <stream type="video" name="VideoIn" dir="in">
                       <floor name="Send_Video" floor_id="1" instances="1" enable="true" value="false">
                          <control name ="pause-video" type="boolean" enable="true" >
                            <label>Pause-Video</label>
                            <value>False</value>
                          </control>
                       </floor>
                      </stream>
                      <stream type="video" name="VideoOut" dir="out"/>
                 </role>

                 <role name="Moderator">

                     <parameter type="integer" name="max-participants" min="0" max="1"/>
                     <parameter type="integer" name="max-video-input-streams" min="1" max="128"/>

                     <controlArray name="PauseInputVideo" index="0" type="boolean" enable="true">
                       <label>PauseInputVideo</label>
                        <value>False</value>
                     </controlArray>
                     <controlArray name="PauseOutputAudio" index="0" type="boolean" enable="true">
                       <label>PauseOutputVideo</label>
                       <value>False</value>
                     </controlArray>
                     <stream type="video" name="VideoIn" dir="in">
                      <floor name="Send_video" floor_id="1" instances="1" enable="true" value="true">
                         <control name ="pause-video" type="boolean" enable="true" >
                            <label>Pause-Video</label>
                            <value>False</value>
                          </control>
                      </floor>
                     </stream>

                     <stream type="video" name="VideoOut" dir="out"/>
                  </role>
   </template>

3.4  Advanced Video Template

3.4.1  Description

   The 'Advanced-Video Template' builds on extensible, hence new control types can be
   defined.

   Issue : For the basic set of video
   functionality to provide a set of advanced features.  The template
   allows provides additional functionality which includes the
   specification of layout associated with a participants output stream
   and the ability to select an individual output source from the list
   participants.

3.4.2  Roles

   Participant: The advanced video template specifies the role of
   'Participant' to signify an entry level user with no privileges by
   default.  The participant role could obtain access to all controls
   available for this template if set accordingly by a privileged user.

   Moderator: The advanced video template specifies we are restricting the role type of
   'Moderator' to signify a user with advanced privileges by default.
   The 'Moderator' role for this template has exactly
   the same controls
   as a 'Participant'.  The major difference being that the default
   value for the 'enable' attribute on the 'pause-video' and 'Layout'
   controls are set control to 'true'.

3.4.3  Parameters

   max-participants: boolean (for pause-video control).  The 'max-participants' parameter specifies the
   maximum number of entities that are permitted to be involved in an
   instantiated instance of the template reason for the specified template
   category.  The minimum value permitted
   doing is "1" and the maximum value
   permitted is "128".  The parameter basic-audio can appear at either a template only have very basic control like pause-
   video.  Should we keep the restriction or
   role level.

   max-video-streams: The 'max-video-streams' parameter specifies let the
   maximum number of video media streams that are permitted capability to be
   involved
   define new control in an instantiated instance of the basic-video template.  The minimum
   value permitted is "1" and the maximum value permitted is "128".
   This parameter is required as participant of the mix can contribute
   more than one video stream.

   max-video-input-streams: The parameter "max-video-input-streams"
   indicates the number of input video streams each participant can
   inject into the conference.  The convener of the conference can set
   this value when instantiating a conference.  This reduces the
   requirement to define multiple templates for a number of media stream
   of same type that participants can send to the conference.

3.4.4  Controls

3.4.4.1

4.3.4.1.  pause-video

   The 'pause-video' control is used in conjunction with a media stream
   to cease transmission of associated media.  It has a 'Boolean' value.
   The 'pause-video' control consists of the following attributes:-

   type: The 'pause-video' control has a type of 'Boolean'.

   name: The control is named 'pause-video'.

   default: Indicates the default value for the 'pause-video' control
   when not set.  The attribute type is 'Boolean' with a default value
   of 'false.  Setting the 'default' attribute to 'false' specifies that
   media should be transported for the associated media stream.  When
   set to the value of 'true', media should not be transported for the
   associated media stream.

   enable: The enable attribute specifies if access to the control is
   available to the client.  The value is of type 'boolean'.

3.4.4.2  Layout

   The 'Layout' control 'boolean' and is used in conjunction with an output video
   stream set
   to define 'true' as default.

4.3.5.  Control Array

   In the video layout configuration.  It has a
   'enumeration' value which provides various tile formats for video
   display. basic-video template, two logical streams are defined -
   mainvideoIn, mainvideoOut.  The 'Layout' control consists mainvideoIn comprises of the following attributes:-

   name: The control is named 'Layout'

   type: The 'Layout' control has a type of 'enumeration'.

   enable: The enable attribute specifies if access to input
   video stream from the control is
   available to participants and the client.  The value is mainvideoout stream
   comprises of type 'boolean'.

   default: The default value for this control is '0'.

3.4.4.3  SourceSelector

   The 'SourceSelector' control is used in conjunction with an the output video stream to define which video media stream are contributing to from the output mix.  It has a 'enumeration' value which provides a list
   format containing server to the media
   participants.  The List element is
   described in [1].  The 'SourceSelector' control consists  For the role of moderator, two controlArrays are
   defined which defines the
   following attributes:-

   name: The control is named 'SourceSelector'
   type: The 'SourceSelector' control has a type pause-video for each of 'enumeration'.

   enable: The enable attribute specifies if access to the control is
   available to logical
   streams.  With the client.  The value is help of type 'boolean'.

   default: The default value for this control is '1'.

3.4.4.4  PauseInputVideo

   'PauseInputVideo' is a controlarray that is used in conjunction with
   video media input streams of other participants and allows to pause
   any input media streams from controls, the participants.  The moderator of the
   conference can use this control to pause the incoming video stream in
   case the participant does not follow the conference code.  The
   controlarray enables a specific video stream to be paused by passing
   in the associated identifying number of the participant into the name
   attribute e.g.  The first participant to enter the conference would
   be identified by the number '1' and so the operation
   'PauseInputVideo[1]' would result in the participant identified
   within the policy with a value of '1' being paused.  This result
   would be such that this any
   participants video would not be sent to any
   one in the conference or would not be being mixed in case the server is
   mixing the video streams.

3.4.4.5  PauseOutputVideo

   This controlarray is used by the moderator to pause the outgoing
   video stream to a participant in case the participant is not
   confirming to the conference policy.  The moderator and can choose to set
   this control temporaraly until the participant follows conference
   rules.  The controlarray enables a specific outgoing pause any output
   video stream to
   be paused by passing in the associated identifying number any of the
   participant into the name attribute e.g.  The first participant to
   enter the conference would be identified by the number '1' and so the
   operation 'StopoutputText[1]' would result in the participant
   identified within the policy with a value participants of '1' not seeing the conference.  The control type is boolean and the default value of the
   control when not set is false indicating that all participant get the
   text stream.

3.4.5

4.3.6.  Streams

   The 'Advanced-Video 'Basic-Video Template' consists of two video streams:

3.4.5.1

4.3.6.1.  VideoIn

   The 'VideoIn' media stream details properties associated with the
   incoming video to the mixer.  The 'VideoIn' stream has the following
   attributes:

   type: The stream type is 'video'.

   name: The descriptive name for this stream is 'VideoIn'.

   dir: The direction of the stream is set to 'in'.

3.4.5.1.1

   stream-id : The unique identifier of the stream.

4.3.6.1.1.  Floor

3.4.5.1.1.1

4.3.6.1.1.1.  Send_Video

   The 'Send_Video' floor is associated with the 'VideoIn' stream.  It
   provides a mechanism to control the Video input to a media mix.  A
   participant with a role of 'Moderator' should always have floor
   preference - this is considered out of scope for this document.  The
   following attributes are defined:

   floor_id: Uniquely identifies the floor within the context of this
   template and has a value of '1'.

   instances: Value of '1' implies only one occurrence of this floor at
   any one time.

   enable: A value of 'false' indicates that this floor is not enabled
   by default.

   value: A value of 'false' specifies that the instance represented by
   this template does not have control of the floor.  A value of 'true'
   indicates control conttrol of the floor.

   enable: A value of 'true' specifies that floor control is in
   operation while 'false' specifies that floor control is not in
   operation.

3.4.5.2

4.3.6.2.  VideoOut

   The 'ViedoOut' media stream details properties associated with the
   outgoing audio from the mixer.  The 'VideoOut' stream has the
   following attributes:

   type: The stream type is 'video'.

   name: The descriptive name for this stream is 'VideoOut'.

   dir: The direction of the stream is set to 'out'.

3.4.6

   stream-id : The unique identifier of the stream.

4.3.7.  Blueprint - XML Definition Example

   <template name="advanced-video"> name="basic-video">
                   <parameter type="integer" name="max-participants" value ="1" min="1" max="128"/>
                   <parameter type="integer" name="max-video-streams" value="1" min="1" max="128"/>
                <list name="participants[1:%maxparticipants]"/>
                    <role name="Participant">
                        <parameter type="integer" name="max-participants" min="1" max="128"/>
                     <parameter type="integer" name="max-video-input-streams" value="1" min="1" max="128"/>

                         <stream type="video" name="VideoIn" dir="in">
                          <floor name="Send_Video" floor_id="1" instances="1" enable="true" value="false">
                             <control name ="pause-video" type="boolean" enable="true" >
                               <label>Pause-Video</label>
                               <value>False</value>
                             </control>
                          </floor>
                         </stream>

                         <stream type="video" name="VideoOut" dir="out">
                          <control name="Layout" type="select1" enable="false">
                            <label>Video-Layout</label>
                            <value>0</value>
                             <item>
                                <label> 1x1</label>
                                <value> 0 </value>
                             </item>
                             <item>
                                <label> 2x2</label>
                                <value> 1 </value>
                             </item>
                             <item>
                                <label> 3x3</label>
                                <value> 2 </value>
                             </item>
                             <item>
                                <label> 4x4</label>
                                <value> 3 </value>
                             </item>
                         </control>
                         <control name="sourceSelector" type="enumeration" enable="false" default="1" >
                           <item label="%participants[*]" value="*"/>
                         </control>
                     </stream> dir="out"/>
                    </role>

                    <role name="Moderator">

                        <parameter type="integer" name="max-participants" value="1" min="0" max="128"/>
                     <parameter type="integer" name="max-video-input-streams" min="0" max="128"/>
                      <controlArray name="PauseInputVideo" index="0" max="1"/>

                        <controlArray>
                          <LogicalStream type="video" name="MainVideoIn" />
                          <control type="boolean" enable="true"> name="pause-video" enable="false">
                           <label>PauseInputVideo</label>
                           <value>False</value>
                          </control>
                         </controlArray>
                     <controlArray name="PauseOutputAudio" index="0"

                         <controlArray>
                          <LogicalStream type="video" name="MainVideoOut" />
                          <control type="boolean" enable="true"> name="pause-video" enable="false">
                           <label>PauseOutputVideo</label>
                           <value>False</value>
                          </control>
                         </controlArray>

                        <stream type="video" name="VideoIn" dir="in">
                         <floor name="Send_Video" name="Send_video" floor_id="1" instances="1" enable="true" value="true">
                            <control name ="pause-video" type="boolean" enable="true" >
                               <label>Pause-Video</label>
                               <value>False</value>
                             </control>
                         </floor>
                        </stream>

                        <stream type="video" name="VideoOut" dir="out">
                           <control name="Layout" type="enumeration" enable="true" default="0">
                            <item label="1x1" value="0"/>
                            <item label="2x1" value="1"/>
                            <item label="1x2" value="2"/>
                            <item label="2x2" value="3"/>
                            <item label="3x3" value="4"/>
                           </control>
                           <control name="sourceSelector" type="enumeration" enable="true" default="1" >
                            <item label="%participants[*]" value="*"/>
                           </control>
                     </stream> dir="out"/>
                     </role>

   </template>

   [Editors Note: Sidebar support to be added in next revision]

3.5

4.3.8.  XML Schema Definition

   This section provides the XML schema definition for the 'Basic-Video'
   template.

   <?xml version="1.0" encoding="UTF-8"?>
      <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:role="urn:ietf:params:xml:ns:role-schema">

   <import namespace="urn:ietf:params:xml:ns:role-schema" />

   <xs:element name="template-basic-video>
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="role" minOccurs="1" maxOccurs="unbounded"/>
       </xs:sequence>
    </xs:complexType>
   </xs:element>

   <xs:element name="parameter">
     <xs:complexType>
       <xs:attribute name="type" type="parameter-defined" use="required"/>
       <xs:attribute name="name" type="parameter-name" use="required"/>
       <xs:attribute name="value" type="parameter-value" use="required"/>
       <xs:attribute name="min" type="xs:positiveInteger"  use="optional"/>
       <xs:attribute name="max" type="xs:positiveInteger" use="optional"/>
     </xs:complexType>
   </xs:element>

   <xs:simpleType name="parameter-value">
     <xs:union>
      <xs:simpleType>
       <xs:restriction base="xs:integer"/>
      </xs:simpleType>
      <xs:simpleType>
       <xs:restriction base="xs:real"/>
      </xs:simpleType>
      <xs:simpleType>
       <xs:restriction base="xs:enumeration"/>
      </xs:simpleType>
     </xs:union>
    </xs:simpleType>

   <xs:simpleType name="parameter-defined">
     <xs:restriction base="xs:string">
       <xs:enumeration value="integer"/>
       <xs:enumeration value="real"/>
       <xs:enumeration value="enumeration"/>
     </xs:restriction>
   </xs:simpleType>

   <xs:element name="role">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="controlArray" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="stream" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="name" type="rtype" use="required"/>
     </xs:complexType>
   </xs:element>

      <xs:simpleType name="rtype">
        <xs:restriction base="role:role-type">
          <xs:enumeration value="Participant"/>
          <xs:enumeration value="Moderator"/>
        </xs:restriction>
      </xs:simpleType>

   <xs:element name="controlArray">
    <xs:complexType>
     <xs:sequence>
      <xs:element ref="LogicalStream" minoccurs="1" maxoccurs="unbounded" />
      <xs:element ref="control" minoccurs="1" maxoccurs="1"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>

   <xs:element name="stream">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="floor" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="control" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="type" type="media-type" use="required"/>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="dir" type="direction-type" use="required"/>
       <xs:attribute name="stream-id" type="xs:positiveInteger" use="optional"/>

     </xs:complexType>
   </xs:element>

   <xs:element name="LogicalStream">
    <xs:complexType>
     <xs:attribute name="type" type="media-type" />
     <xs:attribute name="name" type="logical-Streamtype" />
    <xs:complexType>
   </xs:element>

   <xs:simpleType name="logical-streamType >
    <xs:restriction base="xs:string">
     <xs:enumeration value="MainVideoIn"/>
     <xs:enumeration value="MainVideoOut"/>
   </xs:simpleType>

   <xs:simpleType name="media-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="video"/>
      </xs:restriction>
   </xs:simpleType>

   <xs:simpleType name="direction-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="in"/>
       <xs:enumeration value="out"/>
     </xs:restriction>
   </xs:simpleType>

   <xs:element name="floor">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="control" minOccurs="1" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="floor_id" type="xs:positiveInteger" use="required"/>
       <xs:attribute name="instances" type="xs:positiveInteger" use="required"/>
       <xs:attribute name="enable" type="xs:boolean" use="required"/>
       <xs:attribute name="value" type="xs:boolean" use="required"/>
     </xs:complexType>
   </xs:element>

   <xs:element name="control">
      <xs:complexType>
        <element name="label" type="xs:string"/>
        <element name="value" type="xs:boolean"/>
      </xs:complexType>
       <xs:attribute name="type" type="control-type" use="required"/>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="enable" type="xs:boolean" use="required"/>
   </xs:element>

   <xs:simpleType name="control-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="boolean"/>
     </xs:restriction>
   </xs:simpleType>

   </xs:schema>

4.4.  Advanced Video Template

   TODO

4.5.  Basic Text Template

3.5.1

4.5.1.  Description

   The Basic-Text template can be used to achieve the simplest form of
   interaction between multiple text input streams from participating
   entities.  The output stream will consist of all inout input messages
   except those injected by the participant in question.  Controls are
   defined to limit who can inject into a conference and a privilege
   user has the ability to block participants receiving outgoing media.

3.5.2

4.5.2.  Roles

   Participant: The basic audio template specifies the role of
   'Participant' to signify an entry level user with no privileges by
   default.  The participant role could obtain access to all controls
   available for this template if set accordingly by a privileged user.
   Access to the controls available to a participant can be controlled
   using floor control, as defined in [ref control draft]. element.

   Moderator: The basic audio template specifies the role of 'Moderator'
   to signify a user with advanced privileges by default.  The
   'Moderator' role for this template has the the same controls as a
   'Participant' with an additional control for muting
   'Participant'.  The moderator also has the capability to block any participant
   in a conference instance.  Another difference
   input stream from being that the default
   value for mixed in the 'enable' attribute on output stream and can also block
   the 'mute' control on an output
   media stream is set to 'true'. any participant.  See the individual control
   definitions for ithe mpact the impact of attribute settings.

3.5.3

4.5.3.  Parameters

   max-participants: The 'max-particpants' parameter specifies the
   maximum number of participants (Entity with signalling connection to
   the focus) that are permitted to be involved in an instantiated
   instance of the template (or sub-element, depending on where
   specified) for the specified role.  The minimum value permitted is
   "1" and the maximum value permitted is "128".

3.5.4

4.5.4.  Controls

3.5.4.1  block-incoming

4.5.4.1.  block

   The 'block-incoming' 'block' control is used in conjunction with a input (and output)
   stream from a participant (and from the conference server) to cease
   transmission of associated media.  It has a 'Boolean' value.  The 'block-incoming'
   'block' control consists of the following attributes:-

   type: The 'block-incoming' 'block' control has a type of 'Boolean'.

   name: The control is named 'block-incoming'. 'block'.

   default: Indicates the default value for the 'block-incoming' 'block' control when not
   set.  The attribute type is 'Boolean' with a default value of
   'false'.  Setting the 'block-incoming' attribute to 'false' specifies
   that media should be transported for the associated media stream.
   When set to the value of 'true', media should not be transported for
   the associated media stream.

   enable: The enable attribute specifies if access to the control is
   available to the client.  The value is of type 'boolean' and is set
   to 'true' as default.

3.5.4.2  StopoutputText

   This controlarray is used by

4.5.5.  Control Array

   In the moderator to block basic-text template, two logical streams are defined -
   mainTextIn, mainTextOut.  The mainTextIn comprises of the outgoing input text
   stream to a particular participant if from the participant doesnt follow
   conference rules.  The moderator can choose to set this control
   temporaraly till participants and the participant follows conference rules.  The
   controlarray enables a specific outgoing text maintextout stream to be stopped by
   passing in the associated identifying number comprises of
   the participant into output text stream from the name attribute e.g.  The first participant server to enter the
   conference would be identified by the number '1' and so the operation
   'StopoutputText[1]' would result in the participant identified within participants.  For the policy with a value
   role of '1' not getting any text media.  The
   control type is boolean and moderator, two controlArrays are defined which defines the default value
   control "block" for each of the control when not
   set is false indicating that all participant get logical streams.  With the text stream.

3.5.4.3  StopinputText

   This controlarray is used by help of
   this controls, the moderator to can block the incoming any participants text stream
   from a particular participant uf the participant doesnt follow
   the conference rules.  This will result being mixed in the participants input
   text media not to distributed to other participants in conference
   mix.  The controlarray enables a specific incoming server and can block any output text stream
   to be
   not be mixed in the conference mix by passing the associated
   identifying number of the participant into the name attribute e.g.
   The first participant to enter the conference would be identified by
   the number '1' and so the operation 'StopinputText[1]' would result
   in the participant identified within the policy with a value any of '1',
   its text media not being mixed.  The control type is boolean  and the
   default value participants of the control when not set is false indicating that
   all participant text stream is mixed.

3.5.5 conference.

4.5.6.  Streams

   The 'Basic-Text' Template consists of two text media streams:

3.5.5.1

4.5.6.1.  TextIn

   The 'TextIn' media stream details properties associated with the
   incoming text to the mixer.  The 'TextIn' stream has the following
   attributes:

   type: The stream type is 'text'.

   name: The descriptive name for this stream is 'TextIn'.

   dir: The direction of the stream is set to 'in'.

3.5.5.1.1

4.5.6.1.1.  Floor

3.5.5.1.1.1  Right_to_inject

4.5.6.1.1.1.  send_text

   The 'Right_to_inject' 'send_text' floor is associated with the 'TextIn' stream.  It
   provides a mechanism to control the text input to a text media mix.
   A participant with a role of 'Moderator' should always have floor
   preference - this is considered out of scope for this document.  The
   following attributes are defined:

   floor_id: Uniquely identifies the floor within the context of this
   template and has a value of '1'.

   instances:  Indicatesthe Indicates the number of occurrences of this floor at any
   one time.

   enable: A value of 'false' indicates that this floor is not enabled.
   A value of 'true' indicates that this floor is enabled.

   value: A value of 'false' specifies that the instance represented by
   this template does not have control of the floor.  A value of 'true'
   indicates control of the floor.

3.5.5.2

4.5.6.2.  TextOut

   The 'TextOut' media stream details properties associated with the
   outgoing text media from the mixer.  The 'TextOut' stream has the
   following attributes:

   type: The stream type is 'text'.

   name: The descriptive name for this stream is 'TextOut'.

   dir: The direction of the stream is set to 'out'.

3.5.6

4.5.7.  Blueprint - XML Definition Example
   <template name="basic-text">

              <parameter type="integer" name="max-participants" min="1" max="128"/>
              <list name="participants[1:%maxparticipants]"/>

                 <role name="Participant">
                 <parameter type="integer" name="max-participants" value="1" min="1" max="128"/>

                      <stream type="text" name="TextIn" dir="in">
                        <floor name="Right_to_inject" name="send_text" floor_id="1" instances="1" enable="true" value="false">
                         <control type ="boolean" name="block_incoming" name="block"  enable="true">
                            <label>Block-Incoming-Text</label>
                            <value>True</value>
                         </control>
                        </floor>
                      </stream>

                      <stream type="text" name="TextOut" dir="out"/>
                 </role>

                 <role name="moderator">
                      <parameter type="integer" name="max-participants" value="0"  min="1" max="128"/>

                      <controlArray name="StopOutputText"

                      <controlArray>
                       <LogicalStream name="MainTextIn" type="Text"/>
                        <control name="block" type="boolean" index="0" enable="true" >
                        <label>Stop-Output-Text</label> enable="false">
                         <label>Stop-Input-Text</label>
                         <value>False</value>
                        </control>
                       </controlArray>
                      <controlArray name="StopInputText"

                      <controlArray>
                       <LogicalStream name="MainTextOut" type="Text" />
                        <control name="block" type="boolean" index="0" enable="true" >
                        <label>StopInputText</label> enable="false">
                         <label>StopOutputText</label>
                         <value>False</value>
                        </control>
                       </controlArray>

                      <stream type="text" name="TextIn" dir="in">
                        <floor name="Right_to_inject" floor_id="1" instances="1" enable="true" value="true">
                         <control type ="boolean" name="block_incoming" name="block"  enable="true">
                            <label>Block-Incoming-Text</label>
                            <value>False</value>
                         </control>
                        </floor>
                      </stream>

                      <stream type="text" name="TextOut" dir="out"/>

                 </role>
         </template>

3.6

4.5.8.  XML Schema Definition

   This section provides the XML schema definition for the 'Basic-Text'
   template.

    <?xml version="1.0" encoding="UTF-8"?>
      <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:role="urn:ietf:params:xml:ns:role-schema">

   <import namespace="urn:ietf:params:xml:ns:role-schema" />

   <xs:element name="template-basic-text">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="role" minOccurs="1" maxOccurs="unbounded"/>
       </xs:sequence>
    </xs:complexType>
   </xs:element>

   <xs:element name="parameter">
     <xs:complexType>
       <xs:attribute name="type" type="parameter-defined" use="required"/>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="value" type="parameter-value" use="required"/>
       <xs:attribute name="min" type="xs:positiveInteger"  use="optional"/>
       <xs:attribute name="max" type="xs:positiveInteger" use="optional"/>
     </xs:complexType>
   </xs:element>

   <xs:simpleType name="parameter-value">
     <xs:union>
      <xs:simpleType>
       <xs:restriction base="xs:integer"/>
      </xs:simpleType>
      <xs:simpleType>
       <xs:restriction base="xs:real"/>
      </xs:simpleType>
      <xs:simpleType>
       <xs:restriction base="xs:enumeration"/>
      </xs:simpleType>
     </xs:union>
    </xs:simpleType>

   <xs:simpleType name="parameter-defined">
     <xs:restriction base="xs:string">
       <xs:enumeration value="integer"/>
       <xs:enumeration value="real"/>
       <xs:enumeration value="enumeration"/>
     </xs:restriction>
   </xs:simpleType>

   <xs:element name="role">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="controlArray" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="stream" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="name" type="rtype" use="required"/>
     </xs:complexType>
   </xs:element>

      <xs:simpleType name="rtype">
        <xs:restriction base="role:role-type">
          <xs:enumeration value="Participant"/>
          <xs:enumeration value="Moderator"/>
        </xs:restriction>
      </xs:simpleType>

   <xs:element name="controlArray">
    <xs:complexType>
     <xs:sequence>
      <xs:element ref="LogicalStream" minoccurs="1" maxoccurs="unbounded" />
      <xs:element ref="control" minoccurs="1" maxoccurs="1"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>

   <xs:element name="stream">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="floor" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="control" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="type" type="media-type" use="required"/>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="dir" type="direction-type" use="required"/>
       <xs:attribute name="stream-id" type="xs:positiveInteger" use="optional"/>

     </xs:complexType>
   </xs:element>

   <xs:element name="LogicalStream">
    <xs:complexType>
     <xs:attribute name="type" type="media-type" />
     <xs:attribute name="name" type="logical-Streamtype" />
    <xs:complexType>
   </xs:element>

   <xs:simpleType name="logical-streamType >
    <xs:restriction base="xs:string">
     <xs:enumeration value="MainTextIn"/>
     <xs:enumeration value="MainTextOut"/>
   </xs:simpleType>

   <xs:simpleType name="media-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="text"/>
      </xs:restriction>
   </xs:simpleType>

   <xs:simpleType name="direction-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="in"/>
       <xs:enumeration value="out"/>
     </xs:restriction>
   </xs:simpleType>

   <xs:element name="floor">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="control" minOccurs="1" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="floor_id" type="xs:positiveInteger" use="required"/>
       <xs:attribute name="instances" type="xs:positiveInteger" use="required"/>
       <xs:attribute name="enable" type="xs:boolean" use="required"/>
       <xs:attribute name="value" type="xs:boolean" use="required"/>
     </xs:complexType>
   </xs:element>

   <xs:element name="control">
      <xs:complexType>
        <element name="label" type="xs:string"/>
        <element name="value" type="control-value"/>
      </xs:complexType>
       <xs:attribute name="type" type="control-type" use="required"/>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="enable" type="xs:boolean" use="required"/>
   </xs:element>

   <xs:simpleType name="control-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="boolean"/>
     </xs:restriction>
   </xs:simpleType>

   </xs:schema>

4.6.  Advanced Text Template

3.6.1  Description

   [Editors Note: To be completed in the next revision of this draft]

3.6.2  Roles

3.6.3  Parameters

3.6.4  Controls

3.6.5  Streams

3.6.6  XML Definition

   [Editors Note: Sidebar support to be added in next revision]

3.7

   TODO

4.7.  Basic Audio-Video Template

3.7.1

4.7.1.  Description

   The advance audio-video Basic Audio-Video template enables a conference with to provide both
   audio and video and gives some advance controls interactions between entities that provide input
   stream to the a Conference mix.  The Audio and Video output streams
   consist of a mix of all participants audio and video input.  This
   particular template and definition creates a union of functionality
   from the
   conference. basic audio and basic video templates.

4.7.2.  Roles

4.7.2.1.  Participant

   The basic Audio-Video template specifies the role of 'Participant' to
   signify an entry level user with no privileges by default.  The
   participant role could obtain access to all controls provided available for
   this template if set accordingly by a privileged user.  This is
   achieved during the blueprint creation phase by setting the enable
   attribute of the control element to TRUE.

4.7.2.2.  Moderator

   The basic Audio-Video template specifies the participants in this
   templates are similar role of 'Moderator' to
   signify a user with advanced privileges by default.  The 'Moderator'
   role for this template has the one defined in advance same controls as a 'Participant' with
   an additional controls for muting audio and advance stopping video templates.

3.7.2  Roles

3.7.3 for any
   participant in a conference instance.  Another primary difference
   between a 'Participant' and a 'Moderator' being that the default
   value for the 'enable' attribute on the 'mute' and 'pause-video'
   controls on an output media stream is set to 'true'.  See the
   individual control definitions for the impact of attribute settings.

4.7.3.  Parameters

3.7.4

4.7.3.1.  max-participants

   See Section 4.1.3.1 for definition.

4.7.3.2.  max-audio-streams

   See Section 4.1.3.2 for definition.

4.7.3.3.  max-video-streams

   See Section 4.3.3.2 for definition.

4.7.4.  Controls

3.7.5

4.7.4.1.  mute

   See Section 4.1.4.1 for definition.

4.7.4.2.  pause-video

   See Section 4.3.4.1 for definition.

4.7.4.3.  gain

   See Section 4.1.4.2 for definition.

4.7.5.  Control Array

   See Section 4.1.5 for information relating to audio Control arrays
   and Section 4.3.5 for information relating to video related Control
   arrays in this template.

4.7.6.  Streams

3.7.6

   The 'Basic Audio-Video Template' consists of two audio streams:

4.7.6.1.  AudioIn

   See Section 4.1.6.1 for definition.

4.7.6.2.  AudioOut

   See Section 4.1.6.2 for definition.

   The 'Basic Audio-Video Template' consists of two video streams:

4.7.6.3.  VideoIn

   See Section 4.3.6.1 for definition.

4.7.6.4.  VideoOut

   See Section 4.3.6.2 for definition.

4.7.7.  Blueprint - XML Definition Example

   <template name="audio-video"> name="basic-audio-video">

                   <parameter type="integer" name="max-participants" value="1" min="1" max="128"/>
                   <parameter type="integer" name="max-audio-streams" value="1" min="1" max="128"/>
                   <parameter type="integer" name="max-video-streams" value="1" min="1" max="128"/>

                   <role name="Participant">
                            <parameter type="integer" name="max-participants" value="1" min="1" max="128"/>
                      <parameter type="integer" name="max-audio-input-streams" min="1" max="1"/>
                      <parameter type="integer" name="max-video-input-streams" min="1" max="2"/>
                      <list name="participants[1:%maxparticipants]"/>

                             <stream type="audio" name="AudioIn" dir="in">
                              <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="false">
                               <control type ="boolean" name="mute" enable="true">
                           <label>Mute-Audio</label>
                                 <label> Mute-Audio </label>
                                 <value>True</value>
                               </control>
                              </floor>
                             </stream>

                             <stream type="video" name="VideoIn" dir="in">
                              <floor name="Send_Video" floor_id="2" floor_id="1" instances="1" enable="true" value="false">
                                <control name ="pause-video" type="boolean" enable="true" >
                                  <label>Pause-Video</label>
                            <value>True</value>
                                  <value>False</value>
                                </control>
                              </floor>
                             </stream>

                             <stream type="audio" name="AudioOut-ActiveSpeaker" name="AudioOut" dir="out">
                              <control type="real" name="gain" enable="true" >
                               <label>Volume</label>
                          <value>1.0</value>
                               <value>0</value>

                              </control>
                             </stream>

                             <stream type="audio" name="AudioOut-Mix" dir="out">
                         <controlArray type="real" name="gain" index="0" enable="true" >
                         <label>Volume</label>
                         <value>1.0</value>
                       </controlArray>
                       <controlArray name="MuteParticipantsfromMix" index="0" type="boolean" enable="true">
                         <label>MuteParticipant</label>
                         <value>False</value>
                       </controlArray>
                      </stream>

                      <stream type="video" name="VideoOut" dir="out">
                             <control name="Layout" type="enumeration" enable="false" default="0">
                              <item label="1x1" value="0"/>
                              <item label="2x1" value="1"/>
                              <item label="1x2" value="2"/>
                              <item label="2x2" value="3"/>
                              <item label="3x3" value="4"/>
                            </control>
                            <control name="sourceSelector" type="enumeration" enable="false" default="0" >
                              <item label="Voice_Activated-Switching" value="0"/>
                              <item label="%participants[*]" value="*"/>
                            </control>
                        </stream> dir="out"/>
                   </role>

                   <role name="moderator">
                           <parameter type="integer" name="max-participants" value="0" min="0" max="1"/>
                     <parameter type="integer" name="max-audio-input-streams" min="1" max="1"/>
                     <parameter type="integer" name="max-video-input-streams" min="1" max="2"/>

                      <controlArray name="MuteInputAudio" type="enumeration" index="0" enable="true" >
                        <label>MuteInputAudio</label>
                        <value>False</value>
                      </controlArray>
                      <controlArray name="PauseInputVideo" type="enumeration" index="0" enable="true" >
                        <label>PauseInputVideo</label>
                        <value>False</value>
                      </controlArray> max="128"/>

                            <controlArray name="MuteOutputAudio" type="enumeration" index="0" enable="true" >
                        <label>MuteOutputAudio</label>
                         <value>False</value>
                       </controlArray>
                      <controlArray name="PauseOutputVideo" type="enumeration" index="0" enable="true">
                        <label>PauseOutputVideo</label>
                        <value>False</value>
                       </controlArray>
                      <stream
                              <LogicaStream type="audio" name="AudioIn" dir="in">
                       <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="true"> name="MainAudioIn" />
                              <control name ="pause-video" type="boolean" enable="true" >
                            <label>Pause-Video</label> name="mute" enable="false">
                                <label>MuteInputAudio</label>
                                <value>False</value>
                               </control>
                       </floor>
                      </stream>

                      <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out">
                         <control type="real" name="gain" enable="true" >
                          <label>Volume</label>
                          <value>1.0</value>
                        </control>
                      </stream>
                      <stream type="audio" name="AudioOut-Mix" dir="out">
                          <controlArray type="real" name="gain" index="0" enable="true" >
                         <label>Volume</label>
                         <value>1.0</value>
                            </controlArray>
                       <controlArray name="MuteParticipantsfromMix" index="0" type="boolean" enable="true">
                         <label>MuteParticipant</label>
                         <value>False</value>
                       </controlArray>
                      </stream>

                      <stream

                            <controlArray>
                             <LogicalStream type="video" name="VideoIn" dir="in">
                      <floor name="Send_video" floor_id="2" instances="1" enable="true" value="true"> name="MainVideoIn" />
                             <control name ="pause-video" type="boolean" name="pause-video" enable="false">
                           <label>Pause-Video</label>
                              <label>PauseInputVideo</label>
                              <value>False</value>
                             </control>
                      </floor>
                      </stream>

                      <stream type="video" name="VideoOut" dir="out">
                              <control name="Layout" type="enumeration" enable="true" default="0">
                               <item label="1x1" value="0"/>
                               <item label="2x1" value="1"/>
                               <item label="1x2" value="2"/>
                               <item label="2x2" value="3"/>
                               <item label="3x3" value="4"/>
                              </control>
                              <control name="sourceSelector" type="enumeration" enable="true" default="0" >
                               <item label="Voice_Activated-Switching" value="0"/>
                               <item label="%participants[*]" value="*"/>
                              </control>
                       </stream>

                 </role>
         </template>

   [Editors Note: Sidebar support to be added in next revision]

3.8  audio-text Template

3.8.1  Description

   The advance audio-text template enables a conference with audio and
   text with some advance controls to the participants of the
   conference.  The controls provided to the participants in this
   templates are similar to the one defined in advance audio and advance
   text templates.  An additional control called 'close-captioning'is
   defined for receiving a text stream for the audio mix from the
   conference.

3.8.2  Roles

   **/ same as defined in advance audio and text templates in section
   3.2.2 and 3.5.2 **/

3.8.3  Parameters

   **/ same parameter as defined in audio audio and text template. **/

3.8.4  Controls

   **/ This templates uses the same controls as defined in audio and
   text templates.  One new control is defined for this template. **/

3.8.4.1  close-captioning

   The close captioning control enables a participant to receive a text
   stream for the audio mix of the conference.  This control is useful
   in case the quality of the audio is not good or for hearing impaired
   participant.  The 'close-captioning' control consists of the
   following attributes:-

   name: The control is named 'close-captioning'

   type: boolean'.

   enable: The enable attribute specifies if access to the control is
   available to the client.  The value is of type 'boolean'.

   default: The default value for this control is false.

3.8.5  Streams

   **/ Same as in advance audio and text templates **/

3.8.6  XML Definition

   <template name="audio-text">
                    <parameter type="integer" name="max-participants" min="1" max="128"/>
                    <parameter type="integer" name="max-audio-streams" min="1" max="128"/>

                    <role name="Participant">
                        <parameter type="integer" name="max-participants" min="1" max="128"/>
                        <parameter type="integer" name="max-audio-input-streams" min="1" max="1"/>
                         <stream
                            </controlArray>

                            <controlArray>
                              <LogicalStream type="audio" name="AudioIn" dir="in">
                          <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="false"> name="MainAudioOut" />
                              <control type ="boolean" name="mute" enable="true">
                             <label>Mute-Audio</label>
                             <value>True</value>
                           </control>
                          </floor>
                         </stream>

                         <stream type="text" name="TextIn" dir="in">
                          <floor name="Right_to_inject" floor_id="2" instances="1" enable="true" value="false">
                           <control type ="boolean" name="block_incoming" enable="true">
                             <label>Block-Incoming-Text</label>
                             <value>True</value>
                           </control>
                          </floor>
                         </stream>

                         <stream type="text" name="TextOut" dir="out"/>

                         <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out">
                          <control type="real" name="gain" enable="true">
                            <label>Volume</label>
                            <value>1.0</value>
                           </control>
                          <control type="boolean" name="close-captioning" enable="false">
                            <label>Close-Captioning</label>
                               <label>MuteOutputAudio</label>
                               <value>False</value>
                              </control>
                         </stream>

                         <stream type="audio" name="AudioOut-Mix" dir="out">
                          <controlArray type="real" name="gain" index="0" enable="true" >
                           <label>Volume</label>
                           <value>1.0</value>
                         </controlArray>
                         <controlArray name="MuteParticipantsfromMix" index="0" type="boolean" enable="true">
                          <label>MuteParticipant</label>
                           <value>False</value>
                             </controlArray>

                            <controlArray>
                             <LogicalStream type="video" name="MainVideoOut" />
                             <control type="boolean" name="close-captioning" name="pause-video" enable="false">
                            <label>Close-Captioning</label>
                              <label>PauseOutputVideo</label>
                              <value>False</value>
                             </control>
                         </stream>

                    </role>
                    <role name="moderator">
                        <parameter type="integer" name="max-participants" min="0" max="1"/>
                        <parameter type="integer" name="max-audio-input-streams" min="1" max="1"/>

                         <controlArray name="MuteInputAudio" type="enumeration" index="0" enable="true" >
                        <label>MuteInputAudio</label>
                        <value>False</value>
                      </controlArray>
                      <controlArray name="MuteOutputAudio" type="enumeration" index="0" enable="true" >
                        <label>MuteOutputAudio</label>
                         <value>False</value>
                       </controlArray>

                         <controlArray name="StopOutputText" type="boolean" index="0" enable="true" >
                        <label>Stop-Output-Text</label>
                         <value>False</value>
                       </controlArray>
                      <controlArray name="StopInputText" type="boolean" index="0" enable="true" >
                        <label>StopInputText</label>
                         <value>False</value>
                            </controlArray>

                            <stream type="audio" name="AudioIn" dir="in">
                             <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="true">
                              <control type ="boolean" name="mute" enable="true">
                             <label>Mute-Audio</label>
                             <value>False</value>
                                 <label> Mute-Audio </label>
                                 <value>True</value>
                              </control>
                             </floor>

                            </stream>

                           <stream type="text" name="TextIn" type="video" name="VideoIn" dir="in">
                            <floor name="Right_to_inject" name="Send_video" floor_id="1" instances="1" enable="true" value="true">
                               <control type ="boolean" name="block_incoming" enable="true">
                             <label>Block-Incoming-Text</label> name ="pause-video" type="boolean" enable="true" >
                                  <label>Pause-Video</label>
                                  <value>False</value>
                                </control>
                            </floor>
                           </stream>

                            <stream type="text" name="TextOut" dir="out"/>

                         <stream type="audio" name="AudioOut-ActiveSpeaker" name="AudioOut" dir="out">
                             <control type="real" name="gain" enable="true">
                            <label>Volume</label>
                            <value>1.0</value>
                           </control>

                          <control type="boolean" name="close-captioning" enable="false">
                            <label>Close-Captioning</label>
                            <value>False</value>
                           </control>
                         </stream>
                         <stream type="audio" name="AudioOut-Mix" dir="out">
                          <controlArray type="real" name="gain" index="0" enable="true" >
                               <label>Volume</label>
                               <value>1.0</value>
                       </controlArray>
                       <controlArray name="MuteParticipantsfromMix" index="0" type="boolean" enable="true">
                         <label>MuteParticipant</label>
                         <value>False</value>
                       </controlArray>
                          <control type="boolean" name="close-captioning" enable="false">
                            <label>Close-Captioning</label>
                            <value>False</value>
                              </control>
                            </stream>

                            <stream type="video" name="VideoOut" dir="out"/>

                    </role>

   </template>

   [Editors Note: Sidebar support to be added in next revision]

3.9

4.7.8.  XML Schema Definition

   <?xml version="1.0" encoding="UTF-8"?>
      <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:role="urn:ietf:params:xml:ns:role-schema">

   <import namespace="urn:ietf:params:xml:ns:role-schema" />

   <xs:element name="basic-audio-video">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="role" minOccurs="1" maxOccurs="unbounded"/>
       </xs:sequence>
    </xs:complexType>
   </xs:element>

   <xs:element name="parameter">
     <xs:complexType>
       <xs:attribute name="type" type="parameter-defined" use="required"/>
       <xs:attribute name="name" type="parameter-name" use="required"/>
       <xs:attribute name="value" type="parameter-value" use="required"/>
       <xs:attribute name="min" type="xs:positiveInteger"  use="optional"/>
       <xs:attribute name="max" type="xs:positiveInteger" use="optional"/>
     </xs:complexType>
   </xs:element>

   <xs:simpleType name="parameter-value">
     <xs:union>
      <xs:simpleType>
       <xs:restriction base="xs:integer"/>
      </xs:simpleType>
      <xs:simpleType>
       <xs:restriction base="xs:real"/>
      </xs:simpleType>
      <xs:simpleType>
       <xs:restriction base="xs:enumeration"/>
      </xs:simpleType>
     </xs:union>
    </xs:simpleType>

   <xs:simpleType name="parameter-name">
     <xs:restriction base="xs:string">
       <xs:enumeration value="max-participants"/>
       <xs:enumeration value="max-audio-streams"/>
       <xs:enumeration value="max-video-streams"/>
     </xs:restriction>
   </xs:simpleType>

   <xs:simpleType name="parameter-defined">
     <xs:restriction base="xs:string">
       <xs:enumeration value="integer"/>
       <xs:enumeration value="real"/>
       <xs:enumeration value="enumeration"/>
     </xs:restriction>
   </xs:simpleType>

   <xs:element name="role">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="controlArray" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="stream" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="name" type="rtype" use="required"/>
     </xs:complexType>
   </xs:element>

      <xs:simpleType name="rtype">
        <xs:restriction base="role:role-type">
          <xs:enumeration value="Participant"/>
          <xs:enumeration value="Moderator"/>
        </xs:restriction>
      </xs:simpleType>

   <xs:element name="controlArray">
    <xs:complexType>
     <xs:sequence>
      <xs:element ref="LogicalStream" minoccurs="1" maxoccurs="unbounded" />
      <xs:element ref="control" minoccurs="1" maxoccurs="1"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>

   <xs:element name="stream">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="floor" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="control" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="type" type="media-type" use="required"/>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="dir" type="direction-type" use="required"/>
       <xs:attribute name="stream-id" type="xs:positiveInteger" use="optional"/>
     </xs:complexType>
   </xs:element>

   <xs:element name="LogicalStream">
    <xs:complexType>
     <xs:attribute name="type" type="media-type" />
     <xs:attribute name="name" type="logical-Streamtype" />
    <xs:complexType>
   </xs:element>

   <xs:simpleType name="logical-streamType >
    <xs:restriction base="xs:string">
     <xs:enumeration value="AudioIn"/>
     <xs:enumeration value="AudioOut"/>
     <xs:enumeration value="VideoIn"/>
     <xs:enumeration value="VideoOut"/>
   </xs:simpleType>

   <xs:simpleType name="media-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="audio"/>
       <xs:enumeration value="video"/>
      </xs:restriction>
   </xs:simpleType>

   <xs:simpleType name="direction-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="in"/>
       <xs:enumeration value="out"/>
     </xs:restriction>
   </xs:simpleType>

   <xs:element name="floor">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="control" minOccurs="1" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="floor_id" type="xs:positiveInteger" use="required"/>
       <xs:attribute name="instances" type="xs:positiveInteger" use="required"/>
       <xs:attribute name="enable" type="xs:boolean" use="required"/>
       <xs:attribute name="value" type="xs:boolean" use="required"/>
     </xs:complexType>
   </xs:element>

   <xs:element name="control">
      <xs:complexType>
        <element name="label" type="xs:string"/>
        <element name="value" type="control-value"/>
      </xs:complexType>
       <xs:attribute name="type" type="control-type" use="required"/>
       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="enable" type="xs:boolean" use="required"/>
   </xs:element>

   <xs:simpleType name="control-value">
     <xs:union>
      <xs:simpleType>
       <xs:restriction base="xs:real"/>
      </xs:simpleType>
      <xs:simpleType>
       <xs:restriction base="xs:boolean"/>
      </xs:simpleType>
     </xs:union>
    </xs:simpleType>

   <xs:simpleType name="control-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="real"/>
       <xs:enumeration value="boolean"/>
     </xs:restriction>
   </xs:simpleType>

   </xs:schema>

4.8.  Audio-text Template

   TODO

4.9.  Basic Multimedia Template

3.9.1  Description

   [Editors Note: To be added in the next revision]

3.9.2  Roles

3.9.3  Parameters

3.9.4  Controls

3.9.5  Streams

3.9.6  XML Definition

3.10

   TODO

4.10.  Advanced Multimedia Template

3.10.1  Description

   [Editors Note: To be added in the next revision]

3.10.2  Roles

3.10.3  Parameters

3.10.4  Controls

3.10.5  Streams

3.10.6  XML Definition

   [Editors Note: Sidebar support to be added in next revision]

4.

5.  Security Considerations

5.

6.  IANA Considerations

6.

7.  Acknowledgements

   Many thanks to the media policy design team members for helpful
   comments including Cullen Jennings, Alan Johnston, Roni Even, Brian
   Rosen and Mark Trayer.  Special thanks goes to Alan Johnston for his
   guidance.

7.

8.  References

7.1

8.1.  Normative References

   [1]  Barnes, M., "A Framework and Data Model for Centralized
        Conferencing", draft-ietf-xcon-framework-01 (work in progress),
        July 2005.

   [2]  Jennings, C., C. and B. Rosen, "Media Conference Server Control for
        XCON",
        draft-jennings-xcon-media-control-02 draft-jennings-xcon-media-control-03 (work in progress),
        February
        July 2005.

   [3]  Morgan, D. and O. Novo, "Role Definitions for Centralized
        Conferencing", draft-morgan-xcon-roles-00 (work in progress),
        October 2005.

7.2

   [4]  Novo, O., "A Common Conference Information Data Model for
        Centralized Conferencing  (XCON)",
        draft-novo-xcon-common-data-model-00 (work in progress),
        September 2005.

8.2.  Informative References
Authors' Addresses

   Chris Boulton
   Ubiquity Software Corporation
   Langstone Park
   Newport, South
   Building 3
   Wern Fawr Lane
   St Mellons, Cardiff, Wales  NP UK  CF3 5EA

   Email: cboulton@ubiquity.net

   Umesh Chandra
   Nokia Research Center
   6000 Connection Drive
   Irving, Texas  75063

   Email: Umesh.Chandra@nokia.com

Intellectual Property Statement

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

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

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Copyright Statement

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

Acknowledgment

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