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



                    Media Policy Templates for XCON
                  draft-boulton-xcon-media-template-00


Status of this Memo


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


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


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


Copyright Notice


   Copyright (C) The Internet Society (2004).


Abstract


   Media Policy control is the mechanism by which participants of a
   conference manipulates the media in the conference.  The controls
   provided to conference participants to mainpulate media enhances
   participants experience in the conference.  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




Boulton & Chandra        Expires April 15, 2005                 [Page 1]


Internet-Draft               Media Template                 October 2004



   conference instance.  The templates define a conference properties
   like what streams are supported, what controls are available etc.


   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  . . . . . . . . . . . . . . . . . . . . .   4
       3.1.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .   4
       3.1.3  Parameters . . . . . . . . . . . . . . . . . . . . . .   5
       3.1.4  Controls . . . . . . . . . . . . . . . . . . . . . . .   5
       3.1.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .   7
       3.1.6  XML Definition . . . . . . . . . . . . . . . . . . . .   9
     3.2  Advanced Audio Template  . . . . . . . . . . . . . . . . .   9
       3.2.1  Description  . . . . . . . . . . . . . . . . . . . . .   9
       3.2.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  10
       3.2.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  10
       3.2.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  10
       3.2.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  13
       3.2.6  XML Definition . . . . . . . . . . . . . . . . . . . .  14
     3.3  Basic-Video Template . . . . . . . . . . . . . . . . . . .  15
       3.3.1  Description  . . . . . . . . . . . . . . . . . . . . .  15
       3.3.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  15
       3.3.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  15
       3.3.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  16
       3.3.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  17
       3.3.6  XML Definition . . . . . . . . . . . . . . . . . . . .  19
     3.4  Advanced Video Template  . . . . . . . . . . . . . . . . .  19
       3.4.1  Description  . . . . . . . . . . . . . . . . . . . . .  19
       3.4.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  20
       3.4.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  20
       3.4.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  20
       3.4.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  22
       3.4.6  XML Definition . . . . . . . . . . . . . . . . . . . .  23
     3.5  Basic Text Template  . . . . . . . . . . . . . . . . . . .  25
       3.5.1  Description  . . . . . . . . . . . . . . . . . . . . .  25
       3.5.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  25
       3.5.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  25
       3.5.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  25
       3.5.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  26
       3.5.6  XML Definition . . . . . . . . . . . . . . . . . . . .  28
     3.6  Advanced Text Template . . . . . . . . . . . . . . . . . .  28
       3.6.1  Description  . . . . . . . . . . . . . . . . . . . . .  28
       3.6.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  29




Boulton & Chandra        Expires April 15, 2005                 [Page 2]


Internet-Draft               Media Template                 October 2004



       3.6.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  29
       3.6.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  29
       3.6.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  29
       3.6.6  XML Definition . . . . . . . . . . . . . . . . . . . .  29
     3.7  Audio-Video Template . . . . . . . . . . . . . . . . . . .  29
       3.7.1  Description  . . . . . . . . . . . . . . . . . . . . .  29
       3.7.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  29
       3.7.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  29
       3.7.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  29
       3.7.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  29
       3.7.6  XML Definition . . . . . . . . . . . . . . . . . . . .  29
     3.8  audio-text Template  . . . . . . . . . . . . . . . . . . .  31
       3.8.1  Description  . . . . . . . . . . . . . . . . . . . . .  31
       3.8.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  32
       3.8.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  32
       3.8.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  32
       3.8.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  32
       3.8.6  XML Definition . . . . . . . . . . . . . . . . . . . .  32
     3.9  Basic Multimedia Template  . . . . . . . . . . . . . . . .  34
       3.9.1  Description  . . . . . . . . . . . . . . . . . . . . .  34
       3.9.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  34
       3.9.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  34
       3.9.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  34
       3.9.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  34
       3.9.6  XML Definition . . . . . . . . . . . . . . . . . . . .  34
     3.10   Advanced Multimedia Template . . . . . . . . . . . . . .  34
       3.10.1   Description  . . . . . . . . . . . . . . . . . . . .  34
       3.10.2   Roles  . . . . . . . . . . . . . . . . . . . . . . .  34
       3.10.3   Parameters . . . . . . . . . . . . . . . . . . . . .  34
       3.10.4   Controls . . . . . . . . . . . . . . . . . . . . . .  34
       3.10.5   Streams  . . . . . . . . . . . . . . . . . . . . . .  35
       3.10.6   XML Definition . . . . . . . . . . . . . . . . . . .  35
   4.   Security Considerations  . . . . . . . . . . . . . . . . . .  35
   5.   IANA Considerations  . . . . . . . . . . . . . . . . . . . .  35
   6.   Acknowledgements . . . . . . . . . . . . . . . . . . . . . .  35
   7.   References . . . . . . . . . . . . . . . . . . . . . . . . .  35
   7.1  Normative References . . . . . . . . . . . . . . . . . . . .  35
   7.2  Informative References . . . . . . . . . . . . . . . . . . .  35
        Authors' Addresses . . . . . . . . . . . . . . . . . . . . .  35
        Intellectual Property and Copyright Statements . . . . . . .  36












Boulton & Chandra        Expires April 15, 2005                 [Page 3]


Internet-Draft               Media Template                 October 2004



1.  Introduction


   The mechanism described in the 'Media Conference Server Control[1]
   draft defines a protocol between the centralized conference server
   and 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].


   This document supplies a a set of core media templates that should be
   used in conjunction with [1].  The templates specified SHOULD be
   supported at a minimum.


   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.  The
   document has been released to gain early feedback.


2.  Guidelines for writers of Media Policy Templates


   [Editors Note: TODO]


3.  Templates


3.1  Basic-Audio Template


3.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  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].


   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




Boulton & Chandra        Expires April 15, 2005                 [Page 4]


Internet-Draft               Media Template                 October 2004



   in a conference instance.  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.1.3  Parameters


   max-particpants: 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 minimum value permitted is
   "1" and the maximum value permitted is "128".


   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 minimum value permitted is "1" and the maximum
   value permitted is "128".


3.1.4  Controls


3.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, 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




Boulton & Chandra        Expires April 15, 2005                 [Page 5]


Internet-Draft               Media Template                 October 2004



   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.1.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 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 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.1.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.1.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




Boulton & Chandra        Expires April 15, 2005                 [Page 6]


Internet-Draft               Media Template                 October 2004



   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.1.5  Streams


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


3.1.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.1.5.1.1  Floor


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


3.1.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.





Boulton & Chandra        Expires April 15, 2005                 [Page 7]


Internet-Draft               Media Template                 October 2004



3.1.5.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'.









































Boulton & Chandra        Expires April 15, 2005                 [Page 8]


Internet-Draft               Media Template                 October 2004



3.1.6  XML Definition



   <template name="basic-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"/>


                       <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" default="true" enable="true"/>
                        </floor>
                      </stream>


                      <stream type="audio" name="AudioOut" dir="out">
                       <control type=real name="gain" enable="true" default=1.0/>
                      </role>


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


                      <controlArray name="MuteInputAudio[1:%max-participants]" type="enumeration" enable="true" default="false"/>
                      <controlArray name="MuteOutputAudio[1:%max-participants]" type="enumeration" enable="true" default="false"/>


                      <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" default="false" enable="true"/>
                       </floor>
                      </stream>


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





3.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




Boulton & Chandra        Expires April 15, 2005                 [Page 9]


Internet-Draft               Media Template                 October 2004



   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:-





Boulton & Chandra        Expires April 15, 2005                [Page 10]


Internet-Draft               Media Template                 October 2004



   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'.




Boulton & Chandra        Expires April 15, 2005                [Page 11]


Internet-Draft               Media Template                 October 2004



   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




Boulton & Chandra        Expires April 15, 2005                [Page 12]


Internet-Draft               Media Template                 October 2004



   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




Boulton & Chandra        Expires April 15, 2005                [Page 13]


Internet-Draft               Media Template                 October 2004



   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" default="true" enable="true"/>
                        </floor>
                      </stream>


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


                      <stream type="audio" name="AudioOut-Mix" dir="out">
                       <controlArray type="real" name="Individual_Stream_gain[1:%participant]" enable="true" default="1.0"/>
                       <controlArray name=MuteParticipantsfromMix[1:%maxparticipants]" type="boolean" enable="true" default="false"/>
                      </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[1:%maxparticpants]" enable ="true" type="boolean" value="false"/>
                      <controlArray name="MuteOutputAudio[1:%max-participants]" type="enumeration" enable="true" default="false"/>





Boulton & Chandra        Expires April 15, 2005                [Page 14]


Internet-Draft               Media Template                 October 2004



                      <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" default="false" enable="true"/>
                       </floor>
                      </stream>


                      <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out">
                       <control type=real name="gain" enable="true" default=1.0/>
                      </stream>
                      <stream type="audio" name="AudioOut-Mix" dir="out">
                       <controlArray type="real" name="Individual_Stream_gain[1:%participant]" enable="true" default="1.0"/>
                       <controlArray name=MuteParticipantsfromMix[1:%maxparticipants]" type="boolean" enable="true" default="false"/>
                      </stream>
                 </role>
         </template>



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


3.3  Basic-Video Template


3.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 template also defines a
   moderator role who has the ability pause a users video input.


3.3.2  Roles


   Participant: The basic video template specifies the role of
   'Participant' to signify an entry level user with no priviledges 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  Parameters


   max-participants: The 'max-participants' parameter specifies the
   maximum number of entities that are permitted to be involved in an




Boulton & Chandra        Expires April 15, 2005                [Page 15]


Internet-Draft               Media Template                 October 2004



   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: 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  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 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' 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




Boulton & Chandra        Expires April 15, 2005                [Page 16]


Internet-Draft               Media Template                 October 2004



   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 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 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 can choose to set
   this control temporaraly till 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 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 is false indicating 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




Boulton & Chandra        Expires April 15, 2005                [Page 17]


Internet-Draft               Media Template                 October 2004



   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 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 for this stream is 'VideoOut'.


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



















Boulton & Chandra        Expires April 15, 2005                [Page 18]


Internet-Draft               Media Template                 October 2004



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" default="true"/>
                       </floor>


                      <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[1:%max-participant]" type="enumeration" enable="true" default="false"/>
                     <controlArray name="PauseOutputAudio[1:%max-participants]" type="enumeration" enable="true" default="false"/>


                     <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" default="false" enable="true" />
                      <floor>


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




3.4  Advanced Video Template


3.4.1  Description


   The 'Advanced-Video Template' builds on 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.




Boulton & Chandra        Expires April 15, 2005                [Page 19]


Internet-Draft               Media Template                 October 2004



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 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' and 'Layout'
   controls are set to 'true'.


3.4.3  Parameters


   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: 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 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  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'.




Boulton & Chandra        Expires April 15, 2005                [Page 20]


Internet-Draft               Media Template                 October 2004



   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 is used in conjunction with an output video
   stream to define the video layout configuration.  It has a
   'enumeration' value which provides various tile formats for video
   display.  The 'Layout' control consists 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 the control is
   available to the client.  The value is 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 output
   video stream to define which video media stream are contributing to
   the output mix.  It has a 'enumeration' value which provides a list
   format containing the media participants.  The List element is
   described in [1].  The 'SourceSelector' control consists of the
   following attributes:-


   name: The control is named 'SourceSelector'


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


   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 '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




Boulton & Chandra        Expires April 15, 2005                [Page 21]


Internet-Draft               Media Template                 October 2004



   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 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 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.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 can choose to set
   this control temporaraly until 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 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 is false indicating that all participant get the
   text stream.


3.4.5  Streams


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


3.4.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.4.5.1.1  Floor






Boulton & Chandra        Expires April 15, 2005                [Page 22]


Internet-Draft               Media Template                 October 2004



3.4.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
   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 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  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  XML Definition



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



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




Boulton & Chandra        Expires April 15, 2005                [Page 23]


Internet-Draft               Media Template                 October 2004



                     <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="false" default="true"/>
                       </floor>
                      </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="1" >
                           <item label="%participants[*]" value="*"/>
                         </control>
                     </stream>
                 </role>
                 <role name="Moderator">
                     <parameter type="integer" name="max-participants" min="0" max="128"/>
                     <parameter type="integer" name="max-video-input-streams" min="0" max="128"/>


                     <controlArray name="PauseInputVideo[1:%maxparticipants]" type="boolean" enable="true" default="false">
                     <controlArray name="PauseOutputAudio[1:%max-participants]" type="enumeration" enable="true" default="false"/>


                      <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" default="false" enable="true" />
                      <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>
                  </role>
      </template>



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




Boulton & Chandra        Expires April 15, 2005                [Page 24]


Internet-Draft               Media Template                 October 2004



3.5  Basic Text Template


3.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 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  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].


   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 any participant
   in a conference instance.  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 ithe mpact of attribute settings.


3.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  Controls


3.5.4.1  block-incoming


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


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




Boulton & Chandra        Expires April 15, 2005                [Page 25]


Internet-Draft               Media Template                 October 2004



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


   default: Indicates the default value for the 'block-incoming' 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 the moderator to block the outgoing text
   stream to a particular participant if the participant doesnt follow
   conference rules.  The moderator can choose to set this control
   temporaraly till the participant follows conference rules.  The
   controlarray enables a specific outgoing text stream to be stopped 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 getting any text media.  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.5.4.3  StopinputText


   This controlarray is used by the moderator to block the incoming text
   stream from a particular participant uf the participant doesnt follow
   the conference rules.  This will result in the participants input
   text media not to distributed to other participants in conference
   mix.  The controlarray enables a specific incoming 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 of '1',
   its text media not being mixed.  The control type is boolean  and the
   default value of the control when not set is false indicating that
   all participant text stream is mixed.


3.5.5  Streams


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





Boulton & Chandra        Expires April 15, 2005                [Page 26]


Internet-Draft               Media Template                 October 2004



3.5.5.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  Floor


3.5.5.1.1.1  Right_to_inject


   The 'Right_to_inject' 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 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  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'.






Boulton & Chandra        Expires April 15, 2005                [Page 27]


Internet-Draft               Media Template                 October 2004



3.5.6  XML Definition



   <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" min="1" max="128"/>


                      <stream type="text" name="TextIn" dir="in">
                        <floor name="Right_to_inject" floor_id="1" instances="1" enable="true" value="false">
                         <control type ="boolean" name="block_incoming" default="true" enable="true"/>
                        </floor>
                      </stream>


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


                 </role>


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


                      <controlArray name="StopOutputText[1:%maxparticipants]" type="boolean" enable="true" default="false"/>
                      <ControlArray name="StopInputText[1:%maxparticipants]" type="boolean" enable="true" default="false"/>


                      <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" default="false" enable="true"/>
                        </floor>
                      </stream>


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


                 </role>
         </template>




3.6  Advanced Text Template


3.6.1  Description


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







Boulton & Chandra        Expires April 15, 2005                [Page 28]


Internet-Draft               Media Template                 October 2004



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  Audio-Video Template


3.7.1  Description


   The advance audio-video template enables a conference with audio and
   video and gives 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
   video templates.


3.7.2  Roles


3.7.3  Parameters


3.7.4  Controls


3.7.5  Streams



3.7.6  XML Definition



   <template name="audio-video">
               <parameter type="integer" name="max-participants" min="1" max="128"/>
               <parameter type="integer" name="max-audio-streams" 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-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">




Boulton & Chandra        Expires April 15, 2005                [Page 29]


Internet-Draft               Media Template                 October 2004



                         <control type ="boolean" name="mute" default="true" enable="true"/>
                        </floor>
                      </stream>


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


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


                      <stream type="audio" name="AudioOut-Mix" dir="out">
                          <controlArray type="real" name="gainofeachparticipant[1:%participant]" enable="true" default="1.0"/>
                          <controlArray name=MuteParticipantsfromMix[1:%maxparticipant]" type="boolean" enable="true" default="false"/>
                      </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>


                      </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"/>
                     <parameter type="integer" name="max-video-input-streams" min="1" max="2"/>


                      <controlArray name="MuteInputAudio[1:%max-participant]" type="enumeration" enable="true" default="false"/>
                      <controlArray name="PauseInputVideo[1:%max-participant]" type="enumeration" enable="true" default="false"/>
                      <controlArray name="PauseOutputAudio[1:%max-participants]" type="enumeration" enable="true" default="false"/>
                      <controlArray name="PauseOutputVideo[1:%max-participants]" type="enumeration" enable="true" default="false"/>


                      <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" default="false" enable="true"/>
                       </floor>




Boulton & Chandra        Expires April 15, 2005                [Page 30]


Internet-Draft               Media Template                 October 2004



                      </stream>


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


                      <stream type="audio" name="AudioOut-Mix" dir="out">
                          <controlArray type="real" name="gainofeachparticipant[1:%max-participant]" enable="true" default="1.0"/>
                          <controlArray name=MuteParticipantsfromMix[1:%max-participants]" type="boolean" enable="true" default="false"/>
                      </stream>


                      <stream type="video" name="VideoIn" dir="in">
                      <floor name="Send_video" floor_id="2" instances="1" enable="true" value="true">
                         <control name ="pause-video" type="boolean" default="false" enable="false" />
                      <floor>


                      <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.






Boulton & Chandra        Expires April 15, 2005                [Page 31]


Internet-Draft               Media Template                 October 2004



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 type="audio" name="AudioIn" dir="in">




Boulton & Chandra        Expires April 15, 2005                [Page 32]


Internet-Draft               Media Template                 October 2004



                          <floor name="Send_audio" floor_id="1" instances="1" enable="true" value="false">
                           <control type ="boolean" name="mute" default="true" enable="true"/>
                          </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" default="true" enable="true"/>
                          </floor>
                         </stream>


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


                         <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out">
                          <control type="real" name="gain" enable="true" default=1.0/>
                          <control type="boolean" name="close-captioning" enable="false" default="false"/>
                         </stream>


                         <stream type="audio" name="AudioOut-Mix" dir="out">
                          <controlArray type="real" name=Individual_stream_gain[1:%participant]" enable="true" default="1.0"/>
                          <controlArray name=MuteParticipantsfromMix[1:%maxparticipants]" type="boolean" enable="true" default="false"/>
                          <control type="boolean" name="close-captioning" enable="false" default="false"/>
                         </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[1:%maxparticpants]" enable ="true" type="boolean" value="false"/>
                         <controlArray name="MuteOutputAudio[1:%maxparticpants]" enable ="true" type="boolean" value="false"/>


                         <controlArray name="StopOutputText[1:%maxparticipants]" type="boolean" enable="true" default="false"/>
                         <ControlArray name="StopInputText[1:%maxparticipants]" type="boolean" enable="true" default="false"/>



                         <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" default="false" enable="true"/>
                          </floor>
                         </stream>


                         <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" default="false" enable="true"/>
                          </floor>
                         </stream>




Boulton & Chandra        Expires April 15, 2005                [Page 33]


Internet-Draft               Media Template                 October 2004



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


                         <stream type="audio" name="AudioOut-ActiveSpeaker" dir="out">
                          <control type=real name="gain" enable="true" default=1.0/>
                          <control type="boolean" name="close-captioning" enable="false" default="false"/>
                         </stream>
                         <stream type="audio" name="AudioOut-Mix" dir="out">
                          <controlArray type="real" name="Individual_stream_gain[1:%participant]" enable="true" default="1.0"/>
                          <controlArray name=MuteParticipantsfromMix[1:%maxparticipants]" type="boolean" enable="true" default="false"/>
                          <control type="boolean" name="close-captioning" enable="false" default="false"/>
                         </stream>
                     </role>
            </template>



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


3.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  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







Boulton & Chandra        Expires April 15, 2005                [Page 34]


Internet-Draft               Media Template                 October 2004



3.10.5  Streams



3.10.6  XML Definition


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


4.  Security Considerations


5.  IANA Considerations


6.  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.  References


7.1  Normative References


   [1]  Jennings, C., "Media Mixer Control for XCON",
        draft-jennings-xcon-media-control-01 (work in progress), July
        2004.


7.2  Informative References



Authors' Addresses


   Chris Boulton
   Ubiquity Software Corporation
   Langstone Park
   Newport, South Wales  NP


   EMail: cboulton@ubiquity.net



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


   EMail: Umesh.Chandra@nokia.com







Boulton & Chandra        Expires April 15, 2005                [Page 35]


Internet-Draft               Media Template                 October 2004



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 (2004).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.



Acknowledgment


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





Boulton & Chandra        Expires April 15, 2005                [Page 36]