XCON Working Group C. Boulton Internet-Draft Ubiquity Software Corporation Expires: April 15, 2005 U. Chandra Nokia Research Center October 15, 2004 Media Policy Templates for XCON draft-boulton-xcon-media-template-00 Status of this Memo This document is an Internet-Draft and is subject to all provisions of section 3 of RFC 3667. By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she become aware will be disclosed, in accordance with RFC 3668. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on April 15, 2005. Copyright Notice Copyright (C) The Internet Society (2004). Abstract Media Policy control is the mechanism by which participants of a conference manipulates the media in the conference. The controls provided to conference participants to mainpulate media enhances participants experience in the conference. This document provides a minimum set of media policy templates that can be instantiated during conference creation and manipulated during the life cycle of a Boulton & Chandra Expires April 15, 2005 [Page 1] Internet-Draft Media Template October 2004 conference instance. The templates define a conference properties like what streams are supported, what controls are available etc. This work is being discussed on the xcon@ietf.org mailing list. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Guidelines for writers of Media Policy Templates . . . . . . 4 3. Templates . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.1 Basic-Audio Template . . . . . . . . . . . . . . . . . . . 4 3.1.1 Description . . . . . . . . . . . . . . . . . . . . . 4 3.1.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 4 3.1.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 5 3.1.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 5 3.1.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 7 3.1.6 XML Definition . . . . . . . . . . . . . . . . . . . . 9 3.2 Advanced Audio Template . . . . . . . . . . . . . . . . . 9 3.2.1 Description . . . . . . . . . . . . . . . . . . . . . 9 3.2.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 10 3.2.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 10 3.2.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 13 3.2.6 XML Definition . . . . . . . . . . . . . . . . . . . . 14 3.3 Basic-Video Template . . . . . . . . . . . . . . . . . . . 15 3.3.1 Description . . . . . . . . . . . . . . . . . . . . . 15 3.3.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 15 3.3.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 17 3.3.6 XML Definition . . . . . . . . . . . . . . . . . . . . 19 3.4 Advanced Video Template . . . . . . . . . . . . . . . . . 19 3.4.1 Description . . . . . . . . . . . . . . . . . . . . . 19 3.4.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 20 3.4.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 20 3.4.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 20 3.4.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 22 3.4.6 XML Definition . . . . . . . . . . . . . . . . . . . . 23 3.5 Basic Text Template . . . . . . . . . . . . . . . . . . . 25 3.5.1 Description . . . . . . . . . . . . . . . . . . . . . 25 3.5.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 25 3.5.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 25 3.5.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 25 3.5.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 26 3.5.6 XML Definition . . . . . . . . . . . . . . . . . . . . 28 3.6 Advanced Text Template . . . . . . . . . . . . . . . . . . 28 3.6.1 Description . . . . . . . . . . . . . . . . . . . . . 28 3.6.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 29 Boulton & Chandra Expires April 15, 2005 [Page 2] Internet-Draft Media Template October 2004 3.6.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 29 3.6.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 29 3.6.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 29 3.6.6 XML Definition . . . . . . . . . . . . . . . . . . . . 29 3.7 Audio-Video Template . . . . . . . . . . . . . . . . . . . 29 3.7.1 Description . . . . . . . . . . . . . . . . . . . . . 29 3.7.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 29 3.7.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 29 3.7.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 29 3.7.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 29 3.7.6 XML Definition . . . . . . . . . . . . . . . . . . . . 29 3.8 audio-text Template . . . . . . . . . . . . . . . . . . . 31 3.8.1 Description . . . . . . . . . . . . . . . . . . . . . 31 3.8.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 32 3.8.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 32 3.8.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 32 3.8.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 32 3.8.6 XML Definition . . . . . . . . . . . . . . . . . . . . 32 3.9 Basic Multimedia Template . . . . . . . . . . . . . . . . 34 3.9.1 Description . . . . . . . . . . . . . . . . . . . . . 34 3.9.2 Roles . . . . . . . . . . . . . . . . . . . . . . . . 34 3.9.3 Parameters . . . . . . . . . . . . . . . . . . . . . . 34 3.9.4 Controls . . . . . . . . . . . . . . . . . . . . . . . 34 3.9.5 Streams . . . . . . . . . . . . . . . . . . . . . . . 34 3.9.6 XML Definition . . . . . . . . . . . . . . . . . . . . 34 3.10 Advanced Multimedia Template . . . . . . . . . . . . . . 34 3.10.1 Description . . . . . . . . . . . . . . . . . . . . 34 3.10.2 Roles . . . . . . . . . . . . . . . . . . . . . . . 34 3.10.3 Parameters . . . . . . . . . . . . . . . . . . . . . 34 3.10.4 Controls . . . . . . . . . . . . . . . . . . . . . . 34 3.10.5 Streams . . . . . . . . . . . . . . . . . . . . . . 35 3.10.6 XML Definition . . . . . . . . . . . . . . . . . . . 35 4. Security Considerations . . . . . . . . . . . . . . . . . . 35 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . 35 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 35 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 7.1 Normative References . . . . . . . . . . . . . . . . . . . . 35 7.2 Informative References . . . . . . . . . . . . . . . . . . . 35 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 35 Intellectual Property and Copyright Statements . . . . . . . 36 Boulton & Chandra Expires April 15, 2005 [Page 3] Internet-Draft Media Template October 2004 1. Introduction The mechanism described in the 'Media Conference Server Control[1] draft defines a protocol between the centralized conference server and conference participants. The mechanism details the construction of media templates that provide a wide range of functionality to a client for the purpose of manipulating a media profile. The templates are constructed using an XML rule set described in [1]. This document supplies a a set of core media templates that should be used in conjunction with [1]. The templates specified SHOULD be supported at a minimum. The editors of this document would like to point out that this document is currently 'Work In Progress' and fully identify that more work is required on the text and XML for the next revision. The document has been released to gain early feedback. 2. Guidelines for writers of Media Policy Templates [Editors Note: TODO] 3. Templates 3.1 Basic-Audio Template 3.1.1 Description The Basic-Audio template can be used to achieve the simplest form of audio interaction between multiple voice input streams from participating entities. The output stream consists mix of all the participants audio excluding the input stream of the receiving entity. If a participant needs to talk in the conference, it first needs to get a floor from the moderator of the conference. 3.1.2 Roles Participant: The basic audio template specifies the role of 'Participant' to signify an entry level user with no privileges by default. The participant role could obtain access to all controls available for this template if set accordingly by a privileged user. Access to the controls available to a participant can be controlled using floor control, as defined in [ref control draft]. Moderator: The basic audio template specifies the role of 'Moderator' to signify a user with advanced privileges by default. The 'Moderator' role for this template has the same controls as a 'Participant' with an additional control for muting any participant Boulton & Chandra Expires April 15, 2005 [Page 4] Internet-Draft Media Template October 2004 in a conference instance. Another difference being that the default value for the 'enable' attribute on the 'mute' control on an output media stream is set to 'true'. See the individual control definitions for the impact of attribute settings. 3.1.3 Parameters max-particpants: The 'max-particpants' parameter specifies the maximum number of participants (Entity with signaling connection to the focus) that are permitted to be involved in an instantiated instance of the template (or sub-element, depending on where specified) for the specified role. The minimum value permitted is "1" and the maximum value permitted is "128". max-audio-streams: The 'max-audio-streams' parameter specifies the maximum number of audio media streams that are permitted to be involved in an instantiated instance of the template for the specified role. The minimum value permitted is "1" and the maximum value permitted is "128". 3.1.4 Controls 3.1.4.1 mute The 'mute' control is used in conjunction with a media stream to cease transmission of associated media. It has a 'Boolean' value. The 'mute' control can exist in two forms, depending on if the control appears on input or output media streams. When appearing as a control on an input media stream, the control locally manipulates the clients media stream to be active or inactive. When muting locally, the control consists of the following attributes:- type: The 'mute' control has a type of 'Boolean'. name: The control is named 'mute'. default: Indicates the default value for the 'mute' control when not set. The attribute type is 'Boolean' with a default value of 'false'. Setting the 'mute' attribute to 'false' specifies that media should be transported for the associated media stream. When set to the value of 'true', media should not be transported for the associated media stream. enable: The enable attribute specifies if access to the control is available to the client. The value is of type 'boolean' and is set to 'true' as default. The 'mute' control can also appear on an output stream. This Boulton & Chandra Expires April 15, 2005 [Page 5] Internet-Draft Media Template October 2004 indicates that the mute will manipulate outgoing media streams from the mixer to alternative clients. When used in this instance, the attributes for the control are identical to that of the input definition with the exception that the 'enable' and 'default' values are both set to 'true'. This instance of the control defines an additional 'controlArray' that represents other participating clients. This provides a privileged user the ability to mute/un-mute media being distributed to every client defined. 3.1.4.2 MuteInputAudio 'MuteInputAudio' is a controlarray that is used in conjunction with media input streams of other participants and allows any input media stream of the participants to be muted. The moderator can use this control to mute any paritcipant if it doesn't follows conference code. The controlArray enables a specific media stream to be muted by passing in the associated identifying number of the participant into the name attribute e.g. The first participant to enter the mix could be identified by the number '1' and so the operation 'MuteInoutAudio[1]' would result in the participant identified within the policy with a value of '1' being muted. The upper bound of the number being passed in is controlled by the 'max-participants' parameter value. 3.1.4.3 gain The 'gain' control is used in conjunction with a media output stream to indicate the amount of amplification of an audio stream. It has a 'Real' number value. The control consists of the following attributes:- type: The 'gain' control has a type of 'Real'. name: The control is named 'gain'. enable: The enable attribute specifies if access to the control is available to the client. default: Indicates the default value for the 'gain' control when not set. 3.1.4.4 MuteOutputAudio This controlarray is used by the moderator to mute the outgoing audio stream to a participant in case the participant is not confirming to the conference policy. The moderator can choose to set this control temporaraly till the participant follows conference rules. The controlarray enables a specific outgoing audio stream to be muted by Boulton & Chandra Expires April 15, 2005 [Page 6] Internet-Draft Media Template October 2004 passing in the associated identifying number of the participant into the name attribute e.g. The first participant to enter the conference would be identified by the number '1' and so the operation 'StopoutputText[1]' would result in the participant identified within the policy with a value of '1' not hearing the conference. The control type is boolean and the default value of the control when not set is false indicating that all participant get the text stream. 3.1.5 Streams The 'Basic Audio Template' consists of two audio streams: 3.1.5.1 AudioIn The 'AudioIn' media stream details properties associated with the incoming audio to the mixer. The 'AudioIn' stream has the following attributes: type: The stream type is 'audio'. name: The descriptive name for this stream is 'AudioIn'. dir: The direction of the stream is set to 'in'. 3.1.5.1.1 Floor The 'AudioIn' media stream consists of the following floor: 3.1.5.1.1.1 Send_audio The 'Send-audio' floor is associated with the 'AudioIn' stream. It provides a mechanism to control the input to a media mix. A participant with a role of 'Moderator' should always have floor preference - this is considered out of scope for this document. The following attributes are defined: floor_id: Uniquely identifies the floor within the context of this template and has a value of '1'. instances: Value of '1' implies only one occurrence of this floor at any one time. enable: A value of 'false' indicates that this floor is not enabled by default. value: A value of false specifies that the instance represented by this template does not have control of the floor. Boulton & Chandra Expires April 15, 2005 [Page 7] Internet-Draft Media Template October 2004 3.1.5.2 AudioOut The 'AudioOut' media stream details properties associated with the outgoing audio from the mixer. The 'AudioOut' stream has the following attributes: type: The stream type is 'audio'. name: The descriptive name for this stream is 'AudioOut'. dir: The direction of the stream is set to 'out'. Boulton & Chandra Expires April 15, 2005 [Page 8] Internet-Draft Media Template October 2004 3.1.6 XML Definition 3.2 Advanced Audio Template 3.2.1 Description The 'Advanced-Audio' template builds on the functionality provided by the 'Basic-Audio' template. Additional features include 'sidebar' support and the ability to output both 'mix-minus' style audio or the Boulton & Chandra Expires April 15, 2005 [Page 9] Internet-Draft Media Template October 2004 active speakers audio stream. 3.2.2 Roles Participant: The advanced audio template specifies the role of 'Participant' to signify an entry level user with no privileges by default. The participant role could obtain access to all controls available for this template if set accordingly by a privileged user. Access to the controls available to a participant can be controlled using floor control, as defined in [ref control draft]. Moderator: The advanced audio template specifies the role of 'Moderator' to signify a user with advanced privileges by default. The 'Moderator' role for this template has the same controls as a 'Participant' with an additional control for muting any participant in a conference instance and one for specifying the type of output mix (e.g. mix-minus or Active speaker). Another difference being that the default value for the 'enable' attribute on the 'mute' control on an output media stream is set to 'true'. See the individual control definitions for the impact of attribute settings. 3.2.3 Parameters max-particpants: The 'max-particpants' parameter specifies the maximum number of participants (Entity with signalling connection to the focus) that are permitted to be involved in an instantiated instance of the template (or sub-element, depending on where specified) for the specified role. The minimum value permitted is "1" and the maximum value permitted is "128". max-audio-streams: The 'max-streams' parameter specifies the maximum number of audio media streams that are permitted to be involved in an instantiated instance of the template for the specified role. The minimum value permitted is "1" and the maximum value permitted is "128". 3.2.4 Controls 3.2.4.1 mute The 'mute' control is used in conjunction with a media stream to cease transmission of associated media. It has a 'Boolean' value. The 'mute' control can exist in two forms, depending on if the control appears on input or output media streams. When appearing as a control on an input media stream, the control locally manipulates the clients media stream to be active or inactive. When muting locally, the control consists of the following attributes:- Boulton & Chandra Expires April 15, 2005 [Page 10] Internet-Draft Media Template October 2004 type: The 'mute' control has a type of 'Boolean'. name: The control is named 'mute'. default: Indicates the default value for the 'mute' control when not set. The attribute type is 'Boolean' with a default value of 'false'. Setting the 'mute' attribute to 'false' specifies that media should be transported for the associated media stream. When set to the value of 'true', media should not be transported for the associated media stream. enable: The enable attribute specifies if access to the control is available to the client. The value is of type 'boolean' and is set to 'true' as default. The 'mute' control can also appear on an output stream. This indicates that the mute will manipulate outgoing media streams from the mixer to alternative clients. When used in this instance, the attributes for the control are identical to that of the input definition with the exception that the 'enable' and 'default' values are both set to 'true'. This instance of the control defines an additional 'controlArray' that represents other participating clients. This provides a privileged user the ability to mute/un-mute media being distributed to every client defined. 3.2.4.2 MuteInputAudio 'MuteInputAudio' is a controlarray that is used in conjunction with media input streams of other participants and allows any input media stream of the participant to be muted. The moderator can use this control to mute any participant if it doesn't follows conference code. The controlArray enables a specific media stream to be muted by passing in the associated identifying number of the participant into the name attribute e.g. The first participant to enter the mix could be identified by the number '1' and so the operation 'MuteInoutAudio[1]' would result in the participant identified within the policy with a value of '1' being muted. The upper bound of the number being passed in is controlled by the 'max-participants' parameter value. 3.2.4.3 gain The 'gain' control is used in conjunction with a media output stream to indicate the amount of amplification of an audio stream. It has a 'Real' number value. The control consists of the following attributes:- type: The 'gain' control has a type of 'Real'. Boulton & Chandra Expires April 15, 2005 [Page 11] Internet-Draft Media Template October 2004 name: The control is named 'gain'. enable: The enable attribute specifies if access to the control is available to the client. default: Indicates the default value for the 'gain' control when not set. 3.2.4.4 MuteOutputAudio This controlarray is used by the moderator to mute the outgoing audio stream to a participant in case the participant is not confirming to the conference policy. The moderator can choose to set this control temporaraly till the participant follows conference rules. The controlarray enables a specific outgoing audio stream to be muted by passing in the associated identifying number of the participant into the name attribute e.g. The first participant to enter the conference would be identified by the number '1' and so the operation 'StopoutputText[1]' would result in the participant identified within the policy with a value of '1' not hearing the conference. The control type is boolean and the default value of the control when not set is false indicating that all participant get the text stream. 3.2.4.5 individual-stream-gain The 'individual-stream-gain' controlArray can be used in conjunction with an 'AudioOut-Mix' media stream. It allows the gain of individual audio media streams involved in the mix to be controlled. The controlArray enables gain to be controlled on a specific media stream by passing in the associated identifying number of the participant into the name attribute e.g. The first participant to enter the mix could be identified by the number '1' and so the operation 'individual-stream-gain[1]' would result in the media involved in the output mix, identified within the media policy with a value of '1', having it's gain adjusted. The upper bound of the number being passed in is controlled by the 'max-participants' parameter value. 3.2.4.6 MuteParticipantsfromMix The 'MuteParticipantsfromMix' controlArray is also used in conjunction with an 'AudioOut-Mix' media stream. It allows individual participants audio streams involved in the mix to be muted. Participants to be muted are selected in a similar manner to 'individual-stream-gain'control by passing in the associated identifying number of the participant into the name attribute e.g. The first participant to enter the mix could be identified by the number '1' and so the operation 'MuteParticipantsfromMix[1]' would Boulton & Chandra Expires April 15, 2005 [Page 12] Internet-Draft Media Template October 2004 result in the media involved in the output mix, identified within the media policy with a value of '1', being muted. The upper bound of the number being passed in is controlled by the 'max-participants' parameter value. 3.2.5 Streams The 'Advanced-Audio' Template consists of two audio streams: 3.2.5.1 AudioIn The 'AudioIn' media stream details properties associated with the incoming audio to the mixer. The 'AudioIn' stream has the following attributes: type: The stream type is 'audio'. name: The descriptive name for this stream is 'AudioIn'. dir: The direction of the stream is set to 'in'. 3.2.5.1.1 Floor The 'AudioIn' media stream consists of the following floor: 3.2.5.1.1.1 Send_audio The 'Send-audio' floor is associated with the 'AudioIn' stream. It provides a mechanism to control the input to a media mix. A participant with a role of 'Moderator' should always have floor preference - this is considered out of scope for this document. The following attributes are defined: floor_id: Uniquely identifies the floor within the context of this template and has a value of '1'. instances: Value of '1' implies only one occurrence of this floor at any one time. enable: A value of 'false' indicates that this floor is not enabled by default. value: A value of false specifies that the instance represented by this template does not have control of the floor. 3.2.5.2 AudioOut The 'AudioOut' media stream details properties associated with the Boulton & Chandra Expires April 15, 2005 [Page 13] Internet-Draft Media Template October 2004 outgoing audio from the mixer. Two types of AudioOut streams are defined based on the mix type. This gives the participant the ability to choose either the audio of the active speaker of the conference or can choose to hear the audio mix of all the participants(excluding itself). The 'AudioOut' stream has the following attributes: type: The stream type is 'audio'. name: The descriptive name for this stream is 'AudioOut'. dir: The direction of the stream is set to 'out'. 3.2.6 XML Definition [Editors Note: Sidebar support to be added in next revision] 3.3 Basic-Video Template 3.3.1 Description The 'Basic-Video Template' is used to convey the basic set of video functionality. The template allows participants to send and receive video media with a control that allows input to be paused. The conference server chooses the output video stream for each participant based on local policy The template also defines a moderator role who has the ability pause a users video input. 3.3.2 Roles Participant: The basic video template specifies the role of 'Participant' to signify an entry level user with no priviledges by default. The participant role could obtain access to all controls available for this template if set accordingly by a privileged user. Moderator: The basic video template specifies the role of 'Moderator' to signify a user with advanced privileges by default. The 'Moderator' role for this template has exactly the same controls as a 'Participant'. The major difference being that the default value for the 'enable' attribute on the 'pause-video' control of the output video stream is set to 'false'. 3.3.3 Parameters max-participants: The 'max-participants' parameter specifies the maximum number of entities that are permitted to be involved in an Boulton & Chandra Expires April 15, 2005 [Page 15] Internet-Draft Media Template October 2004 instantiated instance of the template for the specified template category. The minimum value permitted is "1" and the maximum value permitted is "128". The parameter can appear at either a template or role level. max-video-streams: The 'max-video-streams' parameter specifies the maximum number of video media streams that are permitted to be involved in an instantiated instance of the template. The minimum value permitted is "1" and the maximum value permitted is "128". This parameter is required as participant of the mix can contribute more than one video stream. max-video-input-streams: The parameter "max-video-input-streams" indicates the number of input video streams each participant can inject into the conference. The convenor of the conference can set this value when instantiating a conference. This reduces the requirement to define multiple templates for a number of media stream of same type that participants can send to the conference. 3.3.4 Controls 3.3.4.1 pause-video The 'pause-video' control is used in conjunction with a media stream to cease transmission of associated media. It has a 'Boolean' value. The 'pause-video' control consists of the following attributes:- type: The 'pause-video' control has a type of 'Boolean'. name: The control is named 'pause-video'. default: Indicates the default value for the 'pause-video' control when not set. The attribute type is 'Boolean' with a default value of 'false. Setting the 'default' attribute to 'false' specifies that media should be transported for the associated media stream. When set to the value of 'true', media should not be transported for the associated media stream. enable: The enable attribute specifies if access to the control is available to the client. The value is of type 'boolean' and is set to 'true' as default. 3.3.4.2 PauseInputVideo 'PauseInputVideo' is a controlarray that is used in conjuntion with video media input streams of other participants and allows to pause any input media streams from the participants. The moderator of the conference can use this control to pause the incoming video stream in Boulton & Chandra Expires April 15, 2005 [Page 16] Internet-Draft Media Template October 2004 case the participant does not follow the conference code. The controlarray enables a specific video stream to be paused by passing in the associated identifying number of the participant into the name attribute e.g. The first participant to enter the conference would be identified by the number '1' and so the operation 'PauseInputVideo[1]' would result in the participant identified within the policy with a value of '1' being paused. This result would be such that this participants video would not be sent to any one in the conference or would not be mixed in case the server is mixing the video streams. 3.3.4.3 PauseOutputVideo This controlarray is used by the moderator to pause the outgoing video stream to a participant in case the participant is not confirming to the conference policy. The moderator can choose to set this control temporaraly till the participant follows conference rules. The controlarray enables a specific outgoing video stream to be paused by passing in the associated identifying number of the participant into the name attribute e.g. The first participant to enter the conference would be identified by the number '1' and so the operation 'StopoutputText[1]' would result in the participant identified within the policy with a value of '1' not seeing the conference. The control type is boolean and the default value of the control when not set is false indicating that all participant get the text stream. 3.3.5 Streams The 'Basic-Video Template' consists of two video streams: 3.3.5.1 VideoIn The 'VideoIn' media stream details properties associated with the incoming video to the mixer. The 'VideoIn' stream has the following attributes: type: The stream type is 'video'. name: The descriptive name for this stream is 'VideoIn'. dir: The direction of the stream is set to 'in'. 3.3.5.1.1 Floor 3.3.5.1.1.1 Send_Video The 'Send_Video' floor is associated with the 'VideoIn' stream. It Boulton & Chandra Expires April 15, 2005 [Page 17] Internet-Draft Media Template October 2004 provides a mechanism to control the Video input to a media mix. A participant with a role of 'Moderator' should always have floor preference - this is considered out of scope for this document. The following attributes are defined: floor_id: Uniquely identifies the floor within the context of this template and has a value of '1'. instances: Value of '1' implies only one occurrence of this floor at any one time. enable: A value of 'false' indicates that this floor is not enabled by default. value: A value of 'false' specifies that the instance represented by this template does not have control of the floor. A value of 'true' indicates conttrol of the floor. enable: A value of 'true' specifies that floor control is in operation while 'false' specifies that floor control is not in operation. 3.3.5.2 VideoOut The 'ViedoOut' media stream details properties associated with the outgoing audio from the mixer. The 'VideoOut' stream has the following attributes: type: The stream type is 'video'. name: The descriptive name for this stream is 'VideoOut'. dir: The direction of the stream is set to 'out'. Boulton & Chandra Expires April 15, 2005 [Page 18] Internet-Draft Media Template October 2004 3.3.6 XML Definition 3.4 Advanced Video Template 3.4.1 Description The 'Advanced-Video Template' builds on the basic set of video functionality to provide a set of advanced features. The template allows provides additional functionality which includes the specification of layout associated with a participants output stream and the ability to select an individual output source from the list participants. Boulton & Chandra Expires April 15, 2005 [Page 19] Internet-Draft Media Template October 2004 3.4.2 Roles Participant: The advanced video template specifies the role of 'Participant' to signify an entry level user with no privileges by default. The participant role could obtain access to all controls available for this template if set accordingly by a privileged user. Moderator: The advanced video template specifies the role of 'Moderator' to signify a user with advanced privileges by default. The 'Moderator' role for this template has exactly the same controls as a 'Participant'. The major difference being that the default value for the 'enable' attribute on the 'pause-video' and 'Layout' controls are set to 'true'. 3.4.3 Parameters max-participants: The 'max-participants' parameter specifies the maximum number of entities that are permitted to be involved in an instantiated instance of the template for the specified template category. The minimum value permitted is "1" and the maximum value permitted is "128". The parameter can appear at either a template or role level. max-video-streams: The 'max-video-streams' parameter specifies the maximum number of video media streams that are permitted to be involved in an instantiated instance of the template. The minimum value permitted is "1" and the maximum value permitted is "128". This parameter is required as participant of the mix can contribute more than one video stream. max-video-input-streams: The parameter "max-video-input-streams" indicates the number of input video streams each participant can inject into the conference. The convener of the conference can set this value when instantiating a conference. This reduces the requirement to define multiple templates for a number of media stream of same type that participants can send to the conference. 3.4.4 Controls 3.4.4.1 pause-video The 'pause-video' control is used in conjunction with a media stream to cease transmission of associated media. It has a 'Boolean' value. The 'pause-video' control consists of the following attributes:- type: The 'pause-video' control has a type of 'Boolean'. name: The control is named 'pause-video'. Boulton & Chandra Expires April 15, 2005 [Page 20] Internet-Draft Media Template October 2004 default: Indicates the default value for the 'pause-video' control when not set. The attribute type is 'Boolean' with a default value of 'false. Setting the 'default' attribute to 'false' specifies that media should be transported for the associated media stream. When set to the value of 'true', media should not be transported for the associated media stream. enable: The enable attribute specifies if access to the control is available to the client. The value is of type 'boolean'. 3.4.4.2 Layout The 'Layout' control is used in conjunction with an output video stream to define the video layout configuration. It has a 'enumeration' value which provides various tile formats for video display. The 'Layout' control consists of the following attributes:- name: The control is named 'Layout' type: The 'Layout' control has a type of 'enumeration'. enable: The enable attribute specifies if access to the control is available to the client. The value is of type 'boolean'. default: The default value for this control is '0'. 3.4.4.3 SourceSelector The 'SourceSelector' control is used in conjunction with an output video stream to define which video media stream are contributing to the output mix. It has a 'enumeration' value which provides a list format containing the media participants. The List element is described in [1]. The 'SourceSelector' control consists of the following attributes:- name: The control is named 'SourceSelector' type: The 'SourceSelector' control has a type of 'enumeration'. enable: The enable attribute specifies if access to the control is available to the client. The value is of type 'boolean'. default: The default value for this control is '1'. 3.4.4.4 PauseInputVideo 'PauseInputVideo' is a controlarray that is used in conjunction with video media input streams of other participants and allows to pause Boulton & Chandra Expires April 15, 2005 [Page 21] Internet-Draft Media Template October 2004 any input media streams from the participants. The moderator of the conference can use this control to pause the incoming video stream in case the participant does not follow the conference code. The controlarray enables a specific video stream to be paused by passing in the associated identifying number of the participant into the name attribute e.g. The first participant to enter the conference would be identified by the number '1' and so the operation 'PauseInputVideo[1]' would result in the participant identified within the policy with a value of '1' being paused. This result would be such that this participants video would not be sent to any one in the conference or would not be mixed in case the server is mixing the video streams. 3.4.4.5 PauseOutputVideo This controlarray is used by the moderator to pause the outgoing video stream to a participant in case the participant is not confirming to the conference policy. The moderator can choose to set this control temporaraly until the participant follows conference rules. The controlarray enables a specific outgoing video stream to be paused by passing in the associated identifying number of the participant into the name attribute e.g. The first participant to enter the conference would be identified by the number '1' and so the operation 'StopoutputText[1]' would result in the participant identified within the policy with a value of '1' not seeing the conference. The control type is boolean and the default value of the control when not set is false indicating that all participant get the text stream. 3.4.5 Streams The 'Advanced-Video Template' consists of two video streams: 3.4.5.1 VideoIn The 'VideoIn' media stream details properties associated with the incoming video to the mixer. The 'VideoIn' stream has the following attributes: type: The stream type is 'video'. name: The descriptive name for this stream is 'VideoIn'. dir: The direction of the stream is set to 'in'. 3.4.5.1.1 Floor Boulton & Chandra Expires April 15, 2005 [Page 22] Internet-Draft Media Template October 2004 3.4.5.1.1.1 Send_Video The 'Send_Video' floor is associated with the 'VideoIn' stream. It provides a mechanism to control the Video input to a media mix. A participant with a role of 'Moderator' should always have floor preference - this is considered out of scope for this document. The following attributes are defined: floor_id: Uniquely identifies the floor within the context of this template and has a value of '1'. instances: Value of '1' implies only one occurrence of this floor at any one time. enable: A value of 'false' indicates that this floor is not enabled by default. value: A value of 'false' specifies that the instance represented by this template does not have control of the floor. A value of 'true' indicates control of the floor. enable: A value of 'true' specifies that floor control is in operation while 'false' specifies that floor control is not in operation. 3.4.5.2 VideoOut The 'ViedoOut' media stream details properties associated with the outgoing audio from the mixer. The 'VideoOut' stream has the following attributes: type: The stream type is 'video'. name: The descriptive name for this stream is 'VideoOut'. dir: The direction of the stream is set to 'out'. 3.4.6 XML Definition [Editors Note: Sidebar support to be added in next revision] Boulton & Chandra Expires April 15, 2005 [Page 24] Internet-Draft Media Template October 2004 3.5 Basic Text Template 3.5.1 Description The Basic-Text template can be used to achieve the simplest form of interaction between multiple text input streams from participating entities. The output stream will consist of all inout messages except those injected by the participant in question. Controls are defined to limit who can inject into a conference and a privilege user has the ability to block participants receiving outgoing media. 3.5.2 Roles Participant: The basic audio template specifies the role of 'Participant' to signify an entry level user with no privileges by default. The participant role could obtain access to all controls available for this template if set accordingly by a privileged user. Access to the controls available to a participant can be controlled using floor control, as defined in [ref control draft]. Moderator: The basic audio template specifies the role of 'Moderator' to signify a user with advanced privileges by default. The 'Moderator' role for this template has the the same controls as a 'Participant' with an additional control for muting any participant in a conference instance. Another difference being that the default value for the 'enable' attribute on the 'mute' control on an output media stream is set to 'true'. See the individual control definitions for ithe mpact of attribute settings. 3.5.3 Parameters max-participants: The 'max-particpants' parameter specifies the maximum number of participants (Entity with signalling connection to the focus) that are permitted to be involved in an instantiated instance of the template (or sub-element, depending on where specified) for the specified role. The minimum value permitted is "1" and the maximum value permitted is "128". 3.5.4 Controls 3.5.4.1 block-incoming The 'block-incoming' control is used in conjunction with a input stream from a participant to cease transmission of associated media. It has a 'Boolean' value. The 'block-incoming' control consists of the following attributes:- type: The 'block-incoming' control has a type of 'Boolean'. Boulton & Chandra Expires April 15, 2005 [Page 25] Internet-Draft Media Template October 2004 name: The control is named 'block-incoming'. default: Indicates the default value for the 'block-incoming' control when not set. The attribute type is 'Boolean' with a default value of 'false'. Setting the 'block-incoming' attribute to 'false' specifies that media should be transported for the associated media stream. When set to the value of 'true', media should not be transported for the associated media stream. enable: The enable attribute specifies if access to the control is available to the client. The value is of type 'boolean' and is set to 'true' as default. 3.5.4.2 StopoutputText This controlarray is used by the moderator to block the outgoing text stream to a particular participant if the participant doesnt follow conference rules. The moderator can choose to set this control temporaraly till the participant follows conference rules. The controlarray enables a specific outgoing text stream to be stopped by passing in the associated identifying number of the participant into the name attribute e.g. The first participant to enter the conference would be identified by the number '1' and so the operation 'StopoutputText[1]' would result in the participant identified within the policy with a value of '1' not getting any text media. The control type is boolean and the default value of the control when not set is false indicating that all participant get the text stream. 3.5.4.3 StopinputText This controlarray is used by the moderator to block the incoming text stream from a particular participant uf the participant doesnt follow the conference rules. This will result in the participants input text media not to distributed to other participants in conference mix. The controlarray enables a specific incoming text stream to be not be mixed in the conference mix by passing the associated identifying number of the participant into the name attribute e.g. The first participant to enter the conference would be identified by the number '1' and so the operation 'StopinputText[1]' would result in the participant identified within the policy with a value of '1', its text media not being mixed. The control type is boolean and the default value of the control when not set is false indicating that all participant text stream is mixed. 3.5.5 Streams The 'Basic-Text' Template consists of two text media streams: Boulton & Chandra Expires April 15, 2005 [Page 26] Internet-Draft Media Template October 2004 3.5.5.1 TextIn The 'TextIn' media stream details properties associated with the incoming text to the mixer. The 'TextIn' stream has the following attributes: type: The stream type is 'text'. name: The descriptive name for this stream is 'TextIn'. dir: The direction of the stream is set to 'in'. 3.5.5.1.1 Floor 3.5.5.1.1.1 Right_to_inject The 'Right_to_inject' floor is associated with the 'TextIn' stream. It provides a mechanism to control the text input to a text media mix. A participant with a role of 'Moderator' should always have floor preference - this is considered out of scope for this document. The following attributes are defined: floor_id: Uniquely identifies the floor within the context of this template and has a value of '1'. instances: Indicatesthe number of occurrences of this floor at any one time. enable: A value of 'false' indicates that this floor is not enabled. A value of 'true' indicates that this floor is enabled. value: A value of 'false' specifies that the instance represented by this template does not have control of the floor. A value of 'true' indicates control of the floor. 3.5.5.2 TextOut The 'TextOut' media stream details properties associated with the outgoing text media from the mixer. The 'TextOut' stream has the following attributes: type: The stream type is 'text'. name: The descriptive name for this stream is 'TextOut'. dir: The direction of the stream is set to 'out'. Boulton & Chandra Expires April 15, 2005 [Page 27] Internet-Draft Media Template October 2004 3.5.6 XML Definition 3.6 Advanced Text Template 3.6.1 Description [Editors Note: To be completed in the next revision of this draft] Boulton & Chandra Expires April 15, 2005 [Page 28] Internet-Draft Media Template October 2004 3.6.2 Roles 3.6.3 Parameters 3.6.4 Controls 3.6.5 Streams 3.6.6 XML Definition [Editors Note: Sidebar support to be added in next revision] 3.7 Audio-Video Template 3.7.1 Description The advance audio-video template enables a conference with audio and video and gives some advance controls to the participants of the conference. The controls provided to the participants in this templates are similar to the one defined in advance audio and advance video templates. 3.7.2 Roles 3.7.3 Parameters 3.7.4 Controls 3.7.5 Streams 3.7.6 XML Definition [Editors Note: Sidebar support to be added in next revision] 3.8 audio-text Template 3.8.1 Description The advance audio-text template enables a conference with audio and text with some advance controls to the participants of the conference. The controls provided to the participants in this templates are similar to the one defined in advance audio and advance text templates. An additional control called 'close-captioning'is defined for receiving a text stream for the audio mix from the conference. Boulton & Chandra Expires April 15, 2005 [Page 31] Internet-Draft Media Template October 2004 3.8.2 Roles **/ same as defined in advance audio and text templates in section 3.2.2 and 3.5.2 **/ 3.8.3 Parameters **/ same parameter as defined in audio audio and text template. **/ 3.8.4 Controls **/ This templates uses the same controls as defined in audio and text templates. One new control is defined for this template. **/ 3.8.4.1 close-captioning The close captioning control enables a participant to receive a text stream for the audio mix of the conference. This control is useful in case the quality of the audio is not good or for hearing impaired participant. The 'close-captioning' control consists of the following attributes:- name: The control is named 'close-captioning' type: boolean'. enable: The enable attribute specifies if access to the control is available to the client. The value is of type 'boolean'. default: The default value for this control is false. 3.8.5 Streams **/ Same as in advance audio and text templates **/ 3.8.6 XML Definition [Editors Note: Sidebar support to be added in next revision] 3.9 Basic Multimedia Template 3.9.1 Description [Editors Note: To be added in the next revision] 3.9.2 Roles 3.9.3 Parameters 3.9.4 Controls 3.9.5 Streams 3.9.6 XML Definition 3.10 Advanced Multimedia Template 3.10.1 Description [Editors Note: To be added in the next revision] 3.10.2 Roles 3.10.3 Parameters 3.10.4 Controls Boulton & Chandra Expires April 15, 2005 [Page 34] Internet-Draft Media Template October 2004 3.10.5 Streams 3.10.6 XML Definition [Editors Note: Sidebar support to be added in next revision] 4. Security Considerations 5. IANA Considerations 6. Acknowledgements Many thanks to the media policy design team members for helpful comments including Cullen Jennings, Alan Johnston, Roni Even, Brian Rosen and Mark Trayer. Special thanks goes to Alan Johnston for his guidance. 7. References 7.1 Normative References [1] Jennings, C., "Media Mixer Control for XCON", draft-jennings-xcon-media-control-01 (work in progress), July 2004. 7.2 Informative References Authors' Addresses Chris Boulton Ubiquity Software Corporation Langstone Park Newport, South Wales NP EMail: cboulton@ubiquity.net Umesh Chandra Nokia Research Center 6000 Connection Drive Irving, Texas 75063 EMail: Umesh.Chandra@nokia.com Boulton & Chandra Expires April 15, 2005 [Page 35] Internet-Draft Media Template October 2004 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Boulton & Chandra Expires April 15, 2005 [Page 36]