rfc-6505

A Mixer Control Package for the Media Control Channel Framework

S. McGlashan, T. Melanchuk, C. Boulton
date2012-03 streamIETF arearai wgmediactrl statusPROPOSED STANDARD pages89 canonicalhttps://www.rfc-editor.org/rfc/rfc6505 doi10.17487/RFC6505 errataview
This document defines a Media Control Channel Framework Package for managing mixers for media conferences and connections. The package defines request elements for managing conference mixers, managing mixers between conferences and/or connections, as well as associated responses and notifications. The package also defines elements for auditing package capabilities and mixers [STANDARDS-TRACK]

Extracted elements (29)

design-rationale §4.2.2.1

Automatic mixing of streams joining a common input is RECOMMENDED because it is conceptually straightforward, increases transport efficiency, and reduces coordination complexity and latency for the AS — eliminating the need for the AS to create intermediate conference mixers for common whisper-announcement and call-coaching scenarios.

realtime, rtp

design-rationale §1

Personalized video mixes, floor control protocol support, video overlays, and text insertion are explicitly out of scope. These can be addressed by extensions (foreign namespace elements/attributes) or separate Control Packages that build on this one, keeping the base package focused on core mixing.

realtime

interoperability-note §3.2

This package is built on the Media Control Channel Framework (RFC 6230) and requires support for the framework's common XML schema (Appendix A.1 of RFC 6230), including 'connectionid' and 'conferenceid' attribute definitions. Framework-level error codes (400 invalid XML, 500 not understood) are distinct from package-level response codes.

realtime, sip

normative-requirement §4.2.1.4.2.1 MUST NOT

For the <dual-view> layout, the MS MUST NOT alter the aspect ratio of each stream to fit the region (blanking permitted). For <dual-view-crop>, the MS MUST alter the aspect ratio to fit the region so that no blanking is required.

realtime

normative-requirement §4 MAY

If a <mscmixer> element contains attributes or elements from another namespace that the MS does not support, the MS MUST send a 428 response. Implementations MAY support foreign namespace attributes and elements.

realtime

normative-requirement §4.2.1.1 MUST NOT

If the 'conferenceid' attribute in <createconference> specifies a value already used by an existing conference, the MS reports error 405 and MUST NOT create a new conference and MUST NOT affect the existing conference.

realtime

normative-requirement §4.2.1.4.3 MUST NOT

If the MS receives a <join> or <modifyjoin> request with a <stream> element specifying a region while the conference video-switching policy is <vas/>, the MS ignores the specified region — conference VAS switching policy takes precedence over per-stream region assignments.

realtime

normative-requirement §4.2.1.4.2.1 MUST

Non-XCON video layouts MUST be specified using an element from a namespace other than the msc-mixer namespace. Similarly, other video-switching policies MUST be specified using an element from a foreign namespace.

realtime

normative-requirement §4.2.1.4.3.1 MUST

The MS MUST dedicate larger and/or more prominent portions of the video layout to participants with higher priority (lower integer value) first when assigning participants to regions after the video-switching policy has been applied.

realtime

normative-requirement §4.2 MUST

The MS MUST respond to every request message with a response message. If the MS cannot process a request and execute the mixer operation in whole, the operation is considered failed: the MS MUST ensure no part of the mixer operation is carried out and MUST indicate the failure class with an appropriate 4xx status code.

realtime, sip

normative-requirement §4.2.2.3 MUST

The MS MUST support <modifyjoin> and <unjoin> for any stream that was established using <join> and that has not already been removed. The MS MUST configure streams as stated by <modifyjoin> child elements.

realtime, rtp

normative-requirement §4.2.2.1 MUST

When the MS receives a <join> request it MUST automatically mix all media streams included in the request with any streams already joined to one of the entities, or it MUST fail the request entirely and MUST NOT join any streams nor change existing streams of the entities.

realtime, rtp

normative-requirement §3.2 MUST

When the MS sends event notification CONTROL messages to the AS, the AS MUST respond with a Control Framework 200 response.

realtime, sip

protocol-element §4.2.1.4.1

The <audio-mixing> element configures conference audio mixing policy via a 'type' attribute ("nbest" or "controller") and an 'n' attribute indicating how many loudest participants are included in the mix; a value of 0 means all contributing participants are included.

realtime, rtp

protocol-element §4.3

The <audit> element requests the MS to report its capabilities and the state of currently managed mixers. The corresponding <auditresponse> element returns <capabilities> and <mixers> child elements, with <conferenceaudit> and <joinaudit> describing each managed entity.

realtime

protocol-element §4.2.1.1

The <createconference> element requests creation of a new conference mixer. It carries optional 'conferenceid', 'reserved-talkers', and 'reserved-listeners' attributes, and optional child elements <codecs>, <audio-mixing>, <video-layouts>, <video-switch>, and <subscribe> for full conference configuration at creation time.

realtime, sip

protocol-element §4.2.4

The <event> element is the container for MS-initiated notifications sent in CONTROL message bodies; it holds zero or more occurrences of <active-talkers-notify>, <unjoin-notify>, and <conferenceexit> child elements.

realtime, sip

protocol-element §4.2.2.2

The <join> element requests creation of one or more media streams between a connection and a conference, between two connections, or between two conferences, identified by mandatory 'id1' and 'id2' attributes. Optional child <stream> elements control individual streams; if absent, all streams are joined by default.

realtime, sip, rtp

protocol-element §4.1

The <mscmixer> element is the root XML element for all package messages, carrying a mandatory 'version' attribute (fixed at "1.0") and an optional 'desclang' attribute for the language of descriptive text in subordinate elements. Exactly one child element (request, response, or notification) may appear.

realtime, sip

protocol-element §4.2.3

The <response> element carries the MS's answer to any request, with a mandatory numeric 'status' code and optional 'reason', 'desclang', 'conferenceid', and 'connectionid' attributes. Response status codes (Section 4.6) are distinct from framework-level response codes.

realtime, sip

protocol-element §4.2.2.5

The <stream> element identifies a media stream within <join>, <modifyjoin>, and <unjoin> requests. It carries mandatory 'media' (MIME type name, e.g., "audio" or "video"), optional 'label' (SDP label), and optional 'direction' ("sendrecv", "sendonly", "recvonly", or "inactive", defaulting to "sendrecv") attributes.

realtime, rtp

protocol-element §4.2.4.2

The <unjoin-notify> element notifies the AS that a join has been terminated, with a mandatory 'status' attribute: 0 = explicit <unjoin>, 1 = execution error, 2 = connection or conference terminated. Unrecognized status codes MUST be treated as equivalent to 1.

realtime, sip

protocol-element §4.2.1.4.2

The <video-layouts> element holds an ordered sequence of <video-layout> child elements, each with a 'min-participants' threshold. The MS automatically activates the appropriate layout based on current participant count, supporting predefined XCON layouts: <single-view>, <dual-view>, <quad-view>, <multiple-3x3>, <multiple-4x4>, <multiple-5x1>, and others.

realtime

protocol-element §4.2.1.4.3

The <video-switch> element configures how participant video streams are assigned to layout regions. It supports <vas/> (Voice-Activated Switching — loudest speaker gets largest region) and <controller/> (AS-driven, using floor control) policies, with 'interval' and 'activespeakermix' attributes.

realtime

protocol-element §4.2.2.5.1

The <volume> element configures audio stream volume: 'controltype' selects "automatic" (auto-level to target), "setgain" (fixed dB offset), or "setstate" (mute/unmute). Setting gain or automatic control on a muted stream implicitly unmutes it.

realtime, rtp

registry §8.5

IANA registers a Mixer Control Package Status Code registry for this package's numeric response codes (e.g., 200 success, 405 conference already exists, 410 conference full, 422 unsupported stream configuration, 428 unsupported foreign namespace extension). New codes require Standards Action.

registry, realtime

registry §8.1

IANA registers the Control Package name "msc-mixer/1.0" in the Media Control Channel Framework Control Packages registry.

registry, realtime

registry §8.4

IANA registers the MIME media type "application/msc-mixer+xml" for use as the body type in CONTROL and REPORT messages exchanged by this package.

registry, realtime

security-consideration §7

Implementations MUST address the security considerations in Section 7, which inherit the RFC 6230 framework security model. The control channel carries privileged conference management commands, so unauthorized access could allow an attacker to create, modify, or destroy conferences and manipulate media streams.

security, realtime, sip