draft-ietf-mediactrl-mixer-control-package-01.txt   draft-ietf-mediactrl-mixer-control-package-02.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: April 17, 2009 Hewlett-Packard Expires: May 7, 2009 Hewlett-Packard
C. Boulton C. Boulton
Avaya Avaya
October 14, 2008 November 3, 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-01 draft-ietf-mediactrl-mixer-control-package-02
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 April 17, 2009. This Internet-Draft will expire on May 7, 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 . . . . . . . . . . . . . . . . . . 8 4. Control Package Definition . . . . . . . . . . . . . . . . . . 8
4.1. Control Package Name . . . . . . . . . . . . . . . . . . . 8 4.1. Control Package Name . . . . . . . . . . . . . . . . . . . 8
4.2. Framework Message Usage . . . . . . . . . . . . . . . . . 8 4.2. Framework Message Usage . . . . . . . . . . . . . . . . . 8
4.3. Common XML Support . . . . . . . . . . . . . . . . . . . . 9 4.3. Common XML Support . . . . . . . . . . . . . . . . . . . . 9
4.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . . 9 4.4. CONTROL Message Body . . . . . . . . . . . . . . . . . . . 9
4.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 9 4.5. REPORT Message Body . . . . . . . . . . . . . . . . . . . 9
4.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.6. Audit . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 10
5. Element Definitions . . . . . . . . . . . . . . . . . . . . . 11 5. Element Definitions . . . . . . . . . . . . . . . . . . . . . 11
5.1. <mscmixer> . . . . . . . . . . . . . . . . . . . . . . . . 11 5.1. <mscmixer> . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2. Mixer Elements . . . . . . . . . . . . . . . . . . . . . . 12 5.2. Mixer Elements . . . . . . . . . . . . . . . . . . . . . . 12
5.2.1. Conference Elements . . . . . . . . . . . . . . . . . 13 5.2.1. Conference Elements . . . . . . . . . . . . . . . . . 13
5.2.1.1. <createconference> . . . . . . . . . . . . . . . . 13 5.2.1.1. <createconference> . . . . . . . . . . . . . . . . 13
5.2.1.2. <modifyconference> . . . . . . . . . . . . . . . . 16 5.2.1.2. <modifyconference> . . . . . . . . . . . . . . . . 16
5.2.1.3. <destroyconference> . . . . . . . . . . . . . . . 17 5.2.1.3. <destroyconference> . . . . . . . . . . . . . . . 17
5.2.1.4. Conference Configuration . . . . . . . . . . . . . 17 5.2.1.4. Conference Configuration . . . . . . . . . . . . . 17
5.2.1.4.1. <audio-mixing> . . . . . . . . . . . . . . . . 18 5.2.1.4.1. <audio-mixing> . . . . . . . . . . . . . . . . 18
5.2.1.4.2. <video-layouts> . . . . . . . . . . . . . . . 18 5.2.1.4.2. <video-layouts> . . . . . . . . . . . . . . . 18
5.2.1.4.2.1. <video-layout> . . . . . . . . . . . . . . 19 5.2.1.4.2.1. <video-layout> . . . . . . . . . . . . . . 19
5.2.1.4.3. <video-switch> . . . . . . . . . . . . . . . . 20 5.2.1.4.3. <video-switch> . . . . . . . . . . . . . . . . 24
5.2.1.4.3.1. Priority assignment . . . . . . . . . . . 22 5.2.1.4.3.1. Priority assignment . . . . . . . . . . . 26
5.2.1.4.4. <subscribe> . . . . . . . . . . . . . . . . . 22 5.2.1.4.4. <subscribe> . . . . . . . . . . . . . . . . . 27
5.2.1.4.4.1. <active-talkers-sub> . . . . . . . . . . . 23 5.2.1.4.4.1. <active-talkers-sub> . . . . . . . . . . . 27
5.2.2. Joining Elements . . . . . . . . . . . . . . . . . . . 23 5.2.2. Joining Elements . . . . . . . . . . . . . . . . . . . 27
5.2.2.1. Joining Model . . . . . . . . . . . . . . . . . . 23 5.2.2.1. Joining Model . . . . . . . . . . . . . . . . . . 27
5.2.2.2. <join> . . . . . . . . . . . . . . . . . . . . . . 25 5.2.2.2. <join> . . . . . . . . . . . . . . . . . . . . . . 29
5.2.2.3. <modifyjoin> . . . . . . . . . . . . . . . . . . . 27 5.2.2.3. <modifyjoin> . . . . . . . . . . . . . . . . . . . 31
5.2.2.4. <unjoin> . . . . . . . . . . . . . . . . . . . . . 28 5.2.2.4. <unjoin> . . . . . . . . . . . . . . . . . . . . . 32
5.2.2.5. <stream> . . . . . . . . . . . . . . . . . . . . . 29 5.2.2.5. <stream> . . . . . . . . . . . . . . . . . . . . . 33
5.2.2.5.1. <volume> . . . . . . . . . . . . . . . . . . . 30 5.2.2.5.1. <volume> . . . . . . . . . . . . . . . . . . . 34
5.2.2.5.2. <clamp> . . . . . . . . . . . . . . . . . . . 30 5.2.2.5.2. <clamp> . . . . . . . . . . . . . . . . . . . 34
5.2.2.5.3. <region> . . . . . . . . . . . . . . . . . . . 31 5.2.2.5.3. <region> . . . . . . . . . . . . . . . . . . . 35
5.2.2.5.4. <priority> . . . . . . . . . . . . . . . . . . 31 5.2.2.5.4. <priority> . . . . . . . . . . . . . . . . . . 35
5.2.3. <response> . . . . . . . . . . . . . . . . . . . . . . 31 5.2.3. <response> . . . . . . . . . . . . . . . . . . . . . . 35
5.2.4. <event> . . . . . . . . . . . . . . . . . . . . . . . 32 5.2.4. <event> . . . . . . . . . . . . . . . . . . . . . . . 36
5.2.4.1. <active-talkers-notify> . . . . . . . . . . . . . 32 5.2.4.1. <active-talkers-notify> . . . . . . . . . . . . . 36
5.2.4.1.1. <active-talker> . . . . . . . . . . . . . . . 33 5.2.4.1.1. <active-talker> . . . . . . . . . . . . . . . 36
5.2.4.2. <unjoin-notify> . . . . . . . . . . . . . . . . . 33 5.2.4.2. <unjoin-notify> . . . . . . . . . . . . . . . . . 37
5.2.4.3. <conferenceexit> . . . . . . . . . . . . . . . . . 34 5.2.4.3. <conferenceexit> . . . . . . . . . . . . . . . . . 37
5.3. Audit Elements . . . . . . . . . . . . . . . . . . . . . . 34 5.3. Audit Elements . . . . . . . . . . . . . . . . . . . . . . 38
5.3.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 35 5.3.1. <audit> . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 36 5.3.2. <auditresponse> . . . . . . . . . . . . . . . . . . . 40
5.3.2.1. <capabilities> . . . . . . . . . . . . . . . . . . 37 5.3.2.1. <capabilities> . . . . . . . . . . . . . . . . . . 41
5.3.2.2. <mixers> . . . . . . . . . . . . . . . . . . . . . 38 5.3.2.2. <mixers> . . . . . . . . . . . . . . . . . . . . . 42
5.3.2.2.1. <conferenceaudit> . . . . . . . . . . . . . . 38 5.3.2.2.1. <conferenceaudit> . . . . . . . . . . . . . . 42
5.3.2.2.1.1. <participants> . . . . . . . . . . . . . . 39 5.3.2.2.1.1. <participants> . . . . . . . . . . . . . . 43
5.3.2.2.1.1.1. <participant> . . . . . . . . . . . . 39 5.3.2.2.1.1.1. <participant> . . . . . . . . . . . . 44
5.3.2.2.2. <joinaudit> . . . . . . . . . . . . . . . . . 40 5.3.2.2.2. <joinaudit> . . . . . . . . . . . . . . . . . 44
5.4. <codecs> . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.4. <codecs> . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.4.1. <codec> . . . . . . . . . . . . . . . . . . . . . . . 41 5.4.1. <codec> . . . . . . . . . . . . . . . . . . . . . . . 45
5.5. <params> . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.5. <params> . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.5.1. <param> . . . . . . . . . . . . . . . . . . . . . . . 42 5.5.1. <param> . . . . . . . . . . . . . . . . . . . . . . . 46
5.6. Response Status Codes . . . . . . . . . . . . . . . . . . 42 5.6. Response Status Codes . . . . . . . . . . . . . . . . . . 46
5.7. Type Definitions . . . . . . . . . . . . . . . . . . . . . 43 5.7. Type Definitions . . . . . . . . . . . . . . . . . . . . . 51
6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 45 6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 53
7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.1. AS-MS Dialog Interaction Examples . . . . . . . . . . . . 63 7.1. AS-MS Framework Interaction Examples . . . . . . . . . . . 71
7.1.1. Creating a conference mixer and joining a 7.1.1. Creating a conference mixer and joining a
participant . . . . . . . . . . . . . . . . . . . . . 63 participant . . . . . . . . . . . . . . . . . . . . . 71
7.1.2. Receiving active talker notifications . . . . . . . . 64 7.1.2. Receiving active talker notifications . . . . . . . . 72
8. Security Considerations . . . . . . . . . . . . . . . . . . . 65 7.1.3. Conference termination . . . . . . . . . . . . . . . . 72
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 66 7.2. Mixing Examples . . . . . . . . . . . . . . . . . . . . . 72
9.1. Control Package Registration . . . . . . . . . . . . . . . 66 7.2.1. Audio conferencing . . . . . . . . . . . . . . . . . . 73
9.2. URN Sub-Namespace Registration . . . . . . . . . . . . . . 66 7.2.2. Bridging connections . . . . . . . . . . . . . . . . . 75
9.3. MIME Registration . . . . . . . . . . . . . . . . . . . . 66 7.2.3. Video conferencing . . . . . . . . . . . . . . . . . . 76
10. Change Summary . . . . . . . . . . . . . . . . . . . . . . . . 67 8. Security Considerations . . . . . . . . . . . . . . . . . . . 78
11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 70 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 79
12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 71 9.1. Control Package Registration . . . . . . . . . . . . . . . 79
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 72 9.2. URN Sub-Namespace Registration . . . . . . . . . . . . . . 79
13.1. Normative References . . . . . . . . . . . . . . . . . . . 72 9.3. MIME Registration . . . . . . . . . . . . . . . . . . . . 79
13.2. Informative References . . . . . . . . . . . . . . . . . . 72 10. Change Summary . . . . . . . . . . . . . . . . . . . . . . . . 80
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 74 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 84
Intellectual Property and Copyright Statements . . . . . . . . . . 75 12. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 85
13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 86
13.1. Normative References . . . . . . . . . . . . . . . . . . . 86
13.2. Informative References . . . . . . . . . . . . . . . . . . 86
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 88
Intellectual Property and Copyright Statements . . . . . . . . . . 89
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 46 skipping to change at page 6, line 46
extensions to this package (through addition of foreign elements or extensions to this package (through addition of foreign elements or
attributes from another namespace) or use of other control packages attributes from another namespace) or use of other control packages
which could build upon this package. 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 describes 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
(Section 5.2) and audit elements (Section 5.3). Section 6 describes (Section 5.2) and audit elements (Section 5.3). Section 6 describes
an XML schema for these elements and provides extensibility by an XML schema for these elements and provides extensibility by
allowing attributes and elements from other namespaces. Section 7 allowing attributes and elements from other namespaces. Section 7
provides examples of package usage. provides examples of package usage.
4. Control Package Definition 4. Control Package Definition
This section fulfils the mandatory requirement for information that This section fulfills the mandatory requirement for information that
MUST be specified during the definition of a Control Framework MUST be specified during the definition of a Control Framework
Package, as detailed in Section 8 of Package, as detailed in Section 8 of
[I-D.ietf-mediactrl-sip-control-framework]. [I-D.ietf-mediactrl-sip-control-framework].
4.1. Control Package Name 4.1. Control Package Name
The Control Framework requires a Control Package definition to The Control Framework requires a Control Package definition to
specify and register a unique name. The name and version of this specify and register a unique name. The name and version of this
Control Package is "msc-mixer/1.0" (Media Server Control - Mixer - Control Package is "msc-mixer/1.0" (Media Server Control - Mixer -
version 1.0). Its IANA registration is specified in Section 9.1. version 1.0). Its IANA registration is specified in Section 9.1.
Since this is the initial ("1.0") version of the control package,
there are no backwards compatibility issues to address.
4.2. Framework Message Usage 4.2. Framework Message Usage
The Control Framework requires a Control Package to explicitly detail The Control Framework requires a Control Package to explicitly detail
the control messages that can be used as well as provide an the control messages that can be used as well as provide an
indication of directionality between entities. This will include indication of directionality between entities. This will include
which role type is allowed to initiate a request type. which role type is allowed to initiate a request type.
This package specifies CONTROL and response messages in terms of XML This package specifies CONTROL and response messages in terms of XML
elements defined in Section 5. These elements describe requests, elements defined in Section 5, where the message bodies have the MIME
media type defined in Section 9.3. 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 Server in receiving
receiving requests from, and sending responses to, the AS (operating requests from, and sending responses to, the AS (operating as Control
as Control Framework Client). Mixer management requests and Client). Mixer management requests and responses are defined in
responses are defined in Section 5.2. Audit requests and responses Section 5.2. Audit requests and responses are defined in
are defined in Section 5.3. Mixer management and audit responses are Section 5.3. Mixer management and audit responses are carried in a
carried in a framework 200 response or REPORT message bodies. This framework 200 response or REPORT message bodies. This package's
package's response codes are defined in Section 5.6. 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 Client in sending event
notification to the AS (Control Framework Server). Event notification to the AS (Control Server). Event notifications
notifications (Section 5.2.4) are carried in CONTROL message bodies. (Section 5.2.4) are carried in CONTROL message bodies. The AS MUST
The AS MUST respond with a Control Framework 200 response. respond with a Control Framework 200 response.
4.3. Common XML Support 4.3. Common XML Support
The Control Framework requires a Control Package definition to The Control Framework requires a Control Package definition to
specify if the attributes for media dialog or conference references specify if the attributes for media dialog or conference references
are required. are required.
This package requires that the XML Schema in Section 17.1 of This package requires that the XML Schema in Section 17.1 of
[I-D.ietf-mediactrl-sip-control-framework] MUST be supported for [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for
media dialogs and conferences. media dialogs and conferences.
skipping to change at page 9, line 27 skipping to change at page 9, line 27
imports the definitions of these attributes from the framework imports the definitions of these attributes from the framework
schema. schema.
4.4. CONTROL Message Body 4.4. CONTROL Message Body
The Control Framework requires a Control Package to define the The Control Framework requires a Control Package to define the
control body that can be contained within a CONTROL command request control body that can be contained within a CONTROL command request
and to indicate the location of detailed syntax definitions and and to indicate the location of detailed syntax definitions and
semantics for the appropriate body types. semantics for the appropriate body types.
When operating as Control Framework Server, the MS receives CONTROL When operating as Control Server, the MS receives CONTROL messages
messages with a body containing an <mscmixer> element with either a with the MIME media type defined in Section 9.3 and a body containing
mixer management or audit request child element. a <mscmixer> element (Section 5.1) with either a mixer management or
audit request child element.
The following mixer management request elements are carried in The following mixer management request elements are carried in
CONTROL message bodies to MS: <createconference> (Section 5.2.1.1), CONTROL message bodies to MS: <createconference> (Section 5.2.1.1),
<modifyconference> (Section 5.2.1.2), <destroyconference> <modifyconference> (Section 5.2.1.2), <destroyconference>
(Section 5.2.1.3), <join> (Section 5.2.2.2), <modifyjoin> (Section 5.2.1.3), <join> (Section 5.2.2.2), <modifyjoin>
(Section 5.2.2.3) and <unjoin> (Section 5.2.2.4) elements. (Section 5.2.2.3) and <unjoin> (Section 5.2.2.4) elements.
The <audit> request element (Section 5.3.1) is also carried in The <audit> request element (Section 5.3.1) is also carried in
CONTROL message bodies. CONTROL message bodies.
When operating as Control Framework Client, the MS sends CONTROL When operating as Control Client, the MS sends CONTROL messages with
messages with a body containing a notification <event> element the MIME media type defined in Section 9.3 and a body containing a
(Section 5.2.4). <mscmixer> element (Section 5.1) with a notification <event> child
element (Section 5.2.4).
4.5. REPORT Message Body 4.5. REPORT Message Body
The Control Framework requires a control package definition to define The Control Framework requires a control package definition to define
the REPORT body that can be contained within a REPORT command the REPORT body that can be contained within a REPORT command
request, or that no report package body is required. This section request, or that no report package body is required. This section
should indicate the location of detailed syntax definitions and should indicate the location of detailed syntax definitions and
semantics for the appropriate body types. semantics for the appropriate body types.
When operating as Control Framework Server, the MS sends REPORT When operating as Control Server, the MS sends REPORT bodies with the
bodies containing a <mscmixer> element with a response child element. MIME media type defined in Section 9.3 and a <mscmixer> element with
The response element for mixer management requests is a <response> a response child element. The response element for mixer management
element (Section 5.2.3). The response element for an audit request requests is a <response> element (Section 5.2.3). The response
is a <auditresponse> element (Section 5.3.2). element for an audit request is a <auditresponse> element
(Section 5.3.2).
4.6. Audit 4.6. Audit
The Control Framework encourages Control Packages to specify whether The Control Framework encourages Control Packages to specify whether
auditing is available, how it is triggered as well as the query/ auditing is available, how it is triggered as well as the query/
response formats. response formats.
This Control Packages supports auditing of package capabilities and This Control Packages supports auditing of package capabilities and
mixers on the MS. An audit request is carried in a CONTROL messages mixers on the MS. An audit request is carried in a CONTROL message
and an audit response in a REPORT message (or a 200 reponse to the and an audit response in a REPORT message (or a 200 response to the
CONTROL if it can execute the audit in time). CONTROL if it can execute the audit in time).
The syntax and semantics of audit request and response elements is The syntax and semantics of audit request and response elements is
defined in Section 5.3. defined in Section 5.3.
4.7. Examples
The Control Framework recommends Control Packages to provide a range
of message flows that represent common flows using the package and
this framework document.
This Control Package provides examples of such message flows in
Section 7.
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.6 and type definitions in Section 5.7. 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 (foreign) namespaces. If support attributes and elements from other (foreign) namespaces. If
an MS implementation receives a <mscmixer> element containing an MS implementation receives a <mscmixer> element containing
attributes or elements from another namespace which it does not attributes or elements from another namespace which it does not
support, the MS MUST send a 427 response (Section 5.6). support, the MS MUST send a 428 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>
The <mscmixer> element has the following attributes (in addition to The <mscmixer> element has the following attributes (in addition to
standard XML namspace attributes such as xmlns): standard XML namespace attributes such as xmlns):
version: a string specifying the mscmixer package version. The version: a string specifying the mscmixer package version. The
value is fixed as '1.0' for this version of the package. The value is fixed as '1.0' for this version of the package. The
attribute is mandatory. attribute is mandatory.
The <mscmixer> element has the following defined child elements, only The <mscmixer> element has the following defined child elements, only
one of which can occur: one of which can occur:
1. mixer management elements defined in Section 5.2: 1. mixer management elements defined in Section 5.2:
<createconference> create and configure a new a conference <createconference> create and configure a new conference mixer.
mixer. See Section 5.2.1.1 See Section 5.2.1.1
<modifyconference> modify the configuration of an existing <modifyconference> modify the configuration of an existing
conference mixer. See Section 5.2.1.2 conference mixer. See Section 5.2.1.2
<destroyconference> destroy an existing conference mixer. See <destroyconference> destroy an existing conference mixer. See
Section 5.2.1.3 Section 5.2.1.3
<join> create and configure media streams between connections <join> create and configure media streams between connections
and/or conferences (for example, add a participant to a and/or conferences (for example, add a participant to a
conference). See Section 5.2.2.2 conference). See Section 5.2.2.2
skipping to change at page 12, line 34 skipping to change at page 12, line 34
Section 5.3.1 Section 5.3.1
<auditresponse> response to an audit request. See Section 5.3.2 <auditresponse> response to an audit request. See Section 5.3.2
For example, a request to the MS to create a conference mixer: For example, a request to the MS to create a conference mixer:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer"> <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<createconference/> <createconference/>
</mscmixer> </mscmixer>
and a response from the MS that the conference was sucessfully and a response from the MS that the conference was successfully
created: created:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer"> <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<response status="200" conferenceid="conference1"/> <response status="200" conferenceid="conference1"/>
</mscmixer> </mscmixer>
5.2. Mixer Elements 5.2. Mixer Elements
This section defines the mixer management XML elements for this This section defines the mixer management XML elements for this
control package. These elements are divided into requests, responses control package. These elements are divided into requests, responses
skipping to change at page 13, line 25 skipping to change at page 13, line 25
conferences (for example, add a participant to a conference). See conferences (for example, add a participant to a conference). See
Section 5.2.2.2 Section 5.2.2.2
<modifyjoin> modify the configuration of joined media streams. See <modifyjoin> modify the configuration of joined media streams. See
Section 5.2.2.3 Section 5.2.2.3
<unjoin> delete a media stream (for example, remove a participant <unjoin> delete a media stream (for example, remove a participant
from a conference). See Section 5.2.2.4 from a conference). See Section 5.2.2.4
Responses from the MS describe the status of the requested operation. Responses from the MS describe the status of the requested operation.
Responses are specified in a <response> element (Section 5.2.3). The Responses are specified in a <response> element (Section 5.2.3) which
includes a mandatory attribute describing the status in terms of a
numeric code. Response status codes are defined in Section 5.6. 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 process the request and carry out the mixer
error and the MS MUST indicate the error in the status code of the operation, the request has failed and the MS MUST indicate the class
response. of failure using an appropriate 4xx response code. Unless an error
response code is mandated for a specific class of error within this
section, implementations follow Section 5.6 in determining the
appropriate status code for the 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).
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
skipping to change at page 14, line 36 skipping to change at page 14, line 38
conference (see Section 5.2.1.4.2). The element is optional. conference (see Section 5.2.1.4.2). The element is optional.
<video-switch>: an element to configure the video switch policy for <video-switch>: an element to configure the video switch policy for
the layout of a conference (see Section 5.2.1.4.3). The element the layout of a conference (see Section 5.2.1.4.3). The element
is optional. is optional.
<subscribe>: an element to request subscription to conference <subscribe>: an element to request subscription to conference
events. (see Section 5.2.1.4.4). The element is optional. events. (see Section 5.2.1.4.4). The element is optional.
If the conferenceid attribute specifies the name of a conference If the conferenceid attribute specifies the name of a conference
which already exists, the MS MUST report an error (403) and MUST NOT which already exists, the MS MUST report an error (405) and MUST NOT
create the conference. create the conference.
If the MS is unable to configure the conference according to a If the MS is unable to configure the conference according to
specified <codecs> element, the MS MUST report an error (410) and specified reserved-talkers or reserved-listeners attributes, the MS
MUST NOT create the conference. MUST report an error (420) and MUST NOT create the conference.
If the MS is unable to configure the conference according to a If the MS is unable to configure the conference according to a
specified <audio-mixing> element, the MS MUST report an error (405) specified <audio-mixing> element, the MS MUST report an error (421)
and MUST NOT create the conference. and MUST NOT create the conference.
If the MS is unable to configure the conference for any specified
conference event specified in the <subscribe> element, the MS MUST
report an error (422) and MUST NOT create the conference.
If the MS is unable to configure the conference according to a If the MS is unable to configure the conference according to a
specified <video-layouts> element, the MS MUST report an error (408) specified <video-layouts> element, the MS MUST report an error (423)
and MUST NOT create the conference. and MUST NOT create the conference.
If the MS is unable to configure the conference according to a If the MS is unable to configure the conference according to a
specified <video-switch> element, the MS MUST report an error (409) specified <video-switch> element, the MS MUST report an error (424)
and MUST NOT create the conference. and MUST NOT create the conference.
If the MS is unable to configure the conference according to If the MS is unable to configure the conference according to a
specified reserved-talkers or reserved-listeners attributes, the MS specified <codecs> element, the MS MUST report an error (425) and
MUST report an error (407) and MUST NOT create the conference. MUST NOT create the conference.
If the MS is unable to configure the conference for any specified
conference event specified in the <subscribe> element, the MS MUST
report an error (406) and MUST NOT create the conference.
When a MS has finished processing a <createconference> request, it When a MS has finished processing a <createconference> request, it
MUST reply with an appropriate <response> element (Section 5.2.3). MUST reply with an appropriate <response> element (Section 5.2.3).
For example, a request to create an audio video conference mixer with For example, a request to create an audio video conference mixer with
specified codecs, video layout, video switch and subscription: specified codecs, video layout, video switch and subscription:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer"> <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<createconference conferenceid="conference1" <createconference conferenceid="conference1"
reserved-talkers="1" reserved-listeners="10"> reserved-talkers="1" reserved-listeners="10">
skipping to change at page 15, line 44 skipping to change at page 15, line 47
<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-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 successfully
created:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer"> <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<response status="200" conferenceid="conference1"/> <response status="200" conferenceid="conference1"/>
</mscmixer> </mscmixer>
alternatively, a response if MS could not create the conference due alternatively, a response if MS could not create the conference due
to a lack of support for the H264 codec: to a lack of support for the H264 codec:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer"> <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<response status="410" conferenceid="conference1" <response status="425" conferenceid="conference1"
reason="H264 codec not supported"/> reason="H264 codec not supported"/>
</mscmixer> </mscmixer>
5.2.1.2. <modifyconference> 5.2.1.2. <modifyconference>
The <modifyconference> element is sent to the MS to request The <modifyconference> element is sent to the MS to request
modification of an existing conference. modification of an existing conference.
The <modifyconference> element has the following attributes: The <modifyconference> element has the following attributes:
conferenceid: string indicating the name of the conference to conferenceid: string indicating the name of the conference to
modify. This attribute is mandatory. modify. This attribute is mandatory.
The <modifyconference> element has the following sequence of child The <modifyconference> element has the following sequence of child
elements (1 or more): elements (1 or more):
<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). Existing participants are conference (see Section 5.4). Existing participants are
unaffected by any policy chage. The element is optional. unaffected by any policy change. 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
element is optional. element is optional.
<video-layouts>: an element to configure the video layouts of a <video-layouts>: an element to configure the video layouts of a
conference (see Section 5.2.1.4.2). The element is optional. conference (see Section 5.2.1.4.2). The element is optional.
<video-switch>: an element to configure the video switch policy for <video-switch>: an element to configure the video switch policy for
the layout of a conference (see Section 5.2.1.4.3). The element the layout of a conference (see Section 5.2.1.4.3). The element
is optional. is optional.
<subscribe>: an element to request subscription to conference <subscribe>: an element to request subscription to conference
events. (see Section 5.2.1.4.4). The element is optional. events. (see Section 5.2.1.4.4). The element is optional.
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 (406).
If the MS is unable to configure the conference according to a
specified <codecs> element, the MS MUST report an error (410) and
MUST NOT modify the conference.
If the MS is unable to configure the conference according to a If the MS is unable to configure the conference according to a
specified <audio-mixing> element, the MS MUST report an error (405) specified <audio-mixing> element, the MS MUST report an error (421)
and MUST NOT modify the conference in any way. and MUST NOT modify the conference in any way.
If the MS is unable to configure the conference for any specified
conference event specified in the <subscribe> element, the MS MUST
report an error (422) and MUST NOT modify the conference in anyway.
If the MS is unable to configure the conference according to a If the MS is unable to configure the conference according to a
specified <video-layouts> element, the MS MUST report an error (408) specified <video-layouts> element, the MS MUST report an error (423)
and MUST NOT modify the conference in any way. and MUST NOT modify the conference in any way.
If the MS is unable to configure the conference according to a If the MS is unable to configure the conference according to a
specified <video-switch> element, the MS MUST report an error (409) specified <video-switch> element, the MS MUST report an error (424)
and MUST NOT modify the conference in any way. and MUST NOT modify the conference in any way.
If the MS is unable to configure the conference for any specified If the MS is unable to configure the conference according to a
conference event specified in the <subscribe> element, the MS MUST specified <codecs> element, the MS MUST report an error (425) and
report an error (406) and MUST NOT modify the conference in anyway. MUST NOT modify the conference.
When a MS has finished processing a <modifyconference> request, it When a MS has finished processing a <modifyconference> request, it
MUST reply with an appropriate <response> element (Section 5.2.3). MUST reply with an appropriate <response> element (Section 5.2.3).
5.2.1.3. <destroyconference> 5.2.1.3. <destroyconference>
The <destroyconference> element is sent to the MS to request The <destroyconference> element is sent to the MS to request
destruction of an existing conference. destruction of an existing conference.
The <destroyconference> element has the following attributes: The <destroyconference> element has the following attributes:
conferenceid: string indicating the name of the conference to conferenceid: string indicating the name of the conference to
destroy. This attribute is mandatory. destroy. This attribute is mandatory.
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 (406).
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 participants being removed from the
conference mixer, <unjoin-notify> notification events conference mixer, <unjoin-notify> notification events
(Section 5.2.4.2) being sent for each conference participant and a (Section 5.2.4.2) being sent for each conference participant and a
<conferenceexit> notification event (Section 5.2.4.3) indicating that <conferenceexit> notification event (Section 5.2.4.3) indicating that
conference has exited. A <response> with any other status code conference has exited. A <response> with any other status code
indicates that the conference mixer still exists and participants are indicates that the conference mixer still exists and participants are
still joined to the mixer. 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
skipping to change at page 19, line 23 skipping to change at page 19, line 23
<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 participants, 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. participants, 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 streams 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.7.3). The attribute is optional. positive integer (see Section 5.7.3). The attribute is optional.
The default value is 1. 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 layout with one stream in a single region as shown in
Figure 1.
dual-view two regions: left named "region1", right "region2" +-----------+
| |
| |
| 1 |
| |
| |
+-----------+
XXX etc Figure 1: single-view video layout
[Editors Note: MIXER-003. ASCII art help required to draw the layout dual-view layout presenting two streams side-by-side in two regions
and name the regions for the remaining XCON layouts. ] as shown in Figure 2. The MS MUST NOT alter the aspect ratio of
each stream to fit the region and hence the MS MAY have to blank
part of each region.
+-----------+-----------+
| | |
| | |
| 1 | 2 |
| | |
| | |
+-----------+-----------+
Figure 2: dual-view video layout
dual-view-crop layout presenting two streams side-by-side in two
regions as shown in Figure 3. The MS MUST alter the aspect ratio
of each stream to fit its region so that no blanking is required.
+-----------+-----------+
| | |
| | |
| 1 | 2 |
| | |
| | |
+-----------+-----------+
Figure 3: dual-view-crop video layout
dual-view-2x1 layout presenting two streams one above the other in
two regions as shown in Figure 4. The MS MUST NOT alter the
aspect ratio of each stream to fit its region and hence the MS MAY
have to blank part of each region.
+-----------+
| |
| |
| 1 |
| |
| |
+-----------+
| |
| |
| 2 |
| |
| |
+-----------+
Figure 4: dual-view-2x1 video layout
dual-view-2x1-crop layout presenting two streams one above the other
in two regions as shown in Figure 5. The MS MUST alter the aspect
ratio of each stream to fit its region so that no blanking is
required.
+-----------+
| |
| |
| 1 |
| |
| |
+-----------+
| |
| |
| 2 |
| |
| |
+-----------+
Figure 5: dual-view-2x1-crop video layout
quad-view layout presenting four equal-sized regions in a 2x2 layout
as shown in Figure 6. Typically the aspect ratio of the streams
is preserved, so blanking is required.
+-----------+-----------+
| | |
| | |
| 1 | 2 |
| | |
| | |
+-----------+-----------+
| | |
| | |
| 3 | 4 |
| | |
| | |
+-----------+-----------+
Figure 6: quad-view video layout
multiple-3x3 layout presenting nine equal-sized regions in a 3x3
layout as shown in Figure 7. Typically the aspect ratio of the
streams is preserved, so blanking is required.
+-----------+-----------+-----------+
| | | |
| | | |
| 1 | 2 | 3 |
| | | |
| | | |
+-----------+-----------+-----------+
| | | |
| | | |
| 4 | 5 | 6 |
| | | |
| | | |
+-----------+-----------+-----------+
| | | |
| | | |
| 7 | 8 | 9 |
| | | |
| | | |
+-----------+-----------+-----------+
Figure 7: multiple-3x3 video layout
multiple-4x4 layout presenting sixteen equal-sized regions in a 4x4
layout as shown in Figure 8. Typically the aspect ratio of the
streams is preserved, so blanking is required.
+-----------+-----------+-----------+-----------+
| | | | |
| | | | |
| 1 | 2 | 3 | 4 |
| | | | |
| | | | |
+-----------+-----------+-----------+-----------+
| | | | |
| | | | |
| 5 | 6 | 7 | 8 |
| | | | |
| | | | |
+-----------+-----------+-----------+-----------+
| | | | |
| | | | |
| 9 | 10 | 11 | 12 |
| | | | |
| | | | |
+-----------+-----------+-----------+-----------+
| | | | |
| | | | |
| 13 | 14 | 15 | 16 |
| | | | |
| | | | |
+-----------+-----------+-----------+-----------+
Figure 8: multiple-4x4 video layout
multiple-5x1 layout presents a 5x1 layout as shown in Figure 9 where
one region will occupy 4/9 of the mixed video stream while the
others will each occupy 1/9 of the stream. Typically the aspect
ratio of the streams is preserved, so blanking is required.
+-----------------------+-----------+
| | |
| | |
| | 2 |
| | |
| | |
| 1 +-----------+
| | |
| | |
| | 3 |
| | |
| | |
+-----------+-----------+-----------+
| | | |
| | | |
| 4 | 5 | 6 |
| | | |
| | | |
+-----------+-----------+-----------+
Figure 9: multiple-5x1 video layout
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
skipping to change at page 21, line 41 skipping to change at page 26, line 7
video mixes), then MS MUST report a 409 error (Section 5.6) in the video mixes), then MS MUST report a 409 error (Section 5.6) in the
response to the request element containing the <video-switch> response to the request element containing the <video-switch>
element. 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).
If the MS receives a <join> or <modifyjoin> request containing a
<stream> element (Section 5.2.2.5) specifying a region which is not
defined for the currently active video layout, the MS MUST NOT report
an error. Even though the participant is not currently visible, the
MS MUST display the participant if the layout changes to one which
defines the specified region.
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:
skipping to change at page 22, line 52 skipping to change at page 27, line 25
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:
<active-talkers-sub>: subscription to active talker events <active-talkers-sub>: subscription to active talker events
(Section 5.2.1.4.4.1). The element is optional. (Section 5.2.1.4.4.1). The element is optional.
The MS SHOULD support a <active-talkers-sub> subscription. It MAY The MS SHOULD support a <active-talkers-sub> subscription. It MAY
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 422 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.7.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. The suppresses further notifications. The attribute is optional. The
skipping to change at page 23, line 28 skipping to change at page 27, line 50
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
The <join> operation creates a media stream between a connection and The <join> operation creates a media stream between a connection and
a conference, between connections, or between conferences. This sub- a conference, between connections, or between conferences. This sub-
section describes the model of conferences and connections and section describes the model of conferences and connections and
specifies the behaviour for join requests to targets that already specifies the behavior for join requests to targets that already have
have an associated media stream. an associated media stream.
Conferences support multiple inputs and have resources to mix them Conferences support multiple inputs and have resources to mix them
together. A media server conference in essence is a mixer that together. A media server conference in essence is a mixer that
combines media streams. A simple audio mix simply sums its input combines media streams. A simple audio mix simply sums its input
audio signals to create a single common output. Conferences however audio signals to create a single common output. Conferences however
use a more complex algorithm so that participants do not hear use a more complex algorithm so that participants do not hear
themselves as part of the mix. That algorithm, sometimes called an themselves as part of the mix. That algorithm, sometimes called an
n-minus mix, subtracts each participants input signal from the summed n-minus mix, subtracts each participants input signal from the summed
input signals, creating a unique output for each contributing input signals, creating a unique output for each contributing
participant. Each <join> operation to a conference uses one of the participant. Each <join> operation to a conference uses one of the
skipping to change at page 24, line 16 skipping to change at page 28, line 38
several sources to create a single input to a connection is needed. several sources to create a single input to a connection is needed.
In the first case, a connection may be receiving media from one In the first case, a connection may be receiving media from one
source, for example a conference, and it is necessary to play an source, for example a conference, and it is necessary to play an
announcement to the connection so that both the conference audio and announcement to the connection so that both the conference audio and
announcement can be heard by the conference participant. This is announcement can be heard by the conference participant. This is
sometimes referred to as a whisper announcement. An alternative to a sometimes referred to as a whisper announcement. An alternative to a
whisper announcement is to have the announcement pre-empt the whisper announcement is to have the announcement pre-empt the
conference media. conference media.
Another common case is the call centre coaching scenario where a Another common case is the call center coaching scenario where a
supervisor can listen to the conversation between an agent and a supervisor can listen to the conversation between an agent and a
customer, and provide hints to the agent, which are not heard by the customer, and provide hints to the agent, which are not heard by the
customer. customer.
Both of these cases can be solved by having the controlling AS create Both of these cases can be solved by having the controlling AS create
one or more conferences for audio mixing and to join and unjoin the one or more conferences for audio mixing and to join and unjoin the
media streams as required. A better solution is to have the media media streams as required. A better solution is to have the media
server automatically mix media streams that are requested to be server automatically mix media streams that are requested to be
joined to a common input when only the simple summing of audio joined to a common input when only the simple summing of audio
signals as described above is required. This is the case for both signals as described above is required. This is the case for both
skipping to change at page 26, line 12 skipping to change at page 30, line 31
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. configuration is explicitly specified using <stream> elements.
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 (407) and MUST NOT join the
entities. entities.
If the MS is unable to join an entity to a conference because it is If the MS is unable to join an entity to a conference because it is
full, then the MS MUST report an error (421). full, then the MS MUST report an error (410).
If the specified entities are already joined, then the MS MUST report If the specified entities are already joined, then the MS MUST report
an error (425). an error (408).
If the MS does not support joining two specified connections If the MS does not support joining two specified connections
together, the MS MUST report an error (422). together, the MS MUST report an error (426).
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 (427).
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 (411).
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">
<response status="422" reason="mixing connections not supported"/> <response status="426" reason="mixing connections not supported"/>
</mscmixer> </mscmixer>
5.2.2.3. <modifyjoin> 5.2.2.3. <modifyjoin>
The <modifyjoin> element is sent to the MS to request changes in the The <modifyjoin> element is sent to the MS to request changes in the
configuration of media stream(s) that were previously established configuration of media stream(s) that were previously established
between a connection and a conference, between two connections, or between a connection and a conference, between two connections, or
between two conferences. between two conferences.
The <modifyjoin> element has the following attributes: The <modifyjoin> element has the following attributes:
skipping to change at page 27, line 44 skipping to change at page 31, line 45
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> or modified by a previous <modifyjoin> operation. using <join>.
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 (407) and MUST NOT modify the
join between the entities. 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 (408).
If the MS is unable to modify the join between the specified entities If the MS is unable to modify the join between the specified entities
for any other reason, the MS MUST report an error (420). for any other reason, the MS MUST report an error (411).
When an MS has finished processing a <modifyjoin> request, it MUST When an MS has finished processing a <modifyjoin> request, it MUST
reply with an appropriate <response> element (Section 5.2.3). reply with an appropriate <response> element (Section 5.2.3).
5.2.2.4. <unjoin> 5.2.2.4. <unjoin>
The <unjoin> element is sent to the MS to request removal of The <unjoin> element is sent to the MS to request removal of
previously established media stream(s) from between a connection and previously established media stream(s) from between a connection and
a conference, between two connections, or between two conferences. a conference, between two connections, or between two conferences.
skipping to change at page 28, line 43 skipping to change at page 32, line 43
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 currently established streams between "id1" and "id2" present, all currently established streams between "id1" and "id2"
are removed. 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> or modified using <modifyjoin> and have not already been using <join> and has not already been removed by a previous <unjoin>
removed. on the same stream.
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 (407) 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 (409).
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 (411).
When an MS has successfully processed a <unjoin> request, it MUST When an MS has successfully processed a <unjoin> request, it MUST
reply with a successful <response> element (Section 5.2.3). reply with a successful <response> element (Section 5.2.3).
5.2.2.5. <stream> 5.2.2.5. <stream>
<join>, <modifyjoin> and <unjoin> require the identification and <join>, <modifyjoin> and <unjoin> require the identification and
manipulations of media streams. Media streams represent the flow of manipulations of media streams. Media streams represent the flow of
media between a participant connection and a conference, between two media between a participant connection and a conference, between two
connections, or between two conferences. The <stream> element is connections, or between two conferences. The <stream> element is
skipping to change at page 29, line 35 skipping to change at page 33, line 35
used for common types of media: "audio" for audio media, and used for common types of media: "audio" for audio media, and
"video" for video media. The attribute is mandatory. "video" for video media. The attribute is mandatory.
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 established but no
The default value is "sendrecv". The attribute is optional. media flow). 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 (Section 5.2.2.5.1) to configure the volume or
stream (Section 5.2.2.5.1). The element is optional. gain of the media stream. The element is optional.
<clamp>: an element to configure filtering and removal of tones from <clamp>: an element (Section 5.2.2.5.2) to configure filtering and
a media stream (Section 5.2.2.5.2). The element is optional. removal of tones from the media stream. The element is optional.
<region>: an element to configure region within a video layout where <region>: an element (Section 5.2.2.5.3) to configure a region
the media stream is displayed (Section 5.2.2.5.3). The element is within a video layout where the media stream is displayed. The
optional. element is optional.
<priority>: an element to configure priority associated with the <priority>: an element (Section 5.2.2.5.4) to configure priority
stream in the media mix (Section 5.2.2.5.4). The element is associated with the stream in the media mix. The element is
optional. optional.
In each child element, the media stream affected is from the value of
the "id1" attribute of the parent element.
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 31, line 5 skipping to change at page 34, line 48
attribute is optional. There is no default value. 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. The attribute is manadatory. tones: A space-separated list of the tones to remove. The attribute
is mandatory.
5.2.2.5.3. <region> 5.2.2.5.3. <region>
The <region> element is used to explicitly specify the region within The <region> element is used to explicitly specify the region within
a 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 428 error
in the response to the request element containing the <region>
element.
5.2.2.5.4. <priority> 5.2.2.5.4. <priority>
The <priority> element is used to explicitly specify the priority of The <priority> element is used to explicitly specify the priority of
a participant. The MS uses this priority to determine where the a participant. The MS uses this priority to determine where the
media stream is displayed within a video layout media stream is displayed within a video layout
(Section 5.2.1.4.3.1). (Section 5.2.1.4.3.1).
The <priority> element has no attributes and its content model The <priority> element has no attributes and its content model
specifies a positive integer (see Section 5.7.3). The lower the specifies a positive integer (see Section 5.7.3). The lower the
value, the higher the priority. value, the higher the priority.
5.2.3. <response> 5.2.3. <response>
Reponses to requests are indicated by a <response> element. Responses 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 values
are defined in Section 5.6. 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
skipping to change at page 32, line 42 skipping to change at page 36, line 35
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 originated. This attribute is mandatory.
The <active-talkers-notify> element has the following sequence of The <active-talkers-notify> element has the following sequence of
child elements (0 or more occurences): child elements (0 or more occurrence's):
<active-talker> element describing an active talker <active-talker> element describing an active talker
(Section 5.2.4.1.1). (Section 5.2.4.1.1).
5.2.4.1.1. <active-talker> 5.2.4.1.1. <active-talker>
The <active-talker> element describes an active talker, associated The <active-talker> element describes an active talker, associated
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 (429) if both the connectionid and conferenceid It is an error (400) if both the connectionid and conferenceid
attributes 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.7.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 occurred 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.7.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
skipping to change at page 35, line 6 skipping to change at page 38, line 47
</event> </event>
</mscmixer> </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 information 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,
auditing enables discovery of the existence and status of mixers auditing enables discovery of the existence and status of mixers
currently managed by the package on the MS. This allows one AS to currently managed by the package on the MS. This allows one AS to
take over management of mixers when the AS which initiated the mixers take over management of mixers when the AS which initiated the mixers
fails or is no longer available. fails or is no longer available.
5.3.1. <audit> 5.3.1. <audit>
The <audit> request element is sent to the MS to request information The <audit> request element is sent to the MS to request information
skipping to change at page 35, line 39 skipping to change at page 39, line 32
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.7.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 (404) if the conferenceid attribute is audit. It is an error (406) if the conferenceid attribute is
specified and the conference identifier is not valid. The specified and the conference identifier is not valid. The
attribute is 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 an <audit> request, it MUST reply with a
<auditresponse> element (Section 5.3.2). If the request is <auditresponse> element (Section 5.3.2) which includes a mandatory
successful, <auditresponse> contains (depending on atrribute values) attribute describing the status in terms of a numeric code. Response
a <capabilities> element (Section 5.3.2.1) reporting package status codes are defined in Section 5.6. If the request is
successful, the <auditresponse> contains (depending on attribute
values) a <capabilities> element (Section 5.3.2.1) reporting package
capabilities and a <mixers> element (Section 5.3.2.2) reporting capabilities and a <mixers> element (Section 5.3.2.2) reporting
managed mixer information. managed mixer information. If the MS is not able to process the
request and carry out the audit operation, the audit request has
failed and the MS MUST indicate the class of failure using an
appropriate 4xx response code. Unless an error response code is
mandated for a specific class of error within this section,
implementations follow Section 5.6 in determining the appropriate
status code for the response.
For example, a request to audit capabilities and mixers managed by For example, a request to audit capabilities and mixers managed by
the package: the package:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer"> <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<audit/> <audit/>
</mscmixer> </mscmixer>
In this example, only capabilities are to be audited: In this example, only capabilities are to be audited:
skipping to change at page 38, line 34 skipping to change at page 42, line 37
</codecs> </codecs>
</capabilities> </capabilities>
5.3.2.2. <mixers> 5.3.2.2. <mixers>
The <mixers> element provides audit information about mixers. The <mixers> element provides audit information about mixers.
The <mixers> element has no attributes. The <mixers> element has no attributes.
The <mixers> element has the following sequence of child elements (0 The <mixers> element has the following sequence of child elements (0
or more occurences, any order): or more occurrences, any order):
<conferenceaudit>: audit information for a conference mixer <conferenceaudit>: audit information for a conference mixer
(Section 5.3.2.2.1). The element is optional. (Section 5.3.2.2.1). The element is optional.
<joinaudit>: audit information for a join mixer (Section 5.3.2.2.2). <joinaudit>: audit information for a join mixer (Section 5.3.2.2.2).
The element is optional. The element is optional.
5.3.2.2.1. <conferenceaudit> 5.3.2.2.1. <conferenceaudit>
The <conferenceaudit> element has the following attributes: The <conferenceaudit> element has the following attributes:
skipping to change at page 40, line 28 skipping to change at page 44, line 34
[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-006. Do we need to specify stream information
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>
5.4. <codecs> 5.4. <codecs>
The <codecs> element is a container for one or more codec The <codecs> element is a container for one or more codec
definitions. Codec definitions are used by an AS to specify the definitions. Codec definitions are used by an AS to specify the
codecs allowed for a conference (e.g. when used as a child of codecs allowed for a conference (e.g. when used as a child of
<createconference> or <modifyconference). Codec definitions are used <createconference> or <modifyconference). Codec definitions are used
by an MS to provide audit information about the codecs supported by by an MS to provide audit information about the codecs supported by
an MS and used in specific conferences. an MS and used in specific conferences.
The <codecs> element has no attributes. The <codecs> element has no attributes.
The <codecs> element has the following sequence of child elements (0 The <codecs> element has the following sequence of child elements (0
or more occurences): or more occurrences):
<codec>: defines a codec and optionally its policy(Section 5.4.1). <codec>: defines a codec and optionally its policy(Section 5.4.1).
The element is optional. The element is optional.
For example, a fragment describing two codecs: For example, a fragment describing two codecs:
<codecs> <codecs>
<codec> <codec>
<subtype>PCMA</subtype> <subtype>PCMA</subtype>
</codec> </codec>
skipping to change at page 42, line 28 skipping to change at page 46, line 35
parameter is to be interpreted. A valid value is a MIME media parameter is to be interpreted. A valid value is a MIME media
type (see Section 5.7.6). The attribute is optional. The default type (see Section 5.7.6). The attribute is optional. The default
value is "text/plain". value is "text/plain".
The <param> element content model is the value of the parameter. The <param> element content model is the value of the parameter.
Note that a value which contains XML characters (e.g. "<") needs to Note that a value which contains XML characters (e.g. "<") needs to
be escaped following standard XML conventions. be escaped following standard XML conventions.
5.6. Response Status Codes 5.6. Response Status Codes
The following status codes for mixer management reponses This section describes the response codes in Table 1 for the status
(Section 5.2.3) and audit responses Section 5.3.2) responses are attribute of mixer management <response> (Section 5.2.3) and audit
defined. <auditresponse> (Section 5.3.2) responses. The MS MUST support these
status response codes. The MS MAY support other response codes. The
AS MUST treat any responses it does not recognize as being equivalent
to the x00 response code for all classes. For example, if an AS
receives an unrecognized response code of 499, it can safely assume
that there was something wrong with its request and treat the
response as if it had received a 400 (Syntax error) response code.
+-----------+-------------------------------------------------------+ 4xx responses are definite failure responses from a particular MS.
| code | description | The reason attribute in the response SHOULD identify the failure in
+-----------+-------------------------------------------------------+ more detail, for example, "Mandatory attribute missing: id2 join
| 200 | OK | element" for a 400 (Syntax error) response code.
| | |
| 403 | Conference already exists |
| | |
| 404 | Conference does not exist |
| | |
| 405 | Unable to configure audio mix |
| | |
| 406 | Unable to create subscription |
| | |
| 407 | Conference reservation failed |
| | |
| 408 | Unable to configure video layouts |
| | |
| 409 | Unable to configure video switch |
| | |
| 410 | Unable to configure codecs |
| 420 | Unable to join requested entities |
| | |
| 421 | Unable to join - conference full |
| | |
| 422 | Unable to join - mixing connections not supported |
| | |
| 423 | Unable to join - mixing conferences not supported |
| | |
| 424 | invalid joining stream configuration |
| | |
| 425 | joining already 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 |
| | |
| 451 | Element required |
| | |
| 452 | Unknown or unsupported attribute |
| | |
| 453 | Attribute required |
+-----------+-------------------------------------------------------+
Table 1: response status codes The AS SHOULD NOT retry the same request without modification (for
example, correcting a syntax error or changing the conferenceid to
use one available on the MS). However, the same request to a
different MS might be successful; for example, if another MS supports
a capability required in the request.
4xx failure responses can be grouped into three classes: failure due
to a syntax error in the request (400); failure due to an error
executing the request on the MS (405-419); and failure due to the
request requiring a capability not supported by the MS (420-435).
In cases where more than one request code could be reported for a
failure, the MS SHOULD use the most specific error code of the
failure class for the detected error. For example, if the MS detects
that the conference identifier in the request is invalid, then it
uses a 406 status code. However, if the MS merely detects that an
execution error occurred, then 419 is used.
+-------+---------------+----------------------+--------------------+
| Code | Summary | Description | Informational: AS |
| | | | Possible Recovery |
| | | | Action |
+-------+---------------+----------------------+--------------------+
| 200 | OK | request has | |
| | | succeeded | |
| | | | |
| 400 | Syntax error | request is | Change the request |
| | | syntactically | so that it is |
| | | invalid: it is not | syntactically |
| | | valid with respect | valid. |
| | | to the XML schema | |
| | | specified in | |
| | | Section 6 or it | |
| | | violates a | |
| | | co-occurrence | |
| | | constraint for a | |
| | | request element | |
| | | defined in | |
| | | Section 5. | |
| | | | |
| 401 | Reserved for | | |
| | future use | | |
| | | | |
| 402 | Reserved for | | |
| | future use | | |
| | | | |
| 403 | Reserved for | | |
| | future use | | |
| | | | |
| 404 | Reserved for | | |
| | future use | | |
| 405 | Conference | request uses an | Send an <audit> |
| | already | identifier to create | request |
| | exists | a new conference | (Section 5.3.1) |
| | | (Section 5.2.1.1) | requesting the |
| | | which is already | list of conference |
| | | used by another | mixer identifiers |
| | | conference on the | already used by |
| | | MS. | the MS and then |
| | | | use a conference |
| | | | identifier which |
| | | | is not listed. |
| | | | |
| 406 | Conference | request uses an | Send an <audit> |
| | does not | identifier for a | request |
| | exist | conference which | (Section 5.3.1) |
| | | does not exist on | requesting the |
| | | the MS. | list of conference |
| | | | mixer identifiers |
| | | | used by the MS and |
| | | | then use a |
| | | | conference |
| | | | identifier which |
| | | | is listed. |
| | | | |
| 407 | Incompatible | request specifies a | Change the media |
| | stream | media stream | stream |
| | configuration | configuration which | configuration to |
| | | is in conflict with | match the |
| | | itself, or the | capabilities of |
| | | connection or | the connection or |
| | | conference | conference |
| | | capabilities (see | |
| | | Section 5.2.2.2) | |
| | | | |
| 408 | joining | request attempts to | Send an <audit> |
| | entities | create a join mixer | request |
| | already | (Section 5.2.2.2) | (Section 5.3.1) |
| | joined | where the entities | requesting the |
| | | are already joined | list of join |
| | | | mixers on the MS |
| | | | and then use |
| | | | entities which are |
| | | | not listed. |
| | | | |
| 409 | joining | request attempts to | Send an <audit> |
| | entities not | manipulate a join | request |
| | joined | mixer where entities | (Section 5.3.1) |
| | | which are not joined | requesting the |
| | | | list of join |
| | | | mixers on the MS |
| | | | and then use |
| | | | entities which are |
| | | | listed. |
| | | | |
| 410 | Unable to | request attempts to | |
| | join - | join a participant | |
| | conference | to a conference | |
| | full | (Section 5.2.2.2) | |
| | | but the conference | |
| | | is already full | |
| | | | |
| 411 | Unable to | request attempts to | |
| | perform join | create, modify or | |
| | mixer | delete a join | |
| | operation | between entities but | |
| | | fails | |
| | | | |
| 412 | Reserved for | | |
| | future use | | |
| | | | |
| 413 | Reserved for | | |
| | future use | | |
| | | | |
| 414 | Reserved for | | |
| | future use | | |
| | | | |
| 415 | Reserved for | | |
| | future use | | |
| | | | |
| 416 | Reserved for | | |
| | future use | | |
| | | | |
| 417 | Reserved for | | |
| | future use | | |
| | | | |
| 418 | Reserved for | | |
| | future use | | |
| | | | |
| 419 | Other | requested operation | |
| | execution | cannot be executed | |
| | error | by the MS. | |
| | | | |
| 420 | Conference | request to create a | |
| | reservation | new conference | |
| | failed | (Section 5.2.1.1) | |
| | | failed due to | |
| | | unsupported | |
| | | reservation of | |
| | | talkers or | |
| | | listeners. | |
| | | | |
| 421 | Unable to | request to create or | |
| | configure | modify a conference | |
| | audio mix | failed due to | |
| | | unsupported audio | |
| | | mix. | |
| | | | |
| 422 | Unable to | request to create or | |
| | create | modify a conference | |
| | subscription | failed due to | |
| | | unsupported | |
| | | subscription. | |
| | | | |
| 423 | Unable to | request to create or | |
| | configure | modify a conference | |
| | video layouts | failed due to | |
| | | unsupported video | |
| | | layout | |
| | | configuration. | |
| | | | |
| 424 | Unable to | request to create or | |
| | configure | modify a conference | |
| | video switch | failed due to | |
| | | unsupported video | |
| | | switch | |
| | | configuration. | |
| | | | |
| 425 | Unable to | request to create or | |
| | configure | modify a conference | |
| | codecs | failed due to | |
| | | unsupported codec. | |
| | | | |
| 426 | Unable to | request to join | |
| | join - mixing | connection entities | |
| | connections | (Section 5.2.2.2) | |
| | not supported | failed due lack of | |
| | | support for mixing | |
| | | connections. | |
| | | | |
| 427 | Unable to | request to join | |
| | join - mixing | conference entities | |
| | conferences | (Section 5.2.2.2) | |
| | not supported | failed due lack of | |
| | | support for mixing | |
| | | conferences. | |
| | | | |
| 428 | Unsupported | the request contains | |
| | foreign | attributes or | |
| | namespace | elements from | |
| | attribute or | another namespace | |
| | element | which the MS does | |
| | | not support | |
| | | | |
| 429 | Reserved for | | |
| | future use | | |
| | | | |
| 430 | Reserved for | | |
| | future use | | |
| | | | |
| 431 | Reserved for | | |
| | future use | | |
| | | | |
| 432 | Reserved for | | |
| | future use | | |
| | | | |
| 433 | Reserved for | | |
| | future use | | |
| | | | |
| 434 | Reserved for | | |
| | future use | | |
| | | | |
| 435 | Other | request requires | |
| | unsupported | another capability | |
| | capability | not supported by the | |
| | | MS | |
+-------+---------------+----------------------+--------------------+
Table 1: status codes
5.7. Type Definitions 5.7. Type Definitions
This section defines types referenced in attribute definitions. This section defines types referenced in attribute definitions.
5.7.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.7.2. Non-Negative Integer 5.7.2. Non-Negative Integer
skipping to change at page 62, line 39 skipping to change at page 70, line 39
<xsd:simpleType name="volumecontroltype.datatype"> <xsd:simpleType name="volumecontroltype.datatype">
<xsd:restriction base="xsd:NMTOKEN"> <xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="automatic" /> <xsd:enumeration value="automatic" />
<xsd:enumeration value="setgain" /> <xsd:enumeration value="setgain" />
<xsd:enumeration value="setstate" /> <xsd:enumeration value="setstate" />
</xsd:restriction> </xsd:restriction>
</xsd:simpleType> </xsd:simpleType>
</xsd:schema> </xsd:schema>
Figure 1: Mixer Package XML Schema Figure 10: 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 Framework 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
([I-D.ietf-mediactrl-sip-control-framework]). ([I-D.ietf-mediactrl-sip-control-framework]).
The XML messages are in angled brackets (with the root <mscmixer> The XML messages are in angled brackets (with the root <mscmixer> and
omitted); the REPORT status is in round brackets. Other aspects of other details omitted for clarity); the REPORT status is in round
the protocol are omitted for readability. brackets. Other aspects of the protocol are omitted for readability.
7.1.1. Creating a conference mixer and joining a participant 7.1.1. Creating a conference mixer and joining a participant
A conference mixer is created successfully and a participant is A conference mixer is created successfully and a participant is
joined. joined.
Application Server (AS) Media Server (MS) Application Server (AS) Media Server (MS)
| | | |
| (1) CONTROL: <createconference> | | (1) CONTROL: <createconference> |
| ----------------------------------------> | | ----------------------------------------> |
skipping to change at page 65, line 5 skipping to change at page 72, line 18
Application Server (AS) Media Server (MS) Application Server (AS) Media Server (MS)
| | | |
| (1) CONTROL: <event ...> | | (1) CONTROL: <event ...> |
| <--------------------------------------- | | <--------------------------------------- |
| | | |
| (4) 200 | | (4) 200 |
| ----------------------------------------> | | ----------------------------------------> |
| | | |
7.1.3. Conference termination
The MS receives a request to terminate the conference, resulting in
conferenceexit and participant unjoined notifications.
Application Server (AS) Media Server (MS)
| |
| (1) CONTROL: <destroyconference> |
| ----------------------------------------> |
| |
| (2) 200: <response status="200"/> |
| <--------------------------------------- |
| |
| (3) CONTROL: <event ..> |
| (unjoin-notify) |
| <---------------------------------------- |
| |
| (4) 200 |
| ----------------------------------------> |
| |
| (5) CONTROL: <event ..> |
| (conferenceexit) |
| <---------------------------------------- |
| |
| (6) 200 |
| ----------------------------------------> |
7.2. Mixing Examples
The following examples show how the mixing package can be used to
create audio conferences, bridge connections and video conferences.
The examples do not specify all messages between the AS and MS.
7.2.1. Audio conferencing
The AS sends a request to create a conference mixer:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<createconference conferenceid="conf1"
reserved-talkers="2" reserved-listeners="3">
<audio-mixing type="nbest"/>
<subscribe>
<active-talkers-sub interval="5"/>
</subscribe>
</createconference>
</mscmixer>
The request specifies that the conference is assigned the conference
id "conf1" and is configured with 2 reserved talkers, 3 reserved
listener slots, audio mixing policy set to nbest and with active
talkers notifications set to 5 seconds.
If the MS is able to create this conference mixer, it sends 200
response:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<response status="200" reason="conference created"
conferenceid="conf1"/>
</mscmixer>
The AS is now able to join connections to the conference as
participants. A participant able to contribute to the audio mix
would be joined as follows:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<join id1="1536067209~913cd14c" id2="conf1">
<stream media="audio" direction="sendrecv"/>
</join>
</mscmixer>
If the MS can join the participant 1536067209~913cd14c to the
conference conf1 with audio in both directions, then it sends a
successful response:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<response status="200" reason="join successful"/>
</mscmixer>
The AS could also join listener-only participants to the conference
by setting the stream direction to receive only:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<join id1="9936067209~914cd14c" id2="conf1">
<stream media="audio" direction="recvonly"/>
</join>
</mscmixer>
If the MS can join the participant 9936067209~914cd14c to the
conference conf1 then it would send a successful response (not
shown).
As the active talker changes, the MS sends an active talker
notification to the AS:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<event>
<active-talker-notify conferenceid="conf1">
<active-talker connectionid="1536067209~913cd14c"/>
</active-talker-notify>
</event>
</mscmixer>
The AS could decide to change the status of a talker connection so
that they can only listen:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<modifyjoin id1="1536067209~913cd14c" id2="conf1">
<stream media="audio" direction="recvonly"/>
</modifyjoin>
</mscmixer>
Where the participant 1536067209~913cd14c is no longer able to
contribute to the audio mix on the conference. If the MS is able to
execute this request, it would send a 200 response.
The AS could decide to remove this participant from the conference:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<unjoin id1="1536067209~913cd14c" id2="conf1"/>
</mscmixer>
Again, if the MS can execute this request, a 200 response would be
sent.
Finally, the AS terminates the conference:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<destroyconference conferenceid="conf1"/>
</mscmixer>
If the MS is able to destroy the conference conf1, it sends a 200
response:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<response status="200" conferenceid="conf1"/>
</mscmixer>
For each participant attached to the conference when it is destroyed,
the MS sends an unjoin notification event:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<event>
<unjoin-notify status="1" id1="9936067209~914cd14c"
id2="conf1"/>
</event>
</mscmixer>
And the MS sends a conferenceexit notification event when the
conference finally exits:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<event>
<conferenceexit status="1" conferenceid="conf1"/>
</event>
</mscmixer>
7.2.2. Bridging connections
The mixer package may be used to join connections to one another. In
a call center scenario, for example, this package can be used to set
up and modify connections between a caller, agent and supervisor.
A caller is joined to an agent with bi-directional audio:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<join id1="caller~001" id2="agent~002">
<stream media="audio" direction="sendrecv"/>
</join>
</mscmixer>
If the MS is able to establish this connection, then it would send a
200 response:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<response status="200"/>
</mscmixer>
Now assume that the AS wants a supervisor to listen into the agent
conversation with the caller and provide whsipered guidance to the
agent. First the AS would send a request to join the supervisor and
the caller connections:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<join id1="supervisor~003" id2="caller~001">
<stream media="audio" direction="recvonly"/>
</join>
</mscmixer>
If this request was successful, audio output from the caller
connection would now be sent to both the agent and the supervisor.
Second, the AS would send a request to join the supervisor and the
agent connections:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<join id1="supervisor~001" id2="agent~002">
<stream media="audio" direction="sendrecv"/>
</join>
</mscmixer>
If this request was successful, the audio mixing would occur on both
the agent and supervisor connections: the agent would hear the caller
and supervisor, and the supervisor would hear the agent and caller.
The caller would only hear the agent. If the MS is unable to join
and mix connections in this way, it would send a 426 response.
7.2.3. Video conferencing
In this example, an audio video-conference is created with the
loudest participant has the most prominent region in the video
layout.
The AS sends a request to create an audio-video conference:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<createconference conferenceid="conf2">
<audio-mixing type="nbest"/>
<video-switch type="vas"/>
<video-layouts>
<video-layout min-participants="1">single-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="5">multiple-5x1</video-layout>
</video-layouts>
</createconference>
</mscmixer>
In this configuration, the conference uses a nbest audio mixing
policy and a vas video switch policy, so that the loudest speaker
receives the most prominent region in the layout. Multiple video
layouts are specified and active one depends on the number of
participants.
Assume that 4 participants are already joined to the conference. In
that case, the video layout will be quad-view (Figure 6) with the
most active speaker displayed in region 1. When a fifth participant
joins, the video layout automatically switches to a multiple-5x1
layout (Figure 9), again with the most active speaker in region 1.
The AS can manipulate which participants are displayed in the
remaining regions. For example, it could force an existing
conference participant to be displayed in region 2:
<mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
<modifyjoin id1="1536067209~913cd14c" id2="conf2">
<stream media="video">
<region>2</region>
</stream>
</modifyjoin>
</mscmixer>
8. Security Considerations 8. Security Considerations
As this control package processes XML markup, implementations MUST As this control package processes XML markup, implementations MUST
address the security considerations of [RFC3023]. address the security considerations of [RFC3023].
As a Control Package of the Media Control Channel Framework, As a Control Package of the Media Control Channel Framework,
security, confidentiality and integrity of messages transported over security, confidentiality and integrity of messages transported over
the control channel MUST be addressed as described in Section 11 of the control channel MUST be addressed as described in Section 11 of
the Media Control channel Framework the Media Control channel Framework
([I-D.ietf-mediactrl-sip-control-framework]), including Session ([I-D.ietf-mediactrl-sip-control-framework]), including Session
skipping to change at page 66, line 8 skipping to change at page 79, line 8
control channels. This includes which channels are used to deliver control channels. This includes which channels are used to deliver
mixer event notifications, and whether channels are permitted to mixer event notifications, and whether channels are permitted to
originate requests managing a mixer which was not created through originate requests managing a mixer which was not created through
that channel (e.g. a conference mixer has been created via channel X that channel (e.g. a conference mixer has been created via channel X
and a request to terminate the conference, or join a participant, and a request to terminate the conference, or join a participant,
originates from channel Y). 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
9.2. URN Sub-Namespace Registration 9.2. URN Sub-Namespace Registration
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 -02 and -01 versions.
o Section 4: Aligned Control Package definitions with requirements
in Section 8 of the Control Framework.
o Following October Interim meeting discussion on response codes,
generally clarified usage of error status codes, modified some
codes and re-organized the response codes section (Section 5.6)
with more guidance and details.
o MIXER-006. No action required following October 2008 interim
discussion.
o MIXER-008. No action required following October 2008 interim
discussion.
o MIXER-009. No action required for control package - addressed in
-05 framework draft following interim October 2008 discussion.
o MIXER-010/5.2.2.5: Clarified that in the <stream> element, an
"inactive" direction value indicates the stream is established but
there is no media flow. Such a stream can be manipulated by
<modifyjoin> and <unjoin>.
o 5.2.2.5: <stream>: Clarified that the media stream specified in
child elements <volume>, <clamp>, <region> and <priority> is the
stream originating from the entity identified as id1.
o 5.2.1.4.3: <video-switch>: Clarified that it is not an error if a
<stream> specifies a region which is not defined for the currently
active video layout.
o 5.2.1.4.2.1: <video-layout>: Added descriptions and ASCII art for
layout and regions of XCON video layouts.
o Added examples of audio conferencing, connection bridging and
video conferencing.
The following are the major changes between the -01 and -00 versions. 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-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-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 o [MIXER-004]/5.3.2.2.1: Added active <video-layout> information to
<conferenceaudit>. <conferenceaudit>.
o [MIXER-007]/5.4.1: Added <params> inside <codec> so additional o [MIXER-007]/5.4.1: Added <params> inside <codec> so additional
skipping to change at page 68, line 40 skipping to change at page 82, line 29
o <createconference>: <audio-mixing> element is no longer mandatory; o <createconference>: <audio-mixing> element is no longer mandatory;
added <video-layouts> and <video-switch> child elements. reserved- added <video-layouts> and <video-switch> child elements. reserved-
talkers and reserved-listeners as attributes. talkers and reserved-listeners as attributes.
o replaced conf-id attribute with conferenceid attribute. o replaced conf-id attribute with conferenceid attribute.
o Removed <data> element. Active talkers subscription and o Removed <data> element. Active talkers subscription and
notifications used dedicated elements now. notifications used dedicated elements now.
o Added <unjoin-notif> notification event to indicate when o Added <unjoin-notify> notification event to indicate when
(un)expected joins occur. Use case: connection or conference (un)expected joins occur. Use case: connection or conference
joined to a conference and conference exits (either by request or joined to a conference and conference exits (either by request or
runtime error. runtime error.
The following are the major changes between the -04 of the draft and The following are the major changes between the -04 of the draft and
the -03 version. the -03 version.
o Updated reference for Media Control Channel Framework o Updated reference for Media Control Channel Framework
The following are the major changes between the -03 of the draft and The following are the major changes between the -03 of the draft and
skipping to change at page 69, line 18 skipping to change at page 83, line 6
the -01 version. the -01 version.
o clarified the model for join operations and introduced several new o clarified the model for join operations and introduced several new
package error codes package error codes
o added definition for MS connection o added definition for MS connection
The following are the major changes between the -01 of the draft and The following are the major changes between the -01 of the draft and
the -00 version. the -00 version.
o restructured into single request response model for non-trival o restructured into single request response model for non-trivial
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 The authors would like to thank the Mixer design team consisting of
Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan and Mary Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan and Mary
Barnes who provided valuable feedback, input and text to this Barnes who provided valuable feedback, input, diagrams and text to
document. 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-04 (work in draft-ietf-mediactrl-sip-control-framework-06 (work in
progress), August 2008. progress), October 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 [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media
Types", RFC 3023, January 2001. Types", RFC 3023, January 2001.
[RFC4574] Levin, O. and G. Camarillo, "The Session Description [RFC4574] Levin, O. and G. Camarillo, "The Session Description
Protocol (SDP) Label Attribute", RFC 4574, August 2006. Protocol (SDP) Label Attribute", RFC 4574, August 2006.
[XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E.,
and F. Yergeau, "Extensible Markup Language (XML) 1.0 and F. Yergeau, "Extensible Markup Language (XML) 1.0
(Third Edition)", W3C Recommendation, February 2004. (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., Even, R., and J.
"Conference Information Data Model for Centralized Urpalainen, "Conference Information Data Model for
Conferencing (XCON)", draft-ietf-xcon-common-data-model-11 Centralized Conferencing (XCON)",
(work in progress), June 2008. draft-ietf-xcon-common-data-model-12 (work in progress),
October 2008.
[IANA] "IANA registry for RTP Payload Types", [IANA] "IANA registry for RTP Payload Types",
<http://www.iana.org/assignments/rtp-parameters>. <http://www.iana.org/assignments/rtp-parameters>.
[MIME.mediatypes] [MIME.mediatypes]
"IANA registry for MIME Media Types", "IANA registry for MIME Media Types",
<http://www.iana.org/assignments/media-types/>. <http://www.iana.org/assignments/media-types/>.
[MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session [MSML] Saleem, A., Xin, Y., and G. Sharratt, "Media Session
Markup Language (MSML)", draft-saleem-msml-07 (work in Markup Language (MSML)", draft-saleem-msml-07 (work in
 End of changes. 105 change blocks. 
280 lines changed or deleted 950 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/