Internet DRAFT - draft-boulton-xcon-media-template

draft-boulton-xcon-media-template






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


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

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

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

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on April 26, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   The xcon framework[1] specifies the object model for centralized
   conferencing.  The Conference Object, which is defined in the
   framework data model, comprises of two distinct components - the
   Common Conference Information and Conference Templates.  This memo
   specifies the Conference Templates that describe various common
   conference scenarios.  The templates define controls (and media
   properties like type of media supported, what streams are supported



Boulton & Chandra        Expires April 26, 2006                 [Page 1]

Internet-Draft               Media Template                 October 2005


   etc) through which participants of the conference can manipulate the
   media they receive from the conference server.  This document
   provides a minimum set of media templates that can be instantiated
   during conference creation and manipulated during the life cycle of a
   conference instance.

   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.  XML Conventions and Practices  . . . . . . . . . . . . . . . .  4
   3.  Guidelines for writers of Media Policy Templates . . . . . . .  5
   4.  Templates  . . . . . . . . . . . . . . . . . . . . . . . . . .  5
     4.1.  Basic-Audio Template . . . . . . . . . . . . . . . . . . .  5
       4.1.1.  Description  . . . . . . . . . . . . . . . . . . . . .  5
       4.1.2.  Roles  . . . . . . . . . . . . . . . . . . . . . . . .  5
       4.1.3.  Parameters . . . . . . . . . . . . . . . . . . . . . .  6
       4.1.4.  Controls . . . . . . . . . . . . . . . . . . . . . . .  6
       4.1.5.  Control Arrays . . . . . . . . . . . . . . . . . . . .  7
       4.1.6.  Streams  . . . . . . . . . . . . . . . . . . . . . . .  8
       4.1.7.  Blueprint - XML example  . . . . . . . . . . . . . . .  9
       4.1.8.  XML Schema Definition  . . . . . . . . . . . . . . . . 11
     4.2.  Advanced Audio Template  . . . . . . . . . . . . . . . . . 14
     4.3.  Basic-Video Template . . . . . . . . . . . . . . . . . . . 14
       4.3.1.  Description  . . . . . . . . . . . . . . . . . . . . . 14
       4.3.2.  Roles  . . . . . . . . . . . . . . . . . . . . . . . . 14
       4.3.3.  Parameters . . . . . . . . . . . . . . . . . . . . . . 15
       4.3.4.  Controls . . . . . . . . . . . . . . . . . . . . . . . 15
       4.3.5.  Control Array  . . . . . . . . . . . . . . . . . . . . 16
       4.3.6.  Streams  . . . . . . . . . . . . . . . . . . . . . . . 16
       4.3.7.  Blueprint - XML Example  . . . . . . . . . . . . . . . 17
       4.3.8.  XML Schema Definition  . . . . . . . . . . . . . . . . 19
     4.4.  Advanced Video Template  . . . . . . . . . . . . . . . . . 22
     4.5.  Basic Text Template  . . . . . . . . . . . . . . . . . . . 22
       4.5.1.  Description  . . . . . . . . . . . . . . . . . . . . . 22
       4.5.2.  Roles  . . . . . . . . . . . . . . . . . . . . . . . . 22
       4.5.3.  Parameters . . . . . . . . . . . . . . . . . . . . . . 23
       4.5.4.  Controls . . . . . . . . . . . . . . . . . . . . . . . 23
       4.5.5.  Control Array  . . . . . . . . . . . . . . . . . . . . 23
       4.5.6.  Streams  . . . . . . . . . . . . . . . . . . . . . . . 23
       4.5.7.  Blueprint - XML Example  . . . . . . . . . . . . . . . 25



Boulton & Chandra        Expires April 26, 2006                 [Page 2]

Internet-Draft               Media Template                 October 2005


       4.5.8.  XML Schema Definition  . . . . . . . . . . . . . . . . 26
     4.6.  Advanced Text Template . . . . . . . . . . . . . . . . . . 29
     4.7.  Basic Audio-Video Template . . . . . . . . . . . . . . . . 29
       4.7.1.  Description  . . . . . . . . . . . . . . . . . . . . . 29
       4.7.2.  Roles  . . . . . . . . . . . . . . . . . . . . . . . . 29
       4.7.3.  Parameters . . . . . . . . . . . . . . . . . . . . . . 30
       4.7.4.  Controls . . . . . . . . . . . . . . . . . . . . . . . 30
       4.7.5.  Control Array  . . . . . . . . . . . . . . . . . . . . 30
       4.7.6.  Streams  . . . . . . . . . . . . . . . . . . . . . . . 30
       4.7.7.  Blueprint - XML Example  . . . . . . . . . . . . . . . 31
       4.7.8.  XML Schema Definition  . . . . . . . . . . . . . . . . 33
     4.8.  Audio-text Template  . . . . . . . . . . . . . . . . . . . 37
     4.9.  Basic Multimedia Template  . . . . . . . . . . . . . . . . 37
     4.10. Advanced Multimedia Template . . . . . . . . . . . . . . . 37
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 37
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 37
   7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 37
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 37
     8.1.  Normative References . . . . . . . . . . . . . . . . . . . 37
     8.2.  Informative References . . . . . . . . . . . . . . . . . . 38
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 39
   Intellectual Property and Copyright Statements . . . . . . . . . . 40





























Boulton & Chandra        Expires April 26, 2006                 [Page 3]

Internet-Draft               Media Template                 October 2005


1.  Introduction

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

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

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

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

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


2.  XML Conventions and Practices

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



Boulton & Chandra        Expires April 26, 2006                 [Page 4]

Internet-Draft               Media Template                 October 2005


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


3.  Guidelines for writers of Media Policy Templates

   [Editors Note: TODO]


4.  Templates

4.1.  Basic-Audio Template

4.1.1.  Description

   The Basic-Audio template can be used to achieve the simplest form of
   audio interaction between multiple voice input streams from
   participating entities.  The output stream consists mix of all the
   participants audio excluding the input stream of the receiving
   entity.  If a participant needs to talk in the conference, it first
   needs to get a floor from the moderator of the conference.  The floor
   control can be enabled or disabled by the moderator during the
   conference creation stage.  When the floor control is not enabled
   then any participant can speak in the conference at any time.  In
   this conference very basic controls like muting the output stream,
   changing the volume of the output stream are provided to end
   participants.  If more advanced control (or user defined control) are
   required, it is recommended to use the advance-audio template.

4.1.2.  Roles

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

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

4.1.2.1.  Participant

   The basic audio template specifies the role of 'Participant' to



Boulton & Chandra        Expires April 26, 2006                 [Page 5]

Internet-Draft               Media Template                 October 2005


   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.  This is
   achieved during the blueprint creation phase by setting the enable
   attribute of the control element to TRUE.

4.1.2.2.  Moderator

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

4.1.3.  Parameters

4.1.3.1.  max-participants

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

4.1.3.2.  max-audio-streams

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

4.1.4.  Controls

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

   Issue : For the basic audio template, we are restricting the type of
   the control to boolean and real (for mute and gain control).  The



Boulton & Chandra        Expires April 26, 2006                 [Page 6]

Internet-Draft               Media Template                 October 2005


   motivation for that was you cannot define new control types in the
   basic-audio template.  Should we keep the restriction or let the
   capability to define new control in a basic-audio template.

4.1.4.1.  mute

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

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

   name: The control is named 'mute'.

   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 Control also consists of the following additional elements:-

   label: Provides a Control label that can be rendered to the client.
   For the Blue-Print example the vlaue is 'Mute-Audio'.

   value: Provides a default value for the Control.  For the Blue-Print
   example the value is 'True'.

4.1.4.2.  gain

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

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

   name: The control is named 'gain'.

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

   The Control also consists of the following additional elements:-

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

4.1.5.  Control Arrays

   The definition for Templates is derived from [2] which permits for



Boulton & Chandra        Expires April 26, 2006                 [Page 7]

Internet-Draft               Media Template                 October 2005


   Control Arrays.  The controlArray defines a control for an logical
   stream.  In the actual conference object, there would be one instance
   of control for each of the stream in the logical stream.  Logical
   streams are defined in [2].  With the controlArray an control is
   defined which applies to all the streams which are contributing to
   the logical stream.  The logical stream element has an attribute type
   which defines the media type of the logical stream.  The attribute
   name in the Logicalstream has a semantic meaning.  The conference
   server based on the name of the logical stream knows what streams
   constitutes the logical stream.  For example in the basic audio we
   have an logical stream called MainAudioIn, which comprises of the
   incoming streams from the participants.  We also define another
   logical stream in basic audio called MainAudioOut which comprises of
   the output stream from the server to the end points.

   In the basic-audio template, for the role of the moderator, two
   controlArray elements are defined which work on the two logical
   streams - MainAudioIn, MainAudioOut.  For both these logical streams,
   the controlArray element defines the control Mute, which enables the
   moderator to mute any participants incoming audio stream or out going
   audio stream

4.1.6.  Streams

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

4.1.6.1.  AudioIn

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

   type: The stream type is 'audio'.

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

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

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

4.1.6.1.1.  Floor

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



Boulton & Chandra        Expires April 26, 2006                 [Page 8]

Internet-Draft               Media Template                 October 2005


4.1.6.1.1.1.  Send_audio

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

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

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

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

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

4.1.6.2.  AudioOut

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

   type: The stream type is 'audio'.

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

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

4.1.7.  Blueprint - XML example


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

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

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



Boulton & Chandra        Expires April 26, 2006                 [Page 9]

Internet-Draft               Media Template                 October 2005


                           </floor>
                         </stream>

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

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

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

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

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

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




Boulton & Chandra        Expires April 26, 2006                [Page 10]

Internet-Draft               Media Template                 October 2005


4.1.8.  XML Schema Definition

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


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

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

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

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

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


   <xs:simpleType name="parameter-defined">
     <xs:restriction base="xs:string">



Boulton & Chandra        Expires April 26, 2006                [Page 11]

Internet-Draft               Media Template                 October 2005


       <xs:enumeration value="integer"/>
       <xs:enumeration value="real"/>
       <xs:enumeration value="enumeration"/>
     </xs:restriction>
   </xs:simpleType>

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

      <xs:simpleType name="rtype">
        <xs:restriction base="role:role-type">
          <xs:enumeration value="Participant"/>
          <xs:enumeration value="Moderator"/>
        </xs:restriction>
      </xs:simpleType>
   <xs:element name="controlArray">
    <xs:complexType>
     <xs:sequence>
      <xs:element ref="LogicalStream" minoccurs="1" maxoccurs="unbounded" />
      <xs:element ref="control" minoccurs="1" maxoccurs="1"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>


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

   <xs:element name="LogicalStream">



Boulton & Chandra        Expires April 26, 2006                [Page 12]

Internet-Draft               Media Template                 October 2005


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

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

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

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

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

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




Boulton & Chandra        Expires April 26, 2006                [Page 13]

Internet-Draft               Media Template                 October 2005


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

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


   </xs:schema>






4.2.  Advanced Audio Template

   TODO

4.3.  Basic-Video Template

4.3.1.  Description

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

4.3.2.  Roles

   Participant: The basic 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



Boulton & Chandra        Expires April 26, 2006                [Page 14]

Internet-Draft               Media Template                 October 2005


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

4.3.3.  Parameters

4.3.3.1.  max-participants

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

4.3.3.2.  max-video-streams

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

4.3.4.  Controls

   In the basic-video template, a pause-video control is defined which
   basically pauses the input and the output stream from and to the
   conference server.  It is expected that for a very basic video
   conferencing this control is sufficient.  If the conference server
   wants to support more advance features, then it is recommended that
   advance-video template to be used.  In advance-video template the
   schema for controls is extensible, hence new control types can be
   defined.

   Issue : For the basic video template we are restricting the type of
   the control to boolean (for pause-video control).  The reason for
   doing is the basic-audio can only have very basic control like pause-
   video.  Should we keep the restriction or let the capability to
   define new control in basic-video template.

4.3.4.1.  pause-video

   The 'pause-video' control is used in conjunction with a media stream



Boulton & Chandra        Expires April 26, 2006                [Page 15]

Internet-Draft               Media Template                 October 2005


   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.

4.3.5.  Control Array

   In the basic-video template, two logical streams are defined -
   mainvideoIn, mainvideoOut.  The mainvideoIn comprises of the input
   video stream from the participants and the mainvideoout stream
   comprises of the output video stream from the server to the
   participants.  For the role of moderator, two controlArrays are
   defined which defines the control pause-video for each of the logical
   streams.  With the help of this controls, the moderator can pause any
   participants video being mixed in the server and can pause any output
   video stream to any of the participants of the conference.

4.3.6.  Streams

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

4.3.6.1.  VideoIn

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

   type: The stream type is 'video'.

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

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

   stream-id : The unique identifier of the stream.




Boulton & Chandra        Expires April 26, 2006                [Page 16]

Internet-Draft               Media Template                 October 2005


4.3.6.1.1.  Floor

4.3.6.1.1.1.  Send_Video

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

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

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

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

   value: A value of 'false' specifies that the instance represented by
   this template does not have control of the floor.  A value of 'true'
   indicates 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.

4.3.6.2.  VideoOut

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

   type: The stream type is 'video'.

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

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

   stream-id : The unique identifier of the stream.

4.3.7.  Blueprint - XML Example


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




Boulton & Chandra        Expires April 26, 2006                [Page 17]

Internet-Draft               Media Template                 October 2005


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


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

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

                    <role name="Moderator">

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

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

                         <controlArray>
                          <LogicalStream type="video" name="MainVideoOut" />
                          <control type="boolean" name="pause-video" enable="false">
                           <label>PauseOutputVideo</label>
                           <value>False</value>
                          </control>
                         </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>



Boulton & Chandra        Expires April 26, 2006                [Page 18]

Internet-Draft               Media Template                 October 2005


   </template>


4.3.8.  XML Schema Definition

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


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

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

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

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

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




Boulton & Chandra        Expires April 26, 2006                [Page 19]

Internet-Draft               Media Template                 October 2005


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

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

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


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


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



Boulton & Chandra        Expires April 26, 2006                [Page 20]

Internet-Draft               Media Template                 October 2005


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

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

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

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

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

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

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



Boulton & Chandra        Expires April 26, 2006                [Page 21]

Internet-Draft               Media Template                 October 2005


       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="enable" type="xs:boolean" use="required"/>
   </xs:element>


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

   </xs:schema>





4.4.  Advanced Video Template

   TODO

4.5.  Basic Text Template

4.5.1.  Description

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

4.5.2.  Roles

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

   Moderator: The basic audio template specifies the role of 'Moderator'
   to signify a user with advanced privileges by default.  The
   'Moderator' role for this template has the same controls as a
   'Participant'.  The moderator also has the capability to block any
   input stream from being mixed in the output stream and can also block
   the output stream to any participant.  See the individual control
   definitions for the impact of attribute settings.



Boulton & Chandra        Expires April 26, 2006                [Page 22]

Internet-Draft               Media Template                 October 2005


4.5.3.  Parameters

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

4.5.4.  Controls

4.5.4.1.  block

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

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

   name: The control is named 'block'.

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

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

4.5.5.  Control Array

   In the basic-text template, two logical streams are defined -
   mainTextIn, mainTextOut.  The mainTextIn comprises of the input text
   stream from the participants and the maintextout stream comprises of
   the output text stream from the server to the participants.  For the
   role of moderator, two controlArrays are defined which defines the
   control "block" for each of the logical streams.  With the help of
   this controls, the moderator can block any participants text stream
   from being mixed in the server and can block any output text stream
   to any of the participants of the conference.

4.5.6.  Streams

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



Boulton & Chandra        Expires April 26, 2006                [Page 23]

Internet-Draft               Media Template                 October 2005


4.5.6.1.  TextIn

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

   type: The stream type is 'text'.

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

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

4.5.6.1.1.  Floor

4.5.6.1.1.1.  send_text

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

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

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

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

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

4.5.6.2.  TextOut

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

   type: The stream type is 'text'.

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

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

4.5.7.  Blueprint - XML Example



Boulton & Chandra        Expires April 26, 2006                [Page 24]

Internet-Draft               Media Template                 October 2005


   <template name="basic-text">

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

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

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

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

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

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

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

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

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



Boulton & Chandra        Expires April 26, 2006                [Page 25]

Internet-Draft               Media Template                 October 2005


                 </role>
         </template>


4.5.8.  XML Schema Definition

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


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

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

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

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

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



Boulton & Chandra        Expires April 26, 2006                [Page 26]

Internet-Draft               Media Template                 October 2005


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

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

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


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


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



Boulton & Chandra        Expires April 26, 2006                [Page 27]

Internet-Draft               Media Template                 October 2005


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

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

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

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

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

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

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



Boulton & Chandra        Expires April 26, 2006                [Page 28]

Internet-Draft               Media Template                 October 2005


       <xs:attribute name="name" type="xs:string" use="required"/>
       <xs:attribute name="enable" type="xs:boolean" use="required"/>
   </xs:element>


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


   </xs:schema>




4.6.  Advanced Text Template

   TODO

4.7.  Basic Audio-Video Template

4.7.1.  Description

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

4.7.2.  Roles

4.7.2.1.  Participant

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

4.7.2.2.  Moderator

   The basic Audio-Video template specifies the 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



Boulton & Chandra        Expires April 26, 2006                [Page 29]

Internet-Draft               Media Template                 October 2005


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

4.7.3.  Parameters

4.7.3.1.  max-participants

   See Section 4.1.3.1 for definition.

4.7.3.2.  max-audio-streams

   See Section 4.1.3.2 for definition.

4.7.3.3.  max-video-streams

   See Section 4.3.3.2 for definition.

4.7.4.  Controls

4.7.4.1.  mute

   See Section 4.1.4.1 for definition.

4.7.4.2.  pause-video

   See Section 4.3.4.1 for definition.

4.7.4.3.  gain

   See Section 4.1.4.2 for definition.

4.7.5.  Control Array

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

4.7.6.  Streams

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

4.7.6.1.  AudioIn

   See Section 4.1.6.1 for definition.



Boulton & Chandra        Expires April 26, 2006                [Page 30]

Internet-Draft               Media Template                 October 2005


4.7.6.2.  AudioOut

   See Section 4.1.6.2 for definition.

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

4.7.6.3.  VideoIn

   See Section 4.3.6.1 for definition.

4.7.6.4.  VideoOut

   See Section 4.3.6.2 for definition.

4.7.7.  Blueprint - XML Example


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

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

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

                             <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="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="audio" name="AudioOut" dir="out">
                              <control type="real" name="gain" enable="true" >
                               <label>Volume</label>
                               <value>0</value>



Boulton & Chandra        Expires April 26, 2006                [Page 31]

Internet-Draft               Media Template                 October 2005


                              </control>
                             </stream>

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

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

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

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

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

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

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



Boulton & Chandra        Expires April 26, 2006                [Page 32]

Internet-Draft               Media Template                 October 2005


                            </stream>

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

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

                    </role>

   </template>


4.7.8.  XML Schema Definition


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

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

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

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



Boulton & Chandra        Expires April 26, 2006                [Page 33]

Internet-Draft               Media Template                 October 2005


       <xs:attribute name="min" type="xs:positiveInteger"  use="optional"/>
       <xs:attribute name="max" type="xs:positiveInteger" use="optional"/>
     </xs:complexType>
   </xs:element>

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

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

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

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

      <xs:simpleType name="rtype">
        <xs:restriction base="role:role-type">



Boulton & Chandra        Expires April 26, 2006                [Page 34]

Internet-Draft               Media Template                 October 2005


          <xs:enumeration value="Participant"/>
          <xs:enumeration value="Moderator"/>
        </xs:restriction>
      </xs:simpleType>


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


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

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

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

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



Boulton & Chandra        Expires April 26, 2006                [Page 35]

Internet-Draft               Media Template                 October 2005


       <xs:enumeration value="video"/>
      </xs:restriction>
   </xs:simpleType>

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

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

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

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

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



Boulton & Chandra        Expires April 26, 2006                [Page 36]

Internet-Draft               Media Template                 October 2005


       <xs:enumeration value="boolean"/>
     </xs:restriction>
   </xs:simpleType>

   </xs:schema>



4.8.  Audio-text Template

   TODO

4.9.  Basic Multimedia Template

   TODO

4.10.  Advanced Multimedia Template


5.  Security Considerations


6.  IANA Considerations


7.  Acknowledgements

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


8.  References

8.1.  Normative References

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

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

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



Boulton & Chandra        Expires April 26, 2006                [Page 37]

Internet-Draft               Media Template                 October 2005


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

8.2.  Informative References













































Boulton & Chandra        Expires April 26, 2006                [Page 38]

Internet-Draft               Media Template                 October 2005


Authors' Addresses

   Chris Boulton
   Ubiquity Software Corporation
   Building 3
   Wern Fawr Lane
   St Mellons, Cardiff, Wales UK  CF3 5EA

   Email: cboulton@ubiquity.net


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

   Email: Umesh.Chandra@nokia.com


































Boulton & Chandra        Expires April 26, 2006                [Page 39]

Internet-Draft               Media Template                 October 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 April 26, 2006                [Page 40]