Internet Engineering Task Force (IETF)                      S. McGlashan
Request for Comments: 6505                               Hewlett-Packard
Category: Standards Track                                   T. Melanchuk
ISSN: 2070-1721                                               Rainwillow
                                                              C. Boulton
                                                         NS-Technologies
                                                              March 2012
        
Internet Engineering Task Force (IETF)                      S. McGlashan
Request for Comments: 6505                               Hewlett-Packard
Category: Standards Track                                   T. Melanchuk
ISSN: 2070-1721                                               Rainwillow
                                                              C. Boulton
                                                         NS-Technologies
                                                              March 2012
        

A Mixer Control Package for the Media Control Channel Framework

媒体控制通道框架的混音器控制包

Abstract

摘要

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.

本文档定义了一个媒体控制频道框架包,用于管理媒体会议和连接的混音器。该包定义了用于管理会议混音器、管理会议和/或连接之间的混音器以及相关响应和通知的请求元素。包还定义了用于审核包功能和混合器的元素。

Status of This Memo

关于下段备忘

This is an Internet Standards Track document.

这是一份互联网标准跟踪文件。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.

本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。有关互联网标准的更多信息,请参见RFC 5741第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6505.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc6505.

Copyright Notice

版权公告

Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2012 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.

本文件可能包含2008年11月10日之前发布或公开的IETF文件或IETF贡献中的材料。控制某些材料版权的人员可能未授予IETF信托允许在IETF标准流程之外修改此类材料的权利。在未从控制此类材料版权的人员处获得充分许可的情况下,不得在IETF标准流程之外修改本文件,也不得在IETF标准流程之外创建其衍生作品,除了将其格式化以RFC形式发布或将其翻译成英语以外的其他语言。

Table of Contents

目录

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Conventions and Terminology  . . . . . . . . . . . . . . . . .  5
   3.  Control Package Definition . . . . . . . . . . . . . . . . . .  6
     3.1.  Control Package Name . . . . . . . . . . . . . . . . . . .  6
     3.2.  Framework Message Usage  . . . . . . . . . . . . . . . . .  6
     3.3.  Common XML Support . . . . . . . . . . . . . . . . . . . .  7
     3.4.  CONTROL Message Body . . . . . . . . . . . . . . . . . . .  7
     3.5.  REPORT Message Body  . . . . . . . . . . . . . . . . . . .  7
     3.6.  Audit  . . . . . . . . . . . . . . . . . . . . . . . . . .  8
     3.7.  Examples . . . . . . . . . . . . . . . . . . . . . . . . .  8
   4.  Element Definitions  . . . . . . . . . . . . . . . . . . . . .  8
     4.1.  <mscmixer> . . . . . . . . . . . . . . . . . . . . . . . .  9
     4.2.  Mixer Elements . . . . . . . . . . . . . . . . . . . . . . 11
       4.2.1.  Conference Elements  . . . . . . . . . . . . . . . . . 12
         4.2.1.1.  <createconference> . . . . . . . . . . . . . . . . 12
         4.2.1.2.  <modifyconference> . . . . . . . . . . . . . . . . 14
         4.2.1.3.  <destroyconference>  . . . . . . . . . . . . . . . 16
         4.2.1.4.  Conference Configuration . . . . . . . . . . . . . 16
           4.2.1.4.1.  <audio-mixing> . . . . . . . . . . . . . . . . 16
           4.2.1.4.2.  <video-layouts>  . . . . . . . . . . . . . . . 17
             4.2.1.4.2.1.  <video-layout> . . . . . . . . . . . . . . 18
           4.2.1.4.3.  <video-switch> . . . . . . . . . . . . . . . . 24
             4.2.1.4.3.1.  Priority Assignment  . . . . . . . . . . . 26
           4.2.1.4.4.  <subscribe>  . . . . . . . . . . . . . . . . . 27
             4.2.1.4.4.1.  <active-talkers-sub> . . . . . . . . . . . 27
       4.2.2.  Joining Elements . . . . . . . . . . . . . . . . . . . 28
         4.2.2.1.  Joining Model  . . . . . . . . . . . . . . . . . . 28
         4.2.2.2.  <join> . . . . . . . . . . . . . . . . . . . . . . 29
         4.2.2.3.  <modifyjoin> . . . . . . . . . . . . . . . . . . . 32
         4.2.2.4.  <unjoin> . . . . . . . . . . . . . . . . . . . . . 34
         4.2.2.5.  <stream> . . . . . . . . . . . . . . . . . . . . . 35
           4.2.2.5.1.  <volume> . . . . . . . . . . . . . . . . . . . 37
           4.2.2.5.2.  <clamp>  . . . . . . . . . . . . . . . . . . . 38
           4.2.2.5.3.  <region> . . . . . . . . . . . . . . . . . . . 38
        
   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Conventions and Terminology  . . . . . . . . . . . . . . . . .  5
   3.  Control Package Definition . . . . . . . . . . . . . . . . . .  6
     3.1.  Control Package Name . . . . . . . . . . . . . . . . . . .  6
     3.2.  Framework Message Usage  . . . . . . . . . . . . . . . . .  6
     3.3.  Common XML Support . . . . . . . . . . . . . . . . . . . .  7
     3.4.  CONTROL Message Body . . . . . . . . . . . . . . . . . . .  7
     3.5.  REPORT Message Body  . . . . . . . . . . . . . . . . . . .  7
     3.6.  Audit  . . . . . . . . . . . . . . . . . . . . . . . . . .  8
     3.7.  Examples . . . . . . . . . . . . . . . . . . . . . . . . .  8
   4.  Element Definitions  . . . . . . . . . . . . . . . . . . . . .  8
     4.1.  <mscmixer> . . . . . . . . . . . . . . . . . . . . . . . .  9
     4.2.  Mixer Elements . . . . . . . . . . . . . . . . . . . . . . 11
       4.2.1.  Conference Elements  . . . . . . . . . . . . . . . . . 12
         4.2.1.1.  <createconference> . . . . . . . . . . . . . . . . 12
         4.2.1.2.  <modifyconference> . . . . . . . . . . . . . . . . 14
         4.2.1.3.  <destroyconference>  . . . . . . . . . . . . . . . 16
         4.2.1.4.  Conference Configuration . . . . . . . . . . . . . 16
           4.2.1.4.1.  <audio-mixing> . . . . . . . . . . . . . . . . 16
           4.2.1.4.2.  <video-layouts>  . . . . . . . . . . . . . . . 17
             4.2.1.4.2.1.  <video-layout> . . . . . . . . . . . . . . 18
           4.2.1.4.3.  <video-switch> . . . . . . . . . . . . . . . . 24
             4.2.1.4.3.1.  Priority Assignment  . . . . . . . . . . . 26
           4.2.1.4.4.  <subscribe>  . . . . . . . . . . . . . . . . . 27
             4.2.1.4.4.1.  <active-talkers-sub> . . . . . . . . . . . 27
       4.2.2.  Joining Elements . . . . . . . . . . . . . . . . . . . 28
         4.2.2.1.  Joining Model  . . . . . . . . . . . . . . . . . . 28
         4.2.2.2.  <join> . . . . . . . . . . . . . . . . . . . . . . 29
         4.2.2.3.  <modifyjoin> . . . . . . . . . . . . . . . . . . . 32
         4.2.2.4.  <unjoin> . . . . . . . . . . . . . . . . . . . . . 34
         4.2.2.5.  <stream> . . . . . . . . . . . . . . . . . . . . . 35
           4.2.2.5.1.  <volume> . . . . . . . . . . . . . . . . . . . 37
           4.2.2.5.2.  <clamp>  . . . . . . . . . . . . . . . . . . . 38
           4.2.2.5.3.  <region> . . . . . . . . . . . . . . . . . . . 38
        
           4.2.2.5.4.  <priority> . . . . . . . . . . . . . . . . . . 38
       4.2.3.  <response> . . . . . . . . . . . . . . . . . . . . . . 38
       4.2.4.  <event>  . . . . . . . . . . . . . . . . . . . . . . . 39
         4.2.4.1.  <active-talkers-notify>  . . . . . . . . . . . . . 39
           4.2.4.1.1.  <active-talker>  . . . . . . . . . . . . . . . 40
         4.2.4.2.  <unjoin-notify>  . . . . . . . . . . . . . . . . . 40
         4.2.4.3.  <conferenceexit> . . . . . . . . . . . . . . . . . 41
     4.3.  Audit Elements . . . . . . . . . . . . . . . . . . . . . . 42
       4.3.1.  <audit>  . . . . . . . . . . . . . . . . . . . . . . . 43
       4.3.2.  <auditresponse>  . . . . . . . . . . . . . . . . . . . 44
         4.3.2.1.  <capabilities> . . . . . . . . . . . . . . . . . . 46
         4.3.2.2.  <mixers> . . . . . . . . . . . . . . . . . . . . . 46
           4.3.2.2.1.  <conferenceaudit>  . . . . . . . . . . . . . . 47
             4.3.2.2.1.1.  <participants> . . . . . . . . . . . . . . 47
               4.3.2.2.1.1.1.  <participant>  . . . . . . . . . . . . 48
           4.3.2.2.2.  <joinaudit>  . . . . . . . . . . . . . . . . . 48
     4.4.  <codecs> . . . . . . . . . . . . . . . . . . . . . . . . . 48
       4.4.1.  <codec>  . . . . . . . . . . . . . . . . . . . . . . . 49
     4.5.  <params> . . . . . . . . . . . . . . . . . . . . . . . . . 50
       4.5.1.  <param>  . . . . . . . . . . . . . . . . . . . . . . . 50
     4.6.  Response Status Codes  . . . . . . . . . . . . . . . . . . 51
     4.7.  Type Definitions . . . . . . . . . . . . . . . . . . . . . 55
   5.  Formal Syntax  . . . . . . . . . . . . . . . . . . . . . . . . 56
   6.  Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
     6.1.  AS-MS Framework Interaction Examples . . . . . . . . . . . 75
       6.1.1.  Creating a Conference Mixer and Joining a
               Participant  . . . . . . . . . . . . . . . . . . . . . 75
       6.1.2.  Receiving Active Talker Notifications  . . . . . . . . 76
       6.1.3.  Conference Termination . . . . . . . . . . . . . . . . 76
     6.2.  Mixing Examples  . . . . . . . . . . . . . . . . . . . . . 76
       6.2.1.  Audio Conferencing . . . . . . . . . . . . . . . . . . 77
       6.2.2.  Bridging Connections . . . . . . . . . . . . . . . . . 79
       6.2.3.  Video Conferencing . . . . . . . . . . . . . . . . . . 80
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 81
   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 84
     8.1.  Control Package Registration . . . . . . . . . . . . . . . 84
     8.2.  URN Sub-Namespace Registration . . . . . . . . . . . . . . 84
     8.3.  XML Schema Registration  . . . . . . . . . . . . . . . . . 85
     8.4.  MIME Media Type Registration for
           'application/msc-mixer+xml'  . . . . . . . . . . . . . . . 85
     8.5.  Mixer Control Package Status Code Registration . . . . . . 86
   9.  Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 86
   10. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 87
   11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 87
     11.1. Normative References . . . . . . . . . . . . . . . . . . . 87
     11.2. Informative References . . . . . . . . . . . . . . . . . . 88
        
           4.2.2.5.4.  <priority> . . . . . . . . . . . . . . . . . . 38
       4.2.3.  <response> . . . . . . . . . . . . . . . . . . . . . . 38
       4.2.4.  <event>  . . . . . . . . . . . . . . . . . . . . . . . 39
         4.2.4.1.  <active-talkers-notify>  . . . . . . . . . . . . . 39
           4.2.4.1.1.  <active-talker>  . . . . . . . . . . . . . . . 40
         4.2.4.2.  <unjoin-notify>  . . . . . . . . . . . . . . . . . 40
         4.2.4.3.  <conferenceexit> . . . . . . . . . . . . . . . . . 41
     4.3.  Audit Elements . . . . . . . . . . . . . . . . . . . . . . 42
       4.3.1.  <audit>  . . . . . . . . . . . . . . . . . . . . . . . 43
       4.3.2.  <auditresponse>  . . . . . . . . . . . . . . . . . . . 44
         4.3.2.1.  <capabilities> . . . . . . . . . . . . . . . . . . 46
         4.3.2.2.  <mixers> . . . . . . . . . . . . . . . . . . . . . 46
           4.3.2.2.1.  <conferenceaudit>  . . . . . . . . . . . . . . 47
             4.3.2.2.1.1.  <participants> . . . . . . . . . . . . . . 47
               4.3.2.2.1.1.1.  <participant>  . . . . . . . . . . . . 48
           4.3.2.2.2.  <joinaudit>  . . . . . . . . . . . . . . . . . 48
     4.4.  <codecs> . . . . . . . . . . . . . . . . . . . . . . . . . 48
       4.4.1.  <codec>  . . . . . . . . . . . . . . . . . . . . . . . 49
     4.5.  <params> . . . . . . . . . . . . . . . . . . . . . . . . . 50
       4.5.1.  <param>  . . . . . . . . . . . . . . . . . . . . . . . 50
     4.6.  Response Status Codes  . . . . . . . . . . . . . . . . . . 51
     4.7.  Type Definitions . . . . . . . . . . . . . . . . . . . . . 55
   5.  Formal Syntax  . . . . . . . . . . . . . . . . . . . . . . . . 56
   6.  Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
     6.1.  AS-MS Framework Interaction Examples . . . . . . . . . . . 75
       6.1.1.  Creating a Conference Mixer and Joining a
               Participant  . . . . . . . . . . . . . . . . . . . . . 75
       6.1.2.  Receiving Active Talker Notifications  . . . . . . . . 76
       6.1.3.  Conference Termination . . . . . . . . . . . . . . . . 76
     6.2.  Mixing Examples  . . . . . . . . . . . . . . . . . . . . . 76
       6.2.1.  Audio Conferencing . . . . . . . . . . . . . . . . . . 77
       6.2.2.  Bridging Connections . . . . . . . . . . . . . . . . . 79
       6.2.3.  Video Conferencing . . . . . . . . . . . . . . . . . . 80
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 81
   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 84
     8.1.  Control Package Registration . . . . . . . . . . . . . . . 84
     8.2.  URN Sub-Namespace Registration . . . . . . . . . . . . . . 84
     8.3.  XML Schema Registration  . . . . . . . . . . . . . . . . . 85
     8.4.  MIME Media Type Registration for
           'application/msc-mixer+xml'  . . . . . . . . . . . . . . . 85
     8.5.  Mixer Control Package Status Code Registration . . . . . . 86
   9.  Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 86
   10. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 87
   11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 87
     11.1. Normative References . . . . . . . . . . . . . . . . . . . 87
     11.2. Informative References . . . . . . . . . . . . . . . . . . 88
        
1. Introduction
1. 介绍

The Media Control Channel Framework [RFC6230] provides a generic approach for establishment and reporting capabilities of remotely initiated commands. The Control Framework -- an equivalent term for the Media Control Channel Framework -- utilizes many functions provided by the Session Initiation Protocol (SIP) [RFC3261] for the rendezvous and establishment of a reliable channel for control interactions. The Control Framework also introduces the concept of a Control Package. A Control Package is an explicit usage of the Control Framework for a particular interaction set. This specification defines a package for media conference mixers and media connection mixers.

媒体控制通道框架[RFC6230]提供了一种建立和报告远程启动命令能力的通用方法。控制框架——媒体控制通道框架的一个等价术语——利用会话启动协议(SIP)[RFC3261]提供的许多功能来会合和建立用于控制交互的可靠通道。控制框架还引入了控制包的概念。控制包是对特定交互集的控制框架的显式使用。本规范定义了媒体会议混音器和媒体连接混音器的软件包。

This package defines mixer management elements for creating, modifying, and deleting conference mixers, elements for joining, modifying, and unjoining media streams between connections and conferences (including mixers between connections), as well as associated responses and notifications. The package also defines elements for auditing package capabilities and mixers.

此包定义用于创建、修改和删除会议混音器的混音器管理元素,用于连接和会议之间连接、修改和取消连接媒体流的元素(包括连接之间的混音器),以及相关的响应和通知。包还定义了用于审核包功能和混合器的元素。

This package has been designed to satisfy media-mixing requirements documented in the Media Server Control Protocol Requirements document [RFC5167]; more specifically REQ-MCP-22, REQ-MCP-23, REQ-MCP-24, REQ-MCP-25, REQ-MCP-26, and REQ-MCP-27.

该软件包旨在满足媒体服务器控制协议要求文件[RFC5167]中记录的媒体混合要求;更具体地说,REQ-MCP-22、REQ-MCP-23、REQ-MCP-24、REQ-MCP-25、REQ-MCP-26和REQ-MCP-27。

The package provides the major conferencing functionality of SIP media server languages such as MSCML [RFC5022] and MSML [RFC5707]. A key differentiator is that this package provides such functionality using the Media Control Channel Framework.

该软件包提供了SIP媒体服务器语言(如MSCML[RFC5022]和MSML[RFC5707])的主要会议功能。一个关键的区别在于,此软件包使用媒体控制通道框架提供此类功能。

Out of scope for this mixer package are more advanced functions including personalized video mixes for conference participants, support for floor control protocols, as well as support for video overlays and text insertion. Such functionality can be addressed by extensions to this package (through addition of foreign elements or attributes from another namespace) or use of other Control Packages that could build upon this package.

此混音器软件包不适用于更高级的功能,包括会议参与者的个性化视频混音、对楼层控制协议的支持,以及对视频叠加和文本插入的支持。这种功能可以通过对此包的扩展(通过添加来自另一个命名空间的外来元素或属性)或使用可在此包上构建的其他控制包来实现。

The functionality of this package is defined by messages, containing XML [XML] elements and transported using the Media Control Channel Framework. The XML elements can be divided into two types: mixer management elements and audit elements (for auditing package capabilities and mixers managed by the package).

此包的功能由消息定义,包含XML[XML]元素,并使用媒体控制通道框架进行传输。XML元素可以分为两种类型:mixer管理元素和audit元素(用于审核包功能和由包管理的mixer)。

The document is organized as follows. Section 3 describes how this Control Package fulfills the requirements for a Media Control Channel Framework Control Package. Section 4 describes the syntax and

该文件的组织如下。第3节描述了该控制包如何满足媒体控制通道框架控制包的要求。第4节描述了语法和语法

semantics of defined elements, including mixer management (Section 4.2) and audit elements (Section 4.3). Section 5 describes an XML schema for these elements and provides extensibility by allowing attributes and elements from other namespaces. Section 6 provides examples of package usage. Section 7 describes important security considerations for use of this Control Package. Section 8 provides information on IANA registration of this Control Package, including its name, XML namespace, and MIME media type.

定义元素的语义,包括混音器管理(第4.2节)和审计元素(第4.3节)。第5节描述了这些元素的XML模式,并通过允许来自其他名称空间的属性和元素来提供可扩展性。第6节提供了包使用的示例。第7节描述了使用此控制包的重要安全注意事项。第8节提供了有关此控制包的IANA注册的信息,包括其名称、XML命名空间和MIME媒体类型。

2. Conventions and Terminology
2. 公约和术语

In this document, BCP 14 [RFC2119] defines the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". In addition, BCP 15 indicates requirement levels for compliant implementations.

在本文件中,BCP 14[RFC2119]定义了关键词“必须”、“不得”、“必需”、“应”、“不得”、“应”、“不应”、“建议”、“不建议”、“可”和“可选”。此外,BCP 15指出了合规实施的需求水平。

The following additional terms are defined for use in this document:

本文件中定义了以下附加术语:

Application Server: A SIP [RFC3261] application server (AS) is a control client that hosts and executes services such as interactive media and conferencing in an operator's network. An AS controls the media server (MS), influencing and impacting the SIP sessions terminating on an MS, which the AS can have established, for example, using SIP third-party call control.

应用服务器:SIP[RFC3261]应用服务器(AS)是一个控制客户端,在运营商网络中承载和执行交互媒体和会议等服务。AS控制媒体服务器(MS),影响和影响在MS上终止的SIP会话,AS例如可以使用SIP第三方呼叫控制建立SIP会话。

Media Server: A media server (MS) processes media streams on behalf of an AS by offering functionality such as interactive media, conferencing, and transcoding to the end user. Interactive media functionality is realized by way of dialogs, which are identified by a URI and initiated by the application server.

媒体服务器:媒体服务器(MS)通过向最终用户提供交互媒体、会议和转码等功能,代表AS处理媒体流。交互式媒体功能通过对话框实现,对话框由URI标识并由应用服务器启动。

MS Conference: An MS Conference provides the media-related mixing resources and services for conferences. In this document, an MS Conference is often referred to simply as a conference.

MS会议:MS会议为会议提供与媒体相关的混合资源和服务。在本文档中,MS会议通常简称为会议。

MS Connection: An MS connection represents the termination on a media server of one or more RTP [RFC3550] sessions that are associated to a single SIP dialog. A media server receives media from the output(s) of a connection, and it transmits media on the input(s) of a connection.

MS连接:MS连接表示媒体服务器上与单个SIP对话框关联的一个或多个RTP[RFC3550]会话的终止。媒体服务器从连接的输出接收媒体,并通过连接的输入传输媒体。

Media Stream: A media stream on a media server represents a media flow between either a connection and a conference, between two connections, or between two conferences. Streams can be audio or video and can be bidirectional or unidirectional.

媒体流:媒体服务器上的媒体流表示连接和会议之间、两个连接之间或两个会议之间的媒体流。流可以是音频或视频,也可以是双向或单向的。

3. Control Package Definition
3. 控制包定义

This section fulfills the mandatory requirement for information that MUST be specified during the definition of a Control Framework Package, as detailed in Section 8 of [RFC6230].

如[RFC6230]第8节所述,本节满足在定义控制框架包期间必须规定的强制性信息要求。

3.1. Control Package Name
3.1. 控制包名称

The Control Framework requires a Control Package definition to specify and register a unique name. The name and version of this Control Package is "msc-mixer/1.0" (Media Server Control - Mixer - version 1.0). Its IANA registration is specified in Section 8.1.

控制框架需要控制包定义来指定和注册唯一名称。此控制包的名称和版本为“msc mixer/1.0”(媒体服务器控制-mixer-1.0版)。第8.1节规定了其IANA注册。

Since this is the initial ("1.0") version of the Control Package, there are no backwards compatibility issues to address.

由于这是控制包的初始(“1.0”)版本,因此没有向后兼容性问题需要解决。

3.2. Framework Message Usage
3.2. 框架消息使用

The Control Framework requires a Control Package to explicitly detail the control messages that can be used as well as provide an indication of directionality between entities. This will include which role type is allowed to initiate a request type.

控制框架需要一个控制包来明确详细说明可以使用的控制消息,并提供实体之间方向性的指示。这将包括允许哪个角色类型启动请求类型。

This package specifies CONTROL and response messages in terms of XML elements defined in Section 4, where the message bodies have the MIME media type defined in Section 8.4. These elements describe requests, responses, and notifications, and all are contained within a root <mscmixer> element (Section 4.1).

该包根据第4节中定义的XML元素指定控制和响应消息,其中消息体具有第8.4节中定义的MIME媒体类型。这些元素描述请求、响应和通知,它们都包含在根<mscmixer>元素中(第4.1节)。

In this package, the MS operates as a Control Server in receiving requests from, and sending responses to, the AS (operating as a Control Client). Mixer management requests and responses are defined in Section 4.2. Audit requests and responses are defined in Section 4.3. Mixer management and audit responses are carried in a framework 200 response or REPORT message bodies. This package's response codes are defined in Section 4.6.

在此包中,MS作为控制服务器接收来自as(作为控制客户端运行)的请求并向其发送响应。第4.2节定义了混音器管理请求和响应。第4.3节定义了审计请求和响应。混音器管理和审计响应在framework 200响应或报告消息体中进行。第4.6节定义了该包的响应代码。

Note that package responses are different from framework response codes. Framework error response codes (see Section 7 of [RFC6230]) are used when the request or event notification is invalid, for example, a request is invalid XML (400) or not understood (500).

请注意,包响应不同于框架响应代码。当请求或事件通知无效时,例如,请求为无效XML(400)或不可理解(500),将使用框架错误响应代码(见[RFC6230]第7节)。

The MS also operates as a Control Client in sending event notification to the AS (Control Server). Event notifications (Section 4.2.4) are carried in CONTROL message bodies. The AS MUST respond with a Control Framework 200 response.

MS还作为控制客户端向as(控制服务器)发送事件通知。事件通知(第4.2.4节)在控制消息正文中进行。AS必须以控制框架200响应进行响应。

3.3. Common XML Support
3.3. 通用XML支持

The Control Framework requires a Control Package definition to specify if the attributes for media dialog or conference references are required.

控制框架需要一个控制包定义来指定是否需要媒体对话框或会议引用的属性。

This package requires that the XML schema in Appendix A.1 of [RFC6230] MUST be supported for media dialogs and conferences.

该软件包要求媒体对话和会议必须支持[RFC6230]附录A.1中的XML模式。

The package uses 'connectionid' and 'conferenceid' attributes for various element definitions (Section 4). The XML schema (Section 5) imports the definitions of these attributes from the framework schema.

该包对各种元素定义使用“connectionid”和“conferenceid”属性(第4节)。XML模式(第5节)从框架模式导入这些属性的定义。

3.4. CONTROL Message Body
3.4. 控制消息体

The Control Framework requires a Control Package to define the control body that can be contained within a CONTROL command request and to indicate the location of detailed syntax definitions and semantics for the appropriate body types.

控制框架需要一个控制包来定义可包含在控制命令请求中的控制主体,并指示适当主体类型的详细语法定义和语义的位置。

When operating as a Control Server, the MS receives CONTROL messages with the MIME media type defined in Section 8.4 and a body containing a <mscmixer> element (Section 4.1) with either a mixer management or audit request child element.

当作为控制服务器运行时,MS接收具有第8.4节中定义的MIME媒体类型的控制消息,以及包含具有混音器管理或审核请求子元素的<mscmixer>元素(第4.1节)的正文。

The following mixer management request elements are carried in CONTROL message bodies to MS: <createconference> (Section 4.2.1.1), <modifyconference> (Section 4.2.1.2), <destroyconference> (Section 4.2.1.3), <join> (Section 4.2.2.2), <modifyjoin> (Section 4.2.2.3), and <unjoin> (Section 4.2.2.4) elements.

以下混音器管理请求元素在控制消息正文中携带到MS:<createconference>(第4.2.1.1节)、<modifyconference>(第4.2.1.2节)、<destroyconference>(第4.2.1.3节)、<join>(第4.2.2.2节)、<modifyjoin>(第4.2.2.3节)和<unjoin>(第4.2.2.4节)元素。

The <audit> request element (Section 4.3.1) is also carried in CONTROL message bodies.

<audit>请求元素(第4.3.1节)也包含在控制消息正文中。

When operating as a Control Client, the MS sends CONTROL messages with the MIME media type defined in Section 8.4 and a body containing a <mscmixer> element (Section 4.1) with a notification <event> child element (Section 4.2.4).

当作为控制客户端运行时,MS发送控制消息,该消息具有第8.4节中定义的MIME媒体类型,以及包含<mscmixer>元素(第4.1节)和通知<event>子元素(第4.2.4节)的正文。

3.5. REPORT Message Body
3.5. 报告消息体

The Control Framework requires a Control Package definition to define the REPORT body that can be contained within a REPORT command request, or to indicate that no report package body is required. This section indicates the location of detailed syntax definitions and semantics for the appropriate body types.

控制框架需要控制包定义来定义可包含在报告命令请求中的报告正文,或指示不需要报告包正文。本节说明了适当主体类型的详细语法定义和语义的位置。

When operating as a Control Server, the MS sends REPORT bodies with the MIME media type defined in Section 8.4 and a <mscmixer> element with a response child element. The response element for mixer management requests is a <response> element (Section 4.2.3). The response element for an audit request is a <auditresponse> element (Section 4.3.2).

当作为控制服务器运行时,MS发送报告正文,其中包含第8.4节中定义的MIME媒体类型和带有响应子元素的<mscmixer>元素。混音器管理请求的响应元素是<response>元素(第4.2.3节)。审核请求的响应元素是<auditresponse>元素(第4.3.2节)。

3.6. Audit
3.6. 审计

The Control Framework encourages Control Packages to specify whether auditing is available, how it is triggered, as well as the query/ response formats.

控制框架鼓励控制包指定审核是否可用、如何触发以及查询/响应格式。

This Control Package supports auditing of package capabilities and mixers on the MS. An audit request is carried in a CONTROL message and an audit response in a REPORT message (or a 200 response to the CONTROL if it can execute the audit in time).

此控制包支持对MS上的包功能和混合器进行审核。审核请求包含在控制消息中,审核响应包含在报告消息中(或者,如果控件能够及时执行审核,则包含对控件的200响应)。

The syntax and semantics of audit request and response elements are defined in Section 4.3.

审计请求和响应元素的语法和语义在第4.3节中定义。

3.7. Examples
3.7. 例子

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

此控制包在第6节中提供了此类消息流的示例。

4. Element Definitions
4. 元素定义

This section defines the XML elements for this package. The elements are defined in the XML namespace specified in Section 8.2.

本节定义此包的XML元素。元素在第8.2节中指定的XML名称空间中定义。

The root element is <mscmixer> (Section 4.1). All other XML elements (requests, responses, and notification elements) are contained within it. Child elements describe mixer management (Section 4.2) and audit (Section 4.3) functionality. Response status codes are defined in Section 4.6 and type definitions in Section 4.7.

根元素是<mscmixer>(第4.1节)。所有其他XML元素(请求、响应和通知元素)都包含在其中。子元素描述混音器管理(第4.2节)和审计(第4.3节)功能。响应状态代码在第4.6节中定义,类型定义在第4.7节中定义。

Implementation of this Control Package MUST address the security considerations described in Section 7.

此控制包的实施必须解决第7节中描述的安全注意事项。

Implementation of this Control Package MUST adhere to the syntax and semantics of XML elements defined in this section and the schema (Section 5). The XML schema supports extensibility by allowing attributes and elements from other namespaces. Implementations MAY

此控制包的实现必须遵守本节和模式(第5节)中定义的XML元素的语法和语义。XML模式通过允许来自其他名称空间的属性和元素来支持可扩展性。实施可能

support attributes and elements from other (foreign) namespaces. If an MS implementation receives a <mscmixer> element containing attributes or elements from another namespace, which it does not support, the MS sends a 428 response (Section 4.6).

支持来自其他(外部)名称空间的属性和元素。如果MS实现从另一个名称空间接收到包含属性或元素的<mscmixer>元素(它不支持),MS将发送428响应(第4.6节)。

Extensible attributes and elements are not described in this section. In all other cases where there is a difference in constraints between the XML schema and the textual description of elements in this section, the textual definition takes priority.

本节不介绍可扩展属性和元素。在XML模式和本节中元素的文本描述之间约束存在差异的所有其他情况下,文本定义优先。

Some elements in this Control Package contain attributes whose value is descriptive text primarily for diagnostic use. The implementation can indicated the language used in the descriptive text by means of a 'desclang' attribute [RFC2277]. The 'desclang' attribute can appear on the root element as well as selected subordinate elements (see Section 4.1). The 'desclang' attribute value on the root element applies to all 'desclang' attributes in subordinate elements unless the subordinate element has an explicit 'desclang' attribute that overrides it.

此控制包中的某些元素包含其值主要用于诊断的描述性文本的属性。实现可以通过“desclang”属性[RFC2277]指示描述性文本中使用的语言。“desclang”属性可以出现在根元素以及选定的从属元素上(参见第4.1节)。根元素上的“desclang”属性值适用于从属元素中的所有“desclang”属性,除非该从属元素具有覆盖它的显式“desclang”属性。

Usage examples are provided in Section 6.

第6节提供了使用示例。

4.1. <mscmixer>
4.1. <mscmixer>

The <mscmixer> element has the following attributes (in addition to standard XML namespace attributes such as 'xmlns'):

<mscmixer>元素具有以下属性(除了“xmlns”等标准XML命名空间属性之外):

version: a string specifying the mscmixer package version. The value is fixed as "1.0" for this version of the package. The attribute is mandatory.

版本:指定mscmixer包版本的字符串。对于此版本的软件包,该值固定为“1.0”。该属性是必需的。

desclang: specifies the language used in descriptive text attributes of subordinate elements (unless the subordinate element provides a 'desclang' attribute that overrides the value for its descriptive text attributes). The descriptive text attributes on subordinate elements include: the 'reason' attribute on <response> (Section 4.2.3), <unjoin-notify> (Section 4.2.4.2), <conferenceexit> (Section 4.2.4.3), and <auditresponse> (Section 4.3.2). A valid value is a language identifier (Section 4.7.7). The attribute is optional. The default value is "i-default" (BCP 47 [RFC5646]).

desclang:指定在下级元素的描述性文本属性中使用的语言(除非下级元素提供了覆盖其描述性文本属性值的“desclang”属性)。从属元素的描述性文本属性包括:<response>(第4.2.3节)、<unjoin notify>(第4.2.4.2节)、<conferenceexit>(第4.2.4.3节)和<auditresponse>(第4.3.2节)上的“reason”属性。有效值是语言标识符(第4.7.7节)。该属性是可选的。默认值为“i-default”(BCP 47[RFC5646])。

The <mscmixer> element has the following defined child elements, only one of which can occur:

<mscmixer>元素具有以下定义的子元素,其中只能出现一个:

1. mixer management elements defined in Section 4.2:

1. 第4.2节中定义的搅拌机管理要素:

<createconference>: create and configure a new conference mixer. See Section 4.2.1.1

<createconference>:创建并配置新的会议混音器。见第4.2.1.1节

<modifyconference>: modify the configuration of an existing conference mixer. See Section 4.2.1.2

<modifyconference>:修改现有会议混音器的配置。见第4.2.1.2节

<destroyconference>: destroy an existing conference mixer. See Section 4.2.1.3

<destroyconference>:销毁现有会议混音器。见第4.2.1.3节

<join>: create and configure media streams between connections and/or conferences (for example, add a participant to a conference). See Section 4.2.2.2

<join>:在连接和/或会议之间创建和配置媒体流(例如,将参与者添加到会议)。见第4.2.2.2节

<modifyjoin>: modify the configuration of joined media streams. See Section 4.2.2.3

<modifyjoin>:修改加入的媒体流的配置。见第4.2.2.3节

<unjoin>: delete a media stream (for example, remove a participant from a conference). See Section 4.2.2.4

<unjoin>:删除媒体流(例如,从会议中删除参与者)。见第4.2.2.4节

       <response>:  response to a mixer request.  See Section 4.2.3
        
       <response>:  response to a mixer request.  See Section 4.2.3
        
       <event>:  mixer or subscription notification.  See Section 4.2.4
        
       <event>:  mixer or subscription notification.  See Section 4.2.4
        

2. audit elements defined in Section 4.3:

2. 第4.3节中定义的审计要素:

<audit>: audit package capabilities and managed mixers. See Section 4.3.1

<audit>:审核包功能和托管混音器。见第4.3.1节

<auditresponse>: response to an audit request. See Section 4.3.2

<auditresponse>:对审核请求的响应。见第4.3.2节

For example, a request to the MS to create a conference mixer is as follows:

例如,对MS的创建会议混音器的请求如下:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <createconference/>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <createconference/>
   </mscmixer>
        

And a response from the MS that the conference was successfully created is as follows:

MS对会议成功举办的回应如下:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer"
     desclang="en">
    <response status="200" conferenceid="conference1"
      reason="conference created"/>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer"
     desclang="en">
    <response status="200" conferenceid="conference1"
      reason="conference created"/>
   </mscmixer>
        
4.2. Mixer Elements
4.2. 混合元件

This section defines the mixer management XML elements for this Control Package. These elements are divided into requests, responses, and notifications.

本节定义此控制包的混合器管理XML元素。这些元素分为请求、响应和通知。

Request elements are sent to the MS to request a specific mixer operation to be executed. The following request elements are defined:

请求元素被发送到MS以请求执行特定的混音器操作。定义了以下请求元素:

<createconference>: create and configure a new a conference mixer. See Section 4.2.1.1

<createconference>:创建并配置新的会议混音器。见第4.2.1.1节

<modifyconference>: modify the configuration of an existing conference mixer. See Section 4.2.1.2

<modifyconference>:修改现有会议混音器的配置。见第4.2.1.2节

<destroyconference>: destroy an existing conference mixer. See Section 4.2.1.3

<destroyconference>:销毁现有会议混音器。见第4.2.1.3节

<join>: create and configure media streams between connections and/or conferences (for example, add a participant to a conference). See Section 4.2.2.2

<join>:在连接和/或会议之间创建和配置媒体流(例如,将参与者添加到会议)。见第4.2.2.2节

<modifyjoin>: modify the configuration of joined media streams. See Section 4.2.2.3

<modifyjoin>:修改加入的媒体流的配置。见第4.2.2.3节

<unjoin>: delete a media stream (for example, remove a participant from a conference). See Section 4.2.2.4

<unjoin>:删除媒体流(例如,从会议中删除参与者)。见第4.2.2.4节

Responses from the MS describe the status of the requested operation. Responses are specified in a <response> element (Section 4.2.3) that includes a mandatory attribute describing the status in terms of a numeric code. Response status codes are defined in Section 4.6. The MS MUST respond to a request message with a response message. If the MS is not able to process the request and carry out the mixer operation (in whole or in part), then the request has failed: the MS MUST ensure that no part of the requested mixer operation is carried out, and the MS MUST indicate the class of failure using an appropriate 4xx response code. Unless an error response code is specified for a class of error within this section, implementations follow Section 4.6 in determining the appropriate status code for the response.

来自MS的响应描述请求操作的状态。响应在<response>元素(第4.2.3节)中指定,该元素包括一个强制性属性,该属性用数字代码描述状态。第4.6节定义了响应状态代码。MS必须使用响应消息响应请求消息。如果MS无法处理请求并执行混音器操作(全部或部分),则请求失败:MS必须确保未执行请求的混音器操作的任何部分,并且MS必须使用适当的4xx响应代码指示故障等级。除非在本节中为某类错误指定了错误响应代码,否则在确定响应的适当状态代码时,应遵循第4.6节的规定。

Notifications are sent from the MS to provide updates on the status of a mixer operation or subscription. Notifications are specified in an <event> element (Section 4.2.4).

从MS发送通知,以提供有关混音器操作或订阅状态的更新。通知在<event>元素中指定(第4.2.4节)。

4.2.1. Conference Elements
4.2.1. 会议内容
4.2.1.1. <createconference>
4.2.1.1. <createconference>

The <createconference> element is sent to the MS to request creation of a new conference (multiparty) mixer.

<createconference>元素被发送到MS,以请求创建新的会议(多方)混合器。

The <createconference> element has the following attributes:

<createconference>元素具有以下属性:

conferenceid: string indicating a unique name for the new conference. If this attribute is not specified, the MS MUST create a unique name for the conference. The value is used in subsequent references to the conference (e.g., as conferenceid in a <response>). The attribute is optional. There is no default value.

conferenceid:表示新会议的唯一名称的字符串。如果未指定此属性,MS必须为会议创建唯一的名称。该值用于会议的后续引用(例如,<response>中的conferenceid)。该属性是可选的。没有默认值。

reserved-talkers: indicates the requested number of guaranteed speaker slots to be reserved for the conference. A valid value is a non-negative integer (see Section 4.7.2). The attribute is optional. The default value is 0.

预留的扬声器:表示为会议预留的保证扬声器插槽的请求数量。有效值为非负整数(见第4.7.2节)。该属性是可选的。默认值为0。

reserved-listeners: indicates the requested number of guaranteed listener slots to be reserved for the conference. A valid value is a non-negative integer (see Section 4.7.2). The attribute is optional. The default value is 0.

保留的侦听器:表示为会议保留的保证侦听器插槽的请求数量。有效值为非负整数(见第4.7.2节)。该属性是可选的。默认值为0。

The <createconference> element has the following sequence of child elements:

<createconference>元素具有以下子元素序列:

<codecs>: an element to configure the codecs supported by the conference (see Section 4.4). If codecs are specified, then they impose limitations on media capability when the MS attempts to join the conference to other entities (see Sections 4.2.2.2 and 4.2.2.3). The element is optional.

<codecs>:用于配置会议支持的编解码器的元素(参见第4.4节)。如果指定了编解码器,则当MS尝试将会议加入到其他实体时,编解码器会对媒体能力施加限制(请参见第4.2.2.2节和第4.2.2.3节)。元素是可选的。

<audio-mixing>: an element to configure the audio mixing characteristics of a conference (see Section 4.2.1.4.1). The element is optional.

<音频混合>:配置会议音频混合特性的元素(见第4.2.1.4.1节)。元素是可选的。

<video-layouts>: an element to configure the video layouts of a conference (see Section 4.2.1.4.2). The element is optional.

<video layouts>:用于配置会议视频布局的元素(参见第4.2.1.4.2节)。元素是可选的。

<video-switch>: an element to configure the video switch policy for the layout of a conference (see Section 4.2.1.4.3). The element is optional.

<video switch>:为会议布局配置视频切换策略的元素(参见第4.2.1.4.3节)。元素是可选的。

<subscribe>: an element to request subscription to conference events. (see Section 4.2.1.4.4). The element is optional.

<subscribe>:请求订阅会议事件的元素。(见第4.2.1.4.4节)。元素是可选的。

If the 'conferenceid' attribute specifies a value that is already used by an existing conference, the MS reports an error (405) and MUST NOT create a new conference and MUST NOT affect the existing conference.

如果'conferenceid'属性指定了一个已被现有会议使用的值,MS将报告一个错误(405),并且不得创建新会议,也不得影响现有会议。

If the MS is unable to configure the conference according to specified 'reserved-talkers' or 'reserved-listeners' attributes, the MS reports an error (420) and MUST NOT create the conference.

如果MS无法根据指定的“保留通话器”或“保留侦听器”属性配置会议,MS将报告错误(420),并且不得创建会议。

If the MS is unable to configure the conference according to a specified <audio-mixing> element, the MS reports an error (421) and MUST NOT create the conference.

如果MS无法根据指定的<audio mixing>元素配置会议,MS将报告错误(421),并且不得创建会议。

If the MS is unable to configure the conference according to a specified <video-layouts> element, the MS reports an error (423) and MUST NOT create the conference.

如果MS无法根据指定的<video layouts>元素配置会议,MS将报告错误(423),并且不得创建会议。

If the MS is unable to configure the conference according to a specified <video-switch> element, the MS reports an error (424) and MUST NOT create the conference.

如果MS无法根据指定的<video switch>元素配置会议,MS将报告错误(424),并且不得创建会议。

If the MS is unable to configure the conference according to a specified <codecs> element, the MS reports an error (425) and MUST NOT create the conference.

如果MS无法根据指定的<codecs>元素配置会议,则MS报告错误(425),并且不得创建会议。

When a MS has finished processing a <createconference> request, it MUST reply with an appropriate <response> element (Section 4.2.3).

MS处理完<createconference>请求后,必须使用适当的<response>元素进行回复(第4.2.3节)。

For example, a request to create an audio video conference mixer with specified codecs, video layout, video switch, and subscription is as follows:

例如,创建具有指定编解码器、视频布局、视频交换机和订阅的音频视频会议混音器的请求如下:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <createconference conferenceid="conference1"
          reserved-talkers="1" reserved-listeners="10">
      <codecs>
       <codec name="video">
        <subtype>H264</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMA</subtype>
       </codec>
      </codecs>
      <audio-mixing type="nbest"/>
      <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-layouts>
      <video-switch interval="5"><vas/></video-switch>
      <subscribe>
       <active-talkers-sub interval="4"/>
      </subscribe>
    </createconference>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <createconference conferenceid="conference1"
          reserved-talkers="1" reserved-listeners="10">
      <codecs>
       <codec name="video">
        <subtype>H264</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMA</subtype>
       </codec>
      </codecs>
      <audio-mixing type="nbest"/>
      <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-layouts>
      <video-switch interval="5"><vas/></video-switch>
      <subscribe>
       <active-talkers-sub interval="4"/>
      </subscribe>
    </createconference>
   </mscmixer>
        

A response from the MS if the conference was successfully created is as follows:

如果会议成功创建,MS的响应如下:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <response status="200" conferenceid="conference1"/>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <response status="200" conferenceid="conference1"/>
   </mscmixer>
        

Alternatively, a response if the MS could not create the conference due to a lack of support for the H264 codec is as follows:

或者,如果MS由于缺乏对H264编解码器的支持而无法创建会议,则响应如下:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <response status="425" conferenceid="conference1"
              reason="H264 codec not supported"/>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <response status="425" conferenceid="conference1"
              reason="H264 codec not supported"/>
   </mscmixer>
        
4.2.1.2. <modifyconference>
4.2.1.2. <modifyconference>

The <modifyconference> element is sent to the MS to request modification of an existing conference.

<modifyconference>元素被发送到MS以请求修改现有会议。

The <modifyconference> element has the following attribute:

<modifyconference>元素具有以下属性:

conferenceid: string indicating the name of the conference to modify. This attribute is mandatory.

conferenceid:表示要修改的会议名称的字符串。此属性是必需的。

The <modifyconference> element has the following sequence of child elements (one or more):

<modifyconference>元素具有以下子元素序列(一个或多个):

<codecs>: an element to configure the codecs supported by the conference (see Section 4.4). If codecs are specified, then they impose limitations in media capability when the MS attempts to join the conference to other entities (see Sections 4.2.2.2 and 4.2.2.3). Existing conference participants are unaffected by any policy change. The element is optional.

<codecs>:用于配置会议支持的编解码器的元素(参见第4.4节)。如果指定了编解码器,则当MS尝试将会议加入到其他实体时,它们会对媒体能力施加限制(请参见第4.2.2.2和4.2.2.3节)。现有会议参与者不受任何政策变化的影响。元素是可选的。

<audio-mixing>: an element to configure the audio mixing characteristics of a conference (see Section 4.2.1.4.1). The element is optional.

<音频混合>:配置会议音频混合特性的元素(见第4.2.1.4.1节)。元素是可选的。

<video-layouts>: an element to configure the video layouts of a conference (see Section 4.2.1.4.2). The element is optional.

<video layouts>:用于配置会议视频布局的元素(参见第4.2.1.4.2节)。元素是可选的。

<video-switch>: an element to configure the video switch policy for the layout of a conference (see Section 4.2.1.4.3). The element is optional.

<video switch>:为会议布局配置视频切换策略的元素(参见第4.2.1.4.3节)。元素是可选的。

<subscribe>: an element to request subscription to conference events. (see Section 4.2.1.4.4). The element is optional.

<subscribe>:请求订阅会议事件的元素。(见第4.2.1.4.4节)。元素是可选的。

If the 'conferenceid' attribute specifies the name of a conference that does not exist, the MS reports an error (406).

如果'conferenceid'属性指定不存在的会议的名称,MS将报告错误(406)。

If the MS is unable to configure the conference according to a specified <audio-mixing> element, the MS reports an error (421) and MUST NOT modify the conference in any way.

如果MS无法根据指定的<audio mixing>元素配置会议,MS将报告错误(421),并且不得以任何方式修改会议。

If the MS is unable to configure the conference according to a specified <video-layouts> element, the MS reports an error (423) and MUST NOT modify the conference in any way.

如果MS无法根据指定的<video layouts>元素配置会议,MS将报告错误(423),并且不得以任何方式修改会议。

If the MS is unable to configure the conference according to a specified <video-switch> element, the MS reports an error (424) and MUST NOT modify the conference in any way.

如果MS无法根据指定的<video switch>元素配置会议,MS将报告错误(424),并且不得以任何方式修改会议。

If the MS is unable to configure the conference according to a specified <codecs> element, the MS reports an error (425) and MUST NOT modify the conference.

如果MS无法根据指定的<codecs>元素配置会议,则MS报告错误(425),并且不得修改会议。

When a MS has finished processing a <modifyconference> request, it MUST reply with an appropriate <response> element (Section 4.2.3).

MS处理完<modifyconference>请求后,必须使用适当的<response>元素进行回复(第4.2.3节)。

4.2.1.3. <destroyconference>
4.2.1.3. <1次会议>

The <destroyconference> element is sent to the MS to request destruction of an existing conference.

<destroyconference>元素被发送到MS以请求销毁现有会议。

The <destroyconference> element has the following attribute:

<destroyconference>元素具有以下属性:

conferenceid: string indicating the name of the conference to destroy. This attribute is mandatory.

conferenceid:表示要销毁的会议名称的字符串。此属性是必需的。

The <destroyconference> element does not specify any child elements.

<destroyconference>元素未指定任何子元素。

If the 'conferenceid' attribute specifies the name of a conference that does not exist, the MS reports an error (406).

如果'conferenceid'属性指定不存在的会议的名称,MS将报告错误(406)。

When a MS has finished processing a <destroyconference> request, it MUST reply with an appropriate <response> element (Section 4.2.3).

当MS处理完<destroyconference>请求后,必须使用适当的<response>元素进行回复(第4.2.3节)。

Successfully destroying the conference (status code 200) will result in all connection or conference participants being removed from the conference mixer, <unjoin-notify> notification events (Section 4.2.4.2) being sent for each conference participant, and a <conferenceexit> notification event (Section 4.2.4.3) indicating that conference has exited. A <response> with any other status code indicates that the conference mixer still exists and participants are still joined to the mixer.

成功销毁会议(状态代码200)将导致所有连接或会议参与者从会议混合器中移除,为每个会议参与者发送<unjoin notify>通知事件(第4.2.4.2节),以及<conferenceexit>通知事件(第4.2.4.3节)表示会议已退出。带有任何其他状态代码的<response>表示会议混音器仍然存在,参与者仍然加入到混音器中。

4.2.1.4. Conference Configuration
4.2.1.4. 会议配置

The elements in this section are used to establish and modify the configuration of conferences.

本节中的元素用于建立和修改会议的配置。

4.2.1.4.1. <audio-mixing>
4.2.1.4.1. <音频混音>

The <audio-mixing> element defines the configuration of the conference audio mix.

<audio mixing>元素定义会议音频混音的配置。

The <audio-mixing> element has the following attributes:

<audio mixing>元素具有以下属性:

type: is a string indicating the audio stream mixing policy. Defined values are: "nbest" (where the N best (loudest) participant signals are mixed) and "controller" (where the contributing participant(s) is/are selected by the controlling AS via an external floor control protocol). The attribute is optional. The default value is "nbest".

type:表示音频流混合策略的字符串。定义的值为:“nbest”(其中N个最佳(最响亮的)参与者信号被混合)和“控制器”(其中,控制AS通过外部楼层控制协议选择贡献参与者)。该属性是可选的。默认值为“nbest”。

n: indicates the number of eligible participants included in the conference audio mix. An eligible participant is a participant who contributes audio to the conference. Inclusion is based on having the greatest audio energy. A valid value is a non-negative integer (see Section 4.7.2). A value of 0 indicates that all participants contributing audio to the conference are included in the audio mix. The default value is 0. The element is optional.

n:表示会议音频混音中包含的合格参与者的数量。合格的参与者是向会议提供音频的参与者。包容是基于拥有最大的音频能量。有效值为非负整数(见第4.7.2节)。值为0表示向会议提供音频的所有参与者都包括在音频混音中。默认值为0。元素是可选的。

If the 'type' attribute does not have the value "nbest", the MS ignores the 'n' attribute.

如果“type”属性没有值“nbest”,则MS将忽略“n”属性。

The <audio-mixing> element has no child elements.

<audio mixing>元素没有子元素。

For example, a fragment where the audio-mixing policy is set to "nbest" with 3 participants to be included is as follows:

例如,音频混合策略设置为“nbest”且包含3名参与者的片段如下所示:

      <audio-mixing type="nbest" n="3"/>
        
      <audio-mixing type="nbest" n="3"/>
        

If the conference had 200 participants of whom 30 contributed audio, then there would be 30 eligible participants for the audio mix. Of these, the 3 loudest participants would have their audio included in the conference.

如果会议有200名与会者,其中30人提供了音频,那么将有30名合格的与会者参与音频混合。其中,声音最大的3名与会者将在会议中加入他们的音频。

4.2.1.4.2. <video-layouts>
4.2.1.4.2. <视频布局>

The <video-layouts> element describes the video presentation layout configuration for participants providing a video input stream to the conference. This element allows multiple video layouts to be specified so that the MS automatically changes layout depending on the number of video-enabled participants.

<video layouts>元素描述了为会议提供视频输入流的与会者的视频演示布局配置。此元素允许指定多个视频布局,以便MS根据启用视频的参与者的数量自动更改布局。

The <video-layouts> element has no attributes.

<video layouts>元素没有属性。

The <video-layouts> element has the following sequence of child elements (one or more):

<video layouts>元素具有以下子元素序列(一个或多个):

<video-layout>: element describing a video layout (Section 4.2.1.4.2.1).

<video layout>:描述视频布局的元素(第4.2.1.4.2.1节)。

If the MS does not support video conferencing at all, or does not support multiple video layouts, or does not support a specific video layout, the MS reports an 423 error in the response to the request element containing the <video-layouts> element.

如果MS根本不支持视频会议,或不支持多个视频布局,或不支持特定的视频布局,则MS会在对包含<video layouts>元素的请求元素的响应中报告423错误。

An MS MAY support more than one <video-layout> element, although only one layout can be active at a time. A <video-layout> is active if the number of participants in the conference is equal to or greater than the value of its 'min-participants' attribute, but less than the

MS可以支持多个<video layout>元素,但一次只能激活一个布局。如果会议的参与者数量等于或大于其“最小参与者”属性的值,但小于

value of the 'min-participants' attribute for any other <video-layout> element. An MS reports an error (400) if more than one <video-layout> has the same value for the 'min-participants' attribute. When the number of regions within the active layout is greater than the number of participants in the conference, the display of unassigned regions is implementation-specific.

任何其他<video layout>元素的“最小参与者”属性的值。如果多个<video layout>具有相同的“min participants”属性值,MS将报告错误(400)。当活动布局中的区域数大于会议参与者数时,未分配区域的显示是特定于实现的。

The assignment of participant video streams to regions within the layout is according to the video switch policy specified by the <video-switch> element (Section 4.2.1.4.3).

根据<video switch>元素(第4.2.1.4.3节)规定的视频切换策略,将参与者视频流分配给布局内的区域。

For example, a fragment describing a single layout is as follows:

例如,描述单个布局的片段如下所示:

   <video-layouts>
     <video-layout><single-view/></video-layout>
   </video-layouts>
        
   <video-layouts>
     <video-layout><single-view/></video-layout>
   </video-layouts>
        

A fragment describing a sequence of layouts is as follows:

描述布局序列的片段如下所示:

   <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-3x3/></video-layout>
   </video-layouts>
        
   <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-3x3/></video-layout>
   </video-layouts>
        

When the conference has one participant providing a video input stream to the conference, then the single-view format is used. When the conference has two such participants, the dual-view layout is used. When the conference has three or four participants, the quad-view layout is used. When the conference has five or more participants, the multiple-3x3 layout is used.

当会议有一名参与者向会议提供视频输入流时,则使用单视图格式。当会议有两个这样的参与者时,将使用双视图布局。当会议有三个或四个参与者时,将使用四视图布局。当会议有五名或五名以上参与者时,将使用多个3x3布局。

4.2.1.4.2.1. <video-layout>
4.2.1.4.2.1. <视频布局>

The <video-layout> element describes a video layout containing one or more regions in which participant video input streams are displayed.

<video layout>元素描述包含一个或多个显示参与者视频输入流的区域的视频布局。

The <video-layout> element has the following attribute:

<video layout>元素具有以下属性:

min-participants: the minimum number of conference participants needed to allow this layout to be active. A valid value is a positive integer (see Section 4.7.3). The attribute is optional. The default value is 1.

最小参与者:允许此布局处于活动状态所需的最小会议参与者数量。有效值为正整数(见第4.7.3节)。该属性是可选的。默认值为1。

The <video-layout> element has one child element specifying the video layout. An MS MAY support the predefined video layouts defined in the conference information data model for centralized conferencing

<video layout>元素有一个子元素指定视频布局。MS可以支持在会议信息数据模型中定义的用于集中会议的预定义视频布局

(XCON) [RFC6501]: <single-view>, <dual-view>, <dual-view-crop>, <dual-view-2x1>, <dual-view-2x1-crop>, <quad-view>, <multiple-3x3>, <multiple-4x4>, and <multiple-5x1>.

(XCON)[RFC6501]:<single-view>、<dual-view>、<dual-view-crop>、<dual-view-2x1>、<dual-view-2x1-crop>、<quad-view>、<multiple-3x3>、<multiple-4x4>和<multiple-5x1>。

The MS MAY support other video layouts. Non-XCON layouts MUST be specified using an element from a namespace other than the one used in this specification, for example:

MS可以支持其他视频布局。必须使用命名空间中的元素指定非XCON布局,而不是本规范中使用的元素,例如:

   <video-layout>
    <mylayout xmlns='http://example.com/foo'>my-single-view</mylayout>
   </video-layout>
        
   <video-layout>
    <mylayout xmlns='http://example.com/foo'>my-single-view</mylayout>
   </video-layout>
        

If the MS does not support the specified video layout configuration, then the MS reports a 423 error (Section 4.6) in the response to the request element containing the <video-layout> element.

如果MS不支持指定的视频布局配置,则MS在响应包含<video layout>元素的请求元素时报告423错误(第4.6节)。

Each video layout has associated with it one or more regions. The XCON layouts are associated with the following named regions:

每个视频布局都与一个或多个区域关联。XCON布局与以下命名区域关联:

<single-view/>: layout with one stream in a single region as shown in Figure 1.

<single view/>:如图1所示,在单个区域中具有一个流的布局。

                               +-----------+
                               |           |
                               |           |
                               |     1     |
                               |           |
                               |           |
                               +-----------+
        
                               +-----------+
                               |           |
                               |           |
                               |     1     |
                               |           |
                               |           |
                               +-----------+
        

Figure 1: single-view video layout

图1:单视图视频布局

<dual-view/>: layout presenting two streams side-by-side in two regions as shown in Figure 2. The MS MUST NOT alter the aspect ratio of each stream to fit the region, and hence the MS might need to blank out part of each region.

<dual view/>:在两个区域中并排显示两个流的布局,如图2所示。MS不得改变每个流的纵横比以适合该区域,因此MS可能需要清空每个区域的一部分。

                         +-----------+-----------+
                         |           |           |
                         |           |           |
                         |     1     |     2     |
                         |           |           |
                         |           |           |
                         +-----------+-----------+
        
                         +-----------+-----------+
                         |           |           |
                         |           |           |
                         |     1     |     2     |
                         |           |           |
                         |           |           |
                         +-----------+-----------+
        

Figure 2: dual-view video layout

图2:双视图视频布局

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

<dual view crop/>:在两个区域中并排显示两个流的布局,如图3所示。MS必须改变每个流的纵横比以适合其区域,从而不需要消隐。

                         +-----------+-----------+
                         |           |           |
                         |           |           |
                         |     1     |     2     |
                         |           |           |
                         |           |           |
                         +-----------+-----------+
        
                         +-----------+-----------+
                         |           |           |
                         |           |           |
                         |     1     |     2     |
                         |           |           |
                         |           |           |
                         +-----------+-----------+
        

Figure 3: dual-view-crop video layout

图3:双视图裁剪视频布局

<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 might need to blank out part of each region.

<dual-view-2x1/>:在两个区域中呈现两个流的布局,一个在另一个之上,如图4所示。MS不得改变每个流的纵横比以适合其区域,因此MS可能需要清空每个区域的一部分。

                               +-----------+
                               |           |
                               |           |
                               |     1     |
                               |           |
                               |           |
                               +-----------+
                               |           |
                               |           |
                               |     2     |
                               |           |
                               |           |
                               +-----------+
        
                               +-----------+
                               |           |
                               |           |
                               |     1     |
                               |           |
                               |           |
                               +-----------+
                               |           |
                               |           |
                               |     2     |
                               |           |
                               |           |
                               +-----------+
        

Figure 4: dual-view-2x1 video layout

图4:双视图2x1视频布局

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

<dual-view-2x1-crop/>:在两个区域中呈现两条流的布局,一条在另一条之上,如图5所示。MS必须改变每个流的纵横比以适合其区域,从而不需要消隐。

                               +-----------+
                               |           |
                               |           |
                               |     1     |
                               |           |
                               |           |
                               +-----------+
                               |           |
                               |           |
                               |     2     |
                               |           |
                               |           |
                               +-----------+
        
                               +-----------+
                               |           |
                               |           |
                               |     1     |
                               |           |
                               |           |
                               +-----------+
                               |           |
                               |           |
                               |     2     |
                               |           |
                               |           |
                               +-----------+
        

Figure 5: dual-view-2x1-crop video layout

图5:双视图2x1-crop视频布局

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

<quad view/>:在2x2布局中显示四个大小相等的区域的布局,如图6所示。通常,流的纵横比是保留的,因此需要消隐。

                         +-----------+-----------+
                         |           |           |
                         |           |           |
                         |     1     |     2     |
                         |           |           |
                         |           |           |
                         +-----------+-----------+
                         |           |           |
                         |           |           |
                         |     3     |     4     |
                         |           |           |
                         |           |           |
                         +-----------+-----------+
        
                         +-----------+-----------+
                         |           |           |
                         |           |           |
                         |     1     |     2     |
                         |           |           |
                         |           |           |
                         +-----------+-----------+
                         |           |           |
                         |           |           |
                         |     3     |     4     |
                         |           |           |
                         |           |           |
                         +-----------+-----------+
        

Figure 6: quad-view video layout

图6:四视图视频布局

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

<multiple-3x3/>:在3x3布局中呈现九个大小相等的区域的布局,如图7所示。通常,流的纵横比是保留的,因此需要消隐。

                   +-----------+-----------+-----------+
                   |           |           |           |
                   |           |           |           |
                   |     1     |     2     |     3     |
                   |           |           |           |
                   |           |           |           |
                   +-----------+-----------+-----------+
                   |           |           |           |
                   |           |           |           |
                   |     4     |     5     |     6     |
                   |           |           |           |
                   |           |           |           |
                   +-----------+-----------+-----------+
                   |           |           |           |
                   |           |           |           |
                   |    7      |     8     |     9     |
                   |           |           |           |
                   |           |           |           |
                   +-----------+-----------+-----------+
        
                   +-----------+-----------+-----------+
                   |           |           |           |
                   |           |           |           |
                   |     1     |     2     |     3     |
                   |           |           |           |
                   |           |           |           |
                   +-----------+-----------+-----------+
                   |           |           |           |
                   |           |           |           |
                   |     4     |     5     |     6     |
                   |           |           |           |
                   |           |           |           |
                   +-----------+-----------+-----------+
                   |           |           |           |
                   |           |           |           |
                   |    7      |     8     |     9     |
                   |           |           |           |
                   |           |           |           |
                   +-----------+-----------+-----------+
        

Figure 7: multiple-3x3 video layout

图7:多个3x3视频布局

<multiple-4x4/>: layout presenting 16 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.

<multiple-4x4/>:在4x4布局中显示16个大小相等的区域的布局,如图8所示。通常,流的纵横比是保留的,因此需要消隐。

             +-----------+-----------+-----------+-----------+
             |           |           |           |           |
             |           |           |           |           |
             |     1     |     2     |     3     |     4     |
             |           |           |           |           |
             |           |           |           |           |
             +-----------+-----------+-----------+-----------+
             |           |           |           |           |
             |           |           |           |           |
             |     5     |     6     |     7     |     8     |
             |           |           |           |           |
             |           |           |           |           |
             +-----------+-----------+-----------+-----------+
             |           |           |           |           |
             |           |           |           |           |
             |     9     |    10     |    11     |    12     |
             |           |           |           |           |
             |           |           |           |           |
             +-----------+-----------+-----------+-----------+
             |           |           |           |           |
             |           |           |           |           |
             |    13     |    14     |    15     |    16     |
             |           |           |           |           |
             |           |           |           |           |
             +-----------+-----------+-----------+-----------+
        
             +-----------+-----------+-----------+-----------+
             |           |           |           |           |
             |           |           |           |           |
             |     1     |     2     |     3     |     4     |
             |           |           |           |           |
             |           |           |           |           |
             +-----------+-----------+-----------+-----------+
             |           |           |           |           |
             |           |           |           |           |
             |     5     |     6     |     7     |     8     |
             |           |           |           |           |
             |           |           |           |           |
             +-----------+-----------+-----------+-----------+
             |           |           |           |           |
             |           |           |           |           |
             |     9     |    10     |    11     |    12     |
             |           |           |           |           |
             |           |           |           |           |
             +-----------+-----------+-----------+-----------+
             |           |           |           |           |
             |           |           |           |           |
             |    13     |    14     |    15     |    16     |
             |           |           |           |           |
             |           |           |           |           |
             +-----------+-----------+-----------+-----------+
        

Figure 8: multiple-4x4 video layout

图8:多个4x4视频布局

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

<multiple-5x1/>:布局显示一个5x1布局,如图9所示,其中一个区域将占据混合视频流的4/9,而其他每个区域将占据流的1/9。通常,流的纵横比是保留的,因此需要消隐。

                   +-----------------------+-----------+
                   |                       |           |
                   |                       |           |
                   |                       |     2     |
                   |                       |           |
                   |                       |           |
                   |           1           +-----------+
                   |                       |           |
                   |                       |           |
                   |                       |     3     |
                   |                       |           |
                   |                       |           |
                   +-----------+-----------+-----------+
                   |           |           |           |
                   |           |           |           |
                   |    4      |     5     |     6     |
                   |           |           |           |
                   |           |           |           |
                   +-----------+-----------+-----------+
        
                   +-----------------------+-----------+
                   |                       |           |
                   |                       |           |
                   |                       |     2     |
                   |                       |           |
                   |                       |           |
                   |           1           +-----------+
                   |                       |           |
                   |                       |           |
                   |                       |     3     |
                   |                       |           |
                   |                       |           |
                   +-----------+-----------+-----------+
                   |           |           |           |
                   |           |           |           |
                   |    4      |     5     |     6     |
                   |           |           |           |
                   |           |           |           |
                   +-----------+-----------+-----------+
        

Figure 9: multiple-5x1 video layout

图9:多个5x1视频布局

4.2.1.4.3. <video-switch>
4.2.1.4.3. <video switch>

The <video-switch> element describes the configuration of the conference policy for how participants' input video streams are assigned to regions within the active video layout.

<video switch>元素描述了会议策略的配置,用于将参与者的输入视频流分配给活动视频布局中的区域。

The <video-switch> element has the following child elements defined (one child occurrence only) to indicate the video-switching policy of the conference:

<video switch>元素定义了以下子元素(仅一个子项出现),以指示会议的视频切换策略:

<vas/>: (Voice-Activated Switching) enables automatic display of the loudest speaker participant that is contributing both audio and video to the conference mix. Participants who do not provide an audio stream are not considered for automatic display. If a participant provides more than one audio stream, then the policy for inclusion of such a participant in the VAS is implementation-specific; an MS could select one stream, sum audio streams, or ignore the participant for VAS consideration. If there is only one region in the layout, then the loudest speaker is displayed there. If more than one region is available, then the loudest speaker is displayed in the largest region (if any), and then in

<vas/>:(语音激活切换)可自动显示会议混音中声音最大的扬声器参与者。不提供音频流的参与者不考虑自动显示。如果参与者提供多个音频流,则将该参与者包括在VAS中的策略是特定于实现的;MS可以选择一个流、对音频流求和或忽略参与者以供VAS考虑。如果布局中只有一个区域,则在该区域显示最大的扬声器。如果有多个可用区域,则最大的扬声器将显示在最大区域(如果有),然后显示在最大区域

the first region from the top-left corner of the layout. The MS assigns the remaining regions based on the priority mechanism described in Section 4.2.1.4.3.1.

布局左上角的第一个区域。MS根据第4.2.1.4.3.1节中描述的优先级机制分配剩余区域。

<controller/>: enables manual control over video switching. The controller AS determines how the regions are assigned based on an external floor control policy. The MS receives <join>, <modifyjoin>, and <unjoin> commands with a <stream> element (Section 4.2.2.5) indicating the region where the stream is displayed. If no explicit region is specified, the MS assigns the region based on the priority mechanism described in Section 4.2.1.4.3.1.

<controller/>:启用对视频切换的手动控制。控制器AS根据外部楼层控制策略确定如何分配区域。MS接收<join>、<modifyjoin>和<unjoin>命令,其中<stream>元素(第4.2.2.5节)指示显示流的区域。如果未指定明确的区域,则MS根据第4.2.1.4.3.1节所述的优先级机制分配区域。

An MS MAY support other video-switching policies. Other policies MUST be specified using an element from a namespace other than the one used in this specification. For example:

MS可以支持其他视频交换策略。必须使用命名空间中的元素指定其他策略,而不是使用本规范中使用的元素。例如:

   <video-switch>
    <mypolicy xmlns='http://example.com/foo'/>
   </video-switch>
        
   <video-switch>
    <mypolicy xmlns='http://example.com/foo'/>
   </video-switch>
        

The <video-switch> element has the following attributes:

<video switch>元素具有以下属性:

interval: specifies the period between video switches as a number of seconds. In the case of <vas/> policy, a speaker needs to be the loudest speaker for the interval before the switch takes place. A valid value is a non-negative integer (see Section 4.7.2). A value of 0 indicates that switching is applied immediately. The attribute is optional. The default value is 3 (seconds).

间隔:以秒数指定视频切换之间的时间间隔。在<vas/>策略的情况下,在切换发生之前,扬声器必须是间隔时间内声音最大的扬声器。有效值为非负整数(见第4.7.2节)。值为0表示立即应用切换。该属性是可选的。默认值为3(秒)。

activespeakermix: indicates whether or not the active (loudest) speaker participant receives a video stream without themselves displayed in the case of the <vas/> switching policy. If enabled, the MS needs to generate two video streams for each conference mix: one for the active speaker participant without themselves displayed (details of this video layout are implementation-specific) and one for other participants (as described in the <vas/> switching policy above). A valid value is a boolean (see Section 4.7.1). A value of "true" indicates that a separate video mix is generated for the active speaker without themselves being displayed. A value of "false" indicates that all participants receive the same video mix. The attribute is optional. The default value is "false". If the 'type' attribute is not set to <vas/>, the MS ignores this attribute.

activespeakermix:指示在<vas/>切换策略的情况下,活动(声音最大)扬声器参与者是否接收到自己未显示的视频流。如果启用,MS需要为每个会议混音生成两个视频流:一个用于活动演讲者参与者而不显示自己(此视频布局的详细信息是特定于实现的),另一个用于其他参与者(如上面的<vas/>切换策略中所述)。有效值为布尔值(见第4.7.1节)。值“true”表示为活动扬声器生成单独的视频混合,而不显示其本身。值为“false”表示所有参与者接收相同的视频混合。该属性是可选的。默认值为“false”。如果“type”属性未设置为<vas/>,则MS将忽略此属性。

If the MS does not support the specified video-switching policy or other configuration parameters (including separate active speaker video mixes), then the MS reports a 424 error (Section 4.6) in the response to the request element containing the <video-switch> element.

如果MS不支持指定的视频切换策略或其他配置参数(包括单独的活动扬声器视频混音),则MS在响应包含<video switch>元素的请求元素时报告424错误(第4.6节)。

If the MS receives a <join> or <modifyjoin> request containing a <stream> element (Section 4.2.2.5) that specifies a region and the conference video-switching policy is set to <vas/>, then the MS ignores the region (i.e., conference-switching policy takes precedence).

如果MS收到包含指定区域的<stream>元素(第4.2.2.5节)的<join>或<modifyjoin>请求,并且会议视频切换策略设置为<vas/>,则MS忽略该区域(即,会议切换策略优先)。

If the MS receives a <join> or <modifyjoin> request containing a <stream> element (Section 4.2.2.5) specifying a region that 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 displays the participant if the layout changes to one that defines the specified region.

如果MS收到一个<join>或<modifyjoin>请求,其中包含一个<stream>元素(第4.2.2.5节),该元素指定了一个未为当前活动视频布局定义的区域,则MS不得报告错误。即使参与者当前不可见,如果布局更改为定义指定区域的布局,MS也会显示参与者。

For example, a fragment specifying a <vas/> video-switching policy with an interval of 2s

例如,指定间隔为2秒的<vas/>视频切换策略的片段

    <video-switch interval="2"><vas/></video-switch>
        
    <video-switch interval="2"><vas/></video-switch>
        

For example, a fragment specifying a <controller/> video-switching policy where video switching takes place immediately is as follows:

例如,指定视频切换立即发生的<controller/>视频切换策略的片段如下所示:

    <video-switch interval="0"><controller/></video-switch>
        
    <video-switch interval="0"><controller/></video-switch>
        
4.2.1.4.3.1. Priority Assignment
4.2.1.4.3.1. 优先权分配

In cases where the video-switching policy does not explicitly determine the region to which a participant is assigned, the following priority assignment mechanism applies:

在视频切换策略未明确确定参与者分配到的区域的情况下,以下优先级分配机制适用:

1. Each participant has a (positive integer) priority value: the lower the value, the higher the priority. The priority value is determined by the <priority> child element (Section 4.2.2.5.4) of <stream>. If not explicitly specified, the default priority value is 100.

1. 每个参与者都有一个(正整数)优先级值:该值越低,优先级越高。优先级值由<stream>的<priority>子元素(第4.2.2.5.4节)确定。如果未明确指定,则默认优先级值为100。

2. The MS uses priority values to assign participants to regions in the video layout which remain unfilled after application of the video-switching policy. The MS MUST dedicate larger and/or more prominent portions of the layout to participants with higher priority values first (e.g., first, all participants with priority 1, then those with 2, 3, etc.).

2. MS使用优先级值将参与者分配到视频布局中的区域,这些区域在应用视频切换策略后仍然未填充。MS必须首先将布局的更大和/或更突出部分专用于具有更高优先级值的参与者(例如,首先,所有优先级为1的参与者,然后是具有2、3等优先级的参与者)。

3. The policy for displaying participants with the same priority is implementation-specific.

3. 显示具有相同优先级的参与者的策略是特定于实现的。

The MS applies this priority policy each time the video layout is changed or updated. It is RECOMMENDED that the MS does not move a participant from one region to another unless required by the video-switching policy when an active video layout is updated.

每次更改或更新视频布局时,MS都会应用此优先级策略。建议MS不要将参与者从一个区域移动到另一个区域,除非在更新活动视频布局时视频切换策略有要求。

This model allows the MS to apply default video layouts after applying the video-switching policy. For example, region 2 is statically assigned to Bob, so the priority mechanism only applies to regions 1, 3, 4, etc.

此模型允许MS在应用视频切换策略后应用默认视频布局。例如,区域2静态分配给Bob,因此优先级机制仅适用于区域1、3、4等。

4.2.1.4.4. <subscribe>
4.2.1.4.4. <订阅>

The <subscribe> element is a container for specifying conference notification events to which a controlling entity subscribes. Notifications of conference events are delivered using the <event> element (see Section 4.2.4).

<subscribe>元素是一个容器,用于指定控制实体订阅的会议通知事件。会议活动通知使用<event>元素发送(见第4.2.4节)。

The <subscribe> element has no attributes, but has the following child element:

<subscribe>元素没有属性,但具有以下子元素:

<active-talkers-sub>: subscription to active talker events (Section 4.2.1.4.4.1). The element is optional.

<active talker sub>:订阅active talker事件(第4.2.1.4.4.1节)。元素是可选的。

The MS MUST support a <active-talkers-sub> subscription. It MAY support other event subscriptions (specified using attributes and child elements from a foreign namespace). If the MS does not support a subscription specified in a foreign namespace, it sends a <response> with a 428 status code (see Section 4.6).

MS必须支持<active talkers sub>订阅。它可能支持其他事件订阅(使用外部命名空间中的属性和子元素指定)。如果MS不支持在外部命名空间中指定的订阅,则会发送带有428状态代码的<response>(请参阅第4.6节)。

4.2.1.4.4.1. <active-talkers-sub>
4.2.1.4.4.1. <active talkers sub>

The <active-talkers-sub> element has the following attribute:

<active talkers sub>元素具有以下属性:

interval: the minimum amount of time (in seconds) that elapses before further active talker events can be generated. A valid value is a non-negative integer (see Section 4.7.2). A value of 0 suppresses further notifications. The attribute is optional. The default value is 3 (seconds).

interval(间隔):生成更多活动说话者事件之前经过的最短时间(以秒为单位)。有效值为非负整数(见第4.7.2节)。值为0将禁止进一步通知。该属性是可选的。默认值为3(秒)。

The <active-talkers-sub> element has no child elements.

<active talkers sub>元素没有子元素。

Active talker notifications are delivered in the <active-talkers-notify> element (Section 4.2.4.1).

在<Active talkers notify>元素(第4.2.4.1节)中发送主动通话者通知。

4.2.2. Joining Elements
4.2.2. 连接元素

This section contains definitions of the joining model (Section 4.2.2.1) as well as the <join> (Section 4.2.2.2), <modifyjoin> (Section 4.2.2.3), <unjoin> (Section 4.2.2.4) and <stream> (Section 4.2.2.5) elements.

本节包含连接模型(第4.2.2.1节)以及<join>(第4.2.2.2节)、<modifyjoin>(第4.2.2.3节)、<unjoin>(第4.2.2.4节)和<stream>(第4.2.2.5节)元素的定义。

4.2.2.1. Joining Model
4.2.2.1. 连接模型

The <join> operation creates a media stream between a connection and a conference, between connections, or between conferences. This section describes the model of conferences and connections and specifies the behavior for join requests to targets that already have an associated media stream.

<join>操作在连接和会议之间、连接之间或会议之间创建媒体流。本节介绍会议和连接的模型,并指定已具有关联媒体流的目标的连接请求的行为。

Conferences support multiple inputs and have resources to mix them together. A media server conference in essence is a mixer that combines media streams. A simple audio mixer simply sums its input audio signals to create a single common output. Conferences, however, use a more complex algorithm so that participants do not hear themselves as part of the mix. That algorithm, sometimes called an "n-minus mix", subtracts each participants input signal from the summed input signals, creating a unique output for each contributing participant. Each <join> operation to a conference uses one of the conference's available inputs and/or outputs, to the maximum number of supported participants.

会议支持多种输入,并有资源将它们混合在一起。媒体服务器会议本质上是一个组合媒体流的混合器。一个简单的音频混音器简单地将其输入音频信号相加,以创建一个公共输出。然而,会议使用了一种更复杂的算法,这样参与者就不会听到自己是混合的一部分。该算法有时被称为“n-减法混合”,从求和的输入信号中减去每个参与者的输入信号,为每个参与者创建一个唯一的输出。会议的每个<join>操作都会使用会议的一个可用输入和/或输出,以支持最大数量的参与者。

A connection is the termination of one or more RTP sessions on a media server. It has a single input and output for each media session established by its SIP dialog. The output of a connection can feed several different inputs such as both a conference mixer and a recording of that participant's audio.

连接是媒体服务器上一个或多个RTP会话的终止。它的SIP对话框建立的每个媒体会话都有一个单一的输入和输出。连接的输出可以提供几个不同的输入,例如会议混音器和参与者音频的录制。

Joining two connections that are not joined to anything else simply creates a media stream from the outputs(s) of one connection to the corresponding inputs(s) of the other connection. It is not necessary to combine media from multiple sources in this case. There are, however, several common scenarios where combining media from several sources to create a single input to a connection is needed.

连接两个未连接到任何其他连接的连接只会创建一个从一个连接的输出到另一个连接的相应输入的媒体流。在这种情况下,不必合并来自多个来源的媒体。但是,有几种常见的情况需要组合来自多个源的媒体来创建连接的单个输入。

In the first case, a connection can be receiving media from one source (for example, a conference), and it is necessary to play an announcement to the connection so that both the conference audio and announcement can be heard by the conference participant. This is sometimes referred to as a "whisper announcement". An alternative to a whisper announcement is to have the announcement preempt the conference media.

在第一种情况下,连接可以从一个源(例如,会议)接收媒体,并且有必要向连接播放公告,以便会议参与者可以听到会议音频和公告。这有时被称为“耳语公告”。一个替代耳语公告的方法是让公告先于会议媒体。

Another common case is the call-center coaching scenario where a supervisor can listen to the conversation between an agent and a customer, and provide hints to the agent that are not heard by the customer.

另一种常见情况是呼叫中心指导场景,主管可以倾听代理和客户之间的对话,并向代理提供客户听不到的提示。

Both of these cases can be solved by having the controlling AS create one or more conferences for audio mixing, and then join and unjoin the media streams as required. A better solution is to have the media server automatically mix media streams that are requested to be joined to a common input when only the simple summing of audio signals as described above is required. This is the case for both the use cases presented above.

这两种情况都可以通过让控制AS创建一个或多个用于音频混合的会议,然后根据需要连接和取消连接媒体流来解决。更好的解决方案是,当只需要如上所述的简单音频信号求和时,让媒体服务器自动混合请求加入公共输入的媒体流。上述两个用例都是这样。

Automatically mixing streams has several benefits. Conceptually, it is straightforward and simple, requiring no indirect requests on the part of the controlling AS. This increases transport efficiency and reduces the coordination complexity and the latency of the overall operation. Therefore, it is RECOMMENDED that a media server be able to automatically mix at least two audio streams where only the simple summing of signals is required.

自动混合流有几个好处。从概念上讲,它是直接和简单的,不需要控制组件的间接请求。这提高了传输效率,降低了协调复杂性和整个操作的延迟。因此,建议媒体服务器能够自动混合至少两个音频流,其中只需要简单的信号求和。

When a media server receives a <join> request, it MUST automatically mix all of the media streams included in the request with any streams already joined to one of the entities identified in the request, or it MUST fail the request and MUST NOT join any of the streams (and MUST NOT change existing streams of the entities). A controlling AS uses the <createconference> request for generic conferences where the complex mixing algorithm is required.

当媒体服务器收到<join>请求时,它必须自动将请求中包含的所有媒体流与已加入到请求中标识的一个实体的任何流混合,或者它必须使请求失败,并且不得加入任何流(并且不得更改实体的现有流)。对于需要复杂混合算法的一般会议,控制AS使用<createconference>请求。

Specifications that extend this package to handle additional media types such as text MUST define the semantics of the join operation when multiple streams are requested to be joined to a single input, such as that for a connection with a single RTP session per media type.

扩展此包以处理其他媒体类型(如文本)的规范必须定义当请求将多个流连接到单个输入时连接操作的语义,例如对于每个媒体类型具有单个RTP会话的连接。

4.2.2.2. <join>
4.2.2.2. <join>

The <join> element is sent to the MS to request creation of one or more media streams either between a connection and a conference, between connections, or between conferences. The two entities to join are specified by the attributes of <join>.

<join>元素被发送到MS,以请求在连接和会议之间、连接之间或会议之间创建一个或多个媒体流。要连接的两个实体由<join>的属性指定。

Streams can be of any media type and can be bidirectional or unidirectional. A bidirectional stream is implicitly composed of two unidirectional streams that can be manipulated independently. The streams to be established are specified by child <stream> elements (see Section 4.2.2.5).

流可以是任何媒体类型,并且可以是双向的或单向的。双向流隐式地由两个可独立操作的单向流组成。待建立的流由子<stream>元素指定(见第4.2.2.5节)。

The <join> element has the following attributes:

<join>元素具有以下属性:

id1: an identifier for either a connection or a conference. The identifier MUST conform to the syntax defined in Appendix A.1 of [RFC6230]. The attribute is mandatory.

id1:连接或会议的标识符。标识符必须符合[RFC6230]附录A.1中定义的语法。该属性是必需的。

id2: an identifier for either a connection or a conference. The identifier MUST conform to the syntax defined in Appendix A.1 of [RFC6230]. The attribute is mandatory.

id2:连接或会议的标识符。标识符必须符合[RFC6230]附录A.1中定义的语法。该属性是必需的。

Note: Appendix A.1 of [RFC6230] defines the semantics for a conference identifier but not its syntax. Media server implementations need to distinguish between conferences and connections based upon the values of the 'id1' and 'id2' attributes.

注:[RFC6230]的附录A.1定义了会议标识符的语义,但没有定义其语法。媒体服务器实现需要根据“id1”和“id2”属性的值区分会议和连接。

If id1 or id2 specify a conference identifier and the conference does not exist on the MS, the MS reports an error (406). If id1 or id2 specify a connection identifier and the connection does not exist on the MS, the MS reports an error (412).

如果id1或id2指定了会议标识符,并且MS上不存在该会议,则MS报告错误(406)。如果id1或id2指定了连接标识符,并且连接在MS上不存在,则MS报告错误(412)。

The <join> element has the following child element (zero or more):

<join>元素具有以下子元素(零个或多个):

<stream>: an element that both identifies the media streams to join and defines the way that they are to be joined (see Section 4.2.2.5). The element is optional.

<stream>:标识要连接的媒体流并定义其连接方式的元素(参见第4.2.2.5节)。元素是可选的。

If no <stream> elements are specified, then the default is to join all streams between the entities according to the media configuration of the connection or conference.

如果未指定<stream>元素,则默认情况下将根据连接或会议的媒体配置连接实体之间的所有流。

One or more <stream> elements can be specified so that individual media streams can be controlled independently. For example, if a connection supports both audio and video streams, a <stream> element could be used to indicate that only the audio stream is used in receive mode. In cases where there are multiple media streams of the same type for a connection or conference, the configuration MUST be explicitly specified using <stream> elements.

可以指定一个或多个<stream>元素,以便可以独立地控制各个媒体流。例如,如果连接同时支持音频和视频流,则可以使用<stream>元素指示在接收模式下仅使用音频流。如果连接或会议有多个相同类型的媒体流,则必须使用<stream>元素明确指定配置。

Multiple <stream> elements can be specified for precise control over the media flow in different directions within the same media stream. One <stream> element can be specified for the receiving media flow and another element for the sending media flow, where each independently controls features such as volume (see child element of <stream> in Section 4.2.2.5). If there is only one <stream> element for a given media specifying a 'sendonly' or 'recvonly' direction, then the media flow in the opposite direction is inactive (established but there's no actual flow of media) unless this leads to a stream conflict.

可以指定多个<stream>元素以精确控制同一媒体流中不同方向的媒体流。可以为接收媒体流指定一个<stream>元素,为发送媒体流指定另一个元素,其中每个元素独立地控制诸如音量等特性(参见第4.2.2.5节<stream>的子元素)。如果给定媒体只有一个<stream>元素指定“sendonly”或“recvoOnly”方向,则相反方向的媒体流处于非活动状态(已建立,但没有实际的媒体流),除非这导致流冲突。

If the MS is unable to execute the join as specified in <stream> because a <stream> element is in conflict with (a) another <stream> element, (b) specified connection or conference media capabilities (including supported or available codec information), or (c) an Session Description Protocol (SDP) label value as part of the connection-id (see Appendix A.1 of [RFC6230]), then the MS reports an error (407) and MUST NOT join the entities and MUST NOT change existing streams of the entities.

If the MS is unable to execute the join as specified in <stream> because a <stream> element is in conflict with (a) another <stream> element, (b) specified connection or conference media capabilities (including supported or available codec information), or (c) an Session Description Protocol (SDP) label value as part of the connection-id (see Appendix A.1 of [RFC6230]), then the MS reports an error (407) and MUST NOT join the entities and MUST NOT change existing streams of the entities.translate error, please retry

If the MS is unable to execute the join as specified in <stream> elements because the MS does not support the media stream configuration, the MS reports an error (422) and MUST NOT join the entities and MUST NOT change existing streams of the entities.

如果由于MS不支持媒体流配置,MS无法执行<stream>元素中指定的连接,则MS报告错误(422),并且不得连接实体,也不得更改实体的现有流。

If the MS is unable to join an entity to a conference because it is full, then the MS reports an error (410).

如果MS由于会议已满而无法将实体加入会议,则MS报告错误(410)。

If the specified entities are already joined, then the MS reports an error (408).

如果指定的实体已经加入,则MS报告错误(408)。

If the MS does not support joining two specified connections together, the MS reports an error (426).

如果MS不支持将两个指定连接连接在一起,则MS报告错误(426)。

If the MS does not support joining two specified conferences together, the MS reports an error (427).

如果MS不支持将两个指定的会议合并在一起,则MS报告错误(427)。

If the MS is unable to join the specified entities for any other reason, the MS reports an error (411).

如果MS由于任何其他原因无法加入指定的实体,则MS报告错误(411)。

When the MS has finished processing a <join> request, it MUST reply with an <response> element (Section 4.2.3).

MS处理完<join>请求后,必须使用<response>元素进行回复(第4.2.3节)。

For example, a request to join two connections together is as follows:

例如,将两个连接连接在一起的请求如下所示:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <join id1="1536067209:913cd14c" id2="1536067209:913cd14c"/>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <join id1="1536067209:913cd14c" id2="1536067209:913cd14c"/>
   </mscmixer>
        

The response if the MS doesn't support joining media streams between connections is as follows:

如果MS不支持在连接之间加入媒体流,则响应如下:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <response status="426" reason="mixing connections not supported"/>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <response status="426" reason="mixing connections not supported"/>
   </mscmixer>
        
4.2.2.3. <modifyjoin>
4.2.2.3. <modifyjoin>

The <modifyjoin> element is sent to the MS to request changes in the configuration of media stream(s) that were previously established between a connection and a conference, between two connections, or between two conferences.

<modifyjoin>元素被发送到MS,以请求更改先前在连接和会议之间、两个连接之间或两个会议之间建立的媒体流的配置。

The <modifyjoin> element has the following attributes:

<modifyjoin>元素具有以下属性:

id1: an identifier for either a connection or a conference. The identifier MUST conform to the syntax defined in Appendix A.1 of [RFC6230]. The attribute is mandatory.

id1:连接或会议的标识符。标识符必须符合[RFC6230]附录A.1中定义的语法。该属性是必需的。

id2: an identifier for either a connection or a conference. The identifier MUST conform to the syntax defined in Appendix A.1 of [RFC6230]. The attribute is mandatory.

id2:连接或会议的标识符。标识符必须符合[RFC6230]附录A.1中定义的语法。该属性是必需的。

The <modifyjoin> element has the following child elements (one or more):

<modifyjoin>元素具有以下子元素(一个或多个):

<stream>: an element that both identifies the media streams to modify and defines the way that each stream is to be configured from this point forward (see Section 4.2.2.5).

<stream>:标识要修改的媒体流并定义从此点开始配置每个流的方式的元素(参见第4.2.2.5节)。

The MS MUST support <modifyjoin> for any stream that was established using <join>.

MS必须支持使用<join>建立的任何流的<modifyjoin>。

The MS MUST configure the streams that are included within <modifyjoin> to that stated by the child elements.

MS必须将<modifyjoin>中包含的流配置为子元素所述的流。

If the MS is unable to modify the join as specified in <stream> elements because a <stream> element is in conflict with (a) another <stream> element, (b) specified connection or conference media capabilities (including supported or available codec information), or (c) a SDP label value as part of the connection-id (see Appendix A.1 of [RFC6230]), then the MS reports an error (407) and MUST NOT modify the join between the entities and MUST NOT change existing streams of the entities.

如果MS无法按照<stream>元素中的规定修改连接,因为<stream>元素与(a)另一<stream>元素冲突,(b)指定的连接或会议媒体功能(包括支持的或可用的编解码器信息),或(c)作为连接id一部分的SDP标签值冲突(参见[RFC6230]的附录a.1),然后,MS报告错误(407),并且不得修改实体之间的连接,也不得更改实体的现有流。

If the MS is unable to modify the join as specified in <stream> elements because the MS does not support the media stream configuration, the MS reports an error (422) and MUST NOT modify the join between the entities and MUST NOT change existing streams of the entities.

如果由于MS不支持媒体流配置,MS无法修改<stream>元素中指定的连接,则MS将报告错误(422),并且不得修改实体之间的连接,也不得更改实体的现有流。

If the specified entities are not already joined, then the MS reports an error (409).

如果指定的实体尚未加入,则MS报告错误(409)。

If the MS is unable to modify the join between the specified entities for any other reason, the MS reports an error (411).

如果MS由于任何其他原因无法修改指定实体之间的连接,则MS报告错误(411)。

When an MS has finished processing a <modifyjoin> request, it MUST reply with an appropriate <response> element (Section 4.2.3).

MS处理完<modifyjoin>请求后,必须使用适当的<response>元素进行回复(第4.2.3节)。

In cases where stream characteristics are controlled independently for each direction, then a <modifyjoin> request needs to specify a child element for each direction in order to retain the original stream directionality. For the example, if a <join> request establishes independent control for each direction of an audio stream (see Section 4.2.2.5):

在流特征为每个方向独立控制的情况下,<modifyjoin>请求需要为每个方向指定子元素,以保持原始流方向性。例如,如果<join>请求为音频流的每个方向建立独立控制(参见第4.2.2.5节):

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <join id1="1536067209:913cd14c" id2="conference1">
     <stream media="audio" direction="sendonly">
      <volume controltype="setgain" value="-3"/>
     </stream>
     <stream media="audio" direction="recvonly">
      <volume controltype="setgain" value="+3"/>
     </stream>
    </join>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <join id1="1536067209:913cd14c" id2="conference1">
     <stream media="audio" direction="sendonly">
      <volume controltype="setgain" value="-3"/>
     </stream>
     <stream media="audio" direction="recvonly">
      <volume controltype="setgain" value="+3"/>
     </stream>
    </join>
   </mscmixer>
        

then the following <modifyjoin> request

然后执行以下<modifyjoin>请求

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <modifyjoin id1="1536067209:913cd14c" id2="conference1">
     <stream media="audio" direction="sendonly">
       <volume controltype="setgain" value="0"/>
     </stream>
     </modifyjoin>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <modifyjoin id1="1536067209:913cd14c" id2="conference1">
     <stream media="audio" direction="sendonly">
       <volume controltype="setgain" value="0"/>
     </stream>
     </modifyjoin>
   </mscmixer>
        

would cause, in addition to the modification of the sendonly volume, the overall stream directionality to change from sendrecv to sendonly since there is no <stream> element in this <modifyjoin> request for the recvonly direction. The following would change the sendonly volume and retain the recvonly stream together with its original characteristics such as volume:

除了修改sendonly卷外,还会导致整个流方向性从sendrecv更改为sendonly,因为此<modifyjoin>请求中没有针对RecVoOnly方向的<stream>元素。以下操作将更改sendonly卷并保留RecvoOnly流及其原始特征(如卷):

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <modifyjoin id1="1536067209:913cd14c" id2="conference1">
     <stream media="audio" direction="sendonly">
       <volume controltype="setgain" value="0"/>
     </stream>
     <stream media="audio" direction="recvonly"/>
     </modifyjoin>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <modifyjoin id1="1536067209:913cd14c" id2="conference1">
     <stream media="audio" direction="sendonly">
       <volume controltype="setgain" value="0"/>
     </stream>
     <stream media="audio" direction="recvonly"/>
     </modifyjoin>
   </mscmixer>
        
4.2.2.4. <unjoin>
4.2.2.4. <unjoin>

The <unjoin> element is sent to the MS to request removal of previously established media stream(s) from between a connection and a conference, between two connections, or between two conferences.

<unjoin>元素被发送到MS,以请求从连接和会议之间、两个连接之间或两个会议之间移除先前建立的媒体流。

The <unjoin> element has the following attributes:

<unjoin>元素具有以下属性:

id1: an identifier for either a connection or a conference. The identifier MUST conform to the syntax defined in Appendix A.1 of [RFC6230]. The attribute is mandatory.

id1:连接或会议的标识符。标识符必须符合[RFC6230]附录A.1中定义的语法。该属性是必需的。

id2: an identifier for either a connection or a conference. The identifier MUST conform to the syntax defined in Section 15.1 of [RFC6230]. The attribute is mandatory.

id2:连接或会议的标识符。标识符必须符合[RFC6230]第15.1节中定义的语法。该属性是必需的。

The <unjoin> element has the following child element (zero or more occurrences):

<unjoin>元素具有以下子元素(零次或多次出现):

<stream>: an element that identifies the media stream(s) to remove (see Section 4.2.2.5). The element is optional. When not present, all currently established streams between "id1" and "id2" are removed.

<stream>:标识要删除的媒体流的元素(参见第4.2.2.5节)。元素是可选的。如果不存在,则删除“id1”和“id2”之间当前建立的所有流。

The MS MUST support <unjoin> for any stream that was established using <join> and that has not already been removed by a previous <unjoin> on the same stream.

MS必须支持使用<join>建立的任何流的<unjoin>,并且该流尚未被同一流上的前一个<unjoin>删除。

If the MS is unable to terminate the join as specified in <stream> elements because a <stream> element is in conflict with (a) another <stream> element, (b) specified connection or conference media capabilities, or (c) a SDP label value as part of the connection-id (see Appendix A.1 of [RFC6230]), then the MS reports an error (407) and MUST NOT terminate the join between the entities and MUST NOT change existing streams of the entities.

如果MS无法终止<stream>元素中指定的连接,因为<stream>元素与(a)另一<stream>元素冲突,(b)指定的连接或会议媒体功能,或(c)作为连接id一部分的SDP标签值(参见[RFC6230]的附录a.1),则MS报告错误(407)并且不得终止实体之间的连接,也不得更改实体的现有流。

If the MS is unable to terminate the join as specified in <stream> elements because the MS does not support the media stream configuration, the MS reports an error (422) and MUST NOT terminate the join between the entities and MUST NOT change existing streams of the entities.

如果由于MS不支持媒体流配置,MS无法终止<stream>元素中指定的连接,则MS将报告错误(422),并且不得终止实体之间的连接,也不得更改实体的现有流。

If the specified entities are not already joined, then the MS reports an error (409).

如果指定的实体尚未加入,则MS报告错误(409)。

If the MS is unable to terminate the join between the specified entities for any other reason, the MS reports an error (411).

如果MS由于任何其他原因无法终止指定实体之间的连接,则MS报告错误(411)。

When an MS has successfully processed a <unjoin> request, it MUST reply with a successful <response> element (Section 4.2.3).

当MS成功处理<unjoin>请求时,它必须使用成功<response>元素进行回复(第4.2.3节)。

4.2.2.5. <stream>
4.2.2.5. <stream>

<join>, <modifyjoin>, and <unjoin> require the identification and manipulation of media streams. Media streams represent the flow of media between a participant connection and a conference, between two connections, or between two conferences. The <stream> element is used (as a child to <join>, <modifyjoin>, and <unjoin>) to identify the media stream(s) for the request and to specify the configuration of the media stream.

<join>、<modifyjoin>和<unjoin>需要识别和操作媒体流。媒体流表示参与者连接和会议之间、两个连接之间或两个会议之间的媒体流。<stream>元素(作为<join>、<modifyjoin>和<unjoin>的子元素)用于标识请求的媒体流并指定媒体流的配置。

The <stream> element has the following attributes:

<stream>元素具有以下属性:

media: a string indicating the type of media associated with the stream. A valid value is a MIME type name as defined in Section 4.2 of [RFC4288]. The following values MUST be used for common types of media: "audio" for audio media, and "video" for video media. See [IANA] for registered MIME type names. The attribute is mandatory.

媒体:一个字符串,指示与流关联的媒体类型。有效值是[RFC4288]第4.2节中定义的MIME类型名称。以下值必须用于常见类型的媒体:“音频”用于音频媒体,“视频”用于视频媒体。有关注册的MIME类型名称,请参见[IANA]。该属性是必需的。

label: a string indicating the SDP label associated with a media stream [RFC4574]. The attribute is optional.

标签:表示与媒体流关联的SDP标签的字符串[RFC4574]。该属性是可选的。

direction: a string indicating the allowed media flow of the stream relative to the value of the 'id1' attribute of the parent element. Defined values are: "sendrecv" (media can be sent and received), "sendonly" (media can only be sent), "recvonly" (media can only be received), and "inactive" (stream established but no media flow). The default value is "sendrecv". The attribute is optional.

方向:一个字符串,指示相对于父元素的“id1”属性值允许的流媒体流。定义的值为:“sendrecv”(可以发送和接收媒体)、“sendonly”(只能发送媒体)、“RecVoOnly”(只能接收媒体)和“inactive”(已建立流但没有媒体流)。默认值为“sendrecv”。该属性是可选的。

The <stream> element has the following sequence of child elements:

<stream>元素具有以下子元素序列:

<volume>: an element (Section 4.2.2.5.1) to configure the volume or gain of the media stream. The element is optional.

<volume>:配置媒体流的音量或增益的元素(第4.2.2.5.1节)。元素是可选的。

<clamp>: an element (Section 4.2.2.5.2) to configure filtering and removal of tones from the media stream. The element is optional.

<clamp>:一个元素(第4.2.2.5.2节),用于配置过滤和删除媒体流中的音调。元素是可选的。

<region>: an element (Section 4.2.2.5.3) to configure a region within a video layout where the media stream is displayed. The element is optional.

<region>:用于在视频布局中配置显示媒体流的区域的元素(第4.2.2.5.3节)。元素是可选的。

<priority>: an element (Section 4.2.2.5.4) to configure priority associated with the stream in the media mix. The element is optional.

<priority>:用于配置与媒体混合中的流关联的优先级的元素(第4.2.2.5.4节)。元素是可选的。

In each child element, the media stream affected is indicated by the value of the 'direction' attribute of the parent element.

在每个子元素中,受影响的媒体流由父元素的“direction”属性的值指示。

If the 'media' attribute does not have the value of "audio", then the MS ignores <volume> and <clamp> elements.

如果“媒体”属性没有“音频”的值,则MS将忽略<volume>和<clamp>元素。

If the 'media' attribute does not have the value of "video", then the MS ignores a <region> element.

如果“媒体”属性没有“视频”的值,则MS将忽略<region>元素。

For example, a request to join a connection to conference in both directions with volume control is as follows:

例如,使用音量控制在两个方向加入到会议的连接的请求如下所示:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <join id1="1536067209:913cd14c" id2="conference1">
     <stream media="audio" direction="sendrecv">
      <volume controltype="setgain" value="-3"/>
     </stream>
    </join>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <join id1="1536067209:913cd14c" id2="conference1">
     <stream media="audio" direction="sendrecv">
      <volume controltype="setgain" value="-3"/>
     </stream>
    </join>
   </mscmixer>
        

where audio flow from the connection (id1) to the conference (id2) has the volume lowered by 3 dB, and likewise the volume of the audio flow from the conference to the connection is lowered by 3 dB.

其中,从连接(id1)到会议(id2)的音频流的音量降低了3 dB,同样,从会议到连接的音频流的音量也降低了3 dB。

In this example, the volume is independently controlled for each direction.

在此示例中,每个方向的音量都是独立控制的。

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <join id1="1536067209:913cd14c" id2="conference1">
     <stream media="audio" direction="sendonly">
      <volume controltype="setgain" value="-3"/>
     </stream>
     <stream media="audio" direction="recvonly">
      <volume controltype="setgain" value="+3"/>
     </stream>
    </join>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <join id1="1536067209:913cd14c" id2="conference1">
     <stream media="audio" direction="sendonly">
      <volume controltype="setgain" value="-3"/>
     </stream>
     <stream media="audio" direction="recvonly">
      <volume controltype="setgain" value="+3"/>
     </stream>
    </join>
   </mscmixer>
        

where audio flow from the connection (id1) to the conference (id2) has the volume lowered by 3 dB, but the volume of the audio flow from the conference to the connection is raised by 3 dB.

其中,从连接(id1)到会议(id2)的音频流的音量降低了3 dB,但从会议到连接的音频流的音量提高了3 dB。

4.2.2.5.1. <volume>
4.2.2.5.1. <volume>

The <volume> element is used to configure the volume of an audio media stream. It can be set to a specific gain amount, to automatically adjust the gain to a desired target level, or to mute the volume.

<volume>元素用于配置音频媒体流的音量。它可以设置为特定的增益量,以自动将增益调整到所需的目标水平,或使音量静音。

The <volume> element has no child elements but has the following attributes:

<volume>元素没有子元素,但具有以下属性:

controltype: a string indicating the type of volume control to use for the stream. Defined values are: "automatic" (the volume will be adjusted automatically to the level specified by the 'value' attribute), "setgain" (use the value of the 'value' attribute as a specific gain measured in dB to apply), and "setstate" (set the state of the stream to "mute" or "unmute" as specified by the value of the 'value' attribute). The attribute is mandatory.

controltype:一个字符串,指示要用于流的卷控制类型。定义的值为:“自动”(音量将自动调整到“值”属性指定的级别)、“设置增益”(将“值”属性的值用作以dB为单位测量的特定增益)和“设置状态”(将流的状态设置为“静音”或“取消静音”,如“值”属性的值所指定)。该属性是必需的。

value: a string specifying the amount or state for the volume control defined by the value of the 'controltype' attribute. The attribute is optional. There is no default value.

值:一个字符串,指定由“controltype”属性的值定义的音量控制的量或状态。该属性是可选的。没有默认值。

If the audio media stream is in a muted state, then the MS also changes automatically the state to unmuted with an "automatic" or "setgain" volume control. For example, assume an audio stream has been muted with <volume controltype="setstate" value="mute"/>. If the gain on the same stream is changed with <volume controltype="setgain" value="+3"/>, then the volume is increased and stream state is also changed to unmuted.

如果音频媒体流处于静音状态,则MS也会通过“自动”或“设置增益”音量控制自动将状态更改为未静音。例如,假设音频流已使用<volume controltype=“setstate”value=“mute”/。如果使用<volume controltype=“setgain”value=“+3”/>更改同一流上的增益,则音量将增加,流状态也将更改为未静音。

4.2.2.5.2. <clamp>
4.2.2.5.2. <clamp>

The <clamp> element is used to configure whether tones are filtered and removed from a media stream.

元素用于配置是否从媒体流中过滤和删除音调。

The <clamp> element has no child elements but has the following attribute:

<clamp>元素没有子元素,但具有以下属性:

tones: A space-separated list of the tones to remove. The attribute is optional. The default value is "1 2 3 4 5 6 7 8 9 0 * # A B C D" (i.e., all DTMF (Dual-Tone Multi-Frequency) tones are removed).

音调:以空格分隔的要删除的音调列表。该属性是可选的。默认值为“1 2 3 4 5 6 7 8 9 0*#A B C D”(即,删除所有DTMF(双音多频)音)。

4.2.2.5.3. <region>
4.2.2.5.3. <region>

As described in Section 4.2.1.4.2.1, each <video-layout> is composed of one or more named regions (or areas) in which video media can be presented. For example, the XCON layout <dual-view> has two regions named "1" and "2", respectively.

如第4.2.1.4.2.1节所述,每个<video layout>由一个或多个可显示视频媒体的命名区域(或区域)组成。例如,XCON布局<dual view>有两个区域,分别命名为“1”和“2”。

The <region> element is used to explicitly specify the name of the area within a video layout where a video media stream is displayed.

<region>元素用于明确指定视频布局中显示视频媒体流的区域的名称。

The <region> element has no attributes, and its content model specifies the name of the region.

<region>元素没有属性,其内容模型指定区域的名称。

4.2.2.5.4. <priority>
4.2.2.5.4. <priority>

The <priority> element is used to explicitly specify the priority of a participant. The MS uses this priority to determine where the media stream is displayed within a video layout (Section 4.2.1.4.3.1).

元素用于显式指定参与者的优先级。MS使用此优先级确定媒体流在视频布局中的显示位置(第4.2.1.4.3.1节)。

The <priority> element has no attributes, and its content model specifies a positive integer (see Section 4.7.3). The lower the value, the higher the priority.

<priority>元素没有属性,其内容模型指定了一个正整数(参见第4.7.3节)。值越低,优先级越高。

4.2.3. <response>
4.2.3. <response>

Responses to requests are indicated by a <response> element.

对请求的响应由<response>元素表示。

The <response> element has following attributes:

<response>元素具有以下属性:

status: numeric code indicating the response status. Valid values are defined in Section 4.6. The attribute is mandatory.

状态:表示响应状态的数字代码。第4.6节定义了有效值。该属性是必需的。

reason: string specifying a reason for the response status. The attribute is optional.

原因:指定响应状态原因的字符串。该属性是可选的。

desclang: specifies the language used in the value of the 'reason' attribute. A valid value is a language identifier (Section 4.7.7). The attribute is optional. If not specified, the value of the 'desclang' attribute on <mscmixer> (Section 4.1) applies.

desclang:指定“原因”属性值中使用的语言。有效值是语言标识符(第4.7.7节)。该属性是可选的。如果未指定,则<mscmixer>(第4.1节)上的“desclang”属性值适用。

conferenceid: string identifying the conference (see Appendix A.1 of [RFC6230]). The attribute is optional.

conferenceid:标识会议的字符串(见[RFC6230]的附录A.1)。该属性是可选的。

connectionid: string identifying the SIP dialog connection (see Appendix A.1 of [RFC6230]). The attribute is optional.

connectionid:标识SIP对话连接的字符串(参见[RFC6230]的附录A.1)。该属性是可选的。

For example, a response when a conference was created successfully is as follows:

例如,成功创建会议时的响应如下所示:

   <response code="200"/>
        
   <response code="200"/>
        

If conference creation failed due to the requested conference ID already existing, the response is:

如果由于请求的会议ID已存在而导致会议创建失败,则响应为:

   <response code="405" reason="Conference already exists"/>
        
   <response code="405" reason="Conference already exists"/>
        
4.2.4. <event>
4.2.4. <event>

When a mixer generates a notification event, the MS sends the event using an <event> element.

当混合器生成通知事件时,MS使用<event>元素发送事件。

The <event> element has no attributes, but has the following sequence of child elements (zero or more instances of each child):

<event>元素没有属性,但具有以下子元素序列(每个子元素的零个或多个实例):

<active-talkers-notify>: specifies an active talkers notification (Section 4.2.4.1).

<active talkers notify>:指定active talkers通知(第4.2.4.1节)。

<unjoin-notify>: notifies that a connection or conference has been completely unjoined (Section 4.2.4.2).

<取消连接通知>:通知连接或会议已完全取消连接(第4.2.4.2节)。

<conferenceexit>: notifies that a conference has exited (Section 4.2.4.3).

<conferenceexit>:通知会议已退出(第4.2.4.3节)。

4.2.4.1. <active-talkers-notify>
4.2.4.1. <active talkers notify>

The <active-talkers-notify> element describes zero or more speakers that have been active in a conference during the specified interval (see Section 4.2.1.4.4.1).

<active talkers notify>元素描述了在指定间隔期间在会议中处于活动状态的零个或多个扬声器(参见第4.2.1.4.4.1节)。

The <active-talkers-notify> element has the following attribute:

<active talkers notify>元素具有以下属性:

conferenceid: string indicating the name of the conference from which the event originated. This attribute is mandatory.

conferenceid:表示事件起源的会议名称的字符串。此属性是必需的。

The <active-talkers-notify> element has the following sequence of child elements (zero or more occurrences):

<active talkers notify>元素具有以下子元素序列(零次或多次出现):

<active-talker>: element describing an active talker (Section 4.2.4.1.1).

<active talker>:描述活跃谈话者的元素(第4.2.4.1.1节)。

4.2.4.1.1. <active-talker>
4.2.4.1.1. <active talker>

The <active-talker> element describes an active talker, associated with either a connection or conference participant in a conference.

<active talker>元素描述与会议中的连接或会议参与者相关联的活动说话者。

The <active-talker> element has the following attributes:

<active talker>元素具有以下属性:

connectionid: string indicating the connectionid of the active talker. This attribute is optional. There is no default value.

connectionid:表示活动说话者的connectionid的字符串。此属性是可选的。没有默认值。

conferenceid: string indicating the conferenceid of the active talker. This attribute is optional. There is no default value.

conferenceid:表示活动说话者的conferenceid的字符串。此属性是可选的。没有默认值。

Note that the element does not describe an active talker if both the 'connectionid' and 'conferenceid' attributes are specified, or if neither attribute is specified.

请注意,如果同时指定了“connectionid”和“conferenceid”属性,或者两个属性都未指定,则元素不会描述活动说话者。

The <active-talker> element has no child elements.

<active talker>元素没有子元素。

4.2.4.2. <unjoin-notify>
4.2.4.2. <unjoin notify>

The <unjoin-notify> element describes a notification event where a connection and/or conference have been completely unjoined.

<unjoin notify>元素描述连接和/或会议完全取消连接的通知事件。

The <unjoin-notify> element has the following attributes:

<unjoin notify>元素具有以下属性:

status: a status code indicating why the unjoin occurred. A valid value is a non-negative integer (see Section 4.7.2). The MS MUST support the following values:

状态:指示取消连接原因的状态代码。有效值为非负整数(见第4.7.2节)。MS必须支持以下值:

0 indicates the join has been terminated by a <unjoin> request.

0表示加入已被<unjoin>请求终止。

1 indicates the join terminated due to an execution error.

1表示由于执行错误而终止的联接。

2 indicates that the join terminated because a connection or conference has terminated.

2表示连接已终止,因为连接或会议已终止。

All other valid but undefined values are reserved for future use, where new status codes are assigned using the Standards Action process defined in [RFC5226]. The AS MUST treat any status code it does not recognize as being equivalent to 1 (join execution error). The attribute is mandatory.

所有其他有效但未定义的值保留供将来使用,其中新的状态代码使用[RFC5226]中定义的标准操作流程分配。AS必须将其无法识别的任何状态代码视为等同于1(联接执行错误)。该属性是必需的。

reason: a textual description providing a reason for the status code, e.g., details about an error. A valid value is a string (see Section 4.7.4). The attribute is optional. There is no default value.

原因:提供状态代码原因的文本描述,例如,有关错误的详细信息。有效值为字符串(见第4.7.4节)。该属性是可选的。没有默认值。

desclang: specifies the language used in the value of the 'reason' attribute. A valid value is a language identifier (Section 4.7.7). The attribute is optional. If not specified, the value of the 'desclang' attribute on <mscmixer> (Section 4.1) applies.

desclang:指定“原因”属性值中使用的语言。有效值是语言标识符(第4.7.7节)。该属性是可选的。如果未指定,则<mscmixer>(第4.1节)上的“desclang”属性值适用。

id1: an identifier for either a connection or a conference. The identifier MUST conform to the syntax defined in Appendix A.1 of [RFC6230]. The attribute is mandatory.

id1:连接或会议的标识符。标识符必须符合[RFC6230]附录A.1中定义的语法。该属性是必需的。

id2: an identifier for either a connection or a conference. The identifier MUST conform to the syntax defined in Appendix A.1 of [RFC6230]. The attribute is mandatory.

id2:连接或会议的标识符。标识符必须符合[RFC6230]附录A.1中定义的语法。该属性是必需的。

The <unjoin-notify> element has no child elements.

<unjoin notify>元素没有子元素。

4.2.4.3. <conferenceexit>
4.2.4.3. <conferenceexit>

The <conferenceexit> element indicates that a conference has exited because it has been terminated or because a error occurred (for example, a hardware error in the conference mixing unit). This event MUST be sent by the MS whenever a successfully created conference exits.

<conferenceexit>元素表示会议已退出,因为会议已终止或发生错误(例如,会议混合单元中的硬件错误)。每当成功创建的会议退出时,MS必须发送此事件。

The <conferenceexit> element has the following attributes:

<conferenceexit>元素具有以下属性:

conferenceid: string indicating the name of the conference. This attribute is mandatory.

conferenceid:表示会议名称的字符串。此属性是必需的。

status: a status code indicating why the conference exited. A valid value is a non-negative integer (see Section 4.7.2). The MS MUST support the following values:

状态:指示会议退出原因的状态代码。有效值为非负整数(见第4.7.2节)。MS必须支持以下值:

0 indicates the conference has been terminated by a <destroyconference> request.

0表示会议已被<destroyconference>请求终止。

1 indicates the conference terminated due to an execution error.

1表示会议因执行错误而终止。

2 indicates the conference terminated due to exceeding the maximum duration for a conference.

2表示会议因超过会议的最长持续时间而终止。

All other valid but undefined values are reserved for future use, where new status codes are assigned using the Standards Action process defined in [RFC5226]. The AS MUST treat any status code it does not recognize as being equivalent to 1 (conference execution error). The attribute is mandatory.

所有其他有效但未定义的值保留供将来使用,其中新的状态代码使用[RFC5226]中定义的标准操作流程分配。AS必须将其无法识别的任何状态代码视为等同于1(会议执行错误)。该属性是必需的。

reason: a textual description providing a reason for the status code, e.g., details about an error. A valid value is a string (see Section 4.7.4). The attribute is optional. There is no default value.

原因:提供状态代码原因的文本描述,例如,有关错误的详细信息。有效值为字符串(见第4.7.4节)。该属性是可选的。没有默认值。

desclang: specifies the language used in the value of the 'reason' attribute. A valid value is a language identifier (Section 4.7.7). The attribute is optional. If not specified, the value of the 'desclang' attribute on <mscmixer> (Section 4.1) applies.

desclang:指定“原因”属性值中使用的语言。有效值是语言标识符(第4.7.7节)。该属性是可选的。如果未指定,则<mscmixer>(第4.1节)上的“desclang”属性值适用。

The <conferenceexit> element has no child elements.

<conferenceexit>元素没有子元素。

When a MS sends a <conferenceexit> event, the identifier for the conference ('conferenceid' attribute) is no longer valid on the MS and can be reused for another conference.

当MS发送<conferenceexit>事件时,会议的标识符('conferenceid'属性)在MS上不再有效,可以重新用于另一个会议。

For example, the following notification event would be sent from the MS when the conference with identifier "conference99" exits due to a successful <destroyconference/>:

例如,当标识符为“conference99”的会议由于成功的<destroyconference/>而退出时,MS将发送以下通知事件:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <event>
     <conferenceexit conferenceid="conference99"
        status="0"/>
    </event>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <event>
     <conferenceexit conferenceid="conference99"
        status="0"/>
    </event>
   </mscmixer>
        
4.3. Audit Elements
4.3. 审计要素

The audit elements defined in this section allow the MS to be audited for package capabilities as well as mixers managed by the package. Auditing is particularly important for two use cases. First, it enables discovery of package capabilities supported on an MS before an AS creates a conference mixer or joins connections and conferences. The AS can then use this information to create request elements using supported capabilities and, in the case of codecs, to negotiate an appropriate SDP for a user agent's connection. Second, auditing enables discovery of the existence and status of mixers

本节中定义的审核元素允许对MS的包功能以及由包管理的混音器进行审核。审计对于两个用例尤其重要。首先,它支持在AS创建会议混音器或加入连接和会议之前发现MS上支持的包功能。AS然后可以使用此信息使用支持的功能创建请求元素,对于编解码器,还可以协商用户代理连接的适当SDP。其次,审计能够发现混音器的存在和状态

currently managed by the package on the MS. This could be used when one AS takes over management of mixers if the AS that created the mixers fails or is no longer available (see the security considerations in Section 7).

目前由MS上的软件包管理。如果创建混音器的AS出现故障或不再可用(请参阅第7节中的安全注意事项),当AS接管混音器的管理时,可以使用此选项。

4.3.1. <audit>
4.3.1. <audit>

The <audit> request element is sent to the MS to request information about the capabilities of, and mixers currently managed with, this Control Package. Capabilities include supported conference codecs and video layouts. Mixer information includes the status of managed mixers as well as codecs.

<audit>请求元素被发送到MS,以请求有关此控制包的功能和当前使用此控制包管理的混音器的信息。功能包括受支持的会议编解码器和视频布局。混音器信息包括受管混音器和编解码器的状态。

The <audit> element has the following attributes:

<audit>元素具有以下属性:

capabilities: indicates whether package capabilities are to be audited. A valid value is a boolean (see Section 4.7.1). A value of "true" indicates that capability information is to be reported. A value of "false" indicates that capability information is not to be reported. The attribute is optional. The default value is "true".

能力:指示是否要审核包能力。有效值为布尔值(见第4.7.1节)。值“true”表示要报告能力信息。值“false”表示不报告能力信息。该属性是可选的。默认值为“true”。

mixers: indicates whether mixers currently managed by the package are to be audited. A valid value is a boolean (see Section 4.7.1). A value of "true" indicates that mixer information is to be reported. A value of "false" indicates that mixer information is not to be reported. The attribute is optional. The default value is "true".

混音器:指示是否要审核当前由包管理的混音器。有效值为布尔值(见第4.7.1节)。值“true”表示要报告混音器信息。值“false”表示不报告混音器信息。该属性是可选的。默认值为“true”。

conferenceid: string identifying a specific conference mixer to audit. It is an error (406) if the 'conferenceid' attribute is specified and the conference identifier is not valid. The attribute is optional. There is no default value.

conferenceid:标识要审核的特定会议混合器的字符串。如果指定了'conferenceid'属性且会议标识符无效,则为错误(406)。该属性是可选的。没有默认值。

If the 'mixers' attribute has the value "true" and 'conferenceid' attribute is specified, then only audit information about the specified conference mixer is reported. If the 'mixers' attribute has the value "false", then no mixer audit information is reported even if a 'conferenceid' attribute is specified.

如果“混合器”属性的值为“true”,并且指定了“conferenceid”属性,则只报告有关指定会议混合器的审核信息。如果“混合器”属性的值为“false”,则即使指定了“conferenceid”属性,也不会报告混合器审核信息。

The <audit> element has no child elements.

<audit>元素没有子元素。

   When the MS receives an <audit> request, it MUST reply with a
   <auditresponse> element (Section 4.3.2) that includes a mandatory
   attribute describing the status in terms of a numeric code.  Response
   status codes are defined in Section 4.6.  If the request is
   successful, the <auditresponse> contains (depending on attribute
   values) a <capabilities> element (Section 4.3.2.1) reporting package
        
   When the MS receives an <audit> request, it MUST reply with a
   <auditresponse> element (Section 4.3.2) that includes a mandatory
   attribute describing the status in terms of a numeric code.  Response
   status codes are defined in Section 4.6.  If the request is
   successful, the <auditresponse> contains (depending on attribute
   values) a <capabilities> element (Section 4.3.2.1) reporting package
        

capabilities and a <mixers> element (Section 4.3.2.2) reporting 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 specified for a class of error within this section, implementations follow Section 4.6 in determining the appropriate status code for the response.

功能和报告托管混音器信息的<mixers>元素(第4.3.2.2节)。如果MS无法处理请求并执行审核操作,则审核请求失败,MS必须使用适当的4xx响应代码指示故障类别。除非在本节中为某类错误指定了错误响应代码,否则在确定响应的适当状态代码时,应遵循第4.6节的规定。

For example, a request to audit capabilities and mixers managed by the package is as follows:

例如,对包管理的功能和混音器进行审核的请求如下:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
     <audit/>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
     <audit/>
   </mscmixer>
        

In this example, only capabilities are to be audited:

在本例中,仅审核功能:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
     <audit mixers="false"/>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
     <audit mixers="false"/>
   </mscmixer>
        

With this example, only a specific conference mixer is to be audited:

在本例中,仅审核特定的会议混音器:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
     <audit capabilities="false" conferenceid="conf4"/>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
     <audit capabilities="false" conferenceid="conf4"/>
   </mscmixer>
        
4.3.2. <auditresponse>
4.3.2. <auditresponse>

The <auditresponse> element describes a response to a <audit> request.

元素描述对<audit>请求的响应。

The <auditresponse> element has the following attributes:

<auditresponse>元素具有以下属性:

status: numeric code indicating the audit response status. The attribute is mandatory. Valid values are defined in Section 4.6.

状态:表示审核响应状态的数字代码。该属性是必需的。第4.6节定义了有效值。

reason: string specifying a reason for the status. The attribute is optional.

原因:指定状态原因的字符串。该属性是可选的。

desclang: specifies the language used in the value of the 'reason' attribute. A valid value is a language identifier (Section 4.7.7). The attribute is optional. If not specified, the value of the 'desclang' attribute on <mscmixer> (Section 4.1) applies.

desclang:指定“原因”属性值中使用的语言。有效值是语言标识符(第4.7.7节)。该属性是可选的。如果未指定,则<mscmixer>(第4.1节)上的“desclang”属性值适用。

The <auditresponse> element has the following sequence of child elements:

<auditresponse>元素具有以下子元素序列:

<capabilities>: element describing capabilities of the package (see Section 4.3.2.1). The element is optional.

<capabilities>:描述软件包功能的元素(见第4.3.2.1节)。元素是可选的。

<mixers>: element describing information about managed mixers (see Section 4.3.2.2). The element is optional.

<mixers>:描述托管混频器信息的元素(见第4.3.2.2节)。元素是可选的。

For example, a successful response to an <audit> request for capabilities and mixer information is as follows:

例如,对功能和混音器信息的<audit>请求的成功响应如下:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <auditresponse status="200">
     <capabilities>
      <codecs>
       <codec name="video">
        <subtype>H263</subtype>
       </codec>
       <codec name="video">
        <subtype>H264</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMU</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMA</subtype>
       </codec>
      </codecs>
     </capabilities>
     <mixers>
      <conferenceaudit conferenceid="conf1">
       <codecs>
        <codec name="audio">
         <subtype>PCMA</subtype>
        </codec>
       </codecs>
       <participants>
        <participant id="1536067209:913cd14c"/>
       </participants>
      </conferenceaudit>
      <joinaudit id1="1536067209:913cd14c" id2="conf1"/>
      <joinaudit id1="1636067209:113cd14c" id2="1836067209:313cd14c"/>
      <joinaudit id1="1736067209:213cd14c" id2="1936067209:413cd14c"/>
     </mixers>
    </auditresponse>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <auditresponse status="200">
     <capabilities>
      <codecs>
       <codec name="video">
        <subtype>H263</subtype>
       </codec>
       <codec name="video">
        <subtype>H264</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMU</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMA</subtype>
       </codec>
      </codecs>
     </capabilities>
     <mixers>
      <conferenceaudit conferenceid="conf1">
       <codecs>
        <codec name="audio">
         <subtype>PCMA</subtype>
        </codec>
       </codecs>
       <participants>
        <participant id="1536067209:913cd14c"/>
       </participants>
      </conferenceaudit>
      <joinaudit id1="1536067209:913cd14c" id2="conf1"/>
      <joinaudit id1="1636067209:113cd14c" id2="1836067209:313cd14c"/>
      <joinaudit id1="1736067209:213cd14c" id2="1936067209:413cd14c"/>
     </mixers>
    </auditresponse>
   </mscmixer>
        
4.3.2.1. <capabilities>
4.3.2.1. <capabilities>

The <capabilities> element provides audit information about package capabilities.

<capabilities>元素提供有关包功能的审核信息。

The <capabilities> element has no attributes.

<capabilities>元素没有属性。

The <capabilities> element has the following sequence of child elements:

<capabilities>元素具有以下子元素序列:

<codecs>: element (Section 4.4) describing codecs available to the package. The element is mandatory.

<codecs>:描述软件包可用编解码器的元素(第4.4节)。该元素是必需的。

For example, a fragment describing capabilities is as follows:

例如,描述功能的片段如下所示:

     <capabilities>
      <codecs>
       <codec name="video">
        <subtype>H263</subtype>
       </codec>
       <codec name="video">
        <subtype>H264</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMU</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMA</subtype>
       </codec>
      </codecs>
     </capabilities>
        
     <capabilities>
      <codecs>
       <codec name="video">
        <subtype>H263</subtype>
       </codec>
       <codec name="video">
        <subtype>H264</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMU</subtype>
       </codec>
       <codec name="audio">
        <subtype>PCMA</subtype>
       </codec>
      </codecs>
     </capabilities>
        
4.3.2.2. <mixers>
4.3.2.2. <mixers>

The <mixers> element provides audit information about mixers.

<mixers>元素提供有关mixer的审计信息。

The <mixers> element has no attributes.

<mixers>元素没有属性。

The <mixers> element has the following sequence of child elements (zero or more occurrences, any order):

<mixers>元素具有以下子元素序列(零次或多次出现,任意顺序):

<conferenceaudit>: audit information for a conference mixer (Section 4.3.2.2.1). The element is optional.

<conferenceaudit>:会议混音器的审核信息(第4.3.2.2.1节)。元素是可选的。

<joinaudit>: audit information for a join mixer (Section 4.3.2.2.2). The element is optional.

<joinaudit>:联接混合器的审计信息(第4.3.2.2.2节)。元素是可选的。

4.3.2.2.1. <conferenceaudit>
4.3.2.2.1. <conferenceaudit>

The <conferenceaudit> element has the following attribute:

<conferenceaudit>元素具有以下属性:

conferenceid: string identifying the conference (see Appendix A.1 of [RFC6230]). The attribute is mandatory.

conferenceid:标识会议的字符串(见[RFC6230]的附录A.1)。该属性是必需的。

The <conferenceaudit> element has the following sequence of child elements:

<conferenceaudit>元素具有以下子元素序列:

<codecs> element describing codecs used in the conference. See Section 4.4. The element is optional.

描述会议中使用的编解码器的元素。见第4.4节。元素是可选的。

<participants> element listing connections or conferences joined to the conference. See Section 4.3.2.2.1.1. The element is optional.

<参与者>元素,列出加入会议的连接或会议。见第4.3.2.2.1.1节。元素是可选的。

<video-layout> element describing the active video layout for the conference. See Section 4.2.1.4.2.1. The element is optional.

<video layout>描述会议活动视频布局的元素。见第4.2.1.4.2.1节。元素是可选的。

For example, a fragment describing a conference that has been created but has no participants is as follows:

例如,描述已创建但没有参与者的会议的片段如下:

   <conferenceaudit conferenceid="conference1"/>
        
   <conferenceaudit conferenceid="conference1"/>
        

A fragment when the same conference has three participants (two connections and another conference) joined to it is as follows:

当同一会议有三名参与者(两个连接和另一个会议)加入时,其片段如下:

   <conferenceaudit conferenceid="conference1">
    <codecs>
     <codec name="audio">
      <subtype>PCMU</subtype>
     </codec>
    </codecs>
    <participants>
      <participant id="connection1"/>
      <participant id="connection2"/>
      <participant id="conference2"/>
    </participants>
   </conferenceaudit>
        
   <conferenceaudit conferenceid="conference1">
    <codecs>
     <codec name="audio">
      <subtype>PCMU</subtype>
     </codec>
    </codecs>
    <participants>
      <participant id="connection1"/>
      <participant id="connection2"/>
      <participant id="conference2"/>
    </participants>
   </conferenceaudit>
        
4.3.2.2.1.1. <participants>
4.3.2.2.1.1. <参与者>

The <participants> element is a container for <participant> elements (Section 4.3.2.2.1.1.1).

<participants>元素是<participant>元素的容器(第4.3.2.2.1.1节)。

The <participants> element has no attributes, but the following child elements are defined (zero or more):

<participants>元素没有属性,但定义了以下子元素(零个或多个):

<participant>: specifies a participant (Section 4.3.2.2.1.1.1).

<participant>:指定参与者(第4.3.2.2.1.1.1节)。

4.3.2.2.1.1.1. <participant>
4.3.2.2.1.1.1. <participant>

The <participant> element describes a participant.

<participant>元素描述参与者。

The <participant> element has the following attribute:

<participant>元素具有以下属性:

id: an identifier for either a connection or a conference. The identifier MUST conform to the syntax defined in Appendix A.1 of [RFC6230]. The attribute is mandatory.

id:连接或会议的标识符。标识符必须符合[RFC6230]附录A.1中定义的语法。该属性是必需的。

The <participant> element has no children.

<participant>元素没有子元素。

4.3.2.2.2. <joinaudit>
4.3.2.2.2. <joinaudit>

The <joinaudit> element has the following attributes:

<joinaudit>元素具有以下属性:

id1: an identifier for either a connection or a conference. The identifier MUST conform to the syntax defined in Appendix A.1 of [RFC6230]. The attribute is mandatory.

id1:连接或会议的标识符。标识符必须符合[RFC6230]附录A.1中定义的语法。该属性是必需的。

id2: an identifier for either a connection or a conference. The identifier MUST conform to the syntax defined in Appendix A.1 of [RFC6230]. The attribute is mandatory.

id2:连接或会议的标识符。标识符必须符合[RFC6230]附录A.1中定义的语法。该属性是必需的。

The <joinaudit> element has no children.

<joinaudit>元素没有子元素。

For example, a fragment describing an audit of two join mixers, one between connections and the second between conferences, is as follows:

例如,描述两个连接混合器(一个在连接之间,另一个在会议之间)审计的片段如下:

   <mixers>
    <joinaudit id1="1536067209:913cd14" id2="1636067209:413cd14"/>
    <joinaudit id1="conference1" id2="conference2"/>
   </mixers>
        
   <mixers>
    <joinaudit id1="1536067209:913cd14" id2="1636067209:413cd14"/>
    <joinaudit id1="conference1" id2="conference2"/>
   </mixers>
        
4.4. <codecs>
4.4. <编解码器>

The <codecs> element is a container for one or more codec definitions. Codec definitions are used by an AS to specify the codecs allowed for a conference (e.g., when used as a child of <createconference> or <modifyconference). Codec definitions are used by an MS to provide audit information about the codecs supported by an MS and used in specific conferences.

元素是一个或多个编解码器定义的容器。编解码器定义由AS用于指定会议所允许的编解码器(例如,当用作<createconference>或<modifyconference>的子级时)。编解码器定义由MS用于提供有关MS支持并在特定会议中使用的编解码器的审核信息。

The <codecs> element has no attributes.

<codecs>元素没有属性。

The <codecs> element has the following sequence of child elements (zero or more occurrences):

<codecs>元素具有以下子元素序列(零次或多次出现):

<codec>: defines a codec and optionally its policy (Section 4.4.1). The element is optional.

<codec>:定义编解码器及其策略(可选)(第4.4.1节)。元素是可选的。

For example, a fragment describing two codecs is as follows:

例如,描述两个编解码器的片段如下所示:

   <codecs>
     <codec name="audio">
      <subtype>PCMA</subtype>
     </codec>
     <codec name="video">
       <subtype>H263</subtype>
     </codec>
   </codecs>
        
   <codecs>
     <codec name="audio">
      <subtype>PCMA</subtype>
     </codec>
     <codec name="video">
       <subtype>H263</subtype>
     </codec>
   </codecs>
        
4.4.1. <codec>
4.4.1. <codec>

The <codec> element describes a codec. The element is modeled on the <codec> element in the XCON conference information data model ([RFC6501]) and allows additional information (e.g., rate, speed, etc.) to be specified.

<codec>元素描述编解码器。该元素基于XCON会议信息数据模型([RFC6501])中的<codec>元素建模,并允许指定附加信息(例如速率、速度等)。

The <codec> element has the following attribute:

<codec>元素具有以下属性:

name: indicates the type name of the codec's media format as defined in [IANA]. A valid value is a "type-name" as defined in Section 4.2 of [RFC4288]. The attribute is mandatory.

名称:表示[IANA]中定义的编解码器媒体格式的类型名称。有效值为[RFC4288]第4.2节中定义的“类型名称”。该属性是必需的。

The <codec> element has the following sequence of child elements:

<codec>元素具有以下子元素序列:

<subtype>: element whose content model describes the subtype of the codec's media format as defined in [IANA]. A valid value is a "subtype-name" as defined in Section 4.2 of [RFC4288]. The element is mandatory.

<subtype>:元素,其内容模型描述[IANA]中定义的编解码器媒体格式的子类型。有效值为[RFC4288]第4.2节中定义的“子类型名称”。该元素是必需的。

<params>: element (Section 4.5) describing additional information about the codec. This package is agnostic to the names and values of the codec parameters supported by an implementation. The element is optional.

<params>:描述编解码器附加信息的元素(第4.5节)。此包与实现支持的编解码器参数的名称和值无关。元素是可选的。

For example, a fragment with a <codec> element describing the H263 codec is as follows:

例如,具有描述H263编解码器的<codec>元素的片段如下所示:

   <codec name="video">
    <subtype>H263</subtype>
   </codec>
        
   <codec name="video">
    <subtype>H263</subtype>
   </codec>
        

A fragment where the <codec> element describes the H264 video codec with additional information about the profile level and packetization mode is as follows:

<codec>元素描述H264视频编解码器的片段,包括有关配置文件级别和打包模式的附加信息,如下所示:

   <codec name="video">
    <subtype>H264</subtype>
    <params>
     <param name="profile-level-id">42A01E</param>
     <param name="packetization-mode">0</param>
    </params>
   </codec>
        
   <codec name="video">
    <subtype>H264</subtype>
    <params>
     <param name="profile-level-id">42A01E</param>
     <param name="packetization-mode">0</param>
    </params>
   </codec>
        
4.5. <params>
4.5. <params>

The <params> element is a container for <param> elements (Section 4.5.1).

<params>元素是<param>元素的容器(第4.5.1节)。

The <params> element has no attributes, but the following child elements are defined (zero or more):

<params>元素没有属性,但定义了以下子元素(零个或多个):

<param>: specifies a parameter name and value (Section 4.5.1).

<param>:指定参数名称和值(第4.5.1节)。

4.5.1. <param>
4.5.1. <param>

The <param> element describes a parameter name and value.

<param>元素描述参数名称和值。

The <param> element has the following attributes:

<param>元素具有以下属性:

name: a string indicating the name of the parameter. The attribute is mandatory.

名称:指示参数名称的字符串。该属性是必需的。

type: specifies a type indicating how the in-line value of the parameter is to be interpreted. A valid value is a MIME media type (see Section 4.7.6). The attribute is optional. The default value is "text/plain".

类型:指定一种类型,指示如何解释参数的内联值。有效值为MIME媒体类型(见第4.7.6节)。该属性是可选的。默认值为“文本/普通”。

encoding: specifies a content-transfer-encoding schema applied to the in-line value of the parameter on top of the MIME media type specified with the 'type' attribute. A valid value is a content-transfer-encoding schema as defined by the "mechanism" token in Section 6.1 of [RFC2045]. The attribute is optional. There is no default value.

编码:指定内容传输编码架构,该架构应用于使用“type”属性指定的MIME媒体类型顶部参数的内联值。有效值是[RFC2045]第6.1节中“机制”标记定义的内容传输编码模式。该属性是可选的。没有默认值。

The <param> element content model is the value of the parameter. Note that a value that contains XML characters (e.g., "<") needs to be escaped following standard XML conventions.

<param>元素含量模型是参数的值。请注意,包含XML字符(例如“<”)的值需要按照标准XML约定进行转义。

4.6. Response Status Codes
4.6. 响应状态代码

This section describes the response codes in Table 1 for the 'status' attribute of mixer management <response> (Section 4.2.3) and <auditresponse> (Section 4.3.2). The MS MUST support the status response codes defined here. All other valid but undefined values are reserved for future use, where new status codes are assigned using the Standards Action process defined in [RFC5226]. 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.

本节描述了表1中混音器管理<response>(第4.2.3节)和<auditresponse>(第4.3.2节)的“状态”属性的响应代码。MS必须支持此处定义的状态响应代码。所有其他有效但未定义的值保留供将来使用,其中新的状态代码使用[RFC5226]中定义的标准操作流程分配。AS必须将其无法识别的任何响应视为等同于所有类的x00响应代码。例如,如果AS接收到无法识别的响应代码499,它可以安全地假设其请求有问题,并将响应视为收到400(语法错误)响应代码。

4xx responses are definite failure responses from a particular MS. The 'reason' attribute in the response SHOULD identify the failure in more detail, for example, "Mandatory attribute missing: id2 join element" for a 400 (Syntax error) response code.

4xx响应是特定MS的明确故障响应。响应中的“原因”属性应更详细地标识故障,例如400(语法错误)响应代码的“强制性属性缺失:id2连接元素”。

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.

AS不应在未经修改的情况下重试同一请求(例如,更正语法错误或更改conferenceid以使用MS上可用的conferenceid)。但是,如果另一个MS支持请求中所需的功能,则对不同MS的相同请求可能会成功。

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

4xx故障响应可分为三类:由于请求中的语法错误导致的故障(400);由于在MS上执行请求时出错而导致的故障(405-419);以及由于请求需要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.

如果一个故障可以报告多个请求代码,则MS应针对检测到的错误使用故障类别中最具体的错误代码。例如,如果MS检测到请求中的会议标识符无效,则它使用406状态码。然而,如果MS仅仅检测到发生了执行错误,则使用419。

   +-------+---------------+----------------------+--------------------+
   | 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 5 or it      |                    |
   |       |               | violates a           |                    |
   |       |               | co-occurrence        |                    |
   |       |               | constraint for a     |                    |
   |       |               | request element      |                    |
   |       |               | defined in           |                    |
   |       |               | Section 4.           |                    |
   |       |               |                      |                    |
   | 405   | Conference    | request uses an      | Send an <audit>    |
   |       | already       | identifier to create | request            |
   |       | exists        | a new conference     | (Section 4.3.1)    |
   |       |               | (Section 4.2.1.1)    | requesting the     |
   |       |               | that is already used | list of conference |
   |       |               | by another           | mixer identifiers  |
   |       |               | conference on the    | already used by    |
   |       |               | MS.                  | the MS and then    |
   |       |               |                      | use a conference   |
   |       |               |                      | identifier that is |
   |       |               |                      | not listed.        |
   |       |               |                      |                    |
   | 406   | Conference    | request uses an      | Send an <audit>    |
   |       | does not      | identifier for a     | request            |
   |       | exist         | conference that does | (Section 4.3.1)    |
   |       |               | not exist on the MS. | requesting the     |
   |       |               |                      | list of conference |
   |       |               |                      | mixer identifiers  |
   |       |               |                      | used by the MS and |
   |       |               |                      | then use a         |
   |       |               |                      | conference         |
   |       |               |                      | identifier that is |
   |       |               |                      | listed.            |
   |       |               |                      |                    |
        
   +-------+---------------+----------------------+--------------------+
   | 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 5 or it      |                    |
   |       |               | violates a           |                    |
   |       |               | co-occurrence        |                    |
   |       |               | constraint for a     |                    |
   |       |               | request element      |                    |
   |       |               | defined in           |                    |
   |       |               | Section 4.           |                    |
   |       |               |                      |                    |
   | 405   | Conference    | request uses an      | Send an <audit>    |
   |       | already       | identifier to create | request            |
   |       | exists        | a new conference     | (Section 4.3.1)    |
   |       |               | (Section 4.2.1.1)    | requesting the     |
   |       |               | that is already used | list of conference |
   |       |               | by another           | mixer identifiers  |
   |       |               | conference on the    | already used by    |
   |       |               | MS.                  | the MS and then    |
   |       |               |                      | use a conference   |
   |       |               |                      | identifier that is |
   |       |               |                      | not listed.        |
   |       |               |                      |                    |
   | 406   | Conference    | request uses an      | Send an <audit>    |
   |       | does not      | identifier for a     | request            |
   |       | exist         | conference that does | (Section 4.3.1)    |
   |       |               | not exist on the MS. | requesting the     |
   |       |               |                      | list of conference |
   |       |               |                      | mixer identifiers  |
   |       |               |                      | used by the MS and |
   |       |               |                      | then use a         |
   |       |               |                      | conference         |
   |       |               |                      | identifier that is |
   |       |               |                      | listed.            |
   |       |               |                      |                    |
        
   | 407   | Incompatible  | request specifies a  | Change the media   |
   |       | stream        | media stream         | stream             |
   |       | configuration | configuration that   | configuration to   |
   |       |               | is in conflict with  | match the          |
   |       |               | itself, the          | capabilities of    |
   |       |               | connection, or       | the connection or  |
   |       |               | conference           | conference.        |
   |       |               | capabilities (see    |                    |
   |       |               | Section 4.2.2.2).    |                    |
   |       |               |                      |                    |
   | 408   | Joining       | request attempts to  | Send an <audit>    |
   |       | entities      | create a join mixer  | request            |
   |       | already       | (Section 4.2.2.2)    | (Section 4.3.1)    |
   |       | joined        | where the entities   | requesting the     |
   |       |               | are already joined.  | list of join       |
   |       |               |                      | mixers on the MS   |
   |       |               |                      | and then use       |
   |       |               |                      | entities that are  |
   |       |               |                      | not listed.        |
   |       |               |                      |                    |
   | 409   | Joining       | request attempts to  | Send an <audit>    |
   |       | entities not  | manipulate a join    | request            |
   |       | joined        | mixer where the      | (Section 4.3.1)    |
   |       |               | entities are not     | requesting the     |
   |       |               | joined.              | list of join       |
   |       |               |                      | mixers on the MS   |
   |       |               |                      | and then use       |
   |       |               |                      | entities that are  |
   |       |               |                      | listed.            |
   |       |               |                      |                    |
   | 410   | Unable to     | request attempts to  |                    |
   |       | join -        | join a participant   |                    |
   |       | conference    | to a conference      |                    |
   |       | full          | (Section 4.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   | Connection    | request uses an      |                    |
   |       | does not      | identifier for a     |                    |
   |       | exist         | connection that does |                    |
   |       |               | not exist on the MS. |                    |
   |       |               |                      |                    |
        
   | 407   | Incompatible  | request specifies a  | Change the media   |
   |       | stream        | media stream         | stream             |
   |       | configuration | configuration that   | configuration to   |
   |       |               | is in conflict with  | match the          |
   |       |               | itself, the          | capabilities of    |
   |       |               | connection, or       | the connection or  |
   |       |               | conference           | conference.        |
   |       |               | capabilities (see    |                    |
   |       |               | Section 4.2.2.2).    |                    |
   |       |               |                      |                    |
   | 408   | Joining       | request attempts to  | Send an <audit>    |
   |       | entities      | create a join mixer  | request            |
   |       | already       | (Section 4.2.2.2)    | (Section 4.3.1)    |
   |       | joined        | where the entities   | requesting the     |
   |       |               | are already joined.  | list of join       |
   |       |               |                      | mixers on the MS   |
   |       |               |                      | and then use       |
   |       |               |                      | entities that are  |
   |       |               |                      | not listed.        |
   |       |               |                      |                    |
   | 409   | Joining       | request attempts to  | Send an <audit>    |
   |       | entities not  | manipulate a join    | request            |
   |       | joined        | mixer where the      | (Section 4.3.1)    |
   |       |               | entities are not     | requesting the     |
   |       |               | joined.              | list of join       |
   |       |               |                      | mixers on the MS   |
   |       |               |                      | and then use       |
   |       |               |                      | entities that are  |
   |       |               |                      | listed.            |
   |       |               |                      |                    |
   | 410   | Unable to     | request attempts to  |                    |
   |       | join -        | join a participant   |                    |
   |       | conference    | to a conference      |                    |
   |       | full          | (Section 4.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   | Connection    | request uses an      |                    |
   |       | does not      | identifier for a     |                    |
   |       | exist         | connection that does |                    |
   |       |               | not exist on the MS. |                    |
   |       |               |                      |                    |
        
   | 419   | Other         | requested operation  |                    |
   |       | execution     | cannot be executed   |                    |
   |       | error         | by the MS.           |                    |
   |       |               |                      |                    |
   | 420   | Conference    | request to create a  |                    |
   |       | reservation   | new conference       |                    |
   |       | failed        | (Section 4.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   | Unsupported   | request contains one |                    |
   |       | media stream  | or more <stream>     |                    |
   |       | configuration | elements             |                    |
   |       |               | (Section 4.2.2.5)    |                    |
   |       |               | whose configuration  |                    |
   |       |               | is not supported by  |                    |
   |       |               | the MS.              |                    |
   |       |               |                      |                    |
   | 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.   |                    |
   |       |               |                      |                    |
        
   | 419   | Other         | requested operation  |                    |
   |       | execution     | cannot be executed   |                    |
   |       | error         | by the MS.           |                    |
   |       |               |                      |                    |
   | 420   | Conference    | request to create a  |                    |
   |       | reservation   | new conference       |                    |
   |       | failed        | (Section 4.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   | Unsupported   | request contains one |                    |
   |       | media stream  | or more <stream>     |                    |
   |       | configuration | elements             |                    |
   |       |               | (Section 4.2.2.5)    |                    |
   |       |               | whose configuration  |                    |
   |       |               | is not supported by  |                    |
   |       |               | the MS.              |                    |
   |       |               |                      |                    |
   | 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 4.2.2.2)    |                    |
   |       | not supported | failed due to lack   |                    |
   |       |               | of support for       |                    |
   |       |               | mixing connections.  |                    |
   |       |               |                      |                    |
   | 427   | Unable to     | request to join      |                    |
   |       | join - mixing | conference entities  |                    |
   |       | conferences   | (Section 4.2.2.2)    |                    |
   |       | not supported | failed due to lack   |                    |
   |       |               | of support for       |                    |
   |       |               | mixing conferences.  |                    |
   |       |               |                      |                    |
   | 428   | Unsupported   | the request contains |                    |
   |       | foreign       | attributes or        |                    |
   |       | namespace     | elements from        |                    |
   |       | attribute or  | another namespace    |                    |
   |       | element       | that the MS does not |                    |
   |       |               | support.             |                    |
   |       |               |                      |                    |
   | 435   | Other         | request requires     |                    |
   |       | unsupported   | another capability   |                    |
   |       | capability    | not supported by the |                    |
   |       |               | MS.                  |                    |
   +-------+---------------+----------------------+--------------------+
        
   | 426   | Unable to     | request to join      |                    |
   |       | join - mixing | connection entities  |                    |
   |       | connections   | (Section 4.2.2.2)    |                    |
   |       | not supported | failed due to lack   |                    |
   |       |               | of support for       |                    |
   |       |               | mixing connections.  |                    |
   |       |               |                      |                    |
   | 427   | Unable to     | request to join      |                    |
   |       | join - mixing | conference entities  |                    |
   |       | conferences   | (Section 4.2.2.2)    |                    |
   |       | not supported | failed due to lack   |                    |
   |       |               | of support for       |                    |
   |       |               | mixing conferences.  |                    |
   |       |               |                      |                    |
   | 428   | Unsupported   | the request contains |                    |
   |       | foreign       | attributes or        |                    |
   |       | namespace     | elements from        |                    |
   |       | attribute or  | another namespace    |                    |
   |       | element       | that the MS does not |                    |
   |       |               | support.             |                    |
   |       |               |                      |                    |
   | 435   | Other         | request requires     |                    |
   |       | unsupported   | another capability   |                    |
   |       | capability    | not supported by the |                    |
   |       |               | MS.                  |                    |
   +-------+---------------+----------------------+--------------------+
        

Table 1: Status Codes

表1:状态代码

4.7. Type Definitions
4.7. 类型定义

This section defines types referenced in attribute definitions.

本节定义属性定义中引用的类型。

4.7.1. Boolean
4.7.1. 布尔值

The value space of boolean is the set {true, false, 1, 0} as defined in Section 3.2.2 of [XMLSchema:Part2]. In accordance with this definition, the concept of false can be lexically represented by the strings "0" and "false" and the concept of true by the strings "1" and "true"; implementations MUST support both styles of lexical representation.

boolean的值空间是集合{true,false,1,0},如[XMLSchema:Part2]第3.2.2节所定义。根据该定义,false的概念可以用字符串“0”和“false”在词汇上表示,true的概念可以用字符串“1”和“true”表示;实现必须支持两种类型的词汇表示。

4.7.2. Non-Negative Integer
4.7.2. 非负整数

The value space of non-negative integer is the infinite set {0,1,2,...} as defined in Section 3.3.20 of [XMLSchema:Part2].

非负整数的值空间是[XMLSchema:Part2]第3.3.20节中定义的无限集{0,1,2,…}。

4.7.3. Positive Integer
4.7.3. 正整数

The value space of positive integer is the infinite set {1,2,...} as defined in Section 3.3.25 of [XMLSchema:Part2].

正整数的值空间是[XMLSchema:Part2]第3.3.25节中定义的无限集{1,2,…}。

4.7.4. String
4.7.4. 一串

A string in the character encoding associated with the XML element as defined in Section 3.2.1 of [XMLSchema:Part2].

与[XMLSchema:Part2]第3.2.1节中定义的XML元素关联的字符编码中的字符串。

4.7.5. Time Designation
4.7.5. 时间指定

A time designation consists of a non-negative real number followed by a time unit identifier.

时间指定由非负实数和时间单位标识符组成。

The time unit identifiers are: "ms" (milliseconds) and "s" (seconds).

时间单位标识符为:“ms”(毫秒)和“s”(秒)。

Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s".

示例包括:“3s”、“850ms”、“0.7s”、“0.5s”和“+1.5s”。

4.7.6. MIME Media Type
4.7.6. MIME媒体类型

A string formatted as an IANA MIME media type [MIME.mediatypes]. The ABNF ([RFC5234]) production for the string is:

格式为IANA MIME媒体类型[MIME.mediatypes]的字符串。字符串的ABNF([RFC5234])生产为:

   media-type = type-name "/" subtype-name *(";" parameter)
        
   media-type = type-name "/" subtype-name *(";" parameter)
        

parameter = parameter-name "=" value

参数=参数名称“=”值

where "type-name" and "subtype-name" are defined in Section 4.2 of [RFC4288], "parameter-name" is defined in Section 4.3 of [RFC4288], and "value" is defined in Section 5.1 of [RFC2045].

其中,[RFC4288]第4.2节定义了“类型名称”和“子类型名称”,[RFC4288]第4.3节定义了“参数名称”,而[RFC2045]第5.1节定义了“值”。

4.7.7. Language Identifier
4.7.7. 语言标识符

A language identifier labels information content as being of a particular human language variant. Following the XML specification for language identification [XML], a legal language identifier is identified by a [RFC5646] code and matched according to [RFC4647].

语言标识符将信息内容标记为特定人类语言变体。根据语言标识[XML]的XML规范,合法语言标识符由[RFC5646]代码标识,并根据[RFC4647]进行匹配。

5. Formal Syntax
5. 形式语法

This section defines the XML schema for the Mixer Control Package. The schema is normative.

本节定义混合器控制包的XML模式。该模式是规范性的。

The schema defines datatypes, attributes, and mixer elements in the urn:ietf:params:xml:ns:msc-mixer namespace. In most elements, the order of child elements is significant. The schema is extensible: elements allow attributes and child elements from other namespaces.

模式在urn:ietf:params:xml:ns:msc mixer名称空间中定义数据类型、属性和mixer元素。在大多数元素中,子元素的顺序很重要。模式是可扩展的:元素允许来自其他名称空间的属性和子元素。

Elements from outside this package's namespace can occur after elements defined in this package.

此包命名空间之外的元素可以出现在此包中定义的元素之后。

The schema is dependent upon the schema (framework.xsd) defined in Appendix A.1 of the Control Framework [RFC6230].

该模式依赖于控制框架[RFC6230]附录A.1中定义的模式(framework.xsd)。

   <?xml version="1.0" encoding="UTF-8"?>
   <xsd:schema targetNamespace="urn:ietf:params:xml:ns:msc-mixer"
    xmlns:fw="urn:ietf:params:xml:ns:control:framework-attributes"
    elementFormDefault="qualified"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="urn:ietf:params:xml:ns:msc-mixer"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        
   <?xml version="1.0" encoding="UTF-8"?>
   <xsd:schema targetNamespace="urn:ietf:params:xml:ns:msc-mixer"
    xmlns:fw="urn:ietf:params:xml:ns:control:framework-attributes"
    elementFormDefault="qualified"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="urn:ietf:params:xml:ns:msc-mixer"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        
    <xsd:annotation>
     <xsd:documentation>
      IETF MediaCtrl Mixer 1.0 (20110104)
        
    <xsd:annotation>
     <xsd:documentation>
      IETF MediaCtrl Mixer 1.0 (20110104)
        

This is the schema of the Mixer Control Package. It defines request, response, and notification elements for mixing.

这是混合器控制包的模式。它定义了用于混合的请求、响应和通知元素。

      The schema namespace is urn:ietf:params:xml:ns:msc-mixer
        
      The schema namespace is urn:ietf:params:xml:ns:msc-mixer
        
     </xsd:documentation>
    </xsd:annotation>
        
     </xsd:documentation>
    </xsd:annotation>
        
    <!--
     #############################################################
        
    <!--
     #############################################################
        

SCHEMA IMPORTS

模式导入

     #############################################################
    -->
        
     #############################################################
    -->
        
    <xsd:import
     namespace="urn:ietf:params:xml:ns:control:framework-attributes"
     schemaLocation="framework.xsd">
     <xsd:annotation>
      <xsd:documentation>
       This import brings in the framework attributes for
       conferenceid and connectionid.
      </xsd:documentation>
     </xsd:annotation>
    </xsd:import>
        
    <xsd:import
     namespace="urn:ietf:params:xml:ns:control:framework-attributes"
     schemaLocation="framework.xsd">
     <xsd:annotation>
      <xsd:documentation>
       This import brings in the framework attributes for
       conferenceid and connectionid.
      </xsd:documentation>
     </xsd:annotation>
    </xsd:import>
        

<!--

<!--

     #####################################################
        
     #####################################################
        

Extensible core type

可扩展核心类型

     #####################################################
    -->
        
     #####################################################
    -->
        
    <xsd:complexType name="Tcore">
     <xsd:annotation>
      <xsd:documentation>
       This type is extended by other (non-mixed) component types to
       allow attributes from other namespaces.
      </xsd:documentation>
     </xsd:annotation>
     <xsd:sequence/>
     <xsd:anyAttribute namespace="##other" processContents="lax" />
    </xsd:complexType>
        
    <xsd:complexType name="Tcore">
     <xsd:annotation>
      <xsd:documentation>
       This type is extended by other (non-mixed) component types to
       allow attributes from other namespaces.
      </xsd:documentation>
     </xsd:annotation>
     <xsd:sequence/>
     <xsd:anyAttribute namespace="##other" processContents="lax" />
    </xsd:complexType>
        
    <!--
     #####################################################
        
    <!--
     #####################################################
        

TOP-LEVEL ELEMENT: mscmixer

顶级元素:mscmixer

     #####################################################
    -->
        
     #####################################################
    -->
        
    <xsd:complexType name="mscmixerType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:choice>
         <xsd:element ref="createconference" />
         <xsd:element ref="modifyconference" />
         <xsd:element ref="destroyconference" />
         <xsd:element ref="join" />
         <xsd:element ref="unjoin" />
         <xsd:element ref="modifyjoin" />
         <xsd:element ref="response" />
         <xsd:element ref="event" />
         <xsd:element ref="audit" />
         <xsd:element ref="auditresponse" />
         <xsd:any namespace="##other" minOccurs="0"
          maxOccurs="unbounded" processContents="lax" />
        </xsd:choice>
       </xsd:sequence>
       <xsd:attribute name="version" type="version.datatype"
        use="required" />
        
    <xsd:complexType name="mscmixerType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:choice>
         <xsd:element ref="createconference" />
         <xsd:element ref="modifyconference" />
         <xsd:element ref="destroyconference" />
         <xsd:element ref="join" />
         <xsd:element ref="unjoin" />
         <xsd:element ref="modifyjoin" />
         <xsd:element ref="response" />
         <xsd:element ref="event" />
         <xsd:element ref="audit" />
         <xsd:element ref="auditresponse" />
         <xsd:any namespace="##other" minOccurs="0"
          maxOccurs="unbounded" processContents="lax" />
        </xsd:choice>
       </xsd:sequence>
       <xsd:attribute name="version" type="version.datatype"
        use="required" />
        
       <xsd:attribute name="desclang" type="xsd:language"
        default="i-default" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
       <xsd:attribute name="desclang" type="xsd:language"
        default="i-default" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="mscmixer" type="mscmixerType" />
        
    <xsd:element name="mscmixer" type="mscmixerType" />
        
    <!--
     #####################################################
        
    <!--
     #####################################################
        

CONFERENCE MANAGEMENT TYPES

会议管理类型

     #####################################################
    -->
        
     #####################################################
    -->
        
    <!--  createconference -->
        
    <!--  createconference -->
        
    <xsd:complexType name="createconferenceType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="codecs" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="audio-mixing" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="video-layouts" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="video-switch" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="subscribe" minOccurs="0"
         maxOccurs="1" />
        <xsd:any namespace="##other"
         processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xsd:sequence>
       <xsd:attribute name="conferenceid" type="xsd:string" />
       <xsd:attribute name="reserved-talkers"
        type="xsd:nonNegativeInteger" default="0" />
       <xsd:attribute name="reserved-listeners"
        type="xsd:nonNegativeInteger" default="0" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="createconferenceType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="codecs" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="audio-mixing" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="video-layouts" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="video-switch" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="subscribe" minOccurs="0"
         maxOccurs="1" />
        <xsd:any namespace="##other"
         processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xsd:sequence>
       <xsd:attribute name="conferenceid" type="xsd:string" />
       <xsd:attribute name="reserved-talkers"
        type="xsd:nonNegativeInteger" default="0" />
       <xsd:attribute name="reserved-listeners"
        type="xsd:nonNegativeInteger" default="0" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="createconference" type="createconferenceType" />
        
    <xsd:element name="createconference" type="createconferenceType" />
        
    <!--  modifyconference -->
        
    <!--  modifyconference -->
        
    <xsd:complexType name="modifyconferenceType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="codecs" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="audio-mixing" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="video-layouts" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="video-switch" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="subscribe" />
        <xsd:any namespace="##other"
         processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xsd:sequence>
       <xsd:attribute name="conferenceid" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="modifyconferenceType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="codecs" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="audio-mixing" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="video-layouts" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="video-switch" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="subscribe" />
        <xsd:any namespace="##other"
         processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xsd:sequence>
       <xsd:attribute name="conferenceid" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="modifyconference" type="modifyconferenceType" />
        
    <xsd:element name="modifyconference" type="modifyconferenceType" />
        
    <!--  destroyconference -->
        
    <!--  destroyconference -->
        
    <xsd:complexType name="destroyconferenceType">
    <xsd:complexContent>
      <xsd:extension base="Tcore">
      <xsd:sequence>
       <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      <xsd:attribute name="conferenceid" type="xsd:string"
      use="required" />
      </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="destroyconferenceType">
    <xsd:complexContent>
      <xsd:extension base="Tcore">
      <xsd:sequence>
       <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      <xsd:attribute name="conferenceid" type="xsd:string"
      use="required" />
      </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="destroyconference"
     type="destroyconferenceType" />
        
    <xsd:element name="destroyconference"
     type="destroyconferenceType" />
        
    <!--
     #####################################################
        
    <!--
     #####################################################
        

JOIN TYPES

连接类型

     #####################################################
    -->
        
     #####################################################
    -->
        
    <xsd:complexType name="joinType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="stream" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other"
         processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xsd:sequence>
       <xsd:attribute name="id1" type="xsd:string"
        use="required" />
       <xsd:attribute name="id2" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="joinType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="stream" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other"
         processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xsd:sequence>
       <xsd:attribute name="id1" type="xsd:string"
        use="required" />
       <xsd:attribute name="id2" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="join" type="joinType" />
        
    <xsd:element name="join" type="joinType" />
        
    <xsd:complexType name="modifyjoinType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="stream" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other"
         processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xsd:sequence>
       <xsd:attribute name="id1" type="xsd:string"
        use="required" />
       <xsd:attribute name="id2" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="modifyjoinType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="stream" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other"
         processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xsd:sequence>
       <xsd:attribute name="id1" type="xsd:string"
        use="required" />
       <xsd:attribute name="id2" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="modifyjoin" type="modifyjoinType" />
        
    <xsd:element name="modifyjoin" type="modifyjoinType" />
        
    <xsd:complexType name="unjoinType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="stream" minOccurs="0"
         maxOccurs="unbounded" />
        
    <xsd:complexType name="unjoinType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="stream" minOccurs="0"
         maxOccurs="unbounded" />
        
        <xsd:any namespace="##other"
         processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xsd:sequence>
       <xsd:attribute name="id1" type="xsd:string"
        use="required" />
       <xsd:attribute name="id2" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
        <xsd:any namespace="##other"
         processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xsd:sequence>
       <xsd:attribute name="id1" type="xsd:string"
        use="required" />
       <xsd:attribute name="id2" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="unjoin" type="unjoinType" />
        
    <xsd:element name="unjoin" type="unjoinType" />
        
    <!--
     #####################################################
        
    <!--
     #####################################################
        

OTHER TYPES

其他类型

     #####################################################
    -->
        
     #####################################################
    -->
        
    <xsd:complexType name="eventType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:choice>
         <xsd:element ref="active-talkers-notify"
          minOccurs="0" maxOccurs="1" />
         <xsd:element ref="unjoin-notify"
          minOccurs="0" maxOccurs="1" />
         <xsd:element ref="conferenceexit"
          minOccurs="0" maxOccurs="1" />
         <xsd:any namespace="##other" minOccurs="0"
          maxOccurs="unbounded" processContents="lax" />
        </xsd:choice>
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="eventType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:choice>
         <xsd:element ref="active-talkers-notify"
          minOccurs="0" maxOccurs="1" />
         <xsd:element ref="unjoin-notify"
          minOccurs="0" maxOccurs="1" />
         <xsd:element ref="conferenceexit"
          minOccurs="0" maxOccurs="1" />
         <xsd:any namespace="##other" minOccurs="0"
          maxOccurs="unbounded" processContents="lax" />
        </xsd:choice>
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="event" type="eventType" />
        
    <xsd:element name="event" type="eventType" />
        
    <xsd:complexType name="activetalkersnotifyType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="active-talker" minOccurs="0"
         maxOccurs="unbounded" />
        
    <xsd:complexType name="activetalkersnotifyType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="active-talker" minOccurs="0"
         maxOccurs="unbounded" />
        
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="conferenceid" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="conferenceid" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="active-talkers-notify"
     type="activetalkersnotifyType" />
        
    <xsd:element name="active-talkers-notify"
     type="activetalkersnotifyType" />
        
    <xsd:complexType name="activetalkerType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attributeGroup ref="fw:framework-attributes" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="activetalkerType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attributeGroup ref="fw:framework-attributes" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="active-talker" type="activetalkerType" />
        
    <xsd:element name="active-talker" type="activetalkerType" />
        
    <xsd:complexType name="unjoinnotifyType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="status" type="xsd:nonNegativeInteger"
         use="required" />
       <xsd:attribute name="reason" type="xsd:string" />
         <xsd:attribute name="desclang" type="xsd:language"/>
       <xsd:attribute name="id1" type="xsd:string"
        use="required" />
       <xsd:attribute name="id2" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="unjoinnotifyType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="status" type="xsd:nonNegativeInteger"
         use="required" />
       <xsd:attribute name="reason" type="xsd:string" />
         <xsd:attribute name="desclang" type="xsd:language"/>
       <xsd:attribute name="id1" type="xsd:string"
        use="required" />
       <xsd:attribute name="id2" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="unjoin-notify" type="unjoinnotifyType" />
        
    <xsd:element name="unjoin-notify" type="unjoinnotifyType" />
        
    <!--  conferenceexit-->
        
    <!--  conferenceexit-->
        
    <xsd:complexType name="conferenceexitType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="conferenceid" type="xsd:string"
        use="required" />
       <xsd:attribute name="status"
        type="xsd:nonNegativeInteger" use="required" />
       <xsd:attribute name="reason" type="xsd:string" />
         <xsd:attribute name="desclang" type="xsd:language"/>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="conferenceexitType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="conferenceid" type="xsd:string"
        use="required" />
       <xsd:attribute name="status"
        type="xsd:nonNegativeInteger" use="required" />
       <xsd:attribute name="reason" type="xsd:string" />
         <xsd:attribute name="desclang" type="xsd:language"/>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="conferenceexit" type="conferenceexitType" />
        
    <xsd:element name="conferenceexit" type="conferenceexitType" />
        
    <xsd:complexType name="responseType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
      <xsd:sequence>
       <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="status" type="status.datatype"
        use="required" />
       <xsd:attribute name="reason" type="xsd:string" />
         <xsd:attribute name="desclang" type="xsd:language"/>
       <xsd:attributeGroup ref="fw:framework-attributes" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="responseType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
      <xsd:sequence>
       <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="status" type="status.datatype"
        use="required" />
       <xsd:attribute name="reason" type="xsd:string" />
         <xsd:attribute name="desclang" type="xsd:language"/>
       <xsd:attributeGroup ref="fw:framework-attributes" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="response" type="responseType" />
        
    <xsd:element name="response" type="responseType" />
        
    <xsd:complexType name="subscribeType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="active-talkers-sub"
         minOccurs="0" maxOccurs="1" />
        <xsd:any namespace="##other" minOccurs="0"
        
    <xsd:complexType name="subscribeType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="active-talkers-sub"
         minOccurs="0" maxOccurs="1" />
        <xsd:any namespace="##other" minOccurs="0"
        
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="subscribe" type="subscribeType" />
        
    <xsd:element name="subscribe" type="subscribeType" />
        
    <xsd:complexType name="activetalkerssubType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="interval"
        type="xsd:nonNegativeInteger" default="3" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="activetalkerssubType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="interval"
        type="xsd:nonNegativeInteger" default="3" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="active-talkers-sub"
     type="activetalkerssubType" />
        
    <xsd:element name="active-talkers-sub"
     type="activetalkerssubType" />
        
    <xsd:complexType name="streamType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="volume" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="clamp" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="region" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="priority" minOccurs="0"
         maxOccurs="1" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="media" type="media.datatype"
        use="required" />
       <xsd:attribute name="label" type="label.datatype" />
       <xsd:attribute name="direction"
        type="direction.datatype" default="sendrecv" />
      </xsd:extension>
     </xsd:complexContent>
        
    <xsd:complexType name="streamType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="volume" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="clamp" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="region" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="priority" minOccurs="0"
         maxOccurs="1" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="media" type="media.datatype"
        use="required" />
       <xsd:attribute name="label" type="label.datatype" />
       <xsd:attribute name="direction"
        type="direction.datatype" default="sendrecv" />
      </xsd:extension>
     </xsd:complexContent>
        
    </xsd:complexType>
        
    </xsd:complexType>
        
    <xsd:element name="stream" type="streamType" />
        
    <xsd:element name="stream" type="streamType" />
        
    <xsd:complexType name="volumeType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="controltype"
        type="volumecontroltype.datatype" use="required" />
       <xsd:attribute name="value" type="xsd:string" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="volumeType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="controltype"
        type="volumecontroltype.datatype" use="required" />
       <xsd:attribute name="value" type="xsd:string" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="volume" type="volumeType" />
        
    <xsd:element name="volume" type="volumeType" />
        
    <xsd:complexType name="clampType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="tones" type="xsd:string"
        default="1 2 3 4 5 6 7 8 9 0 * # A B C D"/>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="clampType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="tones" type="xsd:string"
        default="1 2 3 4 5 6 7 8 9 0 * # A B C D"/>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="clamp" type="clampType" />
        
    <xsd:element name="clamp" type="clampType" />
        
    <!--  region  -->
    <xsd:simpleType name="regionType">
     <xsd:restriction base="xsd:NMTOKEN" />
    </xsd:simpleType>
        
    <!--  region  -->
    <xsd:simpleType name="regionType">
     <xsd:restriction base="xsd:NMTOKEN" />
    </xsd:simpleType>
        
    <xsd:element name="region" type="regionType" />
        
    <xsd:element name="region" type="regionType" />
        
    <!--  priority  -->
    <xsd:simpleType name="priorityType">
        
    <!--  priority  -->
    <xsd:simpleType name="priorityType">
        
     <xsd:restriction base="xsd:positiveInteger" />
    </xsd:simpleType>
        
     <xsd:restriction base="xsd:positiveInteger" />
    </xsd:simpleType>
        
    <xsd:element name="priority" type="priorityType" />
        
    <xsd:element name="priority" type="priorityType" />
        
    <xsd:complexType name="audiomixingType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
      <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="type" type="audiomix.datatype"
        default="nbest" />
       <xsd:attribute name="n" type="xsd:nonNegativeInteger"
        default="0" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="audiomixingType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
      <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="type" type="audiomix.datatype"
        default="nbest" />
       <xsd:attribute name="n" type="xsd:nonNegativeInteger"
        default="0" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="audio-mixing" type="audiomixingType" />
        
    <xsd:element name="audio-mixing" type="audiomixingType" />
        
    <!-- video-switch -->
        
    <!-- video-switch -->
        
    <xsd:complexType name="videoswitchType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
         <xsd:choice>
          <xsd:element name="vas" type="Tcore"/>
          <xsd:element name="controller" type="Tcore"/>
          <xsd:any namespace="##other" processContents="lax" />
        </xsd:choice>
       </xsd:sequence>
       <xsd:attribute name="interval"
        type="xsd:nonNegativeInteger" default="3" />
       <xsd:attribute name="activespeakermix"
        type="xsd:boolean" default="false" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="videoswitchType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
         <xsd:choice>
          <xsd:element name="vas" type="Tcore"/>
          <xsd:element name="controller" type="Tcore"/>
          <xsd:any namespace="##other" processContents="lax" />
        </xsd:choice>
       </xsd:sequence>
       <xsd:attribute name="interval"
        type="xsd:nonNegativeInteger" default="3" />
       <xsd:attribute name="activespeakermix"
        type="xsd:boolean" default="false" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="video-switch" type="videoswitchType" />
        
    <xsd:element name="video-switch" type="videoswitchType" />
        
    <!-- video-layouts -->
        
    <!-- video-layouts -->
        
    <xsd:complexType name="videolayoutsType">
     <xsd:complexContent>
        
    <xsd:complexType name="videolayoutsType">
     <xsd:complexContent>
        
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="video-layout" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="video-layout" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="video-layouts" type="videolayoutsType" />
        
    <xsd:element name="video-layouts" type="videolayoutsType" />
        
    <!-- video-layout -->
    <xsd:complexType name="videolayoutType">
    <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:choice>
          <xsd:element name="single-view" type="Tcore"/>
          <xsd:element name="dual-view" type="Tcore"/>
          <xsd:element name="dual-view-crop" type="Tcore"/>
          <xsd:element name="dual-view-2x1" type="Tcore"/>
          <xsd:element name="dual-view-2x1-crop" type="Tcore"/>
          <xsd:element name="quad-view" type="Tcore"/>
          <xsd:element name="multiple-3x3" type="Tcore"/>
          <xsd:element name="multiple-4x4" type="Tcore"/>
          <xsd:element name="multiple-5x1" type="Tcore"/>
          <xsd:any namespace="##other" processContents="lax" />
        </xsd:choice>
       </xsd:sequence>
      <xsd:attribute name="min-participants"
        type="xsd:positiveInteger" default="1" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <!-- video-layout -->
    <xsd:complexType name="videolayoutType">
    <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:choice>
          <xsd:element name="single-view" type="Tcore"/>
          <xsd:element name="dual-view" type="Tcore"/>
          <xsd:element name="dual-view-crop" type="Tcore"/>
          <xsd:element name="dual-view-2x1" type="Tcore"/>
          <xsd:element name="dual-view-2x1-crop" type="Tcore"/>
          <xsd:element name="quad-view" type="Tcore"/>
          <xsd:element name="multiple-3x3" type="Tcore"/>
          <xsd:element name="multiple-4x4" type="Tcore"/>
          <xsd:element name="multiple-5x1" type="Tcore"/>
          <xsd:any namespace="##other" processContents="lax" />
        </xsd:choice>
       </xsd:sequence>
      <xsd:attribute name="min-participants"
        type="xsd:positiveInteger" default="1" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="video-layout" type="videolayoutType" />
        
    <xsd:element name="video-layout" type="videolayoutType" />
        
    <xsd:complexType name="auditType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
      <xsd:sequence>
      <xsd:any namespace="##other" minOccurs="0"
       maxOccurs="unbounded" processContents="lax" />
      </xsd:sequence>
       <xsd:attribute name="capabilities"
        
    <xsd:complexType name="auditType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
      <xsd:sequence>
      <xsd:any namespace="##other" minOccurs="0"
       maxOccurs="unbounded" processContents="lax" />
      </xsd:sequence>
       <xsd:attribute name="capabilities"
        
        type="xsd:boolean" default="true" />
       <xsd:attribute name="mixers" type="xsd:boolean"
        default="true" />
       <xsd:attribute name="conferenceid" type="xsd:string" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
        type="xsd:boolean" default="true" />
       <xsd:attribute name="mixers" type="xsd:boolean"
        default="true" />
       <xsd:attribute name="conferenceid" type="xsd:string" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="audit" type="auditType" />
        
    <xsd:element name="audit" type="auditType" />
        
    <xsd:complexType name="auditresponseType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="capabilities" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="mixers" minOccurs="0"
         maxOccurs="1" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="status" type="status.datatype"
        use="required" />
       <xsd:attribute name="reason" type="xsd:string" />
         <xsd:attribute name="desclang" type="xsd:language"/>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="auditresponseType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="capabilities" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="mixers" minOccurs="0"
         maxOccurs="1" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="status" type="status.datatype"
        use="required" />
       <xsd:attribute name="reason" type="xsd:string" />
         <xsd:attribute name="desclang" type="xsd:language"/>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="auditresponse" type="auditresponseType" />
        
    <xsd:element name="auditresponse" type="auditresponseType" />
        
    <!-- mixers -->
        
    <!-- mixers -->
        
    <xsd:complexType name="mixersType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="conferenceaudit" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:element ref="joinaudit" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="mixersType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="conferenceaudit" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:element ref="joinaudit" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="mixers" type="mixersType" />
        
    <xsd:element name="mixers" type="mixersType" />
        
    <!--  joinaudit -->
        
    <!--  joinaudit -->
        
    <xsd:complexType name="joinauditType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other"
         processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xsd:sequence>
       <xsd:attribute name="id1" type="xsd:string"
        use="required" />
       <xsd:attribute name="id2" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="joinauditType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other"
         processContents="lax" minOccurs="0" maxOccurs="unbounded" />
       </xsd:sequence>
       <xsd:attribute name="id1" type="xsd:string"
        use="required" />
       <xsd:attribute name="id2" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="joinaudit" type="joinauditType" />
        
    <xsd:element name="joinaudit" type="joinauditType" />
        
    <!-- conferenceaudit -->
        
    <!-- conferenceaudit -->
        
    <xsd:complexType name="conferenceauditType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="codecs" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="participants" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="video-layout" minOccurs="0"
         maxOccurs="1" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="conferenceid" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="conferenceauditType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="codecs" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="participants" minOccurs="0"
         maxOccurs="1" />
        <xsd:element ref="video-layout" minOccurs="0"
         maxOccurs="1" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="conferenceid" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="conferenceaudit" type="conferenceauditType" />
        
    <xsd:element name="conferenceaudit" type="conferenceauditType" />
        
    <!-- participants -->
        
    <!-- participants -->
        
    <xsd:complexType name="participantsType">
        
    <xsd:complexType name="participantsType">
        
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="participant" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="participant" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="participants" type="participantsType" />
        
    <xsd:element name="participants" type="participantsType" />
        
    <!-- participant -->
        
    <!-- participant -->
        
    <xsd:complexType name="participantType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="participantType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="participant" type="participantType" />
        
    <xsd:element name="participant" type="participantType" />
        
    <!-- capabilities -->
        
    <!-- capabilities -->
        
    <xsd:complexType name="capabilitiesType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="codecs" minOccurs="1"
         maxOccurs="1" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="capabilitiesType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="codecs" minOccurs="1"
         maxOccurs="1" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="capabilities" type="capabilitiesType" />
        
    <xsd:element name="capabilities" type="capabilitiesType" />
        
    <!-- codecs -->
        
    <!-- codecs -->
        
    <xsd:complexType name="codecsType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="codec" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="codecsType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="codec" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="codecs" type="codecsType" />
        
    <xsd:element name="codecs" type="codecsType" />
        
    <!-- codec -->
        
    <!-- codec -->
        
    <xsd:complexType name="codecType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="subtype" minOccurs="1"
         maxOccurs="1" />
        <xsd:element ref="params" minOccurs="0"
         maxOccurs="1" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
        <xsd:attribute name="name" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="codecType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="subtype" minOccurs="1"
         maxOccurs="1" />
        <xsd:element ref="params" minOccurs="0"
         maxOccurs="1" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
        <xsd:attribute name="name" type="xsd:string"
        use="required" />
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="codec" type="codecType" />
        
    <xsd:element name="codec" type="codecType" />
        
    <!-- subtype -->
        
    <!-- subtype -->
        
    <xsd:simpleType name="subtypeType">
     <xsd:restriction base="xsd:string" />
    </xsd:simpleType>
        
    <xsd:simpleType name="subtypeType">
     <xsd:restriction base="xsd:string" />
    </xsd:simpleType>
        
    <xsd:element name="subtype" type="subtypeType" />
        
    <xsd:element name="subtype" type="subtypeType" />
        
    <!-- params -->
        
    <!-- params -->
        
    <xsd:complexType name="paramsType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="param" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:complexType name="paramsType">
     <xsd:complexContent>
      <xsd:extension base="Tcore">
       <xsd:sequence>
        <xsd:element ref="param" minOccurs="0"
         maxOccurs="unbounded" />
        <xsd:any namespace="##other" minOccurs="0"
         maxOccurs="unbounded" processContents="lax" />
       </xsd:sequence>
      </xsd:extension>
     </xsd:complexContent>
    </xsd:complexType>
        
    <xsd:element name="params" type="paramsType" />
        
    <xsd:element name="params" type="paramsType" />
        
    <!--  param -->
       <!--  doesn't extend tCore since its content model is mixed -->
    <xsd:complexType name="paramType" mixed="true">
     <xsd:sequence/>
     <xsd:attribute name="name" type="xsd:string" use="required" />
     <xsd:attribute name="type" type="mime.datatype"
     default="text/plain" />
        <xsd:attribute name="encoding" type="xsd:string"/>
    </xsd:complexType>
        
    <!--  param -->
       <!--  doesn't extend tCore since its content model is mixed -->
    <xsd:complexType name="paramType" mixed="true">
     <xsd:sequence/>
     <xsd:attribute name="name" type="xsd:string" use="required" />
     <xsd:attribute name="type" type="mime.datatype"
     default="text/plain" />
        <xsd:attribute name="encoding" type="xsd:string"/>
    </xsd:complexType>
        
    <xsd:element name="param" type="paramType" />
        
    <xsd:element name="param" type="paramType" />
        
    <!--
     ####################################################
        
    <!--
     ####################################################
        

DATATYPES

数据类型

     ####################################################
    -->
        
     ####################################################
    -->
        
   <xsd:simpleType name="version.datatype">
     <xsd:restriction base="xsd:NMTOKEN">
      <xsd:enumeration value="1.0" />
     </xsd:restriction>
    </xsd:simpleType>
        
   <xsd:simpleType name="version.datatype">
     <xsd:restriction base="xsd:NMTOKEN">
      <xsd:enumeration value="1.0" />
     </xsd:restriction>
    </xsd:simpleType>
        
    <xsd:simpleType name="eventname.datatype">
     <xsd:restriction base="xsd:NMTOKEN">
      <xsd:pattern value="[a-zA-Z0-9\.]+" />
     </xsd:restriction>
    </xsd:simpleType>
        
    <xsd:simpleType name="eventname.datatype">
     <xsd:restriction base="xsd:NMTOKEN">
      <xsd:pattern value="[a-zA-Z0-9\.]+" />
     </xsd:restriction>
    </xsd:simpleType>
        
    <xsd:simpleType name="audiomix.datatype">
     <xsd:restriction base="xsd:NMTOKEN">
      <xsd:enumeration value="nbest" />
      <xsd:enumeration value="controller" />
     </xsd:restriction>
    </xsd:simpleType>
        
    <xsd:simpleType name="audiomix.datatype">
     <xsd:restriction base="xsd:NMTOKEN">
      <xsd:enumeration value="nbest" />
      <xsd:enumeration value="controller" />
     </xsd:restriction>
    </xsd:simpleType>
        
    <xsd:simpleType name="media.datatype">
     <xsd:restriction base="xsd:string" />
    </xsd:simpleType>
        
    <xsd:simpleType name="media.datatype">
     <xsd:restriction base="xsd:string" />
    </xsd:simpleType>
        
    <xsd:simpleType name="label.datatype">
     <xsd:restriction base="xsd:string" />
    </xsd:simpleType>
        
    <xsd:simpleType name="label.datatype">
     <xsd:restriction base="xsd:string" />
    </xsd:simpleType>
        
    <xsd:simpleType name="status.datatype">
     <xsd:restriction base="xsd:positiveInteger">
      <xsd:pattern value="[0-9][0-9][0-9]" />
     </xsd:restriction>
    </xsd:simpleType>
        
    <xsd:simpleType name="status.datatype">
     <xsd:restriction base="xsd:positiveInteger">
      <xsd:pattern value="[0-9][0-9][0-9]" />
     </xsd:restriction>
    </xsd:simpleType>
        
    <xsd:simpleType name="direction.datatype">
     <xsd:restriction base="xsd:NMTOKEN">
      <xsd:enumeration value="sendonly" />
      <xsd:enumeration value="recvonly" />
      <xsd:enumeration value="sendrecv" />
      <xsd:enumeration value="inactive" />
     </xsd:restriction>
    </xsd:simpleType>
        
    <xsd:simpleType name="direction.datatype">
     <xsd:restriction base="xsd:NMTOKEN">
      <xsd:enumeration value="sendonly" />
      <xsd:enumeration value="recvonly" />
      <xsd:enumeration value="sendrecv" />
      <xsd:enumeration value="inactive" />
     </xsd:restriction>
    </xsd:simpleType>
        
    <xsd:simpleType name="mime.datatype">
     <xsd:restriction base="xsd:string" />
    </xsd:simpleType>
        
    <xsd:simpleType name="mime.datatype">
     <xsd:restriction base="xsd:string" />
    </xsd:simpleType>
        
    <xsd:simpleType name="volumecontroltype.datatype">
     <xsd:restriction base="xsd:NMTOKEN">
      <xsd:enumeration value="automatic" />
      <xsd:enumeration value="setgain" />
      <xsd:enumeration value="setstate" />
     </xsd:restriction>
    </xsd:simpleType>
        
    <xsd:simpleType name="volumecontroltype.datatype">
     <xsd:restriction base="xsd:NMTOKEN">
      <xsd:enumeration value="automatic" />
      <xsd:enumeration value="setgain" />
      <xsd:enumeration value="setstate" />
     </xsd:restriction>
    </xsd:simpleType>
        
   </xsd:schema>
        
   </xsd:schema>
        

Figure 10: Mixer Package XML Schema

图10:混合器包XML模式

6. Examples
6. 例子

This section provides examples of the Mixer Control Package.

本节提供混音器控制包的示例。

6.1. AS-MS Framework Interaction Examples
6.1. AS-MS框架交互示例

The following example assumes a Control Channel has been established and synced as described in the Media Control Channel Framework ([RFC6230]).

以下示例假设已按照媒体控制通道框架([RFC6230])中的描述建立并同步控制通道。

The XML messages are in angled brackets (with the root <mscmixer> and other details omitted for clarity); the REPORT status is in parentheses. Other aspects of the protocol are omitted for readability.

XML消息放在尖括号中(为了清楚起见,省略了根<mscmixer>和其他细节);报告状态在括号中。为了便于阅读,省略了协议的其他方面。

6.1.1. Creating a Conference Mixer and Joining a Participant
6.1.1. 创建会议混合器并加入参与者

A conference mixer is created successfully and a participant is joined.

成功创建会议混合器并加入参与者。

             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <createconference>       |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |                                             |
                |       (3) REPORT: <response status="200"/>  |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) CONTROL: <join id1=.. id2=..>     |
                |  ---------------------------------------->  |
                |                                             |
                |       (6) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (7) REPORT: <response status="200"/>  |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (8) 200                               |
                |  ---------------------------------------->  |
        
             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <createconference>       |
                |  ---------------------------------------->  |
                |                                             |
                |       (2) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |                                             |
                |       (3) REPORT: <response status="200"/>  |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
                |       (5) CONTROL: <join id1=.. id2=..>     |
                |  ---------------------------------------->  |
                |                                             |
                |       (6) 202                               |
                |  <---------------------------------------   |
                |                                             |
                |       (7) REPORT: <response status="200"/>  |
                |                   (terminate)               |
                |  <----------------------------------------  |
                |                                             |
                |       (8) 200                               |
                |  ---------------------------------------->  |
        
6.1.2. Receiving Active Talker Notifications
6.1.2. 接收主动通话器通知

An active talker notification event is sent by the MS.

MS发送一个活动的通话器通知事件。

             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <event ...>              |
                |  <---------------------------------------   |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
        
             Application Server (AS)                   Media Server (MS)
                |                                             |
                |       (1) CONTROL: <event ...>              |
                |  <---------------------------------------   |
                |                                             |
                |       (4) 200                               |
                |  ---------------------------------------->  |
                |                                             |
        
6.1.3. Conference Termination
6.1.3. 会议终止

The MS receives a request to terminate the conference, resulting in conferenceexit and participant unjoined notifications.

MS收到终止会议的请求,导致会议退出和参与者未加入通知。

             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                               |
                |  ---------------------------------------->  |
        
             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                               |
                |  ---------------------------------------->  |
        
6.2. Mixing Examples
6.2. 混合示例

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.

这些示例并没有指定AS和MS之间的所有消息。

6.2.1. Audio Conferencing
6.2.1. 音讯会议

The AS sends a request to create a conference mixer:

AS发送创建会议混音器的请求:

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

该请求指定为会议分配了会议id“conf1”,并配置了2个保留的通话器、3个保留的侦听器插槽、设置为nbest的音频混合策略以及设置为5秒的活动通话器通知。

If the MS is able to create this conference mixer, it sends a 200 response:

如果MS能够创建此会议混音器,则会发送200响应:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <response status="200" reason="conference created"
              conferenceid="conf1"/>
   </mscmixer>
        
   <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:

AS现在可以作为参与者加入到会议的连接中。能够参与音频混音的参与者将按以下方式加入:

   <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>
        
   <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:

如果MS可以将参与者1536067209:913cd14c加入到具有双向音频的会议conf1中,则其将发送成功响应:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <response status="200" reason="join successful"/>
   </mscmixer>
        
   <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:

AS还可以通过将流方向设置为“仅接收”,将仅侦听者参与者加入会议:

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

如果MS可以将参与者9936067209:914cd14c加入会议conf1,则会发送成功响应(未显示)。

As the active talker changes, the MS sends an active talker notification to the AS:

当主动对讲机改变时,MS向As发送主动对讲机通知:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <event>
     <active-talkers-notify conferenceid="conf1">
      <active-talker connectionid="1536067209:913cd14c"/>
     </active-talkers-notify>
    </event>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <event>
     <active-talkers-notify conferenceid="conf1">
      <active-talker connectionid="1536067209:913cd14c"/>
     </active-talkers-notify>
    </event>
   </mscmixer>
        

The AS could decide to change the status of a talker connection so that they can only listen:

AS可以决定更改对讲机连接的状态,以便他们只能收听:

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

参与者1536067209:913cd14c不再能够参与会议上的音频混音。如果MS能够执行此请求,它将发送200响应。

The AS could decide to remove this participant from the conference:

AS可决定将该与会者从会议中除名:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <unjoin id1="1536067209:913cd14c" id2="conf1"/>
   </mscmixer>
        
   <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.

同样,如果MS可以执行此请求,则将发送200响应。

Finally, the AS terminates the conference:

最后,AS终止会议:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <destroyconference conferenceid="conf1"/>
   </mscmixer>
        
   <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:

如果MS能够销毁会议conf1,则发送200响应:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <response status="200" conferenceid="conf1"/>
   </mscmixer>
        
   <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:

对于销毁会议时附加到会议的每个参与者,MS发送取消加入通知事件:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <event>
     <unjoin-notify status="2" id1="9936067209:914cd14c"
         id2="conf1"/>
    </event>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <event>
     <unjoin-notify status="2" id1="9936067209:914cd14c"
         id2="conf1"/>
    </event>
   </mscmixer>
        

And the MS sends a conferenceexit notification event when the conference finally exits:

当会议最终退出时,MS发送conferenceexit通知事件:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <event>
     <conferenceexit status="0" conferenceid="conf1"/>
    </event>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <event>
     <conferenceexit status="0" conferenceid="conf1"/>
    </event>
   </mscmixer>
        
6.2.2. Bridging Connections
6.2.2. 桥接连接

The mixer package can 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 bidirectional 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>
        
   <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:

如果MS能够建立此连接,则它将发送200响应:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <response status="200"/>
   </mscmixer>
        
   <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 whispered guidance to the agent. First, the AS would send a request to join the supervisor and the caller connections:

现在假设AS希望一名主管倾听代理与呼叫方的对话,并向代理提供耳语指导。首先,AS将发送加入主管和呼叫者连接的请求:

   <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>
        
   <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:

其次,AS将发送加入主管和代理连接的请求:

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

如果此请求成功,音频混合将在代理和主管连接上发生:代理将听到呼叫者和主管,主管将听到代理和呼叫者。打电话的人只会听到代理的声音。如果MS无法以这种方式加入和混合连接,它将发送426响应。

6.2.3. Video Conferencing
6.2.3. 视频会议

In this example, an audio-video conference is created where the loudest participant has the most prominent region in the video layout.

在此示例中,创建了一个音视频会议,其中声音最大的参与者在视频布局中具有最突出的区域。

The AS sends a request to create an audio-video conference:

AS发送创建音频视频会议的请求:

   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <createconference conferenceid="conf2">
     <audio-mixing type="nbest"/>
     <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>
     <video-switch><vas/></video-switch>
    </createconference>
   </mscmixer>
        
   <mscmixer version="1.0" xmlns="urn:ietf:params:xml:ns:msc-mixer">
    <createconference conferenceid="conf2">
     <audio-mixing type="nbest"/>
     <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>
     <video-switch><vas/></video-switch>
    </createconference>
   </mscmixer>
        

In this configuration, the conference uses a nbest audio mixing policy and a <vas/> video-switching policy, so that the loudest speaker receives the most prominent region in the layout. Multiple video layouts are specified and the active one depends on the number of participants.

在此配置中,会议使用nbest音频混合策略和<vas/>视频切换策略,以便声音最大的扬声器接收布局中最突出的区域。指定了多个视频布局,活动布局取决于参与者的数量。

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.

假设已有4名参与者加入会议。在这种情况下,视频布局将是四视图(图6),最活跃的扬声器显示在区域1中。当第五个参与者加入时,视频布局自动切换到多个5x1布局(图9),同样是区域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:

AS可以操纵在其余区域中显示哪些参与者。例如,它可以强制将现有会议参与者显示在区域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>
        
   <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>
        
7. Security Considerations
7. 安全考虑

As this Control Package processes XML markup, implementations MUST address the security considerations of [RFC3023].

由于此控制包处理XML标记,因此实现必须解决[RFC3023]的安全注意事项。

As a Control Package of the Media Control Channel Framework, security, confidentiality, and integrity of messages transported over the Control Channel MUST be addressed as described in Section 12 of the Media Control Channel Framework ([RFC6230]), including transport-level protection, Control Channel policy management, and session establishment. In addition, implementations MUST address security,

作为媒体控制通道框架的控制包,通过控制通道传输的消息的安全性、机密性和完整性必须按照媒体控制通道框架([RFC6230])第12节所述进行处理,包括传输级别保护、控制通道策略管理和会话建立。此外,实施必须解决安全问题,

confidentiality, and integrity of User Agent sessions with the MS, both in terms of SIP signaling and the associated RTP media flow; see [RFC6230] for further details on this topic.

在SIP信令和相关RTP媒体流方面,与MS的用户代理会话的机密性和完整性;有关此主题的更多详细信息,请参阅[RFC6230]。

Adequate transport protection and authentication are critical, especially when the implementation is deployed in open networks. If the implementation fails to correctly address these issues, it risks exposure to malicious attacks, including (but not limited to):

充分的传输保护和身份验证至关重要,尤其是在开放网络中部署实现时。如果实施未能正确解决这些问题,则有可能遭受恶意攻击,包括(但不限于):

Denial of Service: An attacker could insert a request message into the transport stream causing specific conferences or join mixers on the MS to be destroyed. For example, <destroyconference conferenceid="XXXX">, where the value of "XXXX" could be guessed or discovered by auditing active mixers on the MS using an <audit> request. Likewise, an attacker could impersonate the MS and insert error responses into the transport stream thereby denying the AS access to package capabilities.

拒绝服务:攻击者可以将请求消息插入传输流,导致MS上的特定会议或加入混合器被破坏。例如,<audit conferenceid=“XXXX”>,其中“XXXX”的值可以通过使用<audit>请求对MS上的活动混合器进行审核来猜测或发现。同样,攻击者可以模拟MS并将错误响应插入传输流,从而拒绝AS对包功能的访问。

Resource Exhaustion: An attacker could insert into the Control Channel new request messages (or modify existing ones) with, for instance, <createconference> elements causing large numbers of conference mixer resources to be allocated. At some point, this will exhaust the number of conference mixers that the MS is able to allocate.

资源耗尽:攻击者可以在控制通道中插入新的请求消息(或修改现有消息),例如,<createconference>元素会导致分配大量会议混音器资源。在某个时刻,这将耗尽MS能够分配的会议混音器的数量。

The Media Control Channel Framework permits additional policy management (beyond that specified for the Media Control Channel Framework), including resource access and Control Channel usage, to be specified at the Control Package level. (See Section 12.3 of [RFC6230].)

介质控制通道框架允许在控制包级别指定额外的策略管理(超出为介质控制通道框架指定的策略管理),包括资源访问和控制通道使用。(见[RFC6230]第12.3节)

Since creation of conference and join mixers is associated with media-mixing resources on the MS, the security policy for this Control Package needs to address how such mixers are securely managed across more than one Control Channel. Such a security policy is only useful for secure, confidential, and integrity-protected channels. The identity of Control Channels is determined by the channel identifier, i.e., the value of the 'cfw-id' attribute in the SDP and Dialog-ID header in the channel protocol (see [RFC6230]). Channels are the same if they have the same identifier; otherwise, they are different. This Control Package imposes the following additional security policies:

由于会议和加入混频器的创建与MS上的媒体混合资源相关联,因此此控制包的安全策略需要解决如何跨多个控制通道安全管理此类混频器的问题。这样的安全策略仅对安全、机密和完整性保护的通道有用。控制通道的标识由通道标识符确定,即SDP中的“cfw id”属性值和通道协议中的对话id头(参见[RFC6230])。如果通道具有相同的标识符,则它们是相同的;否则,它们就不同了。此控制包强制实施以下附加安全策略:

Responses: The MS MUST only send a response to a mixer management or audit request using the same Control Channel as the one used to send the request.

响应:MS必须仅使用与发送请求相同的控制通道向混音器管理或审核请求发送响应。

Notifications: The MS MUST only send notification events for conference and join mixers using the same Control Channel as it received the request creating the mixer.

通知:MS必须仅为会议和加入混音器发送通知事件,使用与接收创建混音器的请求相同的控制通道。

Auditing: The MS MUST only provide audit information about conference and join mixers that have been created on the same Control Channel as the one upon which the <audit> request is sent. For example, if a join between two connections has been created on one channel, then a request on another channel to audit all mixers -- <audit mixers="true"/> -- would not report on this join mixer.

审核:MS必须仅提供关于会议和加入混音器的审核信息,这些会议和加入混音器是在与发送<audit>请求的控制通道相同的控制通道上创建的。例如,如果在一个通道上创建了两个连接之间的联接,那么在另一个通道上审核所有混频器的请求--<audit mixers=“true”/>将不会报告此联接混频器。

Rejection: The MS SHOULD reject requests to audit or manipulate an existing conference or join mixer on the MS if the channel is not the same as the one used when the mixer was created. The MS rejects a request by sending a Control Framework 403 response (see Sections 7.4 and 12.3 of [RFC6230]). For example, if a channel with identifier 'cfw1234' has been used to send a request to create a particular conference and the MS receives on channel 'cfw98969' a request to audit or destroy this particular conference, then the MS sends a Control Framework 403 response.

拒绝:如果频道与创建混音器时使用的频道不同,则MS应拒绝审核或操纵MS上现有会议或加入混音器的请求。MS通过发送控制框架403响应拒绝请求(参见[RFC6230]第7.4节和第12.3节)。例如,如果标识符为“cfw1234”的信道已被用于发送创建特定会议的请求,并且MS在信道“cfw98969”上接收到审核或销毁该特定会议的请求,则MS发送控制框架403响应。

There can be valid reasons why an implementation does not reject an audit or mixer manipulation request on a different channel from the one that created the mixer. For example, a system administrator might require a separate channel to audit mixer resources created by system users and to terminate mixers consuming excessive system resources. Alternatively, a system monitor or resource broker might require a separate channel to audit mixers managed by this package on a MS. However, the full implications need to be understood by the implementation and carefully weighed before accepting these reasons as valid. If the reasons are not valid in their particular circumstances, the MS rejects such requests.

实现不拒绝创建混音器的不同通道上的审核或混音器操作请求可能有合理的原因。例如,系统管理员可能需要一个单独的通道来审核系统用户创建的混音器资源,并终止消耗过多系统资源的混音器。或者,系统监视器或资源代理可能需要一个单独的通道来审核由该包在MS上管理的混音器。但是,在接受这些理由之前,实现需要理解全部含义并仔细权衡。如果理由在其特定情况下无效,MS将拒绝此类请求。

There can also be valid reasons for 'channel handover' including high availability support or when one AS needs to take over management of mixers after the AS that created them has failed. This could be achieved by the Control Channels using the same channel identifier, one after another. For example, assume a channel is created with the identifier 'cfw1234', and the channel is used to create mixers on the MS. This channel (and associated SIP dialog) then terminates due to a failure on the AS. As permitted by the Control Framework, the channel identifier 'cfw1234' could then be reused so that another channel is created with the same identifier 'cfw1234', allowing it to 'take over' management of the mixers on the MS. Again, the implementation needs to understand the full implications and carefully weigh them before accepting these reasons as valid. If the reasons are not valid for their particular circumstances, the MS uses

“频道切换”也可能有正当理由,包括高可用性支持,或者在创建混音器的AS出现故障后,AS需要接管混音器的管理。这可以通过一个接一个地使用相同信道标识符的控制信道来实现。例如,假设使用标识符“cfw1234”创建了一个通道,该通道用于在MS上创建混频器。然后,该通道(以及相关的SIP对话框)由于AS上的故障而终止。在控制框架允许的情况下,然后可以重用通道标识符“cfw1234”,以便使用相同标识符“cfw1234”创建另一个通道,从而允许其再次“接管”MS上混频器的管理,在接受这些理由之前,实施需要理解全部影响并仔细权衡。如果原因对其特定情况无效,MS将使用

the appropriate SIP mechanisms to prevent session establishment when the same channel identifier is used in setting up another Control Channel (see Section 4 of [RFC6230]).

当在设置另一个控制信道时使用相同的信道标识符时,防止建立会话的适当SIP机制(见[RFC6230]第4节)。

8. IANA Considerations
8. IANA考虑

Per this specification, IANA has registered a new Media Control Channel Framework Package, a new XML namespace, a new XML schema, and a new MIME type.

根据该规范,IANA注册了一个新的媒体控制通道框架包、一个新的XML名称空间、一个新的XML模式和一个新的MIME类型。

IANA has further created a new registry for the response codes for the MEDIACTRL Mixer Control Package, RFC 6505.

IANA还为MEDIACTRL混音器控制包RFC6505的响应代码创建了一个新的注册表。

8.1. Control Package Registration
8.1. 控制包注册

This section registers a new Media Control Channel Framework package, per the instructions in Section 13.1 of [RFC6230].

根据[RFC6230]第13.1节中的说明,本节注册了一个新的媒体控制通道框架包。

To: ietf-sip-control@iana.org Subject: Registration of new Channel Framework package Package Name: msc-mixer/1.0 Published Specification(s): RFC 6505 Person & email address to contact for further information: IETF MEDIACTRL working group (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org).

致:ietf sip-control@iana.org主题:注册新渠道框架包包名称:msc mixer/1.0发布规范:RFC 6505联系人和电子邮件地址,以获取更多信息:IETF MEDIACTRL工作组(mediactrl@ietf.org),Scott McGlashan(smcg。stds01@mcglashan.org).

8.2. URN Sub-Namespace Registration
8.2. URN子命名空间注册

This section registers a new XML namespace, "urn:ietf:params:xml:ns:msc-mixer", per the guidelines in RFC 3688 [RFC3688].

本节根据RFC 3688[RFC3688]中的指南注册了一个新的XML名称空间“urn:ietf:params:XML:ns:msc mixer”。

URI: urn:ietf:params:xml:ns:msc-mixer Registrant Contact: IETF MEDIACTRL working group (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org).

URI:urn:ietf:params:xml:ns:msc混音器注册人联系人:ietf MEDIACTRL工作组(mediactrl@ietf.org),Scott McGlashan(smcg。stds01@mcglashan.org).

         XML:
            BEGIN
            <?xml version="1.0"?>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
             <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
              <head>
               <title>Media Control Channel Framework Mixer
                      Package attributes</title>
              </head>
              <body>
               <h1>Namespace for Media Control Channel
                   Framework Mixer Package attributes</h1>
               <h2>urn:ietf:params:xml:ns:msc-mixer</h2>
           <p>See <a href="http://www.rfc-editor.org/rfc/rfc6505.txt">
              RFC 6505</a>.</p>
              </body>
             </html>
            END
        
         XML:
            BEGIN
            <?xml version="1.0"?>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
             <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
              <head>
               <title>Media Control Channel Framework Mixer
                      Package attributes</title>
              </head>
              <body>
               <h1>Namespace for Media Control Channel
                   Framework Mixer Package attributes</h1>
               <h2>urn:ietf:params:xml:ns:msc-mixer</h2>
           <p>See <a href="http://www.rfc-editor.org/rfc/rfc6505.txt">
              RFC 6505</a>.</p>
              </body>
             </html>
            END
        
8.3. XML Schema Registration
8.3. XML模式注册

This section registers an XML schema as per the guidelines in RFC 3688 [RFC3688].

本节根据RFC 3688[RFC3688]中的指南注册XML模式。

URI: urn:ietf:params:xml:schema:msc-mixer Registrant Contact: IETF MEDIACTRL working group (mediactrl@ietf.org), Scott McGlashan (smcg.stds01@mcglashan.org). Schema: The XML for this schema can be found in Section 5 of this document.

URI:urn:ietf:params:xml:schema:msc mixer注册人联系人:ietf MEDIACTRL工作组(mediactrl@ietf.org),Scott McGlashan(smcg。stds01@mcglashan.org). 模式:此模式的XML可以在本文档的第5节中找到。

8.4. MIME Media Type Registration for 'application/msc-mixer+xml'
8.4. “应用程序/msc混合器+xml”的MIME媒体类型注册

This section registers the "application/msc-mixer+xml" MIME type.

本节注册“application/msc mixer+xml”MIME类型。

To: ietf-types@iana.org Subject: Registration of MIME media type application/msc-mixer+xml MIME media type name: application MIME subtype name: msc-mixer+xml Required parameters: (none) Optional parameters: charset Indicates the character encoding of enclosed XML. Default is UTF-8. Encoding considerations: Uses XML, which can employ 8-bit characters, depending on the character encoding used. See RFC 3023 [RFC3023], Section 3.2.

致:ietf-types@iana.org主题:注册MIME媒体类型应用程序/msc mixer+xml MIME媒体类型名称:应用程序MIME子类型名称:msc mixer+xml必需参数:(无)可选参数:字符集表示封闭xml的字符编码。默认值为UTF-8。编码注意事项:使用XML,它可以使用8位字符,具体取决于所使用的字符编码。参见RFC 3023[RFC3023],第3.2节。

Security considerations: No known security considerations outside of those provided by the Media Control Channel Framework Mixer Package. Interoperability considerations: This content type provides constructs for the Media Control Channel Framework Mixer Package. Published specification: RFC 6505 Applications that use this media type: Implementations of the Media Control Channel Framework Mixer package. Additional Information: Magic Number(s): (none) File extension(s): (none) Macintosh File Type Code(s): (none) Person & email address to contact for further information: Scott McGlashan <smcg.stds01@mcglashan.org> Intended usage: LIMITED USE Author/Change controller: The IETF Other information: None.

安全注意事项:除了介质控制通道框架混音器包提供的安全注意事项外,没有已知的安全注意事项。互操作性注意事项:此内容类型为Media Control Channel Framework Mixer包提供构造。已发布规范:使用此介质类型的RFC6505应用程序:介质控制通道框架混合器包的实现。其他信息:魔法号码:(无)文件扩展名:(无)Macintosh文件类型代码:(无)联系人和电子邮件地址,以获取更多信息:Scott McGrashan<smcg。stds01@mcglashan.org>预期用途:有限使用作者/变更控制器:IETF其他信息:无。

8.5. Mixer Control Package Status Code Registration
8.5. 混音器控制包状态码注册

This section creates an IANA registry for the response codes for the MEDIACTRL Mixer Control Package. New status codes are assigned using the Standards Action process defined in RFC 5226 [RFC5226]. The initial population of the registry is defined in Section 4.6.

本节为MEDIACTRL混音器控制包的响应代码创建IANA注册表。使用RFC 5226[RFC5226]中定义的标准行动流程分配新的状态代码。第4.6节定义了登记册的初始人口。

The format of this registry is as follows:

本登记册的格式如下:

   +----------+----------------+----------------+----------------------+
   | Code     | Summary        | Description    | Reference            |
   +----------+----------------+----------------+----------------------+
   | status   | brief summary  | full           | reference document   |
   | code     | of the status  | description of | defining the status  |
   | number   | code           | the status     | code                 |
   |          |                | code           |                      |
   +----------+----------------+----------------+----------------------+
        
   +----------+----------------+----------------+----------------------+
   | Code     | Summary        | Description    | Reference            |
   +----------+----------------+----------------+----------------------+
   | status   | brief summary  | full           | reference document   |
   | code     | of the status  | description of | defining the status  |
   | number   | code           | the status     | code                 |
   |          |                | code           |                      |
   +----------+----------------+----------------+----------------------+
        

Table 2: Fields for Mixer Control Package Status Code Registry

表2:混合器控制包状态代码注册表字段

9. Contributors
9. 贡献者

Asher Shiratzky provided valuable support and contributions to early draft versions of this document.

Asher Shiratzky为本文件的早期草稿提供了宝贵的支持和贡献。

The authors would like to thank the Mixer design team consisting of Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan, and Mary Barnes who provided valuable feedback, input, diagrams, and text to this document.

作者要感谢由Roni Even、Lorenzo Miniero、Adnan Saleem、Diego Besprosvan和Mary Barnes组成的混合器设计团队,他们为本文件提供了宝贵的反馈、输入、图表和文本。

10. Acknowledgments
10. 致谢

The authors would like to thank Steve Buko and Stephane Bastien for expert reviews of this work.

作者要感谢Steve Buko和Stephane Bastien对这项工作的专家评论。

Shawn Emery carried out a thorough security review.

Shawn Emery进行了彻底的安全审查。

11. References
11. 工具书类
11.1. Normative References
11.1. 规范性引用文件

[RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996.

[RFC2045]Freed,N.和N.Borenstein,“多用途Internet邮件扩展(MIME)第一部分:Internet邮件正文格式”,RFC 20451996年11月。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001.

[RFC3023]Murata,M.,St.Laurent,S.,和D.Kohn,“XML媒体类型”,RFC 3023,2001年1月。

[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004.

[RFC3688]Mealling,M.“IETF XML注册表”,BCP 81,RFC 3688,2004年1月。

[RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and Registration Procedures", BCP 13, RFC 4288, December 2005.

[RFC4288]Freed,N.和J.Klensin,“介质类型规范和注册程序”,BCP 13,RFC 4288,2005年12月。

[RFC4574] Levin, O. and G. Camarillo, "The Session Description Protocol (SDP) Label Attribute", RFC 4574, August 2006.

[RFC4574]Levin,O.和G.Camarillo,“会话描述协议(SDP)标签属性”,RFC 45742006年8月。

[RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", BCP 47, RFC 4647, September 2006.

[RFC4647]Phillips,A.和M.Davis,“语言标记的匹配”,BCP 47,RFC 4647,2006年9月。

[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008.

[RFC5226]Narten,T.和H.Alvestrand,“在RFCs中编写IANA注意事项部分的指南”,BCP 26,RFC 5226,2008年5月。

[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008.

[RFC5234]Crocker,D.和P.Overell,“语法规范的扩充BNF:ABNF”,STD 68,RFC 5234,2008年1月。

[RFC5646] Phillips, A. and M. Davis, "Tags for Identifying Languages", BCP 47, RFC 5646, September 2009.

[RFC5646]Phillips,A.和M.Davis,“识别语言的标记”,BCP 47,RFC 5646,2009年9月。

[RFC6230] Boulton, C., Melanchuk, T., and S. McGlashan, "Media Control Channel Framework", RFC 6230, May 2011.

[RFC6230]Boulton,C.,Melanchuk,T.,和S.McGrashan,“媒体控制渠道框架”,RFC 6230,2011年5月。

[RFC6501] Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen, "Conference Information Data Model for Centralized Conferencing (XCON)", RFC 6501, March 2012.

[RFC6501]Novo,O.,Camarillo,G.,Morgan,D.,和J.Urpalainen,“集中会议的会议信息数据模型(XCON)”,RFC 65012012年3月。

[XML] Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E., and F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth Edition)", World Wide Web Consortium Recommendation REC-xml-20081126, November 2008, <http://www.w3.org/TR/2008/REC-xml-20081126>.

[XML]Bray,T.,Paoli,J.,Sperberg McQueen,C.,Maler,E.,和F.Yergeau,“可扩展标记语言(XML)1.0(第五版)”,万维网联盟建议REC-XML-20081126,2008年11月<http://www.w3.org/TR/2008/REC-xml-20081126>.

[XMLSchema:Part2] Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes Second Edition", W3C Recommendation, October 2004.

[XMLSchema:Part2]Biron,P.和A.Malhotra,“XMLSchema第2部分:数据类型第二版”,W3C推荐,2004年10月。

11.2. Informative References
11.2. 资料性引用

[IANA] IANA, "RTP Payload Types", <http://www.iana.org/assignments/rtp-parameters>.

[IANA]IANA,“RTP有效负载类型”<http://www.iana.org/assignments/rtp-parameters>.

[MIME.mediatypes] IANA, "MIME Media Types", <http://www.iana.org/assignments/media-types>.

[MIME.mediatypes]IANA,“MIME媒体类型”<http://www.iana.org/assignments/media-types>.

[RFC2277] Alvestrand, H., "IETF Policy on Character Sets and Languages", BCP 18, RFC 2277, January 1998.

[RFC2277]Alvestrand,H.,“IETF字符集和语言政策”,BCP 18,RFC 2277,1998年1月。

[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.

[RFC3261]Rosenberg,J.,Schulzrinne,H.,Camarillo,G.,Johnston,A.,Peterson,J.,Sparks,R.,Handley,M.,和E.Schooler,“SIP:会话启动协议”,RFC 3261,2002年6月。

[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003.

[RFC3550]Schulzrinne,H.,Casner,S.,Frederick,R.,和V.Jacobson,“RTP:实时应用的传输协议”,STD 64,RFC 35502003年7月。

[RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server Control Markup Language (MSCML) and Protocol", RFC 5022, September 2007.

[RFC5022]Van Dyke,J.,Burger,E.,和A.Spitzer,“媒体服务器控制标记语言(MSCML)和协议”,RFC 5022,2007年9月。

[RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol Requirements", RFC 5167, March 2008.

[RFC5167]Dolly,M.和R.Een,“媒体服务器控制协议要求”,RFC 51672008年3月。

[RFC5707] Saleem, A., Xin, Y., and G. Sharratt, "Media Server Markup Language (MSML)", RFC 5707, February 2010.

[RFC5707]Saleem,A.,Xin,Y.,和G.Sharratt,“媒体服务器标记语言(MSML)”,RFC 57072010年2月。

Authors' Addresses

作者地址

Scott McGlashan Hewlett-Packard

斯科特·麦克拉桑·惠普公司

   EMail: smcg.stds01@mcglashan.org
        
   EMail: smcg.stds01@mcglashan.org
        

Tim Melanchuk Rainwillow

蒂姆·梅兰丘克·雷威洛

   EMail: timm@rainwillow.com
        
   EMail: timm@rainwillow.com
        

Chris Boulton NS-Technologies

克里斯·博尔顿技术公司

   EMail: chris@ns-technologies.com
        
   EMail: chris@ns-technologies.com