[Search] [txt|pdfized|bibtex] [Tracker] [Email] [Diff1] [Diff2] [Nits]
Versions: 00 01 02                                                      
XCON Working Group                                            C. Boulton
Internet-Draft                             Ubiquity Software Corporation
Expires: October 15, 2005                                     U. Chandra
                                                   Nokia Research Center
                                                          April 13, 2005


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

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.

Copyright Notice

   Copyright (C) The Internet Society (2005).

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 manipulate 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
   conference instance.  The templates define conference properties like



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


Internet-Draft               Media Template                   April 2005


   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  . . . . . . . . . . . . . . . . . . . . .   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 . . . . . . . . . . . . . . . . . . . .   8
       3.1.7  XML Schema Definition  . . . . . . . . . . . . . . . .   9
     3.2  Advanced Audio Template  . . . . . . . . . . . . . . . . .  12
       3.2.1  Description  . . . . . . . . . . . . . . . . . . . . .  12
       3.2.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  12
       3.2.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  12
       3.2.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  13
       3.2.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  15
       3.2.6  XML Definition . . . . . . . . . . . . . . . . . . . .  16
     3.3  Basic-Video Template . . . . . . . . . . . . . . . . . . .  18
       3.3.1  Description  . . . . . . . . . . . . . . . . . . . . .  18
       3.3.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  18
       3.3.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  18
       3.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  . . . . . . . . . . . . . . . . . . . . . . . .  23
       3.4.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  23
       3.4.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  24
       3.4.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  25
       3.4.6  XML Definition . . . . . . . . . . . . . . . . . . . .  27
     3.5  Basic Text Template  . . . . . . . . . . . . . . . . . . .  28
       3.5.1  Description  . . . . . . . . . . . . . . . . . . . . .  28
       3.5.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  28
       3.5.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  29
       3.5.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  29



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


Internet-Draft               Media Template                   April 2005


       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  . . . . . . . . . . . . . . . . . . . . . . . .  33
       3.6.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  33
       3.6.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  33
       3.6.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  33
       3.6.6  XML Definition . . . . . . . . . . . . . . . . . . . .  33
     3.7  Audio-Video Template . . . . . . . . . . . . . . . . . . .  33
       3.7.1  Description  . . . . . . . . . . . . . . . . . . . . .  33
       3.7.2  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  33
       3.7.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  33
       3.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  . . . . . . . . . . . . . . . . . . . . . . . .  37
       3.8.3  Parameters . . . . . . . . . . . . . . . . . . . . . .  37
       3.8.4  Controls . . . . . . . . . . . . . . . . . . . . . . .  37
       3.8.5  Streams  . . . . . . . . . . . . . . . . . . . . . . .  37
       3.8.6  XML Definition . . . . . . . . . . . . . . . . . . . .  37
     3.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   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.   Security Considerations  . . . . . . . . . . . . . . . . . .  41
   5.   IANA Considerations  . . . . . . . . . . . . . . . . . . . .  41
   6.   Acknowledgements . . . . . . . . . . . . . . . . . . . . . .  41
   7.   References . . . . . . . . . . . . . . . . . . . . . . . . .  41
     7.1  Normative References . . . . . . . . . . . . . . . . . . .  41
     7.2  Informative References . . . . . . . . . . . . . . . . . .  41
        Authors' Addresses . . . . . . . . . . . . . . . . . . . . .  41
        Intellectual Property and Copyright Statements . . . . . . .  43






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


Internet-Draft               Media Template                   April 2005


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 October 15, 2005                [Page 4]


Internet-Draft               Media Template                   April 2005


   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 October 15, 2005                [Page 5]


Internet-Draft               Media Template                   April 2005


   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 October 15, 2005                [Page 6]


Internet-Draft               Media Template                   April 2005


   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 October 15, 2005                [Page 7]


Internet-Draft               Media Template                   April 2005


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

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

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



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


Internet-Draft               Media Template                   April 2005


                        <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" dir="out">
                       <control type="real" name="gain" enable="true" >
                         <label>Volume</label>
                         <value>1.0</value>
                        </control>
                      </stream>
                 </role>
   </template>



3.1.7  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">


   <xs:element name="template-basic-audio">
     <xs:complexType>
       <xs:sequence>
         <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
         <xs:element ref="role" minOccurs="0" 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="min" type="xs:positiveInteger"  use="optional"/>
       <xs:attribute name="max" type="xs:positiveInteger" use="optional"/>



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


Internet-Draft               Media Template                   April 2005


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

   <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" use="required"/>
     </xs:complexType>
   </xs:element>

   <xs:simpleType name="role-type">
     <xs:restriction base="xs:string">
       <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: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"/>



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


Internet-Draft               Media Template                   April 2005


         <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:complexType>
   </xs:element>

   <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>
       <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-type">
     <xs:restriction base="xs:string">
       <xs:enumeration value="integer"/>
       <xs:enumeration value="real"/>
       <xs:enumeration value="boolean"/>



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


Internet-Draft               Media Template                   April 2005


     </xs:restriction>
   </xs:simpleType>

   </xs:schema>



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



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


Internet-Draft               Media Template                   April 2005


   "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



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


Internet-Draft               Media Template                   April 2005


   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



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


Internet-Draft               Media Template                   April 2005


   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:




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


Internet-Draft               Media Template                   April 2005


   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>




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


Internet-Draft               Media Template                   April 2005


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



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


Internet-Draft               Media Template                   April 2005


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




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


Internet-Draft               Media Template                   April 2005


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



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


Internet-Draft               Media Template                   April 2005


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




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


Internet-Draft               Media Template                   April 2005


   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 October 15, 2005               [Page 21]


Internet-Draft               Media Template                   April 2005


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>




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


Internet-Draft               Media Template                   April 2005


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.

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.




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


Internet-Draft               Media Template                   April 2005


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

   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'



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


Internet-Draft               Media Template                   April 2005


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



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


Internet-Draft               Media Template                   April 2005


   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

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



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


Internet-Draft               Media Template                   April 2005


   <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"/>
                     <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">
                          <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>
                 </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" index="0" type="boolean" enable="true">
                       <label>PauseInputVideo</label>



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


Internet-Draft               Media Template                   April 2005


                        <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">
                           <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]

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



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


Internet-Draft               Media Template                   April 2005


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

   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.





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


Internet-Draft               Media Template                   April 2005


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:

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





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


Internet-Draft               Media Template                   April 2005


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 October 15, 2005               [Page 31]


Internet-Draft               Media Template                   April 2005


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

                      <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="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"  enable="true">
                            <label>Block-Incoming-Text</label>
                            <value>False</value>
                         </control>
                        </floor>
                      </stream>

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

                 </role>



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


Internet-Draft               Media Template                   April 2005


         </template>



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



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


Internet-Draft               Media Template                   April 2005


               <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">
                         <control type ="boolean" name="mute" enable="true">
                           <label>Mute-Audio</label>
                           <value>True</value>
                         </control>
                        </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" >
                            <label>Pause-Video</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>

                      <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"/>



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


Internet-Draft               Media Template                   April 2005


                              <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" 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>
                      <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 type="audio" name="AudioIn" dir="in">
                       <floor name="Send_audio" 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="audio" name="AudioOut-ActiveSpeaker" dir="out">
                         <control type="real" name="gain" enable="true" >
                          <label>Volume</label>
                          <value>1.0</value>
                        </control>
                      </stream>



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


Internet-Draft               Media Template                   April 2005


                      <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="VideoIn" dir="in">
                      <floor name="Send_video" floor_id="2" instances="1" enable="true" value="true">
                         <control name ="pause-video" type="boolean" enable="false">
                           <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="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



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


Internet-Draft               Media Template                   April 2005


   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"/>



Boulton & Chandra       Expires October 15, 2005               [Page 37]


Internet-Draft               Media Template                   April 2005


                         <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="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>
                            <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>

                    </role>




Boulton & Chandra       Expires October 15, 2005               [Page 38]


Internet-Draft               Media Template                   April 2005


                    <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>
                           </control>
                          </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" enable="true">
                             <label>Block-Incoming-Text</label>
                             <value>False</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>



Boulton & Chandra       Expires October 15, 2005               [Page 39]


Internet-Draft               Media Template                   April 2005


                          <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>
                     </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]




Boulton & Chandra       Expires October 15, 2005               [Page 40]


Internet-Draft               Media Template                   April 2005


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.  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 Conference Server Control for XCON",
        draft-jennings-xcon-media-control-02 (work in progress),
        February 2005.

7.2  Informative References


Authors' Addresses

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

   Email: cboulton@ubiquity.net








Boulton & Chandra       Expires October 15, 2005               [Page 41]


Internet-Draft               Media Template                   April 2005


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

   Email: Umesh.Chandra@nokia.com













































Boulton & Chandra       Expires October 15, 2005               [Page 42]


Internet-Draft               Media Template                   April 2005


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.




Boulton & Chandra       Expires October 15, 2005               [Page 43]