draft-ietf-mediactrl-mixer-control-package-00.txt   draft-ietf-mediactrl-mixer-control-package-01.txt 
Network Working Group T. Melanchuk Network Working Group T. Melanchuk
Internet-Draft Rain Willow Communications Internet-Draft Rain Willow Communications
Intended status: Standards Track S. McGlashan Intended status: Standards Track S. McGlashan
Expires: January 7, 2009 Hewlett-Packard Expires: April 17, 2009 Hewlett-Packard
C. Boulton C. Boulton
Avaya Avaya
July 6, 2008 October 14, 2008
A Mixer Control Package for the Media Control Channel Framework A Mixer Control Package for the Media Control Channel Framework
draft-ietf-mediactrl-mixer-control-package-00 draft-ietf-mediactrl-mixer-control-package-01
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware 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 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. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 37 skipping to change at page 1, line 37
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on January 7, 2009. This Internet-Draft will expire on April 17, 2009.
Abstract Abstract
This document defines a Mixer Control Package for the Media Control This document defines a Mixer Control Package for the Media Control
Channel Framework. This Control Package aims to fulfill Conferencing Channel Framework. This Control Package aims to fulfill Conferencing
requirements using the SIP Control Framework. requirements using the SIP Control Framework.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Conventions and Terminology . . . . . . . . . . . . . . . . . 5 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 5
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Control Package Definition . . . . . . . . . . . . . . . . . . 7 4. Control Package Definition . . . . . . . . . . . . . . . . . . 8
4.1. Control Package Name . . . . . . . . . . . . . . . . . . . 7 4.1. Control Package Name . . . . . . . . . . . . . . . . . . . 8
4.2. Framework Message Usage . . . . . . . . . . . . . . . . . 7 4.2. Framework Message Usage . . . . . . . . . . . . . . . . . 8
4.3. Common XML Support . . . . . . . . . . . . . . . . . . . . 8 4.3. Common XML Support . . . . . . . . . . . . . . . . . . . . 9
4.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . . 8 4.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . . 9
4.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 8 4.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 9
4.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5. Element Definitions . . . . . . . . . . . . . . . . . . . . . 10 5. Element Definitions . . . . . . . . . . . . . . . . . . . . . 11
5.1. <mscmixer> . . . . . . . . . . . . . . . . . . . . . . . . 10 5.1. <mscmixer> . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2. Mixer Elements . . . . . . . . . . . . . . . . . . . . . . 11 5.2. Mixer Elements . . . . . . . . . . . . . . . . . . . . . . 12
5.2.1. Conference Elements . . . . . . . . . . . . . . . . . 12 5.2.1. Conference Elements . . . . . . . . . . . . . . . . . 13
5.2.1.1. <createconference> . . . . . . . . . . . . . . . . 12 5.2.1.1. <createconference> . . . . . . . . . . . . . . . . 13
5.2.1.2. <modifyconference> . . . . . . . . . . . . . . . . 15 5.2.1.2. <modifyconference> . . . . . . . . . . . . . . . . 16
5.2.1.3. <destroyconference> . . . . . . . . . . . . . . . 16 5.2.1.3. <destroyconference> . . . . . . . . . . . . . . . 17
5.2.1.4. Conference Configuration . . . . . . . . . . . . . 16 5.2.1.4. Conference Configuration . . . . . . . . . . . . . 17
5.2.1.4.1. <audio-mixing> . . . . . . . . . . . . . . . . 17 5.2.1.4.1. <audio-mixing> . . . . . . . . . . . . . . . . 18
5.2.1.4.2. <video-layouts> . . . . . . . . . . . . . . . 17 5.2.1.4.2. <video-layouts> . . . . . . . . . . . . . . . 18
5.2.1.4.2.1. <video-layout> . . . . . . . . . . . . . . 18 5.2.1.4.2.1. <video-layout> . . . . . . . . . . . . . . 19
5.2.1.4.3. <video-switch> . . . . . . . . . . . . . . . . 19 5.2.1.4.3. <video-switch> . . . . . . . . . . . . . . . . 20
5.2.1.4.4. <subscribe> . . . . . . . . . . . . . . . . . 20 5.2.1.4.3.1. Priority assignment . . . . . . . . . . . 22
5.2.1.4.4.1. <active-talkers-sub> . . . . . . . . . . . 20 5.2.1.4.4. <subscribe> . . . . . . . . . . . . . . . . . 22
5.2.2. Joining Elements . . . . . . . . . . . . . . . . . . . 21 5.2.1.4.4.1. <active-talkers-sub> . . . . . . . . . . . 23
5.2.2.1. Joining Model . . . . . . . . . . . . . . . . . . 21 5.2.2. Joining Elements . . . . . . . . . . . . . . . . . . . 23
5.2.2.2. <join> . . . . . . . . . . . . . . . . . . . . . . 22 5.2.2.1. Joining Model . . . . . . . . . . . . . . . . . . 23
5.2.2.3. <modifyjoin> . . . . . . . . . . . . . . . . . . . 24 5.2.2.2. <join> . . . . . . . . . . . . . . . . . . . . . . 25
5.2.2.4. <unjoin> . . . . . . . . . . . . . . . . . . . . . 25 5.2.2.3. <modifyjoin> . . . . . . . . . . . . . . . . . . . 27
5.2.2.5. <stream> . . . . . . . . . . . . . . . . . . . . . 26 5.2.2.4. <unjoin> . . . . . . . . . . . . . . . . . . . . . 28
5.2.2.5.1. <volume> . . . . . . . . . . . . . . . . . . . 27 5.2.2.5. <stream> . . . . . . . . . . . . . . . . . . . . . 29
5.2.2.5.2. <clamp> . . . . . . . . . . . . . . . . . . . 28 5.2.2.5.1. <volume> . . . . . . . . . . . . . . . . . . . 30
5.2.2.5.3. <region> . . . . . . . . . . . . . . . . . . . 28 5.2.2.5.2. <clamp> . . . . . . . . . . . . . . . . . . . 30
5.2.3. <response> . . . . . . . . . . . . . . . . . . . . . . 28 5.2.2.5.3. <region> . . . . . . . . . . . . . . . . . . . 31
5.2.4. <event> . . . . . . . . . . . . . . . . . . . . . . . 29 5.2.2.5.4. <priority> . . . . . . . . . . . . . . . . . . 31
5.2.4.1. <active-talkers-notify> . . . . . . . . . . . . . 29 5.2.3. <response> . . . . . . . . . . . . . . . . . . . . . . 31
5.2.4.1.1. <active-talker> . . . . . . . . . . . . . . . 29 5.2.4. <event> . . . . . . . . . . . . . . . . . . . . . . . 32
5.2.4.2. <unjoin-notify> . . . . . . . . . . . . . . . . . 30 5.2.4.1. <active-talkers-notify> . . . . . . . . . . . . . 32
5.3. Audit Elements . . . . . . . . . . . . . . . . . . . . . . 30 5.2.4.1.1. <active-talker> . . . . . . . . . . . . . . . 33
5.3.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 31 5.2.4.2. <unjoin-notify> . . . . . . . . . . . . . . . . . 33
5.3.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 32 5.2.4.3. <conferenceexit> . . . . . . . . . . . . . . . . . 34
5.3.2.1. <capabilities> . . . . . . . . . . . . . . . . . . 33 5.3. Audit Elements . . . . . . . . . . . . . . . . . . . . . . 34
5.3.2.2. <mixers> . . . . . . . . . . . . . . . . . . . . . 34 5.3.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 35
5.3.2.2.1. <conferenceaudit> . . . . . . . . . . . . . . 34 5.3.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 36
5.3.2.2.1.1. <participants> . . . . . . . . . . . . . . 35 5.3.2.1. <capabilities> . . . . . . . . . . . . . . . . . . 37
5.3.2.2.1.1.1. <participant> . . . . . . . . . . . . 35 5.3.2.2. <mixers> . . . . . . . . . . . . . . . . . . . . . 38
5.3.2.2.2. <joinaudit> . . . . . . . . . . . . . . . . . 36 5.3.2.2.1. <conferenceaudit> . . . . . . . . . . . . . . 38
5.4. <codecs> . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.3.2.2.1.1. <participants> . . . . . . . . . . . . . . 39
5.4.1. <codec> . . . . . . . . . . . . . . . . . . . . . . . 37 5.3.2.2.1.1.1. <participant> . . . . . . . . . . . . 39
5.5. Response Status Codes . . . . . . . . . . . . . . . . . . 37 5.3.2.2.2. <joinaudit> . . . . . . . . . . . . . . . . . 40
5.6. Type Definitions . . . . . . . . . . . . . . . . . . . . . 39 5.4. <codecs> . . . . . . . . . . . . . . . . . . . . . . . . . 40
6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 40 5.4.1. <codec> . . . . . . . . . . . . . . . . . . . . . . . 41
7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.5. <params> . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 41 5.5.1. <param> . . . . . . . . . . . . . . . . . . . . . . . 42
5.6. Response Status Codes . . . . . . . . . . . . . . . . . . 42
5.7. Type Definitions . . . . . . . . . . . . . . . . . . . . . 43
6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 45
7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 63
7.1.1. Creating a conference mixer and joining a 7.1.1. Creating a conference mixer and joining a
participant . . . . . . . . . . . . . . . . . . . . . 41 participant . . . . . . . . . . . . . . . . . . . . . 63
7.1.2. Receiving active talker notifications . . . . . . . . 42 7.1.2. Receiving active talker notifications . . . . . . . . 64
8. Security Considerations . . . . . . . . . . . . . . . . . . . 43 8. Security Considerations . . . . . . . . . . . . . . . . . . . 65
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 44 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 66
9.1. Control Package Registration . . . . . . . . . . . . . . . 44 9.1. Control Package Registration . . . . . . . . . . . . . . . 66
9.2. URN Sub-Namespace Registration . . . . . . . . . . . . . . 44 9.2. URN Sub-Namespace Registration . . . . . . . . . . . . . . 66
9.3. MIME Registration . . . . . . . . . . . . . . . . . . . . 44 9.3. MIME Registration . . . . . . . . . . . . . . . . . . . . 66
10. Change Summary . . . . . . . . . . . . . . . . . . . . . . . . 45 10. Change Summary . . . . . . . . . . . . . . . . . . . . . . . . 67
11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 47 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 70
12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 48 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 71
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 49 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 72
13.1. Normative References . . . . . . . . . . . . . . . . . . . 49 13.1. Normative References . . . . . . . . . . . . . . . . . . . 72
13.2. Informative References . . . . . . . . . . . . . . . . . . 49 13.2. Informative References . . . . . . . . . . . . . . . . . . 72
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 51 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 74
Intellectual Property and Copyright Statements . . . . . . . . . . 52 Intellectual Property and Copyright Statements . . . . . . . . . . 75
1. Introduction 1. Introduction
This document defines a Media Control Channel Framework Package for This document defines a Media Control Channel Framework Package for
conference mixers and connection mixers. The package defines mixer conference mixers and connection mixers. The package defines mixer
management elements for creating, modifying and deleting conference management elements for creating, modifying and deleting conference
mixers, elements for joining, modifying and unjoining media streams mixers, elements for joining, modifying and unjoining media streams
between connections and conferences (including mixers between between connections and conferences (including mixers between
connections), as well as associated responses and notifications. The connections), as well as associated responses and notifications. The
package also defines elements for auditing package capabilities and package also defines elements for auditing package capabilities and
skipping to change at page 6, line 32 skipping to change at page 6, line 32
associated responses and notifications. The package also defines associated responses and notifications. The package also defines
elements for auditing package capabilities and mixers. elements for auditing package capabilities and mixers.
This package has been designed to satisfy the IETF MediaCtrl This package has been designed to satisfy the IETF MediaCtrl
requirements ([RFC5167]). The package provides the major requirements ([RFC5167]). The package provides the major
conferencing functionality of SIP Media Server languages such as conferencing functionality of SIP Media Server languages such as
MSCML ([RFC5022]) and MSML ([MSML]). A key differentiator is that MSCML ([RFC5022]) and MSML ([MSML]). A key differentiator is that
this package provides such functionality using the Media Control this package provides such functionality using the Media Control
Channel Framework. Channel Framework.
Out of scope for this mixer package are more advanced functions
including personalized video mixes for conference participants,
support for floor control protocols, as well as support for video
overlays and text insertion. Such functionality may be addressed by
extensions to this package (through addition of foreign elements or
attributes from another namespace) or use of other control packages
which could build upon this package.
The functionality of this package is defined by messages, containing The functionality of this package is defined by messages, containing
XML [XML] elements, transported using the Media Control Channel XML [XML] elements, transported using the Media Control Channel
Framework. The XML elements can be divided into two types: mixer Framework. The XML elements can be divided into two types: mixer
management elements; and elements for auditing package capabilities management elements; and elements for auditing package capabilities
as well as mixers managed by the package. as well as mixers managed by the package.
The document is organized as follows. Section 4 descibes how this The document is organized as follows. Section 4 descibes how this
control package fulfills the requirements for a Media Control Channel control package fulfills the requirements for a Media Control Channel
Framework control package. Section 5 describes the syntax and Framework control package. Section 5 describes the syntax and
semantics of defined elements, including mixer management semantics of defined elements, including mixer management
skipping to change at page 7, line 37 skipping to change at page 8, line 37
elements defined in Section 5. These elements describe requests, elements defined in Section 5. These elements describe requests,
response and notifications and all are contained within a root response and notifications and all are contained within a root
<mscmixer> element (Section 5.1). <mscmixer> element (Section 5.1).
In this package, the MS operates as a Control Framework Server in In this package, the MS operates as a Control Framework Server in
receiving requests from, and sending responses to, the AS (operating receiving requests from, and sending responses to, the AS (operating
as Control Framework Client). Mixer management requests and as Control Framework Client). Mixer management requests and
responses are defined in Section 5.2. Audit requests and responses responses are defined in Section 5.2. Audit requests and responses
are defined in Section 5.3. Mixer management and audit responses are are defined in Section 5.3. Mixer management and audit responses are
carried in a framework 200 response or REPORT message bodies. This carried in a framework 200 response or REPORT message bodies. This
package's response codes are defined in Section 5.5. package's response codes are defined in Section 5.6.
Note that package responses are different from framework response Note that package responses are different from framework response
codes. Framework error response codes (see Section 8 of codes. Framework error response codes (see Section 8 of
[I-D.ietf-mediactrl-sip-control-framework]) are used when the request [I-D.ietf-mediactrl-sip-control-framework]) are used when the request
or event notification is invalid; for example, a request is invalid or event notification is invalid; for example, a request is invalid
XML (400), or not understood (500). XML (400), or not understood (500).
The MS also operates as a Control Framework Client in sending event The MS also operates as a Control Framework Client in sending event
notification to the AS (Control Framework Server). Event notification to the AS (Control Framework Server). Event
notifications (Section 5.2.4) are carried in CONTROL message bodies. notifications (Section 5.2.4) are carried in CONTROL message bodies.
skipping to change at page 10, line 14 skipping to change at page 11, line 14
5. Element Definitions 5. Element Definitions
This section defines the XML elements for this package. The elements This section defines the XML elements for this package. The elements
are defined in the XML namespace specified in Section 9.2. are defined in the XML namespace specified in Section 9.2.
The root element is <mscmixer> (Section 5.1). All other XML elements The root element is <mscmixer> (Section 5.1). All other XML elements
(requests, responses and notification elements) are contained within (requests, responses and notification elements) are contained within
it. Child elements describe mixer management (Section 5.2) and audit it. Child elements describe mixer management (Section 5.2) and audit
(Section 5.3) functionality. Response status codes are defined in (Section 5.3) functionality. Response status codes are defined in
Section 5.5 and type definitions in Section 5.6. Section 5.6 and type definitions in Section 5.7.
Implementation of this control package MUST adhere to the syntax and Implementation of this control package MUST adhere to the syntax and
semantics of XML elements defined in this section and the schema semantics of XML elements defined in this section and the schema
(Section 6). The XML schema supports extensibility by allowing (Section 6). The XML schema supports extensibility by allowing
attributes and elements from other namespaces. Implementations MAY attributes and elements from other namespaces. Implementations MAY
support attributes and elements from other namespaces. If an support attributes and elements from other (foreign) namespaces. If
implementation encounters attributes or elements from another an MS implementation receives a <mscmixer> element containing
namespace which it does not understand, it MUST ignore them and attributes or elements from another namespace which it does not
continue processing. support, the MS MUST send a 427 response (Section 5.6).
Extensible attributes and elements are not described in this section. Extensible attributes and elements are not described in this section.
In all other cases where there is a difference in constraints between In all other cases where there is a difference in constraints between
the XML schema and the textual description of elements in this the XML schema and the textual description of elements in this
section, the textual definition takes priority. section, the textual definition takes priority.
Usage examples are provided in Section 7. Usage examples are provided in Section 7.
5.1. <mscmixer> 5.1. <mscmixer>
skipping to change at page 12, line 35 skipping to change at page 13, line 35
Responses are specified in a <response> element (Section 5.2.3). The Responses are specified in a <response> element (Section 5.2.3). The
MS MUST respond to a request message with a response message. If the MS MUST respond to a request message with a response message. If the
MS is not able to carry out the requested mixer operation, it is an MS is not able to carry out the requested mixer operation, it is an
error and the MS MUST indicate the error in the status code of the error and the MS MUST indicate the error in the status code of the
response. response.
Notifications are sent from the MS to provide updates on the status Notifications are sent from the MS to provide updates on the status
of a mixer operation or subscription. Notifications are specified in of a mixer operation or subscription. Notifications are specified in
an <event> element (Section 5.2.4). an <event> element (Section 5.2.4).
[Editors Note: MIXER-XXX. Should we define conferenceexit
notification to indicate that a conference has exited? Cf. IVR
package with dialogexit. Use case: conference encounters runtime
error. ]
5.2.1. Conference Elements 5.2.1. Conference Elements
5.2.1.1. <createconference> 5.2.1.1. <createconference>
The <createconference> element is sent to the MS to request creation The <createconference> element is sent to the MS to request creation
of a new conference (multiparty) mixer. of a new conference (multiparty) mixer.
The <createconference> element has the following attributes: The <createconference> element has the following attributes:
conferenceid: string indicating a unique name for the new conferenceid: string indicating a unique name for the new
conference. If this attribute is not specified, the MS MUST conference. If this attribute is not specified, the MS MUST
create a unique name for the conference. The value is used in create a unique name for the conference. The value is used in
subsequent references to the conference (e.g. as conferenceid in a subsequent references to the conference (e.g. as conferenceid in a
<response>). The attribute is optional. There is no default <response>). The attribute is optional. There is no default
value. value.
reserved-talkers: indicates the requested number of guaranteed reserved-talkers: indicates the requested number of guaranteed
speaker slots to be reserved for the conference. A valid value is speaker slots to be reserved for the conference. A valid value is
a non-negative integer (see Section 5.6.2). The attribute is a non-negative integer (see Section 5.7.2). The attribute is
optional. The default value is 0. optional. The default value is 0.
reserved-listeners: indicates the requested number of guaranteed reserved-listeners: indicates the requested number of guaranteed
listener slots to be reserved for the conference. A valid value listener slots to be reserved for the conference. A valid value
is a non-negative integer (see Section 5.6.2). The attribute is is a non-negative integer (see Section 5.7.2). The attribute is
optional. The default value is 0. optional. The default value is 0.
The <createconference> element has the following sequence of child The <createconference> element has the following sequence of child
elements: elements:
<codecs>: an element to configure the codecs supported by the <codecs>: an element to configure the codecs supported by the
conference (see Section 5.4). The element is optional. conference (see Section 5.4). The element is optional.
<audio-mixing>: an element to configure the audio mixing <audio-mixing>: an element to configure the audio mixing
characteristics of a conference (see Section 5.2.1.4.1). The characteristics of a conference (see Section 5.2.1.4.1). The
skipping to change at page 14, line 36 skipping to change at page 15, line 33
<codecs> <codecs>
<codec> <codec>
<subtype>H264</subtype> <subtype>H264</subtype>
</codec> </codec>
<codec> <codec>
<subtype>PCMA</subtype> <subtype>PCMA</subtype>
</codec> </codec>
</codecs> </codecs>
<audio-mixing type="nbest"/> <audio-mixing type="nbest"/>
<video-layouts> <video-layouts>
<video-layout>single-view</video-layout> <video-layout min-participants="1">single-view</video-layout>
<video-layout>dual-view</video-layout> <video-layout min-participants="2">dual-view</video-layout>
<video-layout>quad-view</video-layout> <video-layout min-participants="3">quad-view</video-layout>
</video-layouts> </video-layouts>
<video-switch type="vas" interval="5"/> <video-switch type="vas" interval="5"/>
<subscribe> <subscribe>
<active-talkers-sub interval="4"/> <active-talkers-sub interval="4"/>
</subscribe> </subscribe>
</createconference> </createconference>
</mscmixer> </mscmixer>
and a response from the MS if the conference was sucessfully created: and a response from the MS if the conference was sucessfully created:
skipping to change at page 16, line 41 skipping to change at page 17, line 38
The <destroyconference> element does not specify any child elements. The <destroyconference> element does not specify any child elements.
If the conferenceid attribute specifies the name of a conference If the conferenceid attribute specifies the name of a conference
which does not exist, the MS MUST report an error (404). which does not exist, the MS MUST report an error (404).
When a MS has finished processing a <destroyconference> request, it When a MS has finished processing a <destroyconference> request, it
MUST reply with an appropriate <response> element (Section 5.2.3). MUST reply with an appropriate <response> element (Section 5.2.3).
Successfully destroying the conference (status code 200) will result Successfully destroying the conference (status code 200) will result
in all connection or conference particpants being removed from the in all connection or conference particpants being removed from the
conference mixer and <unjoin-notify> notification events being sent conference mixer, <unjoin-notify> notification events
(Section 5.2.4.2). A <response> with any other status code indicates (Section 5.2.4.2) being sent for each conference participant and a
that the conference mixer still exists and participants are still <conferenceexit> notification event (Section 5.2.4.3) indicating that
joined to the mixer. conference has exited. A <response> with any other status code
indicates that the conference mixer still exists and participants are
still joined to the mixer.
5.2.1.4. Conference Configuration 5.2.1.4. Conference Configuration
The elements in this section are used to establish and modify the The elements in this section are used to establish and modify the
configuration of conferences. configuration of conferences.
5.2.1.4.1. <audio-mixing> 5.2.1.4.1. <audio-mixing>
The <audio-mixing> element defines the configuration of the The <audio-mixing> element defines the configuration of the
conference audio mix. It has no child elements and has the following conference audio mix. It has no child elements and has the following
skipping to change at page 17, line 36 skipping to change at page 18, line 36
The <video-layouts> element has no attributes. The <video-layouts> element has no attributes.
The <video-layouts> element has the following sequence of child The <video-layouts> element has the following sequence of child
elements (1 or more): elements (1 or more):
<video-layout>: element describing a video layout <video-layout>: element describing a video layout
(Section 5.2.1.4.2.1). (Section 5.2.1.4.2.1).
If the MS does not support video conferencing at all, or does not If the MS does not support video conferencing at all, or does not
support multiple video layouts, or does not support a specific video support multiple video layouts, or does not support a specific video
layout, the MS MUST report an error in the response to the request layout, the MS MUST report an 408 error in the response to the
element containing the <video-layouts> element. request element containing the <video-layouts> element.
An MS MAY support more than one <video-layout> element, although only An MS MAY support more than one <video-layout> element, although only
one layout can be active at a time. A <video-layout> is active if one layout can be active at a time. A <video-layout> is active if
the number of participants in the conference is equal to or greater the number of participants in the conference is equal to or greater
than the value of its "min-participants" attribute, but less than the than the value of its "min-participants" attribute, but less than the
value of the "min-participants" attribute for any other <video- value of the "min-participants" attribute for any other <video-
layout> element. An MS MUST report an error if more than one <video- layout> element. An MS MUST report an error if more than one <video-
layout> has the same value for the "min-participants" attribute. layout> has the same value for the "min-participants" attribute.
When the number of regions within the active layout is greater than When the number of regions within the active layout is greater than
the number of participants in the conference, the display of the number of participants in the conference, the display of
unassigned regions is implementation-specific. unassigned regions is implementation-specific.
The assignment of participant video streams to regions within the The assignment of participant video streams to regions within the
layout is according to the video switch policy specified by the layout is according to the video switch policy specified by the
<video-switch> element (Section 5.2.1.4.3). <video-switch> element (Section 5.2.1.4.3).
[Editors Note: MIXER-XXX. This definition assumes that only
participants providing a video input stream to the conference are
displayed on the layout. Other participants are not displayed: i.e.
no support for associating avatars with participants not contributing
a video input stream to the conference.]
For example, a fragment describing a single layout: For example, a fragment describing a single layout:
<video-layouts> <video-layouts>
<video-layout>single-view</video-layout> <video-layout>single-view</video-layout>
</video-layouts> </video-layouts>
And a fragment describing a sequence of layouts: And a fragment describing a sequence of layouts:
<video-layouts> <video-layouts>
<video-layout min-participants='1' >single-view</video-layout> <video-layout min-participants="1" >single-view</video-layout>
<video-layout min-participants='2'>dual-view</video-layout> <video-layout min-participants="2">dual-view</video-layout>
<video-layout min-participants='3'>quad-view</video-layout> <video-layout min-participants="3">quad-view</video-layout>
<video-layout min-participants='5'>multiple-3x3</video-layout> <video-layout min-participants="5">multiple-3x3</video-layout>
</video-layouts> </video-layouts>
When the conference has one participant providing a video input When the conference has one participant providing a video input
stream to the conference, then the single-view format is used. When stream to the conference, then the single-view format is used. When
the conference has two such participants, the dual-view layout is the conference has two such participants, the dual-view layout is
used. When the conference has three or four particpants, the quad- used. When the conference has three or four particpants, the quad-
view layout is used. When the conference has five or more view layout is used. When the conference has five or more
particpants, the multiple-3x3 layout is used. particpants, the multiple-3x3 layout is used.
5.2.1.4.2.1. <video-layout> 5.2.1.4.2.1. <video-layout>
The <video-layout> element describes a video layout containing one or The <video-layout> element describes a video layout containing one or
more regions in which participant video input stream are displayed. more regions in which participant video input stream are displayed.
The <video-layout> element has the following attributes: The <video-layout> element has the following attributes:
min-participants: the minimum number of conference participants min-participants: the minimum number of conference participants
needed to allow this layout to be active. A valid value is a needed to allow this layout to be active. A valid value is a
positive integer (see Section 5.6.3). The attribute is optional. positive integer (see Section 5.7.3). The attribute is optional.
The default value is one. The default value is 1.
The <video-layout> element has a content model specifying the name of The <video-layout> element has a content model specifying the name of
the video layout. the video layout.
It is RECOMMENDED that an MS support the predefined video layouts It is RECOMMENDED that an MS support the predefined video layouts
defined in the XCON conference information data model defined in the XCON conference information data model
([I-D.ietf-xcon-common-data-model]). The MS MAY support other video ([I-D.ietf-xcon-common-data-model]). The MS MAY support other video
layouts. It is RECOMMENDED that non-XCON layouts are prefixed with a layouts. It is RECOMMENDED that non-XCON layouts are prefixed with a
label; for example, <video-layout>mylayout:single-view<video-layout>. label; for example, <video-layout>mylayout:single-view<video-layout>.
Each video layout has associated with it one or more regions. The Each video layout has associated with it one or more regions. The
XCON layouts have associated the following named regions: XCON layouts have associated the following named regions:
single-view one region with name "region1" single-view one region with name "region1"
dual-view two regions: left named "region1", right "region2" dual-view two regions: left named "region1", right "region2"
XXX etc XXX etc
[Editors Note: MIXER-XXX. ASCII art help required to draw the layout [Editors Note: MIXER-003. ASCII art help required to draw the layout
and name the regions for the remaining XCON layouts. ] and name the regions for the remaining XCON layouts. ]
5.2.1.4.3. <video-switch> 5.2.1.4.3. <video-switch>
The <video-switch> element describe the configuration of the The <video-switch> element describe the configuration of the
conference policy for how participant's input video streams are conference policy for how participant's input video streams are
assigned to regions within the active video layout. assigned to regions within the active video layout.
The <video-switch> element has the following attributes: The <video-switch> element has the following attributes:
type: a string indicating the video switching policy of the type: a string indicating the video switching policy of the
conference. Defined values are: conference. Defined values are:
vas (Voice Activated Switching) enables automatic display of the vas (Voice Activated Switching) enables automatic display of the
most active speaker providing a video input stream to the most active speaker participant also providing a video input
conference. If there is only one region in the layout, then stream to the conference. Participants who do not provide an
the most active speaker is displayed there. If more than one audio stream are not considered for automatic display. If a
region is available, then the most active speaker is displayed participant provides more than one audio stream, then the
in the largest region, if any, and then in the first region policy for inclusion of such a participant in the VAS is
from the top-left corner of the layout. The policy for how the implementation-specific; an MS could select one stream, sum
remaining regions are assigned is implementation-specific. audio streams or ignore the participant for VAS consideration.
If there is only one region in the layout, then the most active
speaker is displayed there. If more than one region is
available, then the most active speaker is displayed in the
largest region, if any, and then in the first region from the
top-left corner of the layout. The MS assigns the remaining
regions based on the priority mechanism described in
Section 5.2.1.4.3.1.
controller enables manual control over video switching. The controller enables manual control over video switching. The
controller AS determines how the regions are assigned based on controller AS determines how the regions are assigned based on
an external floor control policy. The MS receives <join>, an external floor control policy. The MS receives <join>,
<modifyjoin> and <join> commands with a <stream> element <modifyjoin> and <join> commands with a <stream> element
(Section 5.2.2.5) indicating the region where the stream is (Section 5.2.2.5) indicating the region where the stream is
displayed. displayed. If no explicit region is specified, the MS assigns
the region based on the priority mechanism described in
Section 5.2.1.4.3.1.
An MS MAY support other video switching policies. It is An MS MAY support other video switching policies. It is
RECOMMENDED that other policy names are prefixed with a label; RECOMMENDED that other policy names are prefixed with a label;
e.g. "mypolicies:policy1". The attribute is optional. The e.g. "mypolicies:policy1". The attribute is optional. The
default value is 'vas'. default value is 'vas'.
interval: specifies the period between video switches as a number of interval: specifies the period between video switches as a number of
seconds. In the case of 'vas' policy, a speaker needs to be the seconds. In the case of 'vas' policy, a speaker needs to be the
most active speaker for the interval before the switch takes most active speaker for the interval before the switch takes
place. A valid value is a non-negative integer (see place. A valid value is a non-negative integer (see
Section 5.6.2). A value of 0 indicates that switching is applied Section 5.7.2). A value of 0 indicates that switching is applied
immediately. The attribute is optional. The default value is 3 immediately. The attribute is optional. The default value is 3
(seconds). (seconds).
If the MS does not support the specified video switching policy, the activespeakermix: indicates whether or not the active speaker
MS MUST report an error in the response to the request element participant receives a video stream without themselves displayed
containing the <video-swtich> element. in the case of the 'vas' switching policy. If enabled, the MS
needs to generate two video streams for each conference mix: one
for the active speaker participant without themselves displayed -
details of this video layout are implementation-specific; and one
for other participants as described in the 'vas' switch policy
above. A valid value is a boolean (see Section 5.7.1). A value
of true indicates that a separate video mix is generated for the
active speaker without themselves being displayed. A value of
false indicates that all participants receive the same video mix.
The attribute is optional. The default value is false. If the
type attribute is not set to 'vas', the MS MUST ignore this
attribute.
If the MS does not support the specified video switching policy or
other configuration parameters (including separate active speaker
video mixes), then MS MUST report a 409 error (Section 5.6) in the
response to the request element containing the <video-switch>
element.
If the MS receives a <join> or <modifyjoin> request containing a a If the MS receives a <join> or <modifyjoin> request containing a a
<stream> element (Section 5.2.2.5) specifying a region and the <stream> element (Section 5.2.2.5) specifying a region and the
conference video switching policy is set to 'vas', then the MS MUST conference video switching policy is set to 'vas', then the MS MUST
ignore the region (i.e. conference switching policy takes ignore the region (i.e. conference switching policy takes
precedence). precedence).
The <video-switch> element has no child elements. The <video-switch> element has no child elements.
For example, a fragment specifying a 'vas' video switching policy For example, a fragment specifying a 'vas' video switching policy
with an interval of 2s with an interval of 2s
<video-switch type="vas" interval="2"/> <video-switch type="vas" interval="2"/>
For example, a fragment specifying a 'controller' video switching For example, a fragment specifying a 'controller' video switching
policy where video switching takes place immediately: policy where video switching takes place immediately:
<video-switch type="controller" interval="0"/> <video-switch type="controller" interval="0"/>
5.2.1.4.3.1. Priority assignment
In cases where the video switching policy does not explicitly
determine the region to which a participant is assigned, the
following priority assignment mechanism applies:
1. Each participant has an (positive integer) priority value: the
lower the value, the higher the priority. The priority value is
determined by the <priority> child element (Section 5.2.2.5.4) of
<stream>. If not explicitly specified, the default priority
value is 100.
2. The MS uses priority values to assign participants to regions in
the video layout which remain unfilled after application of the
video switching policy. The MS MUST dedicate larger and/or more
prominent portions of the layout to participants with higher
priority values first (e.g. first all participants with priority
1, then those with 2, 3, etc).
3. The policy for displaying participants with the same priority is
implementation-specific.
The MS applies this priority policy each time the video layout is
changed or updated. It is RECOMMENDED that the MS does not move a
participant from one region to another unless required by the video
switching policy when an active video layout is updated.
This model allows the MS to apply default video layouts after
applying the video switch policy. For example, region 2 is
statically assigned to Bob, so the priority mechanism only applies to
regions 1, 3, 4, etc.
5.2.1.4.4. <subscribe> 5.2.1.4.4. <subscribe>
The <subscribe> element is a container for specifying conference The <subscribe> element is a container for specifying conference
notification events to which a controlling entity subscribes. notification events to which a controlling entity subscribes.
Notifications of conference events are delivered using the <event> Notifications of conference events are delivered using the <event>
element (see Section 5.2.4). element (see Section 5.2.4).
The <subscribe> element has no attributes, but has the following The <subscribe> element has no attributes, but has the following
child element: child element:
skipping to change at page 21, line 7 skipping to change at page 23, line 12
support other event subscriptions. If the MS does not support a support other event subscriptions. If the MS does not support a
requested subscription, it MUST send a <response> with a 406 status requested subscription, it MUST send a <response> with a 406 status
code. code.
5.2.1.4.4.1. <active-talkers-sub> 5.2.1.4.4.1. <active-talkers-sub>
The <active-talkers-sub> element has the following attributes: The <active-talkers-sub> element has the following attributes:
interval: the minimum amount of time (in seconds) that must elapse interval: the minimum amount of time (in seconds) that must elapse
before further active talker events can be generated. A valid before further active talker events can be generated. A valid
value is a non-negative integer (see Section 5.6.2). A value of 0 value is a non-negative integer (see Section 5.7.2). A value of 0
suppresses further notifications. The attribute is optional. suppresses further notifications. The attribute is optional. The
There is no default value. default value is 3 (seconds).
The <active-talker-sub> element has no child elements. The <active-talker-sub> element has no child elements.
Active talker notifications are delivered in the <active-talker- Active talker notifications are delivered in the <active-talker-
notify> element (Section 5.2.4.1). notify> element (Section 5.2.4.1).
5.2.2. Joining Elements 5.2.2. Joining Elements
5.2.2.1. Joining Model 5.2.2.1. Joining Model
skipping to change at page 23, line 33 skipping to change at page 25, line 42
Media server implementations need to distinguish between conferences Media server implementations need to distinguish between conferences
and connections based upon the values of the "id1" and "id2" and connections based upon the values of the "id1" and "id2"
attributes. attributes.
The <join> element has the following child element (0 or more): The <join> element has the following child element (0 or more):
<stream>: an element that both identifies the media streams to join <stream>: an element that both identifies the media streams to join
and defines the way that they are to be joined (see and defines the way that they are to be joined (see
Section 5.2.2.5). The element is optional. Section 5.2.2.5). The element is optional.
If no <stream> elements are specified, then the default is to join
all streams between the entities according to the media configuration
of the connection or conference.
One or more <stream> elements may be specified so that individual One or more <stream> elements may be specified so that individual
media streams can be controlled independently. For example, if a media streams can be controlled independently. For example, if a
connection supports both audio and video streams, a <stream> element connection supports both audio and video streams, a <stream> element
could be used to indicate that only the audio stream is used in could be used to indicate that only the audio stream is used in
receive mode. In cases where there are multiple media streams of the receive mode. In cases where there are multiple media streams of the
same type for a connection or conference, it is RECOMMENDED that the same type for a connection or conference, it is RECOMMENDED that the
configuration is explicitly specified using <stream> elements. If no configuration is explicitly specified using <stream> elements.
<stream> elements are specified, then the default is the media
configuration of the connection or conference.
It is an error if a <stream> element is in conflict with (a) another It is an error if a <stream> element is in conflict with (a) another
<stream> element, (b) with specified connection or conference media <stream> element, (b) with specified connection or conference media
capabilities, (c) with a SDP label value as part of the connection-id capabilities, (c) with a SDP label value as part of the connection-id
(see Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]) or (see Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]) or
(d) if the media stream configuration is not supported by the MS. (d) if the media stream configuration is not supported by the MS.
If the MS is unable to execute the join as specified in <stream> If the MS is unable to execute the join as specified in <stream>
elements, the MS MUST report an error (424) and MUST NOT join the elements, the MS MUST report an error (424) and MUST NOT join the
entities. entities.
skipping to change at page 24, line 23 skipping to change at page 26, line 33
If the MS does not support joining two specified conferences If the MS does not support joining two specified conferences
together, the MS MUST report an error (423). together, the MS MUST report an error (423).
If the MS is unable to join the specified entities for any other If the MS is unable to join the specified entities for any other
reason, the MS MUST report an error (420). reason, the MS MUST report an error (420).
When the MS has finished processing a <join> request, it MUST reply When the MS has finished processing a <join> request, it MUST reply
with an <response> element (Section 5.2.3). with an <response> element (Section 5.2.3).
[Editors Note: MIXER-008. Should the draft allow multiple joins of
the same user to the same conference? a (maybe silly) use case for
this might be having a user's video appear in 2 different regions of
the same conference. With the current specification an "already
joined" 425 error would be generated, considering that the same
connection/conference can only be attached once to each other.
(Lorenzo) ]
[Editors Note: MIXER-009. The package isn't clear on the behavior of
connectionid with a label part (i.e. from~to~label) permitted in
Section 17.1 of the Control Framework. Connection identity: how is
from1~to1 related to from1~to1~label1 related to one another? If
from1~to1 is unjoined, then is from1~to1~label1 also unjoined? Some
possible approaches: (a) remove connectionids with label part from
the Control Framework? (like this package, other packages can use a
<stream> element to control the behavior). (b) explicitly specify
this package does not support the label part of connection (or make a
'special' feature in the Control Framework. Or (c) clarify usage in
Control Framework and this package. (Lorenzo) ]
For example, a request to join two connection together: For example, a request to join two connection together:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer"> <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<join id1="connnection1" id2="connection2"/> <join id1="connnection1" id2="connection2"/>
</mscmixer> </mscmixer>
and the response if the MS doesn't support joining media streams and the response if the MS doesn't support joining media streams
between connections: between connections:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer"> <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
skipping to change at page 25, line 18 skipping to change at page 27, line 44
mandatory. mandatory.
The <modifyjoin> element has the following child elements (1 or The <modifyjoin> element has the following child elements (1 or
more): more):
<stream>: an element that both identifies the media streams to <stream>: an element that both identifies the media streams to
modify and defines the way that each stream should now be modify and defines the way that each stream should now be
configured (see Section 5.2.2.5). configured (see Section 5.2.2.5).
The MS MUST support <modifyjoin> for any stream that was established The MS MUST support <modifyjoin> for any stream that was established
using <join>. using <join> or modified by a previous <modifyjoin> operation.
The media server MUST configure the streams that are included within The media server MUST configure the streams that are included within
<modifyjoin> to that stated by the child elements. It MUST NOT <modifyjoin> to that stated by the child elements. It MUST NOT
change the configuration of any streams not included as child change the configuration of any streams not included as child
elements. elements.
If the MS is unable to modify the join as specified in <stream> If the MS is unable to modify the join as specified in <stream>
elements, the MS MUST report an error (424) and MUST NOT modify the elements, the MS MUST report an error (424) and MUST NOT modify the
join between the entities. join between the entities.
skipping to change at page 26, line 15 skipping to change at page 28, line 39
id2: an identifier for either a connection or a conference. The id2: an identifier for either a connection or a conference. The
identifier MUST conform to the syntax defined in Section 17.1 of identifier MUST conform to the syntax defined in Section 17.1 of
[I-D.ietf-mediactrl-sip-control-framework] The attribute is [I-D.ietf-mediactrl-sip-control-framework] The attribute is
mandatory. mandatory.
The <unjoin> element has the following child element (0 or more The <unjoin> element has the following child element (0 or more
occurrences): occurrences):
<stream>: an element that identifies the media stream(s) to remove <stream>: an element that identifies the media stream(s) to remove
(see Section 5.2.2.5). The element is optional. When not (see Section 5.2.2.5). The element is optional. When not
present, all streams between "id1" and "id2" are removed. present, all currently established streams between "id1" and "id2"
are removed.
The MS MUST support <unjoin> for any stream that was established The MS MUST support <unjoin> for any stream that was established
using <join>. using <join> or modified using <modifyjoin> and have not already been
removed.
If the MS is unable to terminate any join as specified in <stream> If the MS is unable to terminate any join as specified in <stream>
elements, the MS MUST report an error (424) and MUST NOT terminate elements, the MS MUST report an error (424) and MUST NOT terminate
the join between the entities. the join between the entities.
If the specified entities are not already joined, then the MS MUST If the specified entities are not already joined, then the MS MUST
report an error (426). report an error (426).
If the MS is unable to terminate the join between the specified If the MS is unable to terminate the join between the specified
entities for any other reason, the MS MUST report an error (420). entities for any other reason, the MS MUST report an error (420).
skipping to change at page 27, line 15 skipping to change at page 29, line 38
label: a string indicating the SDP label associated with a media label: a string indicating the SDP label associated with a media
stream ([RFC4574]). The attribute is optional. stream ([RFC4574]). The attribute is optional.
direction: a string indicating the allowed media flow of the stream direction: a string indicating the allowed media flow of the stream
relative to the value of the "id1" attribute of the parent relative to the value of the "id1" attribute of the parent
element. Defined values are: "sendrecv" (media can be sent and element. Defined values are: "sendrecv" (media can be sent and
received), "sendonly" (media can only be sent), "recvonly" (media received), "sendonly" (media can only be sent), "recvonly" (media
can only be received) and "inactive" (stream is not to be used). can only be received) and "inactive" (stream is not to be used).
The default value is "sendrecv". The attribute is optional. The default value is "sendrecv". The attribute is optional.
[Editors Note: MIXER-010. "inactive" value: clarify that this value
means the stream is not established. Alternative: it is established
but no send/receive media flow. This has an impact when a
<modifyjoin> makes an established stream inactive (removed?), or a
previously inactive stream is made active in sendrecv direction, for
example. ].
The <stream> element has the following sequence of child elements: The <stream> element has the following sequence of child elements:
<volume>: an element to configure the volume or gain of the media <volume>: an element to configure the volume or gain of the media
stream (Section 5.2.2.5.1). The element is optional. stream (Section 5.2.2.5.1). The element is optional.
<clamp>: an element to configure filtering and removal of tones from <clamp>: an element to configure filtering and removal of tones from
a media stream (Section 5.2.2.5.2). The element is optional. a media stream (Section 5.2.2.5.2). The element is optional.
<region>: an element to configure region within a video layout where <region>: an element to configure region within a video layout where
the media stream is displayed (Section 5.2.2.5.3). The element is the media stream is displayed (Section 5.2.2.5.3). The element is
optional. optional.
<priority>: an element to configure priority associated with the
stream in the media mix (Section 5.2.2.5.4). The element is
optional.
If the "media" attribute does not have the value of "audio", then the If the "media" attribute does not have the value of "audio", then the
MS MUST ignored <volume> and <clamp> elements. MS MUST ignored <volume> and <clamp> elements.
If the "media" attribute does not have the value of "video", then the If the "media" attribute does not have the value of "video", then the
MS MUST ignored <region> element. MS MUST ignored <region> element.
5.2.2.5.1. <volume> 5.2.2.5.1. <volume>
The <volume> element is used to configure the volume of an audio The <volume> element is used to configure the volume of an audio
media stream. It may be set to a specific gain amount, to media stream. It may be set to a specific gain amount, to
skipping to change at page 27, line 49 skipping to change at page 30, line 38
The <volume> element has no child elements but has the following The <volume> element has no child elements but has the following
attributes: attributes:
controltype: a string indicating the type of volume control to use controltype: a string indicating the type of volume control to use
for the stream. Defined values are: "automatic" (the volume will for the stream. Defined values are: "automatic" (the volume will
be adjusted automatically to the level specified by the "value" be adjusted automatically to the level specified by the "value"
attribute), "setgain" (use the value of the "value" attribute as a attribute), "setgain" (use the value of the "value" attribute as a
specific gain measured in dB to apply), "setstate" (set the state specific gain measured in dB to apply), "setstate" (set the state
of the stream to "mute" or "unmute" as specified by the value of of the stream to "mute" or "unmute" as specified by the value of
the "value" attribute). The attribute is optional. the "value" attribute). The attribute is mandatory.
value: a string specifying the amount or state for the volume value: a string specifying the amount or state for the volume
control defined by the value of the "controltype" attribute. control defined by the value of the "controltype" attribute. The
attribute is optional. There is no default value.
5.2.2.5.2. <clamp> 5.2.2.5.2. <clamp>
The <clamp> element is used to configure whether tones should be The <clamp> element is used to configure whether tones should be
filtered and removed from a media stream. filtered and removed from a media stream.
The <clamp> element has no child elements but has the following The <clamp> element has no child elements but has the following
attributes: attributes:
tones: A list of the tones to remove. tones: A list of the tones to remove. The attribute is manadatory.
5.2.2.5.3. <region> 5.2.2.5.3. <region>
The <region> element is used to manually specify the region within a The <region> element is used to explicitly specify the region within
video layout where the media stream is displayed. a video layout where the media stream is displayed.
The <region> element has no attributes and its content model The <region> element has no attributes and its content model
specifies the name of the region layout. specifies the name of the region layout.
If the region name is invalid, then the MS MUST report an error in If the region name is invalid, then the MS MUST report an 428 error
the response to the request element containing the <region> element. in the response to the request element containing the <region>
element.
5.2.2.5.4. <priority>
The <priority> element is used to explicitly specify the priority of
a participant. The MS uses this priority to determine where the
media stream is displayed within a video layout
(Section 5.2.1.4.3.1).
The <priority> element has no attributes and its content model
specifies a positive integer (see Section 5.7.3). The lower the
value, the higher the priority.
5.2.3. <response> 5.2.3. <response>
Reponses to requests are indicated by a <response> element. Reponses to requests are indicated by a <response> element.
The <response> element has following attributes: The <response> element has following attributes:
status: numeric code indicating the response status. Valid valies status: numeric code indicating the response status. Valid valies
are defined in Section 5.5. The attribute is mandatory. are defined in Section 5.6. The attribute is mandatory.
reason: string specifying a reason for the response status. The reason: string specifying a reason for the response status. The
attribute is optional. attribute is optional.
conferenceid: string identifying the conference (see Section 17.1 of conferenceid: string identifying the conference (see Section 17.1 of
[I-D.ietf-mediactrl-sip-control-framework]). The attribute is [I-D.ietf-mediactrl-sip-control-framework]). The attribute is
optional. optional.
connectionid: string identifying the SIP dialog connection (see connectionid: string identifying the SIP dialog connection (see
Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]). The Section 17.1 of [I-D.ietf-mediactrl-sip-control-framework]). The
skipping to change at page 29, line 27 skipping to change at page 32, line 30
The <event> element has no attributes, but has the following sequence The <event> element has no attributes, but has the following sequence
of child elements (0 or more instances of each child): of child elements (0 or more instances of each child):
<active-talkers-notify> specifies an active talkers notification <active-talkers-notify> specifies an active talkers notification
(Section 5.2.4.1). (Section 5.2.4.1).
<unjoin-notify> notifies that a connection or conference has been <unjoin-notify> notifies that a connection or conference has been
completely unjoined (Section 5.2.4.2). completely unjoined (Section 5.2.4.2).
<conferenceexit> notifies that a conference has exited
(Section 5.2.4.3).
5.2.4.1. <active-talkers-notify> 5.2.4.1. <active-talkers-notify>
The <active-talkers-notify> element describes zero or more speakers The <active-talkers-notify> element describes zero or more speakers
that have been active in a conference during the specified interval that have been active in a conference during the specified interval
(see Section 5.2.1.4.4.1). (see Section 5.2.1.4.4.1).
The <active-talkers-notify> element has the following attributes: The <active-talkers-notify> element has the following attributes:
conferenceid: string indicating the name of the conference from conferenceid: string indicating the name of the conference from
which the event orginated. This attribute is mandatory. which the event orginated. This attribute is mandatory.
skipping to change at page 30, line 11 skipping to change at page 33, line 18
with either a connection or conference participant in a conference. with either a connection or conference participant in a conference.
The <active-talker> element has the following attributes: The <active-talker> element has the following attributes:
connectionid: string indicating the connectionid of the active connectionid: string indicating the connectionid of the active
talker. This attribute is optional. There is no default value. talker. This attribute is optional. There is no default value.
conferenceid: string indicating the conferenceid of the active conferenceid: string indicating the conferenceid of the active
talker. This attribute is optional. There is no default value. talker. This attribute is optional. There is no default value.
It is an error if both the connectionid and conferenceid attributes It is an error (429) if both the connectionid and conferenceid
are specified. attributes are specified.
The <active-talker> element has no child elements. The <active-talker> element has no child elements.
5.2.4.2. <unjoin-notify> 5.2.4.2. <unjoin-notify>
The <unjoin-notify> element describes a notification event where a The <unjoin-notify> element describes a notification event where a
connection and/or conference have been completely unjoined. connection and/or conference have been completely unjoined.
The <unjoin-notify> element has the following attributes: The <unjoin-notify> element has the following attributes:
status: a status code indicating why the unjoin occurred. A valid status: a status code indicating why the unjoin occurred. A valid
value is a non-negative integer (see Section 5.6.2). A value of 1 value is a non-negative integer (see Section 5.7.2). A value of 1
indicates that the join has been terminated by a <unjoin> request. indicates that the join has been terminated by a <unjoin> request.
A value of 2 indicates that the unjoin occured because the a A value of 2 indicates that the unjoin occured because the a
connection or conference has terminated. A value of 3 indicates connection or conference has terminated. A value of 3 indicates
the join terminated due to an internal error. Any other value the join terminated due to an internal error. Any other value
indicates an error defined by the MS. The attribute is mandatory. indicates an error defined by the MS. The attribute is mandatory.
reason: a textual description providing a reason for the status reason: a textual description providing a reason for the status
code; e.g. details about an error. A valid value is a string (see code; e.g. details about an error. A valid value is a string (see
Section 5.6.4). The attribute is optional. There is no default Section 5.7.4). The attribute is optional. There is no default
value. value.
id1: an identifier for either a connection or a conference. The id1: an identifier for either a connection or a conference. The
identifier MUST conform to the syntax defined in Section 17.1 of identifier MUST conform to the syntax defined in Section 17.1 of
[I-D.ietf-mediactrl-sip-control-framework] The attribute is [I-D.ietf-mediactrl-sip-control-framework] The attribute is
mandatory. mandatory.
id2: an identifier for either a connection or a conference. The id2: an identifier for either a connection or a conference. The
identifier MUST conform to the syntax defined in Section 17.1 of identifier MUST conform to the syntax defined in Section 17.1 of
[I-D.ietf-mediactrl-sip-control-framework] The attribute is [I-D.ietf-mediactrl-sip-control-framework] The attribute is
mandatory. mandatory.
The <unjoin-notify> element has no child elements. The <unjoin-notify> element has no child elements.
5.2.4.3. <conferenceexit>
The <conferenceexit> element indicates that a conference has exited
because it has been terminated or because a error occurred (for
example, a hardware error in the conference mixing unit). This event
MUST be sent by the MS whenever a successfully created conference
exits.
The <conferenceexit> element has the following attributes:
conferenceid: string indicating the name of the conference. This
attribute is mandatory.
status: a status code indicating why the conference exited. A valid
value is a non-negative integer (see Section 5.7.2). A value of 1
indicates that the conference has been terminated by a
<destroyconference> request. Any other value indicates an error
defined by the MS. The attribute is mandatory.
reason: a textual description providing a reason for the status
code; e.g. details about an error. A valid value is a string (see
Section 5.7.4). The attribute is optional. There is no default
value.
The <conferenceexit> element has no child elements.
When a MS sends a <conferenceexit> event, the identifier for the
conference (conferenceid attribute) is no longer valid on the MS and
can be reused for another conference.
For example, the following notification event would be sent from the
MS when the conference with identifier "conference99" exits due to a
successful <destroyconference/>:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<event>
<conferenceexit conferenceid="conference99"
status="1"/>
</event>
</mscmixer>
5.3. Audit Elements 5.3. Audit Elements
The audit elements defined in this section allow the MS to be audited The audit elements defined in this section allow the MS to be audited
for package capabilities as well as mixers managed by the package. for package capabilities as well as mixers managed by the package.
Auditing is particularly important for two use cases. First, it Auditing is particularly important for two use cases. First, it
enables discovery of package capabilities supported on an MS before enables discovery of package capabilities supported on an MS before
an AS creates a conference mixer or joins connections and an AS creates a conference mixer or joins connections and
conferences. The AS may then use this informaton to create request conferences. The AS may then use this informaton to create request
elements using supported capabilities and, in the case of codecs, to elements using supported capabilities and, in the case of codecs, to
negotiate an appropriate SDP for a user agent's connection. Second, negotiate an appropriate SDP for a user agent's connection. Second,
skipping to change at page 31, line 25 skipping to change at page 35, line 25
The <audit> request element is sent to the MS to request information The <audit> request element is sent to the MS to request information
about the capabilities of, and mixers currently managed with, this about the capabilities of, and mixers currently managed with, this
control package. Capabilities include supported conference codecs control package. Capabilities include supported conference codecs
and video layouts. Mixer information includes the status of managed and video layouts. Mixer information includes the status of managed
mixers as well as codecs. mixers as well as codecs.
The <audit> element has the following attributes: The <audit> element has the following attributes:
capabilities: indicates whether package capabilities are to be capabilities: indicates whether package capabilities are to be
audited. A valid value is a boolean (see Section 5.6.1). A value audited. A valid value is a boolean (see Section 5.7.1). A value
of true indicates that capability information is to be reported. of true indicates that capability information is to be reported.
A value of false indicates that capability information is not to A value of false indicates that capability information is not to
be reported. The attribute is optional. The default value is be reported. The attribute is optional. The default value is
true. true.
mixers: indicates whether mixers currently managed by the package mixers: indicates whether mixers currently managed by the package
are to be audited. A valid value is a boolean (see are to be audited. A valid value is a boolean (see
Section 5.6.1). A value of true indicates that mixer information Section 5.7.1). A value of true indicates that mixer information
is to be reported. A value of false indicates that mixer is to be reported. A value of false indicates that mixer
information is not to be reported. The attribute is optional. information is not to be reported. The attribute is optional.
The default value is true. The default value is true.
conferenceid: string identifying a specific conference mixer to conferenceid: string identifying a specific conference mixer to
audit. It is an error if the conferenceid attribute is specified audit. It is an error (404) if the conferenceid attribute is
and the conference identifier is not valid. The attribute is specified and the conference identifier is not valid. The
optional. There is no default value. attribute is optional. There is no default value.
If the mixers attribute has the value true and conferenceid attribute If the mixers attribute has the value true and conferenceid attribute
is specified, then only audit information about the specified is specified, then only audit information about the specified
conference mixer is reported. If the mixers attribute has the value conference mixer is reported. If the mixers attribute has the value
false, then no mixer audit information is reported even if a false, then no mixer audit information is reported even if a
conferenceid attribute is specified. conferenceid attribute is specified.
The <audit> element has no child elements. The <audit> element has no child elements.
When the MS receives a <audit> request, it MUST reply with a When the MS receives a <audit> request, it MUST reply with a
skipping to change at page 32, line 37 skipping to change at page 36, line 37
</mscmixer> </mscmixer>
5.3.2. <auditresponse> 5.3.2. <auditresponse>
The <auditresponse> element describes a response to a <audit> The <auditresponse> element describes a response to a <audit>
request. request.
The <auditresponse> element has the following attributes: The <auditresponse> element has the following attributes:
status: numeric code indicating the audit response status. The status: numeric code indicating the audit response status. The
attribute is mandatory. Valid values are defined in Section 5.5. attribute is mandatory. Valid values are defined in Section 5.6.
reason: string specifying a reason for the status. The attribute is reason: string specifying a reason for the status. The attribute is
optional. optional.
The <auditresponse> element has the following sequence of child The <auditresponse> element has the following sequence of child
elements: elements:
<capabilities> element (Section 5.3.2.1) describing capabilities of <capabilities> element (Section 5.3.2.1) describing capabilities of
the package. The element is optional. the package. The element is optional.
skipping to change at page 35, line 12 skipping to change at page 39, line 12
The <conferenceaudit> element has the following sequence of child The <conferenceaudit> element has the following sequence of child
elements: elements:
<codecs> element describing codecs used in the conference. See <codecs> element describing codecs used in the conference. See
Section 5.4. The element is optional. Section 5.4. The element is optional.
<participants> element listing connections or conferences joined to <participants> element listing connections or conferences joined to
the conference. See Section 5.3.2.2.1.1. The element is the conference. See Section 5.3.2.2.1.1. The element is
optional. optional.
[Editors Note: MIXER-XXX. More conference information required? AV <video-layout> element describing the active video layout for the
mixing policies? etc] conference. See Section 5.2.1.4.2.1. The element is optional.
For example, a fragment describing a conference which has been For example, a fragment describing a conference which has been
created but has no participants: created but has no participants:
<conferenceaudit conferenceid="conference1"/> <conferenceaudit conferenceid="conference1"/>
And a fragment when the same conference has three participants (two And a fragment when the same conference has three participants (two
connections and another conference) joined to it: connections and another conference) joined to it:
<conferenceaudit conferenceid="conference1"> <conferenceaudit conferenceid="conference1">
skipping to change at page 35, line 38 skipping to change at page 39, line 38
</codecs> </codecs>
<participants> <participants>
<participant id="connection1"/> <participant id="connection1"/>
<participant id="connection2"/> <participant id="connection2"/>
<participant id="conference2"/> <participant id="conference2"/>
</participants> </participants>
</conferenceaudit> </conferenceaudit>
5.3.2.2.1.1. <participants> 5.3.2.2.1.1. <participants>
[Editors Note: MIXER-XXX. Is 'participants' too xcon? endpoints? ]
The <participants> element is a container for <participant> elements The <participants> element is a container for <participant> elements
(Section 5.3.2.2.1.1.1). (Section 5.3.2.2.1.1.1).
The <participants> element has no attributes, but the following child The <participants> element has no attributes, but the following child
elements are defined (0 or more): elements are defined (0 or more):
<participant>: specifies a participant (Section 5.3.2.2.1.1.1). <participant>: specifies a participant (Section 5.3.2.2.1.1.1).
5.3.2.2.1.1.1. <participant> 5.3.2.2.1.1.1. <participant>
skipping to change at page 36, line 28 skipping to change at page 40, line 28
[I-D.ietf-mediactrl-sip-control-framework] The attribute is [I-D.ietf-mediactrl-sip-control-framework] The attribute is
mandatory. mandatory.
id2: an identifier for either a connection or a conference. The id2: an identifier for either a connection or a conference. The
identifier MUST conform to the syntax defined in Section 17.1 of identifier MUST conform to the syntax defined in Section 17.1 of
[I-D.ietf-mediactrl-sip-control-framework] The attribute is [I-D.ietf-mediactrl-sip-control-framework] The attribute is
mandatory. mandatory.
The <joinaudit> element has no children. The <joinaudit> element has no children.
[Editors Note: MIXER-XXX. Do we need to specify stream information [Editors Note: MIXER-006. Do we need to specify stream information
associated with the join?] associated with the join?]
For example, a fragment describing an audit of two join mixers, one For example, a fragment describing an audit of two join mixers, one
between connections and the second between conferences: between connections and the second between conferences:
<mixers> <mixers>
<joinaudit id1="connection1" id2="connection2"/> <joinaudit id1="connection1" id2="connection2"/>
<joinaudit id1="conference1" id2="conference2"/> <joinaudit id1="conference1" id2="conference2"/>
</mixers> </mixers>
skipping to change at page 37, line 21 skipping to change at page 41, line 21
<codec> <codec>
<subtype>PCMA</subtype> <subtype>PCMA</subtype>
</codec> </codec>
<codec> <codec>
<subtype>H263</subtype> <subtype>H263</subtype>
</codec> </codec>
</codecs> </codecs>
5.4.1. <codec> 5.4.1. <codec>
The <codec> element describes a codec. The element is defined in the The <codec> element describes a codec. The element is modeled on the
XCON conference information data model <codec> element in the XCON conference information data model
([I-D.ietf-xcon-common-data-model]). ([I-D.ietf-xcon-common-data-model]) and allows addition information
(e.g. rate, speed, etc) to be specified.
Note that additional information about the codec can be provided The <codecs> element has no attributes.
through schema extensibility (see Section 6).
[Editors Note: MIXER-XXX. Do we need to define additional The <codecs> element has the following sequence of child elements:
information? specific (rate, speed, etc)?]
<subtype>: element describing the codec's name. The possible values
of this element are the values of the 'subtype' column of the RTP
Payload Format media types per [RFC4855] defined in IANA ([IANA]).
The element is mandatory.
<params>: element (Section 5.5) describing additional information
about the codec. This package is agnostic to the names and values
of the codec parameters supported by an implementation. The
element is optional.
For example, a fragment with a <codec> element describing the H263 For example, a fragment with a <codec> element describing the H263
codec: codec:
<codec> <codec>
<subtype>H263</subtype> <subtype>H263</subtype>
</codec> </codec>
5.5. Response Status Codes 5.5. <params>
The <params> element is a container for <param> elements
(Section 5.5.1).
The <params> element has no attributes, but the following child
elements are defined (0 or more):
<param>: specifies a parameter name and value (Section 5.5.1).
5.5.1. <param>
The <param> element describes a parameter name and value.
The <param> element has the following attributes:
name: a string indicating the name of the parameter. The attribute
is mandatory.
type: specifies a type indicating how the inline value of the
parameter is to be interpreted. A valid value is a MIME media
type (see Section 5.7.6). The attribute is optional. The default
value is "text/plain".
The <param> element content model is the value of the parameter.
Note that a value which contains XML characters (e.g. "<") needs to
be escaped following standard XML conventions.
5.6. Response Status Codes
The following status codes for mixer management reponses The following status codes for mixer management reponses
(Section 5.2.3) and audit responses Section 5.3.2) responses are (Section 5.2.3) and audit responses Section 5.3.2) responses are
defined. defined.
+-----------+-------------------------------------------------------+ +-----------+-------------------------------------------------------+
| code | description | | code | description |
+-----------+-------------------------------------------------------+ +-----------+-------------------------------------------------------+
| 200 | OK | | 200 | OK |
| | | | | |
skipping to change at page 38, line 25 skipping to change at page 43, line 4
| | | | | |
| 406 | Unable to create subscription | | 406 | Unable to create subscription |
| | | | | |
| 407 | Conference reservation failed | | 407 | Conference reservation failed |
| | | | | |
| 408 | Unable to configure video layouts | | 408 | Unable to configure video layouts |
| | | | | |
| 409 | Unable to configure video switch | | 409 | Unable to configure video switch |
| | | | | |
| 410 | Unable to configure codecs | | 410 | Unable to configure codecs |
| | |
| 420 | Unable to join requested entities | | 420 | Unable to join requested entities |
| | | | | |
| 421 | Unable to join - conference full | | 421 | Unable to join - conference full |
| | | | | |
| 422 | Unable to join - mixing connections not supported | | 422 | Unable to join - mixing connections not supported |
| | | | | |
| 423 | Unable to join - mixing conferences not supported | | 423 | Unable to join - mixing conferences not supported |
| | | | | |
| 424 | invalid joining stream configuration | | 424 | invalid joining stream configuration |
| | | | | |
| 425 | joining already joined | | 425 | joining already joined |
| | | | | |
| 426 | joining entities not joined | | 426 | joining entities not joined |
| | | | | |
| 427 | Unsupported foreign namespace attribute or element |
| | |
| 428 | Invalid region identifier |
| | |
| 429 | Syntax constraint violation |
| | |
| 450 | Unknown or unsupported element | | 450 | Unknown or unsupported element |
| | | | | |
| 451 | Element required | | 451 | Element required |
| | | | | |
| 452 | Unknown or unsupported attribute | | 452 | Unknown or unsupported attribute |
| | | | | |
| 453 | Attribute required | | 453 | Attribute required |
+-----------+-------------------------------------------------------+ +-----------+-------------------------------------------------------+
Table 1: response status codes Table 1: response status codes
5.6. Type Definitions 5.7. Type Definitions
This section defines types referenced in attribute definitions. This section defines types referenced in attribute definitions.
5.6.1. Boolean 5.7.1. Boolean
The value space of boolean is the set {true, false}. The value space of boolean is the set {true, false}.
5.6.2. Non-Negative Integer 5.7.2. Non-Negative Integer
The value space of non-negative integer is the infinite set The value space of non-negative integer is the infinite set
{0,1,2,...}. {0,1,2,...}.
5.6.3. Positive Integer 5.7.3. Positive Integer
The value space of positive integer is the infinite set {1,2,...}. The value space of positive integer is the infinite set {1,2,...}.
5.6.4. String 5.7.4. String
A string in the character encoding associated with the XML element. A string in the character encoding associated with the XML element.
5.6.5. Time Designation 5.7.5. Time Designation
A time designation consists of a non-negative real number followed by A time designation consists of a non-negative real number followed by
a time unit identifier. a time unit identifier.
The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). The time unit identifiers are: "ms" (milliseconds) and "s" (seconds).
Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s".
5.7.6. MIME Media Type
A string formated as a IANA MIME media type ([MIME.mediatypes]).
6. Formal Syntax 6. Formal Syntax
This section defines the XML schema for the Mixer Control Package. This section defines the XML schema for the Mixer Control Package.
The schema defines datatypes, attributes, and mixer elements in the The schema defines datatypes, attributes, and mixer elements in the
urn:ietf:params:xml:ns:msc-mixer namespace. In most elements the urn:ietf:params:xml:ns:msc-mixer namespace. In most elements the
order of child elements is significant. The schema is extensible: order of child elements is significant. The schema is extensible:
elements allow attributes and child elements from other namespaces. elements allow attributes and child elements from other namespaces.
Elements from outside this package's namespace can occur after Elements from outside this package's namespace can occur after
elements defined in this package. elements defined in this package.
The schema is dependent upon the schema (framework.xsd) defined in The schema is dependent upon the schema (framework.xsd) defined in
Section 17.1 of the Control Framework Section 17.1 of the Control Framework
[I-D.ietf-mediactrl-sip-control-framework]. [I-D.ietf-mediactrl-sip-control-framework].
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="urn:ietf:params:xml:ns:msc-mixer"
xmlns:fw="urn:ietf:params:xml:ns:control:framework-attributes"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="urn:ietf:params:xml:ns:msc-mixer"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>
IETF MediaCtrl Mixer 1.0 (20081010)
This is the schema of the Mixer control package. It
defines request, response and notification elements for
mixing.
The schema namespace is urn:ietf:params:xml:ns:msc-mixer
</xsd:documentation>
</xsd:annotation>
<!--
#############################################################
SCHEMA IMPORTS
#############################################################
-->
<xsd:import
namespace="urn:ietf:params:xml:ns:control:framework-attributes"
schemaLocation="framework.xsd">
<xsd:annotation>
<xsd:documentation>
This import brings in the framework attributes for
conferenceid and connectionid.
</xsd:documentation>
</xsd:annotation>
</xsd:import>
<!--
#####################################################
Extensible core type
#####################################################
-->
<xsd:complexType name="Tcore">
<xsd:annotation>
<xsd:documentation>
This type is extended by other component types to
allow elements and attributes from other namespaces
to be added.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:anyAttribute namespace="##other" processContents="lax" />
</xsd:complexType>
<!--
#####################################################
TOP LEVEL ELEMENT: mscmixer
#####################################################
-->
<xsd:complexType name="mscmixerType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:choice>
<xsd:element ref="createconference" />
<xsd:element ref="modifyconference" />
<xsd:element ref="destroyconference" />
<xsd:element ref="join" />
<xsd:element ref="unjoin" />
<xsd:element ref="modifyjoin" />
<xsd:element ref="response" />
<xsd:element ref="event" />
<xsd:element ref="audit" />
<xsd:element ref="auditresponse" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="mscmixer" type="mscmixerType" />
<!--
#####################################################
CONFERENCE MANAGEMENT TYPES
#####################################################
-->
<!-- createconference -->
<xsd:complexType name="createconferenceType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="codecs" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="audio-mixing" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="video-layouts" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="video-switch" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="subscribe" minOccurs="0"
maxOccurs="1" />
<xsd:any namespace="##other"
processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="conferenceid" type="xsd:string" />
<xsd:attribute name="reserved-talkers"
type="xsd:nonNegativeInteger" default="0" />
<xsd:attribute name="reserved-listeners"
type="xsd:nonNegativeInteger" default="0" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="createconference" type="createconferenceType" />
<!-- modifyconference -->
<xsd:complexType name="modifyconferenceType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="codecs" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="audio-mixing" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="video-layouts" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="video-switch" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="subscribe" />
<xsd:any namespace="##other"
processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="conferenceid" type="xsd:string"
use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="modifyconference" type="modifyconferenceType" />
<!-- destroyconference -->
<xsd:complexType name="destroyconferenceType">
<xsd:attribute name="conferenceid" type="xsd:string"
use="required" />
</xsd:complexType>
<xsd:element name="destroyconference"
type="destroyconferenceType" />
<!--
#####################################################
JOIN TYPES
#####################################################
-->
<xsd:complexType name="joinType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="stream" minOccurs="0"
maxOccurs="unbounded" />
<xsd:any namespace="##other"
processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="id1" type="xsd:string"
use="required" />
<xsd:attribute name="id2" type="xsd:string"
use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="join" type="joinType" />
<xsd:complexType name="modifyjoinType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="stream" minOccurs="0"
maxOccurs="unbounded" />
<xsd:any namespace="##other"
processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="id1" type="xsd:string"
use="required" />
<xsd:attribute name="id2" type="xsd:string"
use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="modifyjoin" type="modifyjoinType" />
<xsd:complexType name="unjoinType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="stream" minOccurs="0"
maxOccurs="unbounded" />
<xsd:any namespace="##other"
processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="id1" type="xsd:string"
use="required" />
<xsd:attribute name="id2" type="xsd:string"
use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="unjoin" type="unjoinType" />
<!--
#####################################################
OTHER TYPES
#####################################################
-->
<xsd:complexType name="eventType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:choice>
<xsd:element ref="active-talkers-notify"
minOccurs="0" maxOccurs="1" />
<xsd:element ref="unjoin-notify"
minOccurs="0" maxOccurs="1" />
<xsd:element ref="conferenceexit"
minOccurs="0" maxOccurs="1" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="event" type="eventType" />
<xsd:complexType name="activetalkersnotifyType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="active-talker" minOccurs="0"
maxOccurs="unbounded" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="conferenceid" type="xsd:string"
use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="active-talkers-notify"
type="activetalkersnotifyType" />
<xsd:complexType name="activetalkerType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attributeGroup ref="fw:framework-attributes" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="active-talker" type="activetalkerType" />
<xsd:complexType name="unjoinnotifyType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="status" type="status.datatype"
use="required" />
<xsd:attribute name="reason" type="xsd:string" />
<xsd:attribute name="id1" type="xsd:string"
use="required" />
<xsd:attribute name="id2" type="xsd:string"
use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="unjoin-notify" type="unjoinnotifyType" />
<!-- conferenceexit-->
<xsd:complexType name="conferenceexitType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="conferenceid" type="xsd:string"
use="required" />
<xsd:attribute name="status"
type="xsd:nonNegativeInteger" use="required" />
<xsd:attribute name="reason" type="xsd:string" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="conferenceexit" type="conferenceexitType" />
<xsd:complexType name="responseType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:attribute name="status" type="status.datatype"
use="required" />
<xsd:attribute name="reason" type="xsd:string" />
<xsd:attributeGroup ref="fw:framework-attributes" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="response" type="responseType" />
<xsd:complexType name="subscribeType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="active-talkers-sub"
minOccurs="0" maxOccurs="1" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="subscribe" type="subscribeType" />
<xsd:complexType name="activetalkerssubType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="interval"
type="xsd:nonNegativeInteger" default="3" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="active-talkers-sub"
type="activetalkerssubType" />
<xsd:complexType name="streamType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="volume" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="clamp" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="region" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="priority" minOccurs="0"
maxOccurs="1" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="media" type="media.datatype"
use="required" />
<xsd:attribute name="label" type="label.datatype" />
<xsd:attribute name="direction"
type="direction.datatype" default="sendrecv" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="stream" type="streamType" />
<xsd:complexType name="volumeType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="controltype"
type="volumecontroltype.datatype" use="required" />
<xsd:attribute name="value" type="xsd:string" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="volume" type="volumeType" />
<xsd:complexType name="clampType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="tones" type="xsd:string"
use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="clamp" type="clampType" />
<!-- region -->
<xsd:simpleType name="regionType">
<xsd:restriction base="xsd:NMTOKEN" />
</xsd:simpleType>
<xsd:element name="region" type="regionType" />
<!-- priority -->
<xsd:simpleType name="priorityType">
<xsd:restriction base="xsd:positiveInteger" />
</xsd:simpleType>
<xsd:element name="priority" type="priorityType" />
<xsd:complexType name="audiomixingType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:attribute name="type" type="audiomix.datatype"
default="nbest" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="audio-mixing" type="audiomixingType" />
<!-- video-switch -->
<xsd:complexType name="videoswitchType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="type"
type="videoswitchtype.datatype" default="vas" />
<xsd:attribute name="interval"
type="xsd:nonNegativeInteger" default="3" />
<xsd:attribute name="activespeakermix"
type="boolean.datatype" default="false" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="video-switch" type="videoswitchType" />
<!-- video-layouts -->
<xsd:complexType name="videolayoutsType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="video-layout" minOccurs="0"
maxOccurs="unbounded" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="video-layouts" type="videolayoutsType" />
<!-- video-layout -->
<!-- doesn't extend tCore since its content model is mixed -->
<xsd:complexType name="videolayoutType" mixed="true">
<xsd:sequence>
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="min-participants"
type="xsd:positiveInteger" default="1" />
</xsd:complexType>
<xsd:element name="video-layout" type="videolayoutType" />
<xsd:complexType name="auditType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:attribute name="capabilities"
type="boolean.datatype" default="true" />
<xsd:attribute name="mixers" type="boolean.datatype"
default="true" />
<xsd:attribute name="conferenceid" type="xsd:string" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="audit" type="auditType" />
<xsd:complexType name="auditresponseType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="capabilities" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="mixers" minOccurs="0"
maxOccurs="1" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="status" type="status.datatype"
use="required" />
<xsd:attribute name="reason" type="xsd:string" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="auditresponse" type="auditresponseType" />
<!-- mixers -->
<xsd:complexType name="mixersType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="conferenceaudit" minOccurs="0"
maxOccurs="unbounded" />
<xsd:element ref="joinaudit" minOccurs="0"
maxOccurs="unbounded" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="mixers" type="mixersType" />
<!-- joinaudit -->
<xsd:complexType name="joinauditType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:any namespace="##other"
processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="id1" type="xsd:string"
use="required" />
<xsd:attribute name="id2" type="xsd:string"
use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="joinaudit" type="joinauditType" />
<!-- conferenceaudit -->
<xsd:complexType name="conferenceauditType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="codecs" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="participants" minOccurs="0"
maxOccurs="1" />
<xsd:element ref="video-layout" minOccurs="0"
maxOccurs="1" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="conferenceid" type="xsd:string"
use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="conferenceaudit" type="conferenceauditType" />
<!-- participants -->
<xsd:complexType name="participantsType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="participant" minOccurs="0"
maxOccurs="unbounded" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="participants" type="participantsType" />
<!-- participant -->
<xsd:complexType name="participantType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string"
use="required" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="participant" type="participantType" />
<!-- capabilities -->
<xsd:complexType name="capabilitiesType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="codecs" minOccurs="1"
maxOccurs="1" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="capabilities" type="capabilitiesType" />
<!-- codecs -->
<xsd:complexType name="codecsType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="codec" minOccurs="0"
maxOccurs="unbounded" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="codecs" type="codecsType" />
<!-- codec -->
<xsd:complexType name="codecType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="subtype" minOccurs="1"
maxOccurs="1" />
<xsd:element ref="params" minOccurs="0"
maxOccurs="1" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="codec" type="codecType" />
<!-- subtype -->
<xsd:simpleType name="subtypeType">
<xsd:restriction base="xsd:string" />
</xsd:simpleType>
<xsd:element name="subtype" type="subtypeType" />
<!-- params -->
<xsd:complexType name="paramsType">
<xsd:complexContent>
<xsd:extension base="Tcore">
<xsd:sequence>
<xsd:element ref="param" minOccurs="0"
maxOccurs="unbounded" />
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="params" type="paramsType" />
<!-- param -->
<!-- doesn't extend tCore since its content model is mixed -->
<xsd:complexType name="paramType" mixed="true">
<xsd:sequence>
<xsd:any namespace="##other" minOccurs="0"
maxOccurs="unbounded" processContents="lax" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="type" type="mime.datatype"
default="text/plain" />
<xsd:anyAttribute namespace="##other" processContents="lax" />
</xsd:complexType>
<xsd:element name="param" type="paramType" />
<!--
####################################################
DATATYPES
####################################################
-->
<xsd:simpleType name="eventname.datatype">
<xsd:restriction base="xsd:NMTOKEN">
<xsd:pattern value="[a-zA-Z0-9\.]+" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="audiomix.datatype">
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="nbest" />
<xsd:enumeration value="controller" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="media.datatype">
<xsd:restriction base="xsd:string" />
</xsd:simpleType>
<xsd:simpleType name="label.datatype">
<xsd:restriction base="xsd:string" />
</xsd:simpleType>
<xsd:simpleType name="status.datatype">
<xsd:restriction base="xsd:positiveInteger">
<xsd:pattern value="[0-9][0-9][0-9]" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="direction.datatype">
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="sendonly" />
<xsd:enumeration value="recvonly" />
<xsd:enumeration value="sendrecv" />
<xsd:enumeration value="inactive" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="boolean.datatype">
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="true" />
<xsd:enumeration value="false" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="mime.datatype">
<xsd:restriction base="xsd:string" />
</xsd:simpleType>
<xsd:simpleType name="videoswitchtype.datatype">
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="vas" />
<xsd:enumeration value="controller" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="volumecontroltype.datatype">
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="automatic" />
<xsd:enumeration value="setgain" />
<xsd:enumeration value="setstate" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
Figure 1: Mixer Package XML Schema Figure 1: Mixer Package XML Schema
7. Examples 7. Examples
This section provides examples of the Mixer Control package. This section provides examples of the Mixer Control package.
7.1. AS-MS Dialog Interaction Examples 7.1. AS-MS Dialog Interaction Examples
The following example assume a control channel has been established The following example assume a control channel has been established
and synced as described in the Media Control Channel Framework and synced as described in the Media Control Channel Framework
skipping to change at page 43, line 7 skipping to change at page 65, line 7
| | | |
| (1) CONTROL: <event ...> | | (1) CONTROL: <event ...> |
| <--------------------------------------- | | <--------------------------------------- |
| | | |
| (4) 200 | | (4) 200 |
| ----------------------------------------> | | ----------------------------------------> |
| | | |
8. Security Considerations 8. Security Considerations
As this control package uses XML markup, implementation MUST address As this control package processes XML markup, implementations MUST
the security considerations of [RFC3023]. address the security considerations of [RFC3023].
As a Control Package of the Media Control Channel Framework,
security, confidentiality and integrity of messages transported over
the control channel MUST be addressed as described in Section 11 of
the Media Control channel Framework
([I-D.ietf-mediactrl-sip-control-framework]), including Session
Establishment, Transport Level Protection and Control Channel Policy
Management.
The Media Control Channel Framework permits additional policy
management, including resource access and control channel usage, to
be specified at the control package level beyond that specified for
the Media Control Channel Framework (see Section 11.3 of
[I-D.ietf-mediactrl-sip-control-framework]).
Since creation of conferences and other mixers is associated with
media mixing resources on the MS, policy management for this control
package MUST address how such mixers are managed across multiple
control channels. This includes which channels are used to deliver
mixer event notifications, and whether channels are permitted to
originate requests managing a mixer which was not created through
that channel (e.g. a conference mixer has been created via channel X
and a request to terminate the conference, or join a participant,
originates from channel Y).
9. IANA Considerations 9. IANA Considerations
This specification instructs IANA to register a new Media Control This specification instructs IANA to register a new Media Control
Channel Framework Package, a new XML namespace and a new mime type. Channel Framework Package, a new XML namespace and a new mime type.
9.1. Control Package Registration 9.1. Control Package Registration
Control Package name: msc-mixer/1.0 Control Package name: msc-mixer/1.0
skipping to change at page 45, line 9 skipping to change at page 67, line 9
XML namspace: urn:ietf:params:xml:ns:msc-mixer XML namspace: urn:ietf:params:xml:ns:msc-mixer
9.3. MIME Registration 9.3. MIME Registration
Mime type: application/msc-mixer+xml Mime type: application/msc-mixer+xml
10. Change Summary 10. Change Summary
Note to RFC Editor: Please remove this whole section. Note to RFC Editor: Please remove this whole section.
The following are the major changes between the -01 and -00 versions.
o [MIXER-001]/5.2.4.3: Added <conferenceexit> notification event.
o [MIXER-003]/5.2.1.4.2.1: Added ASCII diagrams for video layouts.
o [MIXER-004]/5.3.2.2.1: Added active <video-layout> information to
<conferenceaudit>.
o [MIXER-007]/5.4.1: Added <params> inside <codec> so additional
codec information can be specified.
o 5.2.1.1: Fixed <createconference> example with missing min-
participants attributes.
o 5: Changed handling of unsupported foreign namespace elements and
attributes. The MS send a 427 error response if it encounters
foreign elements and attributes it does not support.
o 5.2.1.4.3: <video-switch>. Clarified that the VAS policy is
implementation-specific if a participant provides more than one
audio stream.
o 5.2.2.2/5.2.2.3/5.2.2.4: Clarified that joining behavior so that
streams which have previously been <modifiedjoin>ed or <unjoin>ed
are not affected by a general <unjoin>.
o 5.2.1.4.3: <video-switch>: Added support for whether active
speaker is displayed on their video layout ('activespeakermix'
attribute) and clarified that personal video mixes are out of
scope for this package.
o 5.2.1.4.3/5.2.2.5.4: <video-switch>: Added support for a priority
mechanism in video switching policy and a <priority child element
on <stream>.
o 8:Updated security section
o 13:Updated references
o 5.2.1.4.4.1: Added default of 3 seconds for <active-talkers-sub>
interval.
o 5.2.2.5.1: <volume> controltype attribute set to mandatory.
o Updated schema
The following are the major changes between the -00 of this work The following are the major changes between the -00 of this work
group item draft and the individual submission -04 version. group item draft and the individual submission -04 version.
o Control package name is now 'msc-mixer/1.0'. Namespace is now o Control package name is now 'msc-mixer/1.0'. Namespace is now
'urn:ietf:params:xml:ns:msc-mixer'. Mime type is now 'urn:ietf:params:xml:ns:msc-mixer'. Mime type is now
'application/msc-mixer+xml'. 'application/msc-mixer+xml'.
o Added XML root element <mscmixer>. o Added XML root element <mscmixer>.
o Editorial tidy up of sections. o Editorial tidy up of sections.
skipping to change at page 48, line 5 skipping to change at page 70, line 10
o restructured into single request response model for non-trival o restructured into single request response model for non-trival
operations operations
o aligned with XML structure of other control framework packages o aligned with XML structure of other control framework packages
11. Contributors 11. Contributors
Asher Shiratzky from Radvision provided valuable support and Asher Shiratzky from Radvision provided valuable support and
contributions to early versions of this document. contributions to early versions of this document.
The authors would like to thank the Mixer design team consisting of
Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan and Mary
Barnes who provided valuable feedback, input and text to this
document.
12. Acknowledgments 12. Acknowledgments
The authors would like to thank Roni Even, Lorenzo Miniero and Steve The authors would like to thank Roni Even, Lorenzo Miniero and Steve
Buko for expert reviews of this work. Buko for expert reviews of this work.
13. References 13. References
13.1. Normative References 13.1. Normative References
[I-D.ietf-mediactrl-sip-control-framework] [I-D.ietf-mediactrl-sip-control-framework]
Boulton, C., Melanchuk, T., and S. McGlashan, "Media Boulton, C., Melanchuk, T., and S. McGlashan, "Media
Control Channel Framework", Control Channel Framework",
draft-ietf-mediactrl-sip-control-framework-02 (work in draft-ietf-mediactrl-sip-control-framework-04 (work in
progress), April 2008. progress), August 2008.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media
Types", RFC 3023, January 2001.
[RFC4574] Levin, O. and G. Camarillo, "The Session Description
Protocol (SDP) Label Attribute", RFC 4574, August 2006.
[XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E.,
and F. Yergeau, "Extensible Markup Language (XML) 1.0
(Third Edition)", W3C Recommendation, February 2004.
13.2. Informative References 13.2. Informative References
[I-D.ietf-xcon-common-data-model] [I-D.ietf-xcon-common-data-model]
Novo, O., Camarillo, G., Morgan, D., and R. Even, Novo, O., Camarillo, G., Morgan, D., and R. Even,
"Conference Information Data Model for Centralized "Conference Information Data Model for Centralized
Conferencing (XCON)", draft-ietf-xcon-common-data-model-10 Conferencing (XCON)", draft-ietf-xcon-common-data-model-11
(work in progress), March 2008. (work in progress), June 2008.
[MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session [IANA] "IANA registry for RTP Payload Types",
Markup Language (MSML)", draft-saleem-msml-06 (work in <http://www.iana.org/assignments/rtp-parameters>.
progress), February 2008.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., [MIME.mediatypes]
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext "IANA registry for MIME Media Types",
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. <http://www.iana.org/assignments/media-types/>.
[RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session
Types", RFC 3023, January 2001. Markup Language (MSML)", draft-saleem-msml-07 (work in
progress), August 2008.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E. A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261, Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002. June 2002.
[RFC3262] Rosenberg, J. and H. Schulzrinne, "Reliability of
Provisional Responses in Session Initiation Protocol
(SIP)", RFC 3262, June 2002.
[RFC3263] Rosenberg, J. and H. Schulzrinne, "Session Initiation
Protocol (SIP): Locating SIP Servers", RFC 3263,
June 2002.
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
with Session Description Protocol (SDP)", RFC 3264,
June 2002.
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
Jacobson, "RTP: A Transport Protocol for Real-Time Jacobson, "RTP: A Transport Protocol for Real-Time
Applications", STD 64, RFC 3550, July 2003. Applications", STD 64, RFC 3550, July 2003.
[RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. [RFC4855] Casner, S., "Media Type Registration of RTP Payload
Camarillo, "Best Current Practices for Third Party Call Formats", RFC 4855, February 2007.
Control (3pcc) in the Session Initiation Protocol (SIP)",
BCP 85, RFC 3725, April 2004.
[RFC4574] Levin, O. and G. Camarillo, "The Session Description
Protocol (SDP) Label Attribute", RFC 4574, August 2006.
[RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server
Control Markup Language (MSCML) and Protocol", RFC 5022, Control Markup Language (MSCML) and Protocol", RFC 5022,
September 2007. September 2007.
[RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol
Requirements", RFC 5167, March 2008. Requirements", RFC 5167, March 2008.
[XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E.,
and F. Yergeau, "Extensible Markup Language (XML) 1.0
(Third Edition)", W3C Recommendation, February 2004.
Authors' Addresses Authors' Addresses
Tim Melanchuk Tim Melanchuk
Rain Willow Communications Rain Willow Communications
Email: tim.melanchuk@gmail.com Email: tim.melanchuk@gmail.com
Scott McGlashan Scott McGlashan
Hewlett-Packard Hewlett-Packard
Gustav III:s boulevard 36 Gustav III:s boulevard 36
 End of changes. 79 change blocks. 
201 lines changed or deleted 1269 lines changed or added

This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/