idnits 2.17.1 draft-ietf-mediactrl-mixer-control-package-14.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 21 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 3674 has weird spacing: '... . . . . . . . . . . . . . . . . . . . . . . . 11 80 4.2. Mixer Elements . . . . . . . . . . . . . . . . . . . . . 13 81 4.2.1. Conference Elements . . . . . . . . . . . . . . . . . 14 82 4.2.1.1. . . . . . . . . . . . . . . . 14 83 4.2.1.2. . . . . . . . . . . . . . . . 16 84 4.2.1.3. . . . . . . . . . . . . . . . 18 85 4.2.1.4. Conference Configuration . . . . . . . . . . . . 18 86 4.2.1.4.1. . . . . . . . . . . . . . . . 18 87 4.2.1.4.2. . . . . . . . . . . . . . . . 19 88 4.2.1.4.2.1. . . . . . . . . . . . . . 20 89 4.2.1.4.3. . . . . . . . . . . . . . . . 26 90 4.2.1.4.3.1. Priority assignment . . . . . . . . . . . 28 91 4.2.1.4.4. . . . . . . . . . . . . . . . . . 29 92 4.2.1.4.4.1. . . . . . . . . . . 29 93 4.2.2. Joining Elements . . . . . . . . . . . . . . . . . . 29 94 4.2.2.1. Joining Model . . . . . . . . . . . . . . . . . . 30 95 4.2.2.2. . . . . . . . . . . . . . . . . . . . . . 31 96 4.2.2.3. . . . . . . . . . . . . . . . . . . 33 97 4.2.2.4. . . . . . . . . . . . . . . . . . . . . 36 98 4.2.2.5. . . . . . . . . . . . . . . . . . . . . 37 99 4.2.2.5.1. . . . . . . . . . . . . . . . . . . 39 100 4.2.2.5.2. . . . . . . . . . . . . . . . . . . . 39 101 4.2.2.5.3. . . . . . . . . . . . . . . . . . . 39 102 4.2.2.5.4. . . . . . . . . . . . . . . . . . 40 103 4.2.3. . . . . . . . . . . . . . . . . . . . . . 40 104 4.2.4. . . . . . . . . . . . . . . . . . . . . . . . 41 105 4.2.4.1. . . . . . . . . . . . . . 41 106 4.2.4.1.1. . . . . . . . . . . . . . . . 41 107 4.2.4.2. . . . . . . . . . . . . . . . . . 42 108 4.2.4.3. . . . . . . . . . . . . . . . . 43 109 4.3. Audit Elements . . . . . . . . . . . . . . . . . . . . . 44 110 4.3.1. . . . . . . . . . . . . . . . . . . . . . . . 44 111 4.3.2. . . . . . . . . . . . . . . . . . . . 46 112 4.3.2.1. . . . . . . . . . . . . . . . . . 47 113 4.3.2.2. . . . . . . . . . . . . . . . . . . . . 48 114 4.3.2.2.1. . . . . . . . . . . . . . . 48 115 4.3.2.2.1.1. . . . . . . . . . . . . . 49 116 4.3.2.2.1.1.1. . . . . . . . . . . . . 49 117 4.3.2.2.2. . . . . . . . . . . . . . . . . . 50 118 4.4. . . . . . . . . . . . . . . . . . . . . . . . . 50 119 4.4.1. . . . . . . . . . . . . . . . . . . . . . . . 51 120 4.5. . . . . . . . . . . . . . . . . . . . . . . . . 52 121 4.5.1. . . . . . . . . . . . . . . . . . . . . . . . 52 122 4.6. Response Status Codes . . . . . . . . . . . . . . . . . . 53 123 4.7. Type Definitions . . . . . . . . . . . . . . . . . . . . 57 124 5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 59 125 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 78 126 6.1. AS-MS Framework Interaction Examples . . . . . . . . . . 78 127 6.1.1. Creating a conference mixer and joining a 128 participant . . . . . . . . . . . . . . . . . . . . . 78 129 6.1.2. Receiving active talker notifications . . . . . . . . 79 130 6.1.3. Conference termination . . . . . . . . . . . . . . . 79 131 6.2. Mixing Examples . . . . . . . . . . . . . . . . . . . . . 79 132 6.2.1. Audio conferencing . . . . . . . . . . . . . . . . . 80 133 6.2.2. Bridging connections . . . . . . . . . . . . . . . . 82 134 6.2.3. Video conferencing . . . . . . . . . . . . . . . . . 83 135 7. Security Considerations . . . . . . . . . . . . . . . . . . . 85 136 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 88 137 8.1. Control Package Registration . . . . . . . . . . . . . . 88 138 8.2. URN Sub-Namespace Registration . . . . . . . . . . . . . 88 139 8.3. XML Schema Registration . . . . . . . . . . . . . . . . . 89 140 8.4. MIME Media Type Registration for 141 'application/msc-mixer+xml' . . . . . . . . . . . . . . . 89 142 9. Change Summary . . . . . . . . . . . . . . . . . . . . . . . 91 143 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 101 144 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 102 145 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 103 146 12.1. Normative References . . . . . . . . . . . . . . . . . . 103 147 12.2. Informative References . . . . . . . . . . . . . . . . . 104 148 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 105 150 1. Introduction 152 The Media Control Channel Framework 153 [I-D.ietf-mediactrl-sip-control-framework] provides a generic 154 approach for establishment and reporting capabilities of remotely 155 initiated commands. The Control Framework - an equivalent term for 156 the Media Control Channel Framework - utilizes many functions 157 provided by the Session Initiation Protocol [RFC3261] (SIP) for the 158 rendezvous and establishment of a reliable channel for control 159 interactions. The Control Framework also introduces the concept of a 160 Control Package. A Control Package is an explicit usage of the 161 Control Framework for a particular interaction set. This 162 specification defines a package for media conference mixers and media 163 connection mixers. 165 This package defines mixer management elements for creating, 166 modifying and deleting conference mixers, elements for joining, 167 modifying and unjoining media streams between connections and 168 conferences (including mixers between connections), as well as 169 associated responses and notifications. The package also defines 170 elements for auditing package capabilities and mixers. 172 This package has been designed to satisfy media mixing requirements 173 documented in the Media Server Control Protocol Requirements document 174 ([RFC5167]); more specifically REQ-MCP-22, REQ-MCP-23, REQ-MCP-24, 175 REQ-MCP-25, REQ-MCP-26 and REQ-MCP-27. 177 The package provides the major conferencing functionality of SIP 178 Media Server languages such as MSCML ([RFC5022]) and MSML 179 ([RFC5707]). A key differentiator is that this package provides such 180 functionality using the Media Control Channel Framework. 182 Out of scope for this mixer package are more advanced functions 183 including personalized video mixes for conference participants, 184 support for floor control protocols, as well as support for video 185 overlays and text insertion. Such functionality can be addressed by 186 extensions to this package (through addition of foreign elements or 187 attributes from another namespace) or use of other control packages 188 which could build upon this package. 190 The functionality of this package is defined by messages, containing 191 XML [XML] elements, transported using the Media Control Channel 192 Framework. The XML elements can be divided into two types: mixer 193 management elements; and elements for auditing package capabilities 194 as well as mixers managed by the package. 196 The document is organized as follows. Section 3 describes how this 197 control package fulfills the requirements for a Media Control Channel 198 Framework control package. Section 4 describes the syntax and 199 semantics of defined elements, including mixer management 200 (Section 4.2) and audit elements (Section 4.3). Section 5 describes 201 an XML schema for these elements and provides extensibility by 202 allowing attributes and elements from other namespaces. Section 6 203 provides examples of package usage. Section 7 describes important 204 security considerations for use of this control package. Section 8 205 provides information on IANA registration of this control package, 206 including its name, XML namespace and MIME media type. 208 2. Conventions and Terminology 210 In this document, BCP 14/RFC 2119 [RFC2119] defines the key words 211 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", 212 "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 213 "OPTIONAL". In addition, BCP 15 indicates requirement levels for 214 compliant implementations. 216 The following additional terms are defined for use in this document: 218 Application server: A SIP [RFC3261] application server (AS) is a 219 control client that hosts and executes services such as 220 interactive media and conferencing in an operator's network. An 221 AS controls the media server (MS), influencing and impacting the 222 SIP sessions terminating on a media server, which the AS can have 223 established for example using SIP third party call control. 225 Media Server: A media server (MS) processes media streams on behalf 226 of an AS by offering functionality such as interactive media, 227 conferencing, and transcoding to the end user. Interactive media 228 functionality is realized by way of dialogs, which are identified 229 by a URI and initiated by the application server. 231 MS Conference: A MS Conference provides the media related mixing 232 resources and services for conferences. In this document, A MS 233 Conference is often referred to simply as a conference. 235 MS Connection: A Media Server connection represents the termination 236 on a media server of one or more RTP [RFC3550] sessions that are 237 associated to a single SIP dialog. A media server receives media 238 from the output(s) of a connection and it transmits media on the 239 input(s) of a connection. 241 Media Stream: A media stream on a media server represents a media 242 flow between either a connection and a conference, between two 243 connections, or between two conferences. Streams can be audio or 244 video and can be bi-directional or uni-directional. 246 3. Control Package Definition 248 This section fulfills the mandatory requirement for information that 249 MUST be specified during the definition of a Control Framework 250 Package, as detailed in Section 8 of 251 [I-D.ietf-mediactrl-sip-control-framework]. 253 3.1. Control Package Name 255 The Control Framework requires a Control Package definition to 256 specify and register a unique name. The name and version of this 257 Control Package is "msc-mixer/1.0" (Media Server Control - Mixer - 258 version 1.0). Its IANA registration is specified in Section 8.1. 260 Since this is the initial ("1.0") version of the control package, 261 there are no backwards compatibility issues to address. 263 3.2. Framework Message Usage 265 The Control Framework requires a Control Package to explicitly detail 266 the control messages that can be used as well as provide an 267 indication of directionality between entities. This will include 268 which role type is allowed to initiate a request type. 270 This package specifies CONTROL and response messages in terms of XML 271 elements defined in Section 4, where the message bodies have the MIME 272 media type defined in Section 8.4. These elements describe requests, 273 response and notifications and all are contained within a root 274 element (Section 4.1). 276 In this package, the MS operates as a Control Server in receiving 277 requests from, and sending responses to, the AS (operating as Control 278 Client). Mixer management requests and responses are defined in 279 Section 4.2. Audit requests and responses are defined in 280 Section 4.3. Mixer management and audit responses are carried in a 281 framework 200 response or REPORT message bodies. This package's 282 response codes are defined in Section 4.6. 284 Note that package responses are different from framework response 285 codes. Framework error response codes (see Section 8 of 286 [I-D.ietf-mediactrl-sip-control-framework]) are used when the request 287 or event notification is invalid; for example, a request is invalid 288 XML (400), or not understood (500). 290 The MS also operates as a Control Client in sending event 291 notification to the AS (Control Server). Event notifications 292 (Section 4.2.4) are carried in CONTROL message bodies. The AS MUST 293 respond with a Control Framework 200 response. 295 3.3. Common XML Support 297 The Control Framework requires a Control Package definition to 298 specify if the attributes for media dialog or conference references 299 are required. 301 This package requires that the XML Schema in Section 16.1 of 302 [I-D.ietf-mediactrl-sip-control-framework] MUST be supported for 303 media dialogs and conferences. 305 The package uses "connectionid" and "conferenceid" attributes for 306 various element definitions (Section 4). The XML schema (Section 5) 307 imports the definitions of these attributes from the framework 308 schema. 310 3.4. CONTROL Message Body 312 The Control Framework requires a Control Package to define the 313 control body that can be contained within a CONTROL command request 314 and to indicate the location of detailed syntax definitions and 315 semantics for the appropriate body types. 317 When operating as Control Server, the MS receives CONTROL messages 318 with the MIME media type defined in Section 8.4 and a body containing 319 a element (Section 4.1) with either a mixer management or 320 audit request child element. 322 The following mixer management request elements are carried in 323 CONTROL message bodies to MS: (Section 4.2.1.1), 324 (Section 4.2.1.2), 325 (Section 4.2.1.3), (Section 4.2.2.2), 326 (Section 4.2.2.3) and (Section 4.2.2.4) elements. 328 The request element (Section 4.3.1) is also carried in 329 CONTROL message bodies. 331 When operating as Control Client, the MS sends CONTROL messages with 332 the MIME media type defined in Section 8.4 and a body containing a 333 element (Section 4.1) with a notification child 334 element (Section 4.2.4). 336 3.5. REPORT Message Body 338 The Control Framework requires a control package definition to define 339 the REPORT body that can be contained within a REPORT command 340 request, or that no report package body is required. This section 341 indicates the location of detailed syntax definitions and semantics 342 for the appropriate body types. 344 When operating as Control Server, the MS sends REPORT bodies with the 345 MIME media type defined in Section 8.4 and a element with 346 a response child element. The response element for mixer management 347 requests is a element (Section 4.2.3). The response 348 element for an audit request is a element 349 (Section 4.3.2). 351 3.6. Audit 353 The Control Framework encourages Control Packages to specify whether 354 auditing is available, how it is triggered as well as the query/ 355 response formats. 357 This Control Packages supports auditing of package capabilities and 358 mixers on the MS. An audit request is carried in a CONTROL message 359 and an audit response in a REPORT message (or a 200 response to the 360 CONTROL if it can execute the audit in time). 362 The syntax and semantics of audit request and response elements is 363 defined in Section 4.3. 365 3.7. Examples 367 The Control Framework recommends Control Packages to provide a range 368 of message flows that represent common flows using the package and 369 this framework document. 371 This Control Package provides examples of such message flows in 372 Section 6. 374 4. Element Definitions 376 This section defines the XML elements for this package. The elements 377 are defined in the XML namespace specified in Section 8.2. 379 The root element is (Section 4.1). All other XML elements 380 (requests, responses and notification elements) are contained within 381 it. Child elements describe mixer management (Section 4.2) and audit 382 (Section 4.3) functionality. Response status codes are defined in 383 Section 4.6 and type definitions in Section 4.7. 385 Implementation of this control package MUST address the Security 386 Considerations described in Section 7. 388 Implementation of this control package MUST adhere to the syntax and 389 semantics of XML elements defined in this section and the schema 390 (Section 5). The XML schema supports extensibility by allowing 391 attributes and elements from other namespaces. Implementations MAY 392 support attributes and elements from other (foreign) namespaces. If 393 an MS implementation receives a element containing 394 attributes or elements from another namespace which it does not 395 support, the MS sends a 428 response (Section 4.6). 397 Extensible attributes and elements are not described in this section. 398 In all other cases where there is a difference in constraints between 399 the XML schema and the textual description of elements in this 400 section, the textual definition takes priority. 402 Some elements in this control package contain attributes whose value 403 is descriptive text primarily for diagnostic use. The implementation 404 can indicated the language used in the descriptive text by means of a 405 'desclang' attribute ([RFC2277]). The desclang attribute can appear 406 on the root element as well as selected subordinate elements (see 407 Section 4.1). The desclang attribute value on the root element 408 applies to all desclang attributes in subordinate elements unless the 409 subordinate element has an explicit desclang attribute which 410 overrides it. 412 Usage examples are provided in Section 6. 414 4.1. 416 The element has the following attributes (in addition to 417 standard XML namespace attributes such as xmlns): 419 version: a string specifying the mscmixer package version. The 420 value is fixed as '1.0' for this version of the package. The 421 attribute is mandatory. 423 desclang: specifies the language used in descriptive text attributes 424 of subordinate elements (unless the subordinate element provides a 425 desclang attribute which overrides the value for its descriptive 426 text attributes). The descriptive text attributes on subordinate 427 elements include: the reason attribute on 428 (Section 4.2.3), (Section 4.2.4.2), 429 (Section 4.2.4.3) and 430 (Section 4.3.2). A valid value is a language identifier 431 (Section 4.7.7). The attribute is optional. The default value is 432 i-default (BCP47 [RFC5646]). 434 The element has the following defined child elements, only 435 one of which can occur: 437 1. mixer management elements defined in Section 4.2: 439 create and configure a new conference mixer. 440 See Section 4.2.1.1 442 modify the configuration of an existing 443 conference mixer. See Section 4.2.1.2 445 destroy an existing conference mixer. See 446 Section 4.2.1.3 448 create and configure media streams between connections 449 and/or conferences (for example, add a participant to a 450 conference). See Section 4.2.2.2 452 modify the configuration of joined media streams. 453 See Section 4.2.2.3 455 delete a media stream (for example, remove a 456 participant from a conference). See Section 4.2.2.4 458 response to a mixer request. See Section 4.2.3 460 mixer or subscription notification. See Section 4.2.4 462 2. audit elements defined in Section 4.3: 464 audit package capabilities and managed mixers. See 465 Section 4.3.1 467 response to an audit request. See Section 4.3.2 469 For example, a request to the MS to create a conference mixer: 471 472 473 475 and a response from the MS that the conference was successfully 476 created: 478 480 482 484 4.2. Mixer Elements 486 This section defines the mixer management XML elements for this 487 control package. These elements are divided into requests, responses 488 and notifications. 490 Request elements are sent to the MS to request a specific mixer 491 operation to be executed. The following request elements are 492 defined: 494 create and configure a new a conference mixer. 495 See Section 4.2.1.1 497 modify the configuration of an existing 498 conference mixer. See Section 4.2.1.2 500 destroy an existing conference mixer. See 501 Section 4.2.1.3 503 create and configure media streams between connections and/or 504 conferences (for example, add a participant to a conference). See 505 Section 4.2.2.2 507 modify the configuration of joined media streams. See 508 Section 4.2.2.3 510 delete a media stream (for example, remove a participant 511 from a conference). See Section 4.2.2.4 513 Responses from the MS describe the status of the requested operation. 514 Responses are specified in a element (Section 4.2.3) which 515 includes a mandatory attribute describing the status in terms of a 516 numeric code. Response status codes are defined in Section 4.6. The 517 MS MUST respond to a request message with a response message. If the 518 MS is not able to process the request and carry out the mixer 519 operation (in whole or in part), then the request has failed: the MS 520 MUST ensure that no part of the requested mixer operation is carried 521 out, and the MS MUST indicate the class of failure using an 522 appropriate 4xx response code. Unless an error response code is 523 specified for a class of error within this section, implementations 524 follow Section 4.6 in determining the appropriate status code for the 525 response. 527 Notifications are sent from the MS to provide updates on the status 528 of a mixer operation or subscription. Notifications are specified in 529 an element (Section 4.2.4). 531 4.2.1. Conference Elements 533 4.2.1.1. 535 The element is sent to the MS to request creation 536 of a new conference (multiparty) mixer. 538 The element has the following attributes: 540 conferenceid: string indicating a unique name for the new 541 conference. If this attribute is not specified, the MS MUST 542 create a unique name for the conference. The value is used in 543 subsequent references to the conference (e.g. as conferenceid in a 544 ). The attribute is optional. There is no default 545 value. 547 reserved-talkers: indicates the requested number of guaranteed 548 speaker slots to be reserved for the conference. A valid value is 549 a non-negative integer (see Section 4.7.2). The attribute is 550 optional. The default value is 0. 552 reserved-listeners: indicates the requested number of guaranteed 553 listener slots to be reserved for the conference. A valid value 554 is a non-negative integer (see Section 4.7.2). The attribute is 555 optional. The default value is 0. 557 The element has the following sequence of child 558 elements: 560 : an element to configure the codecs supported by the 561 conference (see Section 4.4). If codecs are specified, then they 562 impose limitations in media capability when the MS attempts to 563 join the conference to other entities (see Section 4.2.2.2 and 564 Section 4.2.2.3). The element is optional. 566 : an element to configure the audio mixing 567 characteristics of a conference (see Section 4.2.1.4.1). The 568 element is optional. 570 : an element to configure the video layouts of a 571 conference (see Section 4.2.1.4.2). The element is optional. 573 : an element to configure the video switch policy for 574 the layout of a conference (see Section 4.2.1.4.3). The element 575 is optional. 577 : an element to request subscription to conference 578 events. (see Section 4.2.1.4.4). The element is optional. 580 If the conferenceid attribute specifies a value which is already used 581 by an existing conference, the MS reports an error (405) and MUST NOT 582 create a new conference and MUST NOT affect the existing conference. 584 If the MS is unable to configure the conference according to 585 specified reserved-talkers or reserved-listeners attributes, the MS 586 reports an error (420) and MUST NOT create the conference. 588 If the MS is unable to configure the conference according to a 589 specified element, the MS reports an error (421) and 590 MUST NOT create the conference. 592 If the MS is unable to configure the conference according to a 593 specified element, the MS reports an error (423) and 594 MUST NOT create the conference. 596 If the MS is unable to configure the conference according to a 597 specified element, the MS reports an error (424) and 598 MUST NOT create the conference. 600 If the MS is unable to configure the conference according to a 601 specified element, the MS reports an error (425) and MUST 602 NOT create the conference. 604 When a MS has finished processing a request, it 605 MUST reply with an appropriate element (Section 4.2.3). 607 For example, a request to create an audio video conference mixer with 608 specified codecs, video layout, video switch and subscription: 610 611 613 614 615 H264 616 617 618 PCMA 619 620 621 622 623 624 625 626 627 628 629 630 631 632 634 and a response from the MS if the conference was successfully 635 created: 637 638 639 641 alternatively, a response if MS could not create the conference due 642 to a lack of support for the H264 codec: 644 645 647 649 4.2.1.2. 651 The element is sent to the MS to request 652 modification of an existing conference. 654 The element has the following attributes: 656 conferenceid: string indicating the name of the conference to 657 modify. This attribute is mandatory. 659 The element has the following sequence of child 660 elements (1 or more): 662 : an element to configure the codecs supported by the 663 conference (see Section 4.4). If codecs are specified, then they 664 impose limitations in media capability when the MS attempts to 665 join the conference to other entities (see Section 4.2.2.2 and 666 Section 4.2.2.3). Existing conference participants are unaffected 667 by any policy change. The element is optional. 669 : an element to configure the audio mixing 670 characteristics of a conference (see Section 4.2.1.4.1). The 671 element is optional. 673 : an element to configure the video layouts of a 674 conference (see Section 4.2.1.4.2). The element is optional. 676 : an element to configure the video switch policy for 677 the layout of a conference (see Section 4.2.1.4.3). The element 678 is optional. 680 : an element to request subscription to conference 681 events. (see Section 4.2.1.4.4). The element is optional. 683 If the conferenceid attribute specifies the name of a conference 684 which does not exist, the MS reports an error (406). 686 If the MS is unable to configure the conference according to a 687 specified element, the MS reports an error (421) and 688 MUST NOT modify the conference in any way. 690 If the MS is unable to configure the conference according to a 691 specified element, the MS reports an error (423) and 692 MUST NOT modify the conference in any way. 694 If the MS is unable to configure the conference according to a 695 specified element, the MS reports an error (424) and 696 MUST NOT modify the conference in any way. 698 If the MS is unable to configure the conference according to a 699 specified element, the MS reports an error (425) and MUST 700 NOT modify the conference. 702 When a MS has finished processing a request, it 703 MUST reply with an appropriate element (Section 4.2.3). 705 4.2.1.3. 707 The element is sent to the MS to request 708 destruction of an existing conference. 710 The element has the following attributes: 712 conferenceid: string indicating the name of the conference to 713 destroy. This attribute is mandatory. 715 The element does not specify any child elements. 717 If the conferenceid attribute specifies the name of a conference 718 which does not exist, the MS reports an error (406). 720 When a MS has finished processing a request, it 721 MUST reply with an appropriate element (Section 4.2.3). 723 Successfully destroying the conference (status code 200) will result 724 in all connection or conference participants being removed from the 725 conference mixer, notification events 726 (Section 4.2.4.2) being sent for each conference participant and a 727 notification event (Section 4.2.4.3) indicating that 728 conference has exited. A with any other status code 729 indicates that the conference mixer still exists and participants are 730 still joined to the mixer. 732 4.2.1.4. Conference Configuration 734 The elements in this section are used to establish and modify the 735 configuration of conferences. 737 4.2.1.4.1. 739 The element defines the configuration of the 740 conference audio mix. 742 The element has the following attributes: 744 type: is a string indicating the audio stream mixing policy. 745 Defined values are: "nbest" (where the N best (loudest) 746 participant signals are mixed) and "controller" (where the 747 contributing participant(s) is/are selected by the controlling AS 748 via an external floor control protocol). The attribute is 749 optional. The default value is "nbest". 751 n: indicates the number of eligible participants included in the 752 conference audio mix. An eligible participant is a participant 753 who contributes audio to the conference. Inclusion is based on 754 having the greatest audio energy. A valid value is a non-negative 755 integer (see Section 4.7.2). A value of 0 indicates that all 756 participants contributing audio to the conference are included in 757 the audio mix. The default value is 0. The element is optional. 759 If the type attribute does not have the value "nbest", the MS ignores 760 the "n" attribute. 762 The element has no child elements. 764 For example, a fragment where the audio mixing policy is set to 765 "nbest" with 3 participants to be included: 767 769 If the conference had 200 participants of whom 30 contributed audio, 770 then there would be 30 eligible participants for the audio mix. Of 771 these, the 3 loudest participants would have their audio included in 772 the conference. 774 4.2.1.4.2. 776 The element describe the video presentation layout 777 configuration for participants providing a video input stream to the 778 conference. This element allows multiple video layouts to be 779 specified so that the MS automatically changes layout depending on 780 the number of video-enabled participants. 782 The element has no attributes. 784 The element has the following sequence of child 785 elements (1 or more): 787 : element describing a video layout 788 (Section 4.2.1.4.2.1). 790 If the MS does not support video conferencing at all, or does not 791 support multiple video layouts, or does not support a specific video 792 layout, the MS reports an 423 error in the response to the request 793 element containing the element. 795 An MS MAY support more than one element, although only 796 one layout can be active at a time. A is active if 797 the number of participants in the conference is equal to or greater 798 than the value of its "min-participants" attribute, but less than the 799 value of the "min-participants" attribute for any other element. An MS reports an error (400) if more than one 801 has the same value for the "min-participants" 802 attribute. When the number of regions within the active layout is 803 greater than the number of participants in the conference, the 804 display of unassigned regions is implementation-specific. 806 The assignment of participant video streams to regions within the 807 layout is according to the video switch policy specified by the 808 element (Section 4.2.1.4.3). 810 For example, a fragment describing a single layout: 812 813 814 816 And a fragment describing a sequence of layouts: 818 819 820 821 822 823 825 When the conference has one participant providing a video input 826 stream to the conference, then the single-view format is used. When 827 the conference has two such participants, the dual-view layout is 828 used. When the conference has three or four participants, the quad- 829 view layout is used. When the conference has five or more 830 participants, the multiple-3x3 layout is used. 832 4.2.1.4.2.1. 834 The element describes a video layout containing one or 835 more regions in which participant video input streams are displayed. 837 The element has the following attributes: 839 min-participants: the minimum number of conference participants 840 needed to allow this layout to be active. A valid value is a 841 positive integer (see Section 4.7.3). The attribute is optional. 842 The default value is 1. 844 The element has one child element specifying the video 845 layout. An MS MAY support the predefined video layouts defined in 846 the XCON conference information data model 847 ([I-D.ietf-xcon-common-data-model]): , , 848 , , , , 849 , and . 851 The MS MAY support other video layouts. Non-XCON layouts MUST be 852 specified using an element from a namespace other than the one used 853 in this specification. For example, 855 856 my-single-view 857 859 If the MS does not support the specified video layout configuration, 860 then the MS reports a 423 error (Section 4.6) in the response to the 861 request element containing the element. 863 Each video layout has associated with it one or more regions. The 864 XCON layouts are associated with the following named regions: 866 layout with one stream in a single region as shown in 867 Figure 1. 869 +-----------+ 870 | | 871 | | 872 | 1 | 873 | | 874 | | 875 +-----------+ 877 Figure 1: single-view video layout 879 layout presenting two streams side-by-side in two 880 regions as shown in Figure 2. The MS MUST NOT alter the aspect 881 ratio of each stream to fit the region and hence the MS might need 882 to blank out part of each region. 884 +-----------+-----------+ 885 | | | 886 | | | 887 | 1 | 2 | 888 | | | 889 | | | 890 +-----------+-----------+ 892 Figure 2: dual-view video layout 894 layout presenting two streams side-by-side in two 895 regions as shown in Figure 3. The MS MUST alter the aspect ratio 896 of each stream to fit its region so that no blanking is required. 898 +-----------+-----------+ 899 | | | 900 | | | 901 | 1 | 2 | 902 | | | 903 | | | 904 +-----------+-----------+ 906 Figure 3: dual-view-crop video layout 908 layout presenting two streams one above the other 909 in two regions as shown in Figure 4. The MS MUST NOT alter the 910 aspect ratio of each stream to fit its region and hence the MS 911 might need to blank out part of each region. 913 +-----------+ 914 | | 915 | | 916 | 1 | 917 | | 918 | | 919 +-----------+ 920 | | 921 | | 922 | 2 | 923 | | 924 | | 925 +-----------+ 927 Figure 4: dual-view-2x1 video layout 929 layout presenting two streams one above the 930 other in two regions as shown in Figure 5. The MS MUST alter the 931 aspect ratio of each stream to fit its region so that no blanking 932 is required. 934 +-----------+ 935 | | 936 | | 937 | 1 | 938 | | 939 | | 940 +-----------+ 941 | | 942 | | 943 | 2 | 944 | | 945 | | 946 +-----------+ 948 Figure 5: dual-view-2x1-crop video layout 950 layout presenting four equal-sized regions in a 2x2 951 layout as shown in Figure 6. Typically the aspect ratio of the 952 streams is preserved, so blanking is required. 954 +-----------+-----------+ 955 | | | 956 | | | 957 | 1 | 2 | 958 | | | 959 | | | 960 +-----------+-----------+ 961 | | | 962 | | | 963 | 3 | 4 | 964 | | | 965 | | | 966 +-----------+-----------+ 968 Figure 6: quad-view video layout 970 layout presenting nine equal-sized regions in a 3x3 971 layout as shown in Figure 7. Typically the aspect ratio of the 972 streams is preserved, so blanking is required. 974 +-----------+-----------+-----------+ 975 | | | | 976 | | | | 977 | 1 | 2 | 3 | 978 | | | | 979 | | | | 980 +-----------+-----------+-----------+ 981 | | | | 982 | | | | 983 | 4 | 5 | 6 | 984 | | | | 985 | | | | 986 +-----------+-----------+-----------+ 987 | | | | 988 | | | | 989 | 7 | 8 | 9 | 990 | | | | 991 | | | | 992 +-----------+-----------+-----------+ 994 Figure 7: multiple-3x3 video layout 996 layout presenting sixteen equal-sized regions in a 997 4x4 layout as shown in Figure 8. Typically the aspect ratio of 998 the streams is preserved, so blanking is required. 1000 +-----------+-----------+-----------+-----------+ 1001 | | | | | 1002 | | | | | 1003 | 1 | 2 | 3 | 4 | 1004 | | | | | 1005 | | | | | 1006 +-----------+-----------+-----------+-----------+ 1007 | | | | | 1008 | | | | | 1009 | 5 | 6 | 7 | 8 | 1010 | | | | | 1011 | | | | | 1012 +-----------+-----------+-----------+-----------+ 1013 | | | | | 1014 | | | | | 1015 | 9 | 10 | 11 | 12 | 1016 | | | | | 1017 | | | | | 1018 +-----------+-----------+-----------+-----------+ 1019 | | | | | 1020 | | | | | 1021 | 13 | 14 | 15 | 16 | 1022 | | | | | 1023 | | | | | 1024 +-----------+-----------+-----------+-----------+ 1026 Figure 8: multiple-4x4 video layout 1028 layout presents a 5x1 layout as shown in Figure 9 1029 where one region will occupy 4/9 of the mixed video stream while 1030 the others will each occupy 1/9 of the stream. Typically the 1031 aspect ratio of the streams is preserved, so blanking is required. 1033 +-----------------------+-----------+ 1034 | | | 1035 | | | 1036 | | 2 | 1037 | | | 1038 | | | 1039 | 1 +-----------+ 1040 | | | 1041 | | | 1042 | | 3 | 1043 | | | 1044 | | | 1045 +-----------+-----------+-----------+ 1046 | | | | 1047 | | | | 1048 | 4 | 5 | 6 | 1049 | | | | 1050 | | | | 1051 +-----------+-----------+-----------+ 1053 Figure 9: multiple-5x1 video layout 1055 4.2.1.4.3. 1057 The element describe the configuration of the 1058 conference policy for how participant's input video streams are 1059 assigned to regions within the active video layout. 1061 The element has the following child elements defined 1062 (one child occurrence only) indicating the video switching policy of 1063 the conference: 1065 (Voice Activated Switching) enables automatic display of the 1066 loudest speaker participant also providing a video input stream to 1067 the conference. Participants who do not provide an audio stream 1068 are not considered for automatic display. If a participant 1069 provides more than one audio stream, then the policy for inclusion 1070 of such a participant in the VAS is implementation-specific; an MS 1071 could select one stream, sum audio streams or ignore the 1072 participant for VAS consideration. If there is only one region in 1073 the layout, then the loudest speaker is displayed there. If more 1074 than one region is available, then the loudest speaker is 1075 displayed in the largest region, if any, and then in the first 1076 region from the top-left corner of the layout. The MS assigns the 1077 remaining regions based on the priority mechanism described in 1078 Section 4.2.1.4.3.1. 1080 enables manual control over video switching. The 1081 controller AS determines how the regions are assigned based on an 1082 external floor control policy. The MS receives , 1083 and commands with a element 1084 (Section 4.2.2.5) indicating the region where the stream is 1085 displayed. If no explicit region is specified, the MS assigns the 1086 region based on the priority mechanism described in 1087 Section 4.2.1.4.3.1. 1089 An MS MAY support other video switching policies. Other policies 1090 MUST be specified using an element from a namespace other than the 1091 one used in this specification. For example, 1093 1094 1095 1097 The element has the following attributes: 1099 interval: specifies the period between video switches as a number of 1100 seconds. In the case of policy, a speaker needs to be the 1101 loudest speaker for the interval before the switch takes place. A 1102 valid value is a non-negative integer (see Section 4.7.2). A 1103 value of 0 indicates that switching is applied immediately. The 1104 attribute is optional. The default value is 3 (seconds). 1106 activespeakermix: indicates whether or not the active (loudest) 1107 speaker participant receives a video stream without themselves 1108 displayed in the case of the switching policy. If enabled, 1109 the MS needs to generate two video streams for each conference 1110 mix: one for the active speaker participant without themselves 1111 displayed - details of this video layout are implementation- 1112 specific; and one for other participants as described in the 1113 switch policy above. A valid value is a boolean (see 1114 Section 4.7.1). A value of true indicates that a separate video 1115 mix is generated for the active speaker without themselves being 1116 displayed. A value of false indicates that all participants 1117 receive the same video mix. The attribute is optional. The 1118 default value is false. If the type attribute is not set to 1119 , the MS ignores this attribute. 1121 If the MS does not support the specified video switching policy or 1122 other configuration parameters (including separate active speaker 1123 video mixes), then MS reports a 424 error (Section 4.6) in the 1124 response to the request element containing the 1125 element. 1127 If the MS receives a or request containing a 1128 element (Section 4.2.2.5) specifying a region and the 1129 conference video switching policy is set to , then the MS 1130 ignores the region (i.e. conference switching policy takes 1131 precedence). 1133 If the MS receives a or request containing a 1134 element (Section 4.2.2.5) specifying a region which is not 1135 defined for the currently active video layout, the MS MUST NOT report 1136 an error. Even though the participant is not currently visible, the 1137 MS displays the participant if the layout changes to one which 1138 defines the specified region. 1140 For example, a fragment specifying a video switching policy 1141 with an interval of 2s 1143 1145 For example, a fragment specifying a video switching 1146 policy where video switching takes place immediately: 1148 1150 4.2.1.4.3.1. Priority assignment 1152 In cases where the video switching policy does not explicitly 1153 determine the region to which a participant is assigned, the 1154 following priority assignment mechanism applies: 1156 1. Each participant has an (positive integer) priority value: the 1157 lower the value, the higher the priority. The priority value is 1158 determined by the child element (Section 4.2.2.5.4) of 1159 . If not explicitly specified, the default priority 1160 value is 100. 1162 2. The MS uses priority values to assign participants to regions in 1163 the video layout which remain unfilled after application of the 1164 video switching policy. The MS MUST dedicate larger and/or more 1165 prominent portions of the layout to participants with higher 1166 priority values first (e.g. first, all participants with priority 1167 1, then those with 2, 3, etc). 1169 3. The policy for displaying participants with the same priority is 1170 implementation-specific. 1172 The MS applies this priority policy each time the video layout is 1173 changed or updated. It is RECOMMENDED that the MS does not move a 1174 participant from one region to another unless required by the video 1175 switching policy when an active video layout is updated. 1177 This model allows the MS to apply default video layouts after 1178 applying the video switch policy. For example, region 2 is 1179 statically assigned to Bob, so the priority mechanism only applies to 1180 regions 1, 3, 4, etc. 1182 4.2.1.4.4. 1184 The element is a container for specifying conference 1185 notification events to which a controlling entity subscribes. 1186 Notifications of conference events are delivered using the 1187 element (see Section 4.2.4). 1189 The element has no attributes, but has the following 1190 child element: 1192 : subscription to active talker events 1193 (Section 4.2.1.4.4.1). The element is optional. 1195 The MS MUST support a subscription. It MAY 1196 support other event subscriptions (specified using attributes and 1197 child elements from a foreign namespace). If the MS does not support 1198 a subscription specified in a foreign namespace, it sends a 1199 with a 428 status code (see Section 4.6). 1201 4.2.1.4.4.1. 1203 The element has the following attributes: 1205 interval: the minimum amount of time (in seconds) that elapses 1206 before further active talker events can be generated. A valid 1207 value is a non-negative integer (see Section 4.7.2). A value of 0 1208 suppresses further notifications. The attribute is optional. The 1209 default value is 3 (seconds). 1211 The element has no child elements. 1213 Active talker notifications are delivered in the element (Section 4.2.4.1). 1216 4.2.2. Joining Elements 1218 In this section, the joining model is defined (Section 4.2.2.1) as 1219 well as definitions of the (Section 4.2.2.2), 1220 (Section 4.2.2.3), (Section 4.2.2.4) and 1221 (Section 4.2.2.5) elements. 1223 4.2.2.1. Joining Model 1225 The operation creates a media stream between a connection and 1226 a conference, between connections, or between conferences. This 1227 section describes the model of conferences and connections and 1228 specifies the behavior for join requests to targets that already have 1229 an associated media stream. 1231 Conferences support multiple inputs and have resources to mix them 1232 together. A media server conference in essence is a mixer that 1233 combines media streams. A simple audio mixer simply sums its input 1234 audio signals to create a single common output. Conferences however 1235 use a more complex algorithm so that participants do not hear 1236 themselves as part of the mix. That algorithm, sometimes called an 1237 n-minus mix, subtracts each participants input signal from the summed 1238 input signals, creating a unique output for each contributing 1239 participant. Each operation to a conference uses one of the 1240 conference's available inputs and/or outputs, to the maximum number 1241 of supported participants. 1243 A connection is the termination of a RTP session(s) on a media 1244 server. It has a single input and output for each media session 1245 established by its SIP dialog. The output of a connection can feed 1246 several different inputs such as both a conference mixer and a 1247 recording of that participant's audio. 1249 Joining two connections which are are not joined to anything else 1250 simply creates a media stream from the outputs(s) of one connection 1251 to the corresponding inputs(s) of the other connection. It is not 1252 necessary to combine media from multiple sources in this case. There 1253 are however several common scenarios where combining media from 1254 several sources to create a single input to a connection is needed. 1256 In the first case, a connection can be receiving media from one 1257 source, for example a conference, and it is necessary to play an 1258 announcement to the connection so that both the conference audio and 1259 announcement can be heard by the conference participant. This is 1260 sometimes referred to as a whisper announcement. An alternative to a 1261 whisper announcement is to have the announcement pre-empt the 1262 conference media. 1264 Another common case is the call center coaching scenario where a 1265 supervisor can listen to the conversation between an agent and a 1266 customer, and provide hints to the agent, which are not heard by the 1267 customer. 1269 Both of these cases can be solved by having the controlling AS create 1270 one or more conferences for audio mixing, and then join and unjoin 1271 the media streams as required. A better solution is to have the 1272 media server automatically mix media streams that are requested to be 1273 joined to a common input when only the simple summing of audio 1274 signals as described above is required. This is the case for both 1275 the use cases presented above. 1277 Automatically mixing streams has several benefits. Conceptually, it 1278 is straight forward and simple, requiring no indirect requests on the 1279 part of the controlling AS. This increases transport efficiency and 1280 reduces the coordination complexity and the latency of the overall 1281 operation. Therefore, it is RECOMMENDED that a media server be able 1282 to automatically mix at least two audio streams where only the simple 1283 summing of signals is required. 1285 When a media server receives a request, it MUST automatically 1286 mix all of the media streams included in the request with any streams 1287 already joined to one of the entities identified in the request, or 1288 it MUST fail the request and MUST NOT join any of the streams (and 1289 MUST NOT change existing streams of the entities). A controlling AS 1290 uses the request for generic conferences where the 1291 complex mixing algorithm is required. 1293 Specifications which extend this package to handle additional media 1294 types such as text, MUST define the semantics of the join operation 1295 when multiple streams are requested to be joined to a single input, 1296 such as that for a connection with a single RTP session per media 1297 type. 1299 4.2.2.2. 1301 The element is sent to the MS to request creation of one or 1302 more media streams either between a connection and a conference, 1303 between connections, or between conferences. The two entities to 1304 join are specified by the attributes of . 1306 Streams can be of any media type, and can be bi-directional or uni- 1307 directional. A bi-directional stream is implicitly composed of two 1308 uni-directional streams that can be manipulated independently. The 1309 streams to be established are specified by child elements 1310 (see Section 4.2.2.5). 1312 The element has the following attributes: 1314 id1: an identifier for either a connection or a conference. The 1315 identifier MUST conform to the syntax defined in Section 16.1 of 1316 [I-D.ietf-mediactrl-sip-control-framework] The attribute is 1317 mandatory. 1319 id2: an identifier for either a connection or a conference. The 1320 identifier MUST conform to the syntax defined in Section 16.1 of 1321 [I-D.ietf-mediactrl-sip-control-framework] The attribute is 1322 mandatory. 1324 Note: Section 16.1 of [I-D.ietf-mediactrl-sip-control-framework] 1325 defines the semantics for a conference identifier but not its syntax. 1326 Media server implementations need to distinguish between conferences 1327 and connections based upon the values of the "id1" and "id2" 1328 attributes. 1330 If id1 or id2 specify a conference identifier and the conference does 1331 not exist on the MS, the MS reports an error (406). If id1 or id2 1332 specify a connection identifier and the connection does not exist on 1333 the MS, the MS reports an error (412). 1335 The element has the following child element (0 or more): 1337 : an element that both identifies the media streams to join 1338 and defines the way that they are to be joined (see 1339 Section 4.2.2.5). The element is optional. 1341 If no elements are specified, then the default is to join 1342 all streams between the entities according to the media configuration 1343 of the connection or conference. 1345 One or more elements can be specified so that individual 1346 media streams can be controlled independently. For example, if a 1347 connection supports both audio and video streams, a element 1348 could be used to indicate that only the audio stream is used in 1349 receive mode. In cases where there are multiple media streams of the 1350 same type for a connection or conference, the configuration MUST be 1351 explicitly specified using elements. 1353 Multiple elements can be specified for precise control over 1354 the media flow in different directions within the same media stream. 1355 One element can be specified for the receiving media flow 1356 and another element for the sending media flow, where each 1357 independently controls features such as volume (see child element of 1358 in Section 4.2.2.5). If there is only one element 1359 for a given media specifying a 'sendonly' or 'recvonly' direction, 1360 then the media flow in the opposite direction is inactive 1361 (established but no actual flow of media) unless this leads to a 1362 stream conflict. 1364 If the MS is unable to execute the join as specified in 1365 because a element is in conflict with (a) another 1366 element, (b) with specified connection or conference media 1367 capabilities (including supported or available codec information), or 1368 (c) with a SDP label value as part of the connection-id (see Section 1369 16.1 of [I-D.ietf-mediactrl-sip-control-framework]), then the MS 1370 reports an error (407) and MUST NOT join the entities and MUST NOT 1371 change existing streams of the entities. 1373 If the MS is unable to execute the join as specified in 1374 elements because the MS does not support the media stream 1375 configuration, the MS reports an error (422) and MUST NOT join the 1376 entities and MUST NOT change existing streams of the entities. 1378 If the MS is unable to join an entity to a conference because it is 1379 full, then the MS reports an error (410). 1381 If the specified entities are already joined, then the MS reports an 1382 error (408). 1384 If the MS does not support joining two specified connections 1385 together, the MS reports an error (426). 1387 If the MS does not support joining two specified conferences 1388 together, the MS reports an error (427). 1390 If the MS is unable to join the specified entities for any other 1391 reason, the MS reports an error (411). 1393 When the MS has finished processing a request, it MUST reply 1394 with an element (Section 4.2.3). 1396 For example, a request to join two connection together: 1398 1399 1400 1402 and the response if the MS doesn't support joining media streams 1403 between connections: 1405 1406 1407 1409 4.2.2.3. 1411 The element is sent to the MS to request changes in the 1412 configuration of media stream(s) that were previously established 1413 between a connection and a conference, between two connections, or 1414 between two conferences. 1416 The element has the following attributes: 1418 id1: an identifier for either a connection or a conference. The 1419 identifier MUST conform to the syntax defined in Section 16.1 of 1420 [I-D.ietf-mediactrl-sip-control-framework] The attribute is 1421 mandatory. 1423 id2: an identifier for either a connection or a conference. The 1424 identifier MUST conform to the syntax defined in Section 16.1 of 1425 [I-D.ietf-mediactrl-sip-control-framework] The attribute is 1426 mandatory. 1428 The element has the following child elements (1 or 1429 more): 1431 : an element that both identifies the media streams to 1432 modify and defines the way that each stream is now to be 1433 configured (see Section 4.2.2.5). 1435 The MS MUST support for any stream that was established 1436 using . 1438 The MS MUST configure the streams that are included within 1439 to that stated by the child elements. 1441 If the MS is unable to modify the join as specified in 1442 elements because a element is in conflict with (a) another 1443 element, (b) with specified connection or conference media 1444 capabilities (including supported or available codec information), or 1445 (c) with a SDP label value as part of the connection-id (see Section 1446 16.1 of [I-D.ietf-mediactrl-sip-control-framework]), then the MS 1447 reports an error (407) and MUST NOT modify the join between the 1448 entities and MUST NOT change existing streams of the entities. 1450 If the MS is unable to modify the join as specified in 1451 elements because the MS does not support the media stream 1452 configuration, the MS reports an error (422) and MUST NOT modify the 1453 join between the entities and MUST NOT change existing streams of the 1454 entities. 1456 If the specified entities are not already joined, then the MS reports 1457 an error (409). 1459 If the MS is unable to modify the join between the specified entities 1460 for any other reason, the MS reports an error (411). 1462 When an MS has finished processing a request, it MUST 1463 reply with an appropriate element (Section 4.2.3). 1465 In cases where stream characteristics are controlled independently 1466 for each direction, then a request needs to specify a 1467 child element for each direction in order to retain the original 1468 stream directionality. For the example, if a request 1469 establishes independent control for each direction of an audio stream 1470 (see Section 4.2.2.5): 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1483 then the following request 1485 1486 1487 1488 1489 1490 1491 1493 would cause, in addition to the sendonly volume being modified, that 1494 the overall stream directionality changes from sendrecv to sendonly 1495 since there is no element in this request for 1496 the recvonly direction. The following would change the sendonly 1497 volume and retain the recvonly stream together with its original 1498 characteristics such as volume: 1500 1501 1502 1503 1504 1505 1506 1507 1509 4.2.2.4. 1511 The element is sent to the MS to request removal of 1512 previously established media stream(s) from between a connection and 1513 a conference, between two connections, or between two conferences. 1515 The element has the following attributes: 1517 id1: an identifier for either a connection or a conference. The 1518 identifier MUST conform to the syntax defined in Section 16.1 of 1519 [I-D.ietf-mediactrl-sip-control-framework] The attribute is 1520 mandatory. 1522 id2: an identifier for either a connection or a conference. The 1523 identifier MUST conform to the syntax defined in Section 15.1 of 1524 [I-D.ietf-mediactrl-sip-control-framework] The attribute is 1525 mandatory. 1527 The element has the following child element (0 or more 1528 occurrences): 1530 : an element that identifies the media stream(s) to remove 1531 (see Section 4.2.2.5). The element is optional. When not 1532 present, all currently established streams between "id1" and "id2" 1533 are removed. 1535 The MS MUST support for any stream that was established 1536 using and has not already been removed by a previous 1537 on the same stream. 1539 If the MS is unable to terminate the join as specified in 1540 elements because a element is in conflict with (a) another 1541 element, (b) with specified connection or conference media 1542 capabilities or (c) with a SDP label value as part of the 1543 connection-id (see Section 16.1 of 1544 [I-D.ietf-mediactrl-sip-control-framework]), then the MS reports an 1545 error (407) and MUST NOT terminate the join between the entities and 1546 MUST NOT change existing streams of the entities. 1548 If the MS is unable to terminate the join as specified in 1549 elements because the MS does not support the media stream 1550 configuration, the MS reports an error (422) and MUST NOT terminate 1551 the join between the entities and MUST NOT change existing streams of 1552 the entities. 1554 If the specified entities are not already joined, then the MS reports 1555 an error (409). 1557 If the MS is unable to terminate the join between the specified 1558 entities for any other reason, the MS reports an error (411). 1560 When an MS has successfully processed a request, it MUST 1561 reply with a successful element (Section 4.2.3). 1563 4.2.2.5. 1565 , and require the identification and 1566 manipulations of media streams. Media streams represent the flow of 1567 media between a participant connection and a conference, between two 1568 connections, or between two conferences. The element is 1569 used (as a child to , and element has the following attributes: 1575 media: a string indicating the type of media associated with the 1576 stream. A valid value is a MIME type-name as defined in Section 1577 4.2 of [RFC4288]. The following values MUST be used for common 1578 types of media: "audio" for audio media, and "video" for video 1579 media. See IANA ([IANA]) for registered MIME type names. The 1580 attribute is mandatory. 1582 label: a string indicating the SDP label associated with a media 1583 stream ([RFC4574]). The attribute is optional. 1585 direction: a string indicating the allowed media flow of the stream 1586 relative to the value of the "id1" attribute of the parent 1587 element. Defined values are: "sendrecv" (media can be sent and 1588 received), "sendonly" (media can only be sent), "recvonly" (media 1589 can only be received) and "inactive" (stream established but no 1590 media flow). The default value is "sendrecv". The attribute is 1591 optional. 1593 The element has the following sequence of child elements: 1595 : an element (Section 4.2.2.5.1) to configure the volume or 1596 gain of the media stream. The element is optional. 1598 : an element (Section 4.2.2.5.2) to configure filtering and 1599 removal of tones from the media stream. The element is optional. 1601 : an element (Section 4.2.2.5.3) to configure a region 1602 within a video layout where the media stream is displayed. The 1603 element is optional. 1605 : an element (Section 4.2.2.5.4) to configure priority 1606 associated with the stream in the media mix. The element is 1607 optional. 1609 In each child element, the media stream affected is indicated by the 1610 value of the direction attribute of the parent element. 1612 If the media attribute does not have the value of "audio", then the 1613 MS ignores and elements. 1615 If the media attribute does not have the value of "video", then the 1616 MS ignores a element. 1618 For example, a request to join a connection to conference in both 1619 directions with volume control: 1621 1622 1623 1624 1625 1626 1627 1629 where audio flow from the connection (id1) to the conference (id2) 1630 has the volume lowered by 3dB, and likewise the volume of the audio 1631 flow from the conference to the connection is lowered by 3 dB. 1633 In this example, the volume is independently controlled for each 1634 direction. 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1647 where audio flow from the connection (id1) to the conference (id2) 1648 has the volume lowered by 3dB, but the volume of the audio flow from 1649 the conference to the connection is raised by 3 dB. 1651 4.2.2.5.1. 1653 The element is used to configure the volume of an audio 1654 media stream. It can be set to a specific gain amount, to 1655 automatically adjust the gain to a desired target level, or to mute 1656 the volume. 1658 The element has no child elements but has the following 1659 attributes: 1661 controltype: a string indicating the type of volume control to use 1662 for the stream. Defined values are: "automatic" (the volume will 1663 be adjusted automatically to the level specified by the "value" 1664 attribute), "setgain" (use the value of the "value" attribute as a 1665 specific gain measured in dB to apply), "setstate" (set the state 1666 of the stream to "mute" or "unmute" as specified by the value of 1667 the "value" attribute). The attribute is mandatory. 1669 value: a string specifying the amount or state for the volume 1670 control defined by the value of the "controltype" attribute. The 1671 attribute is optional. There is no default value. 1673 If the audio media stream is in a muted state, then the MS also 1674 changes automatically the state to unmuted with an "automatic" or 1675 "setgain" volume control. For the example, assume an audio stream 1676 has been muted with . 1677 If the gain on the same stream is changed with , then the volume is increased and 1679 stream state is also changed to unmuted. 1681 4.2.2.5.2. 1683 The element is used to configure whether tones are filtered 1684 and removed from a media stream. 1686 The element has no child elements but has the following 1687 attributes: 1689 tones: A space-separated list of the tones to remove. The attribute 1690 is optional. The default value is "1 2 3 4 5 6 7 8 9 0 * # A B C 1691 D" (i.e. all DTMF (Dual-Tone Multi-Frequency) tones removed). 1693 4.2.2.5.3. 1695 As described in Section 4.2.1.4.2.1, each is composed 1696 of one or more named regions (or areas) in which video media can be 1697 presented. For example, the XCON layout has two regions 1698 named "1" and "2" respectively. 1700 The element is used to explicitly specify the name of the 1701 area within a video layout where a video media stream is displayed. 1703 The element has no attributes and its content model 1704 specifies the name of the region. 1706 4.2.2.5.4. 1708 The element is used to explicitly specify the priority of 1709 a participant. The MS uses this priority to determine where the 1710 media stream is displayed within a video layout 1711 (Section 4.2.1.4.3.1). 1713 The element has no attributes and its content model 1714 specifies a positive integer (see Section 4.7.3). The lower the 1715 value, the higher the priority. 1717 4.2.3. 1719 Responses to requests are indicated by a element. 1721 The element has following attributes: 1723 status: numeric code indicating the response status. Valid values 1724 are defined in Section 4.6. The attribute is mandatory. 1726 reason: string specifying a reason for the response status. The 1727 attribute is optional. 1729 desclang: specifies the language used in the value of the the reason 1730 attribute. A valid value is a language identifier 1731 (Section 4.7.7). The attribute is optional. If not specified, 1732 the value of the desclang attribute on (Section 4.1) 1733 applies. 1735 conferenceid: string identifying the conference (see Section 16.1 of 1736 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 1737 optional. 1739 connectionid: string identifying the SIP dialog connection (see 1740 Section 16.1 of [I-D.ietf-mediactrl-sip-control-framework]). The 1741 attribute is optional. 1743 For example, a response when a conference was created successfully: 1745 1747 The response if conference creation failed due to the requested 1748 conference id already existing: 1750 1752 4.2.4. 1754 When a mixer generates a notification event, the MS sends the event 1755 using an element. 1757 The element has no attributes, but has the following sequence 1758 of child elements (0 or more instances of each child): 1760 specifies an active talkers notification 1761 (Section 4.2.4.1). 1763 notifies that a connection or conference has been 1764 completely unjoined (Section 4.2.4.2). 1766 notifies that a conference has exited 1767 (Section 4.2.4.3). 1769 4.2.4.1. 1771 The element describes zero or more speakers 1772 that have been active in a conference during the specified interval 1773 (see Section 4.2.1.4.4.1). 1775 The element has the following attributes: 1777 conferenceid: string indicating the name of the conference from 1778 which the event originated. This attribute is mandatory. 1780 The element has the following sequence of 1781 child elements (0 or more occurrences): 1783 element describing an active talker 1784 (Section 4.2.4.1.1). 1786 4.2.4.1.1. 1788 The element describes an active talker, associated 1789 with either a connection or conference participant in a conference. 1791 The element has the following attributes: 1793 connectionid: string indicating the connectionid of the active 1794 talker. This attribute is optional. There is no default value. 1796 conferenceid: string indicating the conferenceid of the active 1797 talker. This attribute is optional. There is no default value. 1799 Note that the element does not describe an active talker if both the 1800 connectionid and conferenceid attributes are specified, or if neither 1801 attribute is specified. 1803 The element has no child elements. 1805 4.2.4.2. 1807 The element describes a notification event where a 1808 connection and/or conference have been completely unjoined. 1810 The element has the following attributes: 1812 status: a status code indicating why the unjoin occurred. A valid 1813 value is a non-negative integer (see Section 4.7.2). The MS MUST 1814 support the following values: 1816 0 indicates the join has been terminated by a request. 1818 1 indicates the join terminated due to an execution error. 1820 2 indicates that the join terminated because a connection or 1821 conference has terminated. 1823 All other valid but undefined values are reserved for future use, 1824 where new status codes are assigned using the Standards Action 1825 process defined in [RFC5226]. The AS MUST treat any status code 1826 it does not recognize as being equivalent to 1 (join execution 1827 error). The attribute is mandatory. 1829 reason: a textual description providing a reason for the status 1830 code; e.g. details about an error. A valid value is a string (see 1831 Section 4.7.4). The attribute is optional. There is no default 1832 value. 1834 desclang: specifies the language used in the value of the the reason 1835 attribute. A valid value is a language identifier 1836 (Section 4.7.7). The attribute is optional. If not specified, 1837 the value of the desclang attribute on (Section 4.1) 1838 applies. 1840 id1: an identifier for either a connection or a conference. The 1841 identifier MUST conform to the syntax defined in Section 16.1 of 1842 [I-D.ietf-mediactrl-sip-control-framework] The attribute is 1843 mandatory. 1845 id2: an identifier for either a connection or a conference. The 1846 identifier MUST conform to the syntax defined in Section 16.1 of 1847 [I-D.ietf-mediactrl-sip-control-framework] The attribute is 1848 mandatory. 1850 The element has no child elements. 1852 4.2.4.3. 1854 The element indicates that a conference has exited 1855 because it has been terminated or because a error occurred (for 1856 example, a hardware error in the conference mixing unit). This event 1857 MUST be sent by the MS whenever a successfully created conference 1858 exits. 1860 The element has the following attributes: 1862 conferenceid: string indicating the name of the conference. This 1863 attribute is mandatory. 1865 status: a status code indicating why the conference exited. A valid 1866 value is a non-negative integer (see Section 4.7.2). The MS MUST 1867 support the following values: 1869 0 indicates the conference has been terminated by a 1870 request. 1872 1 indicates the conference terminated due to an execution error. 1874 2 indicates the conference terminated due to exceeding the 1875 maximum duration for a conference. 1877 All other valid but undefined values are reserved for future use, 1878 where new status codes are assigned using the Standards Action 1879 process defined in [RFC5226]. The AS MUST treat any status code 1880 it does not recognize as being equivalent to 1 (conference 1881 execution error). The attribute is mandatory. 1883 reason: a textual description providing a reason for the status 1884 code; e.g. details about an error. A valid value is a string (see 1885 Section 4.7.4). The attribute is optional. There is no default 1886 value. 1888 desclang: specifies the language used in the value of the the reason 1889 attribute. A valid value is a language identifier 1890 (Section 4.7.7). The attribute is optional. If not specified, 1891 the value of the desclang attribute on (Section 4.1) 1892 applies. 1894 The element has no child elements. 1896 When a MS sends a event, the identifier for the 1897 conference (conferenceid attribute) is no longer valid on the MS and 1898 can be reused for another conference. 1900 For example, the following notification event would be sent from the 1901 MS when the conference with identifier "conference99" exits due to a 1902 successful : 1904 1905 1906 1908 1909 1911 4.3. Audit Elements 1913 The audit elements defined in this section allow the MS to be audited 1914 for package capabilities as well as mixers managed by the package. 1915 Auditing is particularly important for two use cases. First, it 1916 enables discovery of package capabilities supported on an MS before 1917 an AS creates a conference mixer or joins connections and 1918 conferences. The AS can then use this information to create request 1919 elements using supported capabilities and, in the case of codecs, to 1920 negotiate an appropriate SDP for a user agent's connection. Second, 1921 auditing enables discovery of the existence and status of mixers 1922 currently managed by the package on the MS. This could be used when 1923 one AS takes over management of mixers if the AS which created the 1924 mixers fails or is no longer available (see Security Considerations 1925 described in Section 7). 1927 4.3.1. 1929 The request element is sent to the MS to request information 1930 about the capabilities of, and mixers currently managed with, this 1931 control package. Capabilities include supported conference codecs 1932 and video layouts. Mixer information includes the status of managed 1933 mixers as well as codecs. 1935 The element has the following attributes: 1937 capabilities: indicates whether package capabilities are to be 1938 audited. A valid value is a boolean (see Section 4.7.1). A value 1939 of true indicates that capability information is to be reported. 1940 A value of false indicates that capability information is not to 1941 be reported. The attribute is optional. The default value is 1942 true. 1944 mixers: indicates whether mixers currently managed by the package 1945 are to be audited. A valid value is a boolean (see 1946 Section 4.7.1). A value of true indicates that mixer information 1947 is to be reported. A value of false indicates that mixer 1948 information is not to be reported. The attribute is optional. 1949 The default value is true. 1951 conferenceid: string identifying a specific conference mixer to 1952 audit. It is an error (406) if the conferenceid attribute is 1953 specified and the conference identifier is not valid. The 1954 attribute is optional. There is no default value. 1956 If the mixers attribute has the value true and conferenceid attribute 1957 is specified, then only audit information about the specified 1958 conference mixer is reported. If the mixers attribute has the value 1959 false, then no mixer audit information is reported even if a 1960 conferenceid attribute is specified. 1962 The element has no child elements. 1964 When the MS receives an request, it MUST reply with a 1965 element (Section 4.3.2) which includes a mandatory 1966 attribute describing the status in terms of a numeric code. Response 1967 status codes are defined in Section 4.6. If the request is 1968 successful, the contains (depending on attribute 1969 values) a element (Section 4.3.2.1) reporting package 1970 capabilities and a element (Section 4.3.2.2) reporting 1971 managed mixer information. If the MS is not able to process the 1972 request and carry out the audit operation, the audit request has 1973 failed and the MS MUST indicate the class of failure using an 1974 appropriate 4xx response code. Unless an error response code is 1975 specified for a class of error within this section, implementations 1976 follow Section 4.6 in determining the appropriate status code for the 1977 response. 1979 For example, a request to audit capabilities and mixers managed by 1980 the package: 1982 1983 1984 1985 In this example, only capabilities are to be audited: 1987 1988 1989 1991 With this example, only a specific conference mixer is to be audited: 1993 1994 1995 1997 4.3.2. 1999 The element describes a response to a 2000 request. 2002 The element has the following attributes: 2004 status: numeric code indicating the audit response status. The 2005 attribute is mandatory. Valid values are defined in Section 4.6. 2007 reason: string specifying a reason for the status. The attribute is 2008 optional. 2010 desclang: specifies the language used in the value of the the reason 2011 attribute. A valid value is a language identifier 2012 (Section 4.7.7). The attribute is optional. If not specified, 2013 the value of the desclang attribute on (Section 4.1) 2014 applies. 2016 The element has the following sequence of child 2017 elements: 2019 element (Section 4.3.2.1) describing capabilities of 2020 the package. The element is optional. 2022 element (Section 4.3.2.2) describing information about 2023 managed mixers. The element is optional. 2025 For example, a successful response to a request requesting 2026 capabilities and mixer information: 2028 2029 2030 2031 2032 2033 H263 2034 2035 2036 H264 2037 2038 2039 PCMU 2040 2041 2042 PCMA 2043 2044 2045 2046 2047 2048 2049 2050 PCMA 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2064 4.3.2.1. 2066 The element provides audit information about package 2067 capabilities. 2069 The element has no attributes. 2071 The element has the following sequence of child 2072 elements: 2074 : element (Section 4.4) describing codecs available to the 2075 package. The element is mandatory. 2077 For example, a fragment describing capabilities: 2079 2080 2081 2082 H263 2083 2084 2085 H264 2086 2087 2088 PCMU 2089 2090 2091 PCMA 2092 2093 2094 2096 4.3.2.2. 2098 The element provides audit information about mixers. 2100 The element has no attributes. 2102 The element has the following sequence of child elements (0 2103 or more occurrences, any order): 2105 : audit information for a conference mixer 2106 (Section 4.3.2.2.1). The element is optional. 2108 : audit information for a join mixer (Section 4.3.2.2.2). 2109 The element is optional. 2111 4.3.2.2.1. 2113 The element has the following attributes: 2115 conferenceid: string identifying the conference (see Section 16.1 of 2116 [I-D.ietf-mediactrl-sip-control-framework]). The attribute is 2117 mandatory. 2119 The element has the following sequence of child 2120 elements: 2122 element describing codecs used in the conference. See 2123 Section 4.4. The element is optional. 2125 element listing connections or conferences joined to 2126 the conference. See Section 4.3.2.2.1.1. The element is 2127 optional. 2129 element describing the active video layout for the 2130 conference. See Section 4.2.1.4.2.1. The element is optional. 2132 For example, a fragment describing a conference which has been 2133 created but has no participants: 2135 2137 And a fragment when the same conference has three participants (two 2138 connections and another conference) joined to it: 2140 2141 2142 2143 PCMU 2144 2145 2146 2147 2148 2149 2150 2151 2153 4.3.2.2.1.1. 2155 The element is a container for elements 2156 (Section 4.3.2.2.1.1.1). 2158 The element has no attributes, but the following child 2159 elements are defined (0 or more): 2161 : specifies a participant (Section 4.3.2.2.1.1.1). 2163 4.3.2.2.1.1.1. 2165 The element describes a participant. 2167 The element has the following attributes: 2169 id: an identifier for either a connection or a conference. The 2170 identifier MUST conform to the syntax defined in Section 16.1 of 2171 [I-D.ietf-mediactrl-sip-control-framework]. The attribute is 2172 mandatory. 2174 The element has no children. 2176 4.3.2.2.2. 2178 The element has the following attributes: 2180 id1: an identifier for either a connection or a conference. The 2181 identifier MUST conform to the syntax defined in Section 16.1 of 2182 [I-D.ietf-mediactrl-sip-control-framework] The attribute is 2183 mandatory. 2185 id2: an identifier for either a connection or a conference. The 2186 identifier MUST conform to the syntax defined in Section 16.1 of 2187 [I-D.ietf-mediactrl-sip-control-framework] The attribute is 2188 mandatory. 2190 The element has no children. 2192 For example, a fragment describing an audit of two join mixers, one 2193 between connections and the second between conferences: 2195 2196 2197 2198 2200 4.4. 2202 The element is a container for one or more codec 2203 definitions. Codec definitions are used by an AS to specify the 2204 codecs allowed for a conference (e.g. when used as a child of 2205 or element has no attributes. 2211 The element has the following sequence of child elements (0 2212 or more occurrences): 2214 : defines a codec and optionally its policy (Section 4.4.1). 2215 The element is optional. 2217 For example, a fragment describing two codecs: 2219 2220 2221 PCMA 2222 2223 2224 H263 2225 2226 2228 4.4.1. 2230 The element describes a codec. The element is modeled on the 2231 element in the XCON conference information data model 2232 ([I-D.ietf-xcon-common-data-model]) and allows addition information 2233 (e.g. rate, speed, etc) to be specified. 2235 The element has the following attributes: 2237 name: indicates the type name of the codec's media format as defined 2238 in IANA ([IANA]). A valid value is a "type-name" as defined in 2239 Section 4.2 of [RFC4288]. The attribute is manadatory. 2241 The element has the following sequence of child elements: 2243 : element whose content model describes the subtype of the 2244 codec's media format as defined in IANA ([IANA]). A valid value 2245 is a "subtype-name" as defined in Section 4.2 of [RFC4288]. The 2246 element is mandatory. 2248 : element (Section 4.5) describing additional information 2249 about the codec. This package is agnostic to the names and values 2250 of the codec parameters supported by an implementation. The 2251 element is optional. 2253 For example, a fragment with a element describing the H263 2254 codec: 2256 2257 H263 2258 2260 And a fragment where the element describes the H264 video 2261 codec with additional information about the profile level and 2262 packetization mode: 2264 2265 H264 2266 2267 42A01E 2268 0 2269 2270 2272 4.5. 2274 The element is a container for elements 2275 (Section 4.5.1). 2277 The element has no attributes, but the following child 2278 elements are defined (0 or more): 2280 : specifies a parameter name and value (Section 4.5.1). 2282 4.5.1. 2284 The element describes a parameter name and value. 2286 The element has the following attributes: 2288 name: a string indicating the name of the parameter. The attribute 2289 is mandatory. 2291 type: specifies a type indicating how the inline value of the 2292 parameter is to be interpreted. A valid value is a MIME media 2293 type (see Section 4.7.6). The attribute is optional. The default 2294 value is "text/plain". 2296 encoding: specifies a content-transfer-encoding schema applied to 2297 the inline value of the parameter on top of the MIME media type 2298 specified with the type attribute. A valid value is a content- 2299 transfer-encoding schema as defined by the "mechanism" token in 2300 Section 6.1 of [RFC2045]. The attribute is optional. There is no 2301 default value. 2303 The element content model is the value of the parameter. 2304 Note that a value which contains XML characters (e.g. "<") needs to 2305 be escaped following standard XML conventions. 2307 4.6. Response Status Codes 2309 This section describes the response codes in Table 1 for the status 2310 attribute of mixer management (Section 4.2.3) and audit 2311 (Section 4.3.2) responses. The MS MUST support the 2312 status response codes defined here. All other valid but undefined 2313 values are reserved for future use, where new status codes are 2314 assigned using the Standards Action process defined in [RFC5226]. 2315 The AS MUST treat any responses it does not recognize as being 2316 equivalent to the x00 response code for all classes. For example, if 2317 an AS receives an unrecognized response code of 499, it can safely 2318 assume that there was something wrong with its request and treat the 2319 response as if it had received a 400 (Syntax error) response code. 2321 4xx responses are definite failure responses from a particular MS. 2322 The reason attribute in the response SHOULD identify the failure in 2323 more detail, for example, "Mandatory attribute missing: id2 join 2324 element" for a 400 (Syntax error) response code. 2326 The AS SHOULD NOT retry the same request without modification (for 2327 example, correcting a syntax error or changing the conferenceid to 2328 use one available on the MS). However, the same request to a 2329 different MS might be successful; for example, if another MS supports 2330 a capability required in the request. 2332 4xx failure responses can be grouped into three classes: failure due 2333 to a syntax error in the request (400); failure due to an error 2334 executing the request on the MS (405-419); and failure due to the 2335 request requiring a capability not supported by the MS (420-435). 2337 In cases where more than one request code could be reported for a 2338 failure, the MS SHOULD use the most specific error code of the 2339 failure class for the detected error. For example, if the MS detects 2340 that the conference identifier in the request is invalid, then it 2341 uses a 406 status code. However, if the MS merely detects that an 2342 execution error occurred, then 419 is used. 2344 +-------+---------------+----------------------+--------------------+ 2345 | Code | Summary | Description | Informational: AS | 2346 | | | | Possible Recovery | 2347 | | | | Action | 2348 +-------+---------------+----------------------+--------------------+ 2349 | 200 | OK | request has | | 2350 | | | succeeded | | 2351 | | | | | 2352 | 400 | Syntax error | request is | Change the request | 2353 | | | syntactically | so that it is | 2354 | | | invalid: it is not | syntactically | 2355 | | | valid with respect | valid. | 2356 | | | to the XML schema | | 2357 | | | specified in | | 2358 | | | Section 5 or it | | 2359 | | | violates a | | 2360 | | | co-occurrence | | 2361 | | | constraint for a | | 2362 | | | request element | | 2363 | | | defined in | | 2364 | | | Section 4. | | 2365 | | | | | 2366 | 405 | Conference | request uses an | Send an | 2367 | | already | identifier to create | request | 2368 | | exists | a new conference | (Section 4.3.1) | 2369 | | | (Section 4.2.1.1) | requesting the | 2370 | | | which is already | list of conference | 2371 | | | used by another | mixer identifiers | 2372 | | | conference on the | already used by | 2373 | | | MS. | the MS and then | 2374 | | | | use a conference | 2375 | | | | identifier which | 2376 | | | | is not listed. | 2377 | | | | | 2378 | 406 | Conference | request uses an | Send an | 2379 | | does not | identifier for a | request | 2380 | | exist | conference which | (Section 4.3.1) | 2381 | | | does not exist on | requesting the | 2382 | | | the MS. | list of conference | 2383 | | | | mixer identifiers | 2384 | | | | used by the MS and | 2385 | | | | then use a | 2386 | | | | conference | 2387 | | | | identifier which | 2388 | | | | is listed. | 2389 | | | | | 2390 | 407 | Incompatible | request specifies a | Change the media | 2391 | | stream | media stream | stream | 2392 | | configuration | configuration which | configuration to | 2393 | | | is in conflict with | match the | 2394 | | | itself, or the | capabilities of | 2395 | | | connection or | the connection or | 2396 | | | conference | conference | 2397 | | | capabilities (see | | 2398 | | | Section 4.2.2.2) | | 2399 | | | | | 2400 | 408 | joining | request attempts to | Send an | 2401 | | entities | create a join mixer | request | 2402 | | already | (Section 4.2.2.2) | (Section 4.3.1) | 2403 | | joined | where the entities | requesting the | 2404 | | | are already joined | list of join | 2405 | | | | mixers on the MS | 2406 | | | | and then use | 2407 | | | | entities which are | 2408 | | | | not listed. | 2409 | | | | | 2410 | 409 | joining | request attempts to | Send an | 2411 | | entities not | manipulate a join | request | 2412 | | joined | mixer where entities | (Section 4.3.1) | 2413 | | | which are not joined | requesting the | 2414 | | | | list of join | 2415 | | | | mixers on the MS | 2416 | | | | and then use | 2417 | | | | entities which are | 2418 | | | | listed. | 2419 | | | | | 2420 | 410 | Unable to | request attempts to | | 2421 | | join - | join a participant | | 2422 | | conference | to a conference | | 2423 | | full | (Section 4.2.2.2) | | 2424 | | | but the conference | | 2425 | | | is already full | | 2426 | | | | | 2427 | 411 | Unable to | request attempts to | | 2428 | | perform join | create, modify or | | 2429 | | mixer | delete a join | | 2430 | | operation | between entities but | | 2431 | | | fails | | 2432 | | | | | 2433 | 412 | Connection | request uses an | | 2434 | | does not | identifier for a | | 2435 | | exist | connection which | | 2436 | | | does not exist on | | 2437 | | | the MS. | | 2438 | 419 | Other | requested operation | | 2439 | | execution | cannot be executed | | 2440 | | error | by the MS. | | 2441 | | | | | 2442 | 420 | Conference | request to create a | | 2443 | | reservation | new conference | | 2444 | | failed | (Section 4.2.1.1) | | 2445 | | | failed due to | | 2446 | | | unsupported | | 2447 | | | reservation of | | 2448 | | | talkers or | | 2449 | | | listeners. | | 2450 | | | | | 2451 | 421 | Unable to | request to create or | | 2452 | | configure | modify a conference | | 2453 | | audio mix | failed due to | | 2454 | | | unsupported audio | | 2455 | | | mix. | | 2456 | | | | | 2457 | 422 | Unsupported | request contains one | | 2458 | | media stream | or more | | 2459 | | configuration | elements | | 2460 | | | (Section 4.2.2.5) | | 2461 | | | whose configuration | | 2462 | | | is not supported by | | 2463 | | | the MS. | | 2464 | | | | | 2465 | 423 | Unable to | request to create or | | 2466 | | configure | modify a conference | | 2467 | | video layouts | failed due to | | 2468 | | | unsupported video | | 2469 | | | layout | | 2470 | | | configuration. | | 2471 | | | | | 2472 | 424 | Unable to | request to create or | | 2473 | | configure | modify a conference | | 2474 | | video switch | failed due to | | 2475 | | | unsupported video | | 2476 | | | switch | | 2477 | | | configuration. | | 2478 | | | | | 2479 | 425 | Unable to | request to create or | | 2480 | | configure | modify a conference | | 2481 | | codecs | failed due to | | 2482 | | | unsupported codec. | | 2483 | | | | | 2484 | 426 | Unable to | request to join | | 2485 | | join - mixing | connection entities | | 2486 | | connections | (Section 4.2.2.2) | | 2487 | | not supported | failed due lack of | | 2488 | | | support for mixing | | 2489 | | | connections. | | 2490 | | | | | 2491 | 427 | Unable to | request to join | | 2492 | | join - mixing | conference entities | | 2493 | | conferences | (Section 4.2.2.2) | | 2494 | | not supported | failed due lack of | | 2495 | | | support for mixing | | 2496 | | | conferences. | | 2497 | | | | | 2498 | 428 | Unsupported | the request contains | | 2499 | | foreign | attributes or | | 2500 | | namespace | elements from | | 2501 | | attribute or | another namespace | | 2502 | | element | which the MS does | | 2503 | | | not support | | 2504 | | | | | 2505 | 435 | Other | request requires | | 2506 | | unsupported | another capability | | 2507 | | capability | not supported by the | | 2508 | | | MS | | 2509 +-------+---------------+----------------------+--------------------+ 2511 Table 1: status codes 2513 4.7. Type Definitions 2515 This section defines types referenced in attribute definitions. 2517 4.7.1. Boolean 2519 The value space of boolean is the set {true, false, 1, 0} as defined 2520 in Section 3.2.2 of [XMLSchema:Part2]. In accordance with this 2521 definition, the concept of false can be lexically represented by the 2522 strings "0" and "false" and the concept of true by the strings "1" 2523 and "true"; implementations MUST support both styles of lexical 2524 representation. 2526 4.7.2. Non-Negative Integer 2528 The value space of non-negative integer is the infinite set 2529 {0,1,2,...} as defined in Section 3.3.20 of [XMLSchema:Part2]. 2531 4.7.3. Positive Integer 2533 The value space of positive integer is the infinite set {1,2,...} as 2534 defined in Section 3.3.25 of [XMLSchema:Part2]. 2536 4.7.4. String 2538 A string in the character encoding associated with the XML element as 2539 defined in Section 3.2.1 of [XMLSchema:Part2]. 2541 4.7.5. Time Designation 2543 A time designation consists of a non-negative real number followed by 2544 a time unit identifier. 2546 The time unit identifiers are: "ms" (milliseconds) and "s" (seconds). 2548 Examples include: "3s", "850ms", "0.7s", ".5s" and "+1.5s". 2550 4.7.6. MIME Media Type 2552 A string formated as an IANA MIME media type ([MIME.mediatypes]). 2553 The ABNF ([RFC5234]) production for the string is: 2555 type-name "/" subtype-name *(";" parameter) 2557 parameter = parameter-name "=" value 2559 where "type-name" and "subtype-name" are defined in Section 4.2 of 2560 [RFC4288], "parameter-name" is defined in Section 4.3 of [RFC4288] 2561 and "value" is defined in Section 5.1 of [RFC2045]. 2563 4.7.7. Language Identifier 2565 A language identifier labels information content as being of a 2566 particular human language variant. Following the XML specification 2567 for language identification [XML], a legal language identifier is 2568 identified by a RFC5646 code ([RFC5646]) and matched according to 2569 RFC4647 ([RFC4647]). 2571 5. Formal Syntax 2573 This section defines the XML schema for the Mixer Control Package. 2574 The schema is normative. 2576 The schema defines datatypes, attributes, and mixer elements in the 2577 urn:ietf:params:xml:ns:msc-mixer namespace. In most elements the 2578 order of child elements is significant. The schema is extensible: 2579 elements allow attributes and child elements from other namespaces. 2580 Elements from outside this package's namespace can occur after 2581 elements defined in this package. 2583 The schema is dependent upon the schema (framework.xsd) defined in 2584 Section 16.1 of the Control Framework 2585 [I-D.ietf-mediactrl-sip-control-framework]. 2587 2588 2595 2596 2597 IETF MediaCtrl Mixer 1.0 (20110104) 2599 This is the schema of the Mixer control package. It 2600 defines request, response and notification elements for 2601 mixing. 2603 The schema namespace is urn:ietf:params:xml:ns:msc-mixer 2605 2606 2608 2616 2619 2620 2621 This import brings in the framework attributes for 2622 conferenceid and connectionid. 2623 2624 2625 2627 2635 2636 2637 2638 This type is extended by other (non-mixed) component types to 2639 allow attributes from other namespaces. 2640 2641 2642 2643 2644 2646 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2671 2672 2673 2675 2677 2678 2679 2681 2683 2691 2693 2694 2695 2696 2697 2699 2701 2703 2705 2707 2710 2711 2712 2714 2716 2717 2718 2720 2722 2724 2725 2726 2727 2728 2730 2732 2734 2736 2737 2739 2740 2742 2743 2744 2746 2748 2750 2751 2752 2753 2754 2756 2758 2760 2761 2762 2764 2767 2775 2776 2777 2778 2779 2781 2783 2784 2786 2788 2789 2790 2792 2794 2795 2796 2797 2798 2800 2802 2803 2805 2807 2808 2809 2811 2813 2814 2815 2816 2817 2819 2821 2822 2824 2826 2827 2828 2830 2832 2840 2841 2842 2843 2844 2845 2847 2849 2851 2853 2854 2855 2856 2857 2859 2861 2862 2863 2864 2865 2867 2869 2870 2872 2873 2874 2876 2879 2880 2881 2882 2883 2885 2886 2887 2888 2889 2891 2893 2894 2895 2896 2897 2899 2900 2902 2903 2904 2906 2908 2909 2910 2912 2914 2916 2917 2918 2919 2920 2922 2923 2925 2927 2928 2929 2930 2931 2933 2935 2936 2937 2938 2939 2941 2942 2944 2945 2946 2947 2948 2949 2951 2953 2954 2955 2956 2957 2959 2961 2962 2963 2964 2966 2968 2969 2970 2971 2972 2974 2975 2977 2978 2979 2981 2984 2985 2986 2987 2988 2990 2992 2994 2996 2998 2999 3001 3002 3004 3005 3006 3008 3010 3011 3012 3013 3014 3016 3017 3019 3020 3021 3022 3024 3026 3027 3028 3029 3030 3032 3033 3035 3036 3037 3039 3041 3042 3043 3044 3046 3048 3049 3050 3051 3053 3055 3056 3057 3058 3059 3061 3062 3064 3066 3067 3068 3070 3072 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3086 3088 3089 3090 3092 3094 3096 3097 3098 3099 3100 3102 3104 3105 3106 3107 3109 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3131 3132 3133 3135 3137 3138 3139 3140 3141 3143 3144 3146 3148 3149 3150 3151 3153 3155 3156 3157 3158 3159 3161 3163 3165 3166 3168 3169 3170 3172 3173 3175 3177 3179 3180 3181 3182 3183 3185 3187 3189 3190 3191 3192 3194 3196 3198 3199 3200 3201 3202 3204 3205 3207 3209 3210 3211 3213 3215 3217 3218 3219 3220 3221 3223 3225 3227 3229 3230 3232 3233 3234 3236 3238 3240 3241 3242 3243 3244 3246 3248 3249 3250 3251 3253 3255 3257 3258 3259 3260 3261 3263 3264 3266 3268 3269 3271 3273 3275 3276 3277 3278 3279 3281 3283 3284 3285 3286 3288 3290 3292 3293 3294 3295 3296 3298 3300 3301 3302 3303 3305 3307 3309 3310 3311 3312 3313 3316 3318 3320 3321 3323 3324 3325 3327 3329 3331 3332 3333 3335 3337 3338 3339 3340 3341 3342 3344 3346 3347 3348 3349 3351 3353 3354 3355 3356 3357 3358 3360 3361 3362 3364 3372 3373 3374 3375 3376 3378 3379 3380 3381 3382 3384 3385 3386 3387 3388 3389 3391 3392 3393 3395 3396 3397 3399 3400 3401 3402 3403 3405 3406 3407 3408 3409 3410 3411 3412 3414 3415 3416 3418 3419 3420 3421 3422 3423 3424 3426 3428 Figure 10: Mixer Package XML Schema 3430 6. Examples 3432 This section provides examples of the Mixer Control package. 3434 6.1. AS-MS Framework Interaction Examples 3436 The following example assume a control channel has been established 3437 and synced as described in the Media Control Channel Framework 3438 ([I-D.ietf-mediactrl-sip-control-framework]). 3440 The XML messages are in angled brackets (with the root and 3441 other details omitted for clarity); the REPORT status is in round 3442 brackets. Other aspects of the protocol are omitted for readability. 3444 6.1.1. Creating a conference mixer and joining a participant 3446 A conference mixer is created successfully and a participant is 3447 joined. 3449 Application Server (AS) Media Server (MS) 3450 | | 3451 | (1) CONTROL: | 3452 | ----------------------------------------> | 3453 | | 3454 | (2) 202 | 3455 | <--------------------------------------- | 3456 | | 3457 | | 3458 | (3) REPORT: | 3459 | (terminate) | 3460 | <---------------------------------------- | 3461 | | 3462 | (4) 200 | 3463 | ----------------------------------------> | 3464 | | 3465 | (5) CONTROL: | 3466 | ----------------------------------------> | 3467 | | 3468 | (6) 202 | 3469 | <--------------------------------------- | 3470 | | 3471 | (7) REPORT: | 3472 | (terminate) | 3473 | <---------------------------------------- | 3474 | | 3475 | (8) 200 | 3476 | ----------------------------------------> | 3478 6.1.2. Receiving active talker notifications 3480 An active talker notification event is sent by the MS. 3482 Application Server (AS) Media Server (MS) 3483 | | 3484 | (1) CONTROL: | 3485 | <--------------------------------------- | 3486 | | 3487 | (4) 200 | 3488 | ----------------------------------------> | 3489 | | 3491 6.1.3. Conference termination 3493 The MS receives a request to terminate the conference, resulting in 3494 conferenceexit and participant unjoined notifications. 3496 Application Server (AS) Media Server (MS) 3497 | | 3498 | (1) CONTROL: | 3499 | ----------------------------------------> | 3500 | | 3501 | (2) 200: | 3502 | <--------------------------------------- | 3503 | | 3504 | (3) CONTROL: | 3505 | (unjoin-notify) | 3506 | <---------------------------------------- | 3507 | | 3508 | (4) 200 | 3509 | ----------------------------------------> | 3510 | | 3511 | (5) CONTROL: | 3512 | (conferenceexit) | 3513 | <---------------------------------------- | 3514 | | 3515 | (6) 200 | 3516 | ----------------------------------------> | 3518 6.2. Mixing Examples 3520 The following examples show how the mixing package can be used to 3521 create audio conferences, bridge connections and video conferences. 3523 The examples do not specify all messages between the AS and MS. 3525 6.2.1. Audio conferencing 3527 The AS sends a request to create a conference mixer: 3529 3530 3532 3533 3534 3535 3536 3537 3539 The request specifies that the conference is assigned the conference 3540 id "conf1" and is configured with 2 reserved talkers, 3 reserved 3541 listener slots, audio mixing policy set to nbest and with active 3542 talkers notifications set to 5 seconds. 3544 If the MS is able to create this conference mixer, it sends 200 3545 response: 3547 3548 3550 3552 The AS is now able to join connections to the conference as 3553 participants. A participant able to contribute to the audio mix 3554 would be joined as follows: 3556 3557 3558 3559 3560 3562 If the MS can join the participant 1536067209:913cd14c to the 3563 conference conf1 with audio in both directions, then it sends a 3564 successful response: 3566 3567 3568 3570 The AS could also join listener-only participants to the conference 3571 by setting the stream direction to receive only: 3573 3574 3575 3576 3577 3579 If the MS can join the participant 9936067209:914cd14c to the 3580 conference conf1 then it would send a successful response (not 3581 shown). 3583 As the active talker changes, the MS sends an active talker 3584 notification to the AS: 3586 3587 3588 3589 3590 3591 3592 3594 The AS could decide to change the status of a talker connection so 3595 that they can only listen: 3597 3598 3599 3600 3601 3603 Where the participant 1536067209:913cd14c is no longer able to 3604 contribute to the audio mix on the conference. If the MS is able to 3605 execute this request, it would send a 200 response. 3607 The AS could decide to remove this participant from the conference: 3609 3610 3611 3613 Again, if the MS can execute this request, a 200 response would be 3614 sent. 3616 Finally, the AS terminates the conference: 3618 3619 3620 3621 If the MS is able to destroy the conference conf1, it sends a 200 3622 response: 3624 3625 3626 3628 For each participant attached to the conference when it is destroyed, 3629 the MS sends an unjoin notification event: 3631 3632 3633 3635 3636 3638 And the MS sends a conferenceexit notification event when the 3639 conference finally exits: 3641 3642 3643 3644 3645 3647 6.2.2. Bridging connections 3649 The mixer package can be used to join connections to one another. In 3650 a call center scenario, for example, this package can be used to set 3651 up and modify connections between a caller, agent and supervisor. 3653 A caller is joined to an agent with bi-directional audio: 3655 3656 3657 3658 3659 3661 If the MS is able to establish this connection, then it would send a 3662 200 response: 3664 3665 3666 3668 Now assume that the AS wants a supervisor to listen into the agent 3669 conversation with the caller and provide whispered guidance to the 3670 agent. First the AS would send a request to join the supervisor and 3671 the caller connections: 3673 3674 3675 3676 3677 3679 If this request was successful, audio output from the caller 3680 connection would now be sent to both the agent and the supervisor. 3682 Second, the AS would send a request to join the supervisor and the 3683 agent connections: 3685 3686 3687 3688 3689 3691 If this request was successful, the audio mixing would occur on both 3692 the agent and supervisor connections: the agent would hear the caller 3693 and supervisor, and the supervisor would hear the agent and caller. 3694 The caller would only hear the agent. If the MS is unable to join 3695 and mix connections in this way, it would send a 426 response. 3697 6.2.3. Video conferencing 3699 In this example, an audio video-conference is created with the 3700 loudest participant has the most prominent region in the video 3701 layout. 3703 The AS sends a request to create an audio-video conference: 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 In this configuration, the conference uses a nbest audio mixing 3718 policy and a video switch policy, so that the loudest speaker 3719 receives the most prominent region in the layout. Multiple video 3720 layouts are specified and active one depends on the number of 3721 participants. 3723 Assume that 4 participants are already joined to the conference. In 3724 that case, the video layout will be quad-view (Figure 6) with the 3725 most active speaker displayed in region 1. When a fifth participant 3726 joins, the video layout automatically switches to a multiple-5x1 3727 layout (Figure 9), again with the most active speaker in region 1. 3729 The AS can manipulate which participants are displayed in the 3730 remaining regions. For example, it could force an existing 3731 conference participant to be displayed in region 2: 3733 3734 3735 3736 2 3737 3738 3739 3741 7. Security Considerations 3743 As this control package processes XML markup, implementations MUST 3744 address the security considerations of [RFC3023]. 3746 As a Control Package of the Media Control Channel Framework, 3747 security, confidentiality and integrity of messages transported over 3748 the control channel MUST be addressed as described in Section 12 of 3749 the Media Control channel Framework 3750 ([I-D.ietf-mediactrl-sip-control-framework]), including Transport 3751 Level Protection, Control Channel Policy Management and Session 3752 Establishment. In addition, implementations MUST address security, 3753 confidentiality and integrity of User Agent sessions with the MS, 3754 both in terms of SIP signaling and associated RTP media flow; see 3755 [I-D.ietf-mediactrl-sip-control-framework] for further details on 3756 this topic. 3758 Adequate transport protection and authentication are critical, 3759 especially when the implementation is deployed in open networks. If 3760 the implementation fails to correctly address these issues, it risks 3761 exposure to malicious attacks, including (but not limited to): 3763 Denial of Service: An attacker could insert a request message into 3764 the transport stream causing specific conferences or join mixers 3765 on the MS to be destroyed. For example, , where the value of "XXXX" could be guessed 3767 or discovered by auditing active mixers on the MS using an 3768 request. Likewise, an attacker could impersonate the MS and 3769 insert error responses into the transport stream so denying the AS 3770 access to package capabilities. 3772 Resource Exhaustion: An attacker could insert into the control 3773 channel new request messages (or modify existing ones) with, for 3774 instance, elements causing large numbers of 3775 conference mixer resources to be allocated. At some point this 3776 will exhaust the number of conference mixers that the MS is able 3777 to allocate. 3779 The Media Control Channel Framework permits additional policy 3780 management, including resource access and control channel usage, to 3781 be specified at the control package level beyond that specified for 3782 the Media Control Channel Framework (see Section 12.3 of 3783 [I-D.ietf-mediactrl-sip-control-framework]). 3785 Since creation of conference and join mixers is associated with media 3786 mixing resources on the MS, the security policy for this control 3787 package needs to address how such mixers are securely managed across 3788 more than one control channel. Such a security policy is only useful 3789 for secure, confidential and integrity protected channels. The 3790 identity of control channels is determined by the channel identifier: 3791 i.e. the value of the cfw-id attribute in the SDP and Dialog-ID 3792 header in the channel protocol (see 3793 [I-D.ietf-mediactrl-sip-control-framework]). Channels are the same 3794 if they have the same identifier; otherwise, they are different. 3795 This control package imposes the following additional security 3796 policies: 3798 Responses: The MS MUST only send a response to a mixer management or 3799 audit request using the same control channel as the one used to 3800 send the request. 3802 Notifications: The MS MUST only send notification events for 3803 conference and join mixers using the same control channel as it 3804 received the request creating the mixer. 3806 Auditing: The MS MUST only provide audit information about 3807 conference and join mixers which have been created on the same 3808 control channel as the one upon the request is sent. For 3809 example, if a join between two connections has been created on one 3810 channel, then a request on another channel to audit all mixers - 3811 - would not report on this join mixer. 3813 Rejection: The MS SHOULD reject requests to audit or manipulate an 3814 existing conference or join mixer on the MS if the channel is not 3815 the same as the one used when the mixer was created. The MS 3816 rejects a request by sending a Control Framework 403 response (see 3817 Section 7.4 and Section 12.3 of 3818 [I-D.ietf-mediactrl-sip-control-framework]). For example, if a 3819 channel with identifier 'cfw1234' has been used to send a request 3820 to create a particular conference and the MS receives on channel 3821 'cfw98969' a request to audit or destroy this particular 3822 conference, then the MS sends a 403 framework response. 3824 There can be valid reasons why an implementation does not reject an 3825 audit or mixer manipulation request on a different channel from the 3826 one which created the mixer. For example, a system administrator 3827 might require a separate channel to audit mixer resources created by 3828 system users and to terminate mixers consuming excessive system 3829 resources. Alternatively, a system monitor or resource broker might 3830 require a separate channel to audit mixers managed by this package on 3831 a MS. However, the full implications need to be understood by the 3832 implementation and carefully weighted before accepting these reasons 3833 as valid. If the reasons are not valid in their particular 3834 circumstances, the MS rejects such requests. 3836 There can also be valid reasons for 'channel handover' including high 3837 availability support or where one AS needs to take over management of 3838 mixers after the AS which created them has failed. This could be 3839 achieved by the control channels using the same channel identifier, 3840 one after another. For example, assume a channel is created with the 3841 identifier 'cfw1234' and the channel is used to create mixers on the 3842 MS. This channel (and associated SIP dialog) then terminates due to 3843 a failure on the AS. As permitted by the Control Framework, the 3844 channel identifier 'cfw1234' could then be reused so that another 3845 channel is created with the same identifier 'cfw1234', allowing it to 3846 'take over' management of the mixers on the MS. Again, the 3847 implementation needs to understand the full implications and 3848 carefully weight them before accepting these reasons as valid. If 3849 the reasons are not valid for their particular circumstances, the MS 3850 uses the appropriate SIP mechanisms to prevent session establishment 3851 when the same channel identifier is used in setting up another 3852 control channel (see Section 4 of 3853 [I-D.ietf-mediactrl-sip-control-framework]). 3855 8. IANA Considerations 3857 This specification instructs IANA to register a new Media Control 3858 Channel Framework Package, a new XML namespace, a new XML schema and 3859 a new MIME type. 3861 8.1. Control Package Registration 3863 This section registers a new Media Control Channel Framework package, 3864 per the instructions in Section 12.1 of 3865 [I-D.ietf-mediactrl-sip-control-framework]. 3867 To: ietf-sip-control@iana.org 3868 Subject: Registration of new Channel Framework package 3869 Package Name: msc-mixer/1.0 3870 [NOTE TO IANA/RFC-EDITOR: Please replace XXXX 3871 with the RFC number for this specification.] 3872 Published Specification(s): RFCXXXX 3873 Person & email address to contact for further information: 3874 IETF, MEDIACTRL working group, (mediactrl@ietf.org), 3875 Scott McGlashan (smcg.stds01@mcglashan.org). 3877 8.2. URN Sub-Namespace Registration 3879 This section registers a new XML namespace, 3880 "urn:ietf:params:xml:ns:msc-mixer", per the guidelines in RFC 3688 3881 [RFC3688]. 3883 URI: urn:ietf:params:xml:ns:msc-mixer 3884 Registrant Contact: IETF, MEDIACTRL working group, 3885 (mediactrl@ietf.org), Scott McGlashan 3886 (smcg.stds01@mcglashan.org). 3887 XML: 3888 BEGIN 3889 3890 3892 3893 3894 Media Control Channel Framework Mixer 3895 Package attributes 3896 3897 3898

Namespace for Media Control Channel 3899 Framework Mixer Package attributes

3900

urn:ietf:params:xml:ns:msc-mixer

3901 [NOTE TO IANA/RFC-EDITOR: Please replace XXXX 3902 with the RFC number for this specification.] 3903

See RFCXXXX

3904 3905 3906 END 3908 8.3. XML Schema Registration 3910 This section registers an XML schema as per the guidelines in RFC 3911 3688 [RFC3688]. 3913 URI: urn:ietf:params:xml:ns:msc-mixer 3914 Registrant Contact: IETF, MEDIACTRL working group, 3915 (mediactrl@ietf.org), Scott McGlashan 3916 (smcg.stds01@mcglashan.org). 3917 Schema: The XML for this schema can be found in 3918 Section 5 of this document. 3920 8.4. MIME Media Type Registration for 'application/msc-mixer+xml' 3922 This section registers the "application/msc-mixer+xml" MIME type. 3924 To: ietf-types@iana.org 3925 Subject: Registration of MIME media type 3926 application/msc-mixer+xml 3927 MIME media type name: application 3928 MIME subtype name: msc-mixer+xml 3929 Required parameters: (none) 3930 Optional parameters: charset 3931 Indicates the character encoding of enclosed XML. Default is 3932 UTF-8. 3933 Encoding considerations: Uses XML, which can employ 8-bit 3934 characters, depending on the character encoding used. See RFC 3935 3023 [RFC3023], section 3.2. 3936 Security considerations: No known security considerations outside 3937 of those provided by the Media Control Channel Framework Mixer 3938 Package. 3939 Interoperability considerations: This content type provides 3940 constructs for the Media Control Channel Framework Mixer package. 3941 Published specification: RFC XXXX [NOTE TO IANA/RFC-EDITOR: Please 3942 replace XXXX with the RFC number for this specification.] 3943 Applications which use this media type: Implementations of 3944 the Media Control Channel Framework Mixer package. 3945 Additional Information: Magic Number(s): (none) 3946 File extension(s): (none) 3947 Macintosh File Type Code(s): (none) 3948 Person & email address to contact for further information: Scott 3949 McGlashan 3950 Intended usage: LIMITED USE 3951 Author/Change controller: The IETF 3952 Other information: None. 3954 9. Change Summary 3956 Note to RFC Editor: Please remove this whole section. 3958 The following are the changes between the -14 and -13 versions 3959 (addressing remaining IESG DISCUSS): 3961 o 4.7.7 Language Identifier: deleted statement "where the language 3962 code is required and a country code or other subtag identifier is 3963 optional" and clarified that RFC 4647 specifies the matching 3964 procedure. 3966 The following are the changes between the -13 and -12 versions 3967 (addressing remaining IESG DISCUSS): 3969 o 4.0, 4.1, etc: Added language tags to identify the language of 3970 descriptive text attributes. A desclang attribute is added to the 3971 root element and has a default value of i-default. Subordinate 3972 elements with descriptive text attributes also have this attribute 3973 defined - if it is not specified on the subordinate element, then 3974 the desclang value on the root element applies. Added example of 3975 desclang in 4.1. 3977 o 5: Updated schema with desclang attributes 3979 o Section 4.7.6: Corrected ABNF definition of IANA MIME media type 3980 to allow parameter values. 3982 The following are the changes between the -12 and -11 versions 3983 (primarily addressing IESG DISCUSS, comments and nits): 3985 o Introduction: Clarified that Control Framework is an equivalent 3986 term for the Media Control Channel Framework. 3988 o 4.2.4.2, 4.2.4.3, 4.5: Replaced reference to standards-tracks RFC 3989 for assignment of new values, with reference to using Standards 3990 Action process defined in RFC 5226. 3992 o 4.0: Clarified that while some elements contain attributes whose 3993 value is descriptive text, this descriptive text is for diagnostic 3994 use only and does not require a language indicator such as a 3995 language tag. 3997 o 4.2.2.5.2: expanded DTMF acronym. 3999 o 4.2.1.4.2.1: Changed so that the layout is a child 4000 element rather than content value. Changed examples to match. 4001 Updated XML schema. 4003 o 4.2.1.4.3: Changed so that the policy is a child 4004 element rather than content value. Changed examples to match. 4005 Updated XML schema. 4007 o 4.4.1: changed to include name attribute; aligned 4008 definition with RFC4288; updated XML schema. 4010 o 4.2.2.5: Clarified that the media attribute of is a MIME 4011 type-name with reference to RFC 4288. 4013 o 4.5.1: Added encoding attribute to to allow for 4014 specification of content-transfer-encoding schema. Updated XML 4015 schema. 4017 o 4.5.1: Simplified content model of to be text only. 4018 Updated XML schema. 4020 o 4.6.6: Clarified MIME media type format with ABNF production 4021 referencing RFC 4288. 4023 o 4.2.2.5.3: clarified the definition of as an area in a 4024 video layout 4026 o 5: Stated that the schema is normative. 4028 o 5: Corrected default value of tones attribute in schema to match 4029 definition in 4.2.2.5.2. 4031 o 4.6: Type definitions; added references to XML Schema datatypes 4032 where appropriate; changed definition of boolean to match W3C 4033 definition and updated boolean type in schema. 4035 o Typos: in 4.2.1.4.2.1, added '/' to ; in 4.2.1.4.3 4036 , replaced second with ; in 4.2.3, 4037 corrected code and status in examples; 4039 o Validated all examples against XML schema and corrected where 4040 necessary. 4042 The following are the changes between the -11 and -10 versions 4043 (addressing IETF Last Call comments): 4045 o 4.2.2.3: For , removed the statement "It MUST NOT 4046 change the configuration of any streams not included as child 4047 elements." since modifications in stream directionality can affect 4048 other streams of the same type. 4050 o 4.2.2.5.2: Changed definition of tones attribute of 4051 element so that if the element is specified, then all DTMF tones 4052 are clamped by default. Updated XML schema. 4054 o 7: Corrected references from Section 11 to Section 12 in Control 4055 Framework. 4057 o Fixed various typos. 4059 The following are the changes between the -10 and -09 versions: 4061 o References: Moved the XCON reference to the Normative References 4062 section. 4064 o 4.2: Mixer Elements: clarified that when a requested mixer 4065 operation (partially) fails, the MS carries out no part of the 4066 operation and sends an error response. 4068 The following are the changes between the -09 and -08 versions 4069 following shepherd writeup: 4071 o 4.2.4.1.1: : Removed the statement that it is an 4072 error if an element has both connectionid and 4073 conferenceid attributes specified because the AS always sends a 4074 framework 200 in response to notification events, including active 4075 talker events. Instead, clarified that no active talker is 4076 described if both attributes are specified or if neither attribute 4077 is specified. 4079 o Various spelling and grammatical errors fixed. 4081 The following are the changes between the -08 and -07 versions. 4083 o 8.4: Changed file extension from '.xml' to (none) 4085 o Changed "~" to a ":" for connectionid 4087 o 4.2.6.1: Clarified that can contain an XML value. 4089 o 4.2.4.2: Changed status codes so that only 0-2 4090 defined and all others are reserved for future use requiring a 4091 standard-track RFC. 4093 o 4.2.4.3: Changed status codes so that only 0-2 4094 defined and all others are reserved for future use requiring a 4095 standard-track RFC. 4097 o 4.5: Changed status code for and so 4098 that certain codes are defined and all others are reserved for 4099 future use requiring a standard-track RFC. 4101 The following are the changes between the -07 and -06 versions. 4103 o Generally corrected references from Section 17.1 to Section 16.1 4104 of Control Channel Framework. 4106 o 4.2.2.2: removed "is" in "unless this is leads to a stream 4107 conflict" 4109 o 4.2.2.3: corrected error code from 408 to 409 for "If the 4110 specified entities are not already joined, then the MS reports an 4111 error (408)." 4113 o 4.2.1.4.3: corrected error code from 409 to 424 for "If the MS 4114 does not support the specified video switching policy or ..., then 4115 MS reports a 409 error". 4117 o 4.2.1.4.2: corrected error code from 408 to 423 for "If the MS 4118 does not support video conferencing at all, or ...., the MS 4119 reports an 408 error ..." 4121 o 4.2.1.1, 4.2.1.2, 4.2.2.2, 4.2.2.3: Clarified that 4122 specified in or impose a 4123 limitation in the media capability of a conference and this 4124 limitation affects whether the conference can be or 4125 ed to another entity. 4127 The following are the changes between the -06 and -05 versions. 4129 o 4.4.1: : corrected typos, added an example of 4130 usage, added a section and moved the section 4131 inside this section. 4133 o 8: IANA Considerations: Updated IANA registration information and 4134 added registration for the XML Schema 4136 The following are the changes between the -05 and -04 versions. 4138 o Schema: Fixed problem with non-deterministic content models. 4140 o 7. Security Considerations: Added requirement that 4141 implementations need to secure SIP and RTP sessions with User 4142 Agents. 4144 The following are the changes between the -04 and -03 versions. 4146 o 4.2.1.4.3: corrected typo 4148 o 4.2.2.3: Clarified the behavior of for cases where 4149 each direction of a stream is independently controlled. 4151 o 4.2.2.5: Corrected syntax error in examples. 4153 o 4.2.2.5.1: Clarified that when an audio stream is in the muted 4154 state, then a automatic or setgain control causes the 4155 state to change automatically to unmuted. 4157 o 7 Security: Clarified that both conference and join mixers are 4158 covered by the package security policies. 4160 o 7 Security: Added a denial of service example where the attacker 4161 impersonates the MS. 4163 o 7 Security: Clarified that the package security policy for 4164 multiple channels is only useful if the channels themselves are 4165 secured. 4167 o Updated acknowledgements. 4169 The following are the major changes between the -03 and -02 versions. 4171 o Corrected various typos and nits. 4173 o Conformance language: Removed unnecessary MUSTs, especially for 4174 error codes. Changed most RECOMMENDEDs to MUST or MAY. Removed 4175 lowercase 'should', 'must' and 'may'. 4177 o Tidied up Abstract 4179 o Removed old Introduction section (it just duplicated the 4180 abstract). Replaced it with the old Overview Section. Section 4181 numbering changed! 4183 o Introduction: Clarified which MediaCtrl Requirements are satisfied 4184 by this package. 4186 o 4.2.1.1: : Clarified that an attempt to create a 4187 conference with an identifier already used by an existing 4188 conference does not affect the existing conference (405 error 4189 response). 4191 o 4.2.1.4.1: : Added a 'n' attribute for the number of 4192 participants to be included in nbest audio mixing. 4194 o 4.2.1.4.3: : Clarified that the active speaker in 4195 video switching is the loudest speaker. 4197 o 4.2.1.4.4: : Clarified that if a subscription specified 4198 in a foreign namespace element or attribute is not supported by 4199 the MS, then the MS generates a 428 error response. Changed 4200 conformance support for from SHOULD to MUST. 4201 Removed 422 error response. 4203 o 4.2.2: Joining Elements: Added text to the empty section. 4205 o 4.2.2.2, 4.2.2.3, 4.2.2.4: , and : 4206 Clarified that join operation failures do not affect existing 4207 stream properties of the entities (407 and new 422 error 4208 response). Clarified stream failure errors in and 4209 . 4211 o 4.2.2.2: . Clarified that elements can be used to 4212 independently control properties of the media flow in different 4213 directions. Added a response code (422) for when the MS does not 4214 support a media stream configuation. 4216 o 4.2.2.2: . Clarified that error responses are generated if 4217 id1 or id2 reference a conference or connection which does not 4218 exist. Added an error status code (412) for non-existant 4219 connections. 4221 o 4.2.2.5: : Changed the definition so that in each child 4222 element, the media stream affected is indicated by the value of 4223 the direction attribute of the parent element. Added examples of 4224 controlling the media flow properties. 4226 o 4.2.4.2: . Added reserved range of status codes. 4227 Changed code from 1 to 0 for the unjoin case. Changed code from 3 4228 to 1 for execution error. 4230 o 4.2.4.3: . Added reserved range of status codes. 4231 Changed code from 1 to 0 for the destroyconference case (align 4232 with IVR). Added a code for conference exiting due to exceeding 4233 its maximum duration. 4235 o Schema: Adding missing version attribute on . 4237 o Security Considerations: Major update. Added examples showing 4238 malicious attacks when channel security is not correctly 4239 addressed. Added more details on multiple channel cases including 4240 administrator and monitor channels as well as channel handover. 4242 o Removed affliations in Contributors section. 4244 The following are the major changes between the -02 and -01 versions. 4246 o Section 4: Aligned Control Package definitions with requirements 4247 in Section 8 of the Control Framework. 4249 o Following October Interim meeting discussion on response codes, 4250 generally clarified usage of error status codes, modified some 4251 codes and re-organized the response codes section (Section 4.6) 4252 with more guidance and details. 4254 o MIXER-006. No action required following October 2008 interim 4255 discussion. 4257 o MIXER-008. No action required following October 2008 interim 4258 discussion. 4260 o MIXER-009. No action required for control package - addressed in 4261 -05 framework draft following interim October 2008 discussion. 4263 o MIXER-010/5.2.2.5: Clarified that in the element, an 4264 "inactive" direction value indicates the stream is established but 4265 there is no media flow. Such a stream can be manipulated by 4266 and . 4268 o 5.2.2.5: : Clarified that the media stream specified in 4269 child elements , , and is the 4270 stream originating from the entity identified as id1. 4272 o 5.2.1.4.3: : Clarified that it is not an error if a 4273 specifies a region which is not defined for the currently 4274 active video layout. 4276 o 5.2.1.4.2.1: : Added descriptions and ASCII art for 4277 layout and regions of XCON video layouts. 4279 o Added examples of audio conferencing, connection bridging and 4280 video conferencing. 4282 The following are the major changes between the -01 and -00 versions. 4284 o [MIXER-001]/5.2.4.3: Added notification event. 4286 o [MIXER-003]/5.2.1.4.2.1: Added ASCII diagrams for video layouts. 4288 o [MIXER-004]/5.3.2.2.1: Added active information to 4289 . 4291 o [MIXER-007]/5.4.1: Added inside so additional 4292 codec information can be specified. 4294 o 5.2.1.1: Fixed example with missing min- 4295 participants attributes. 4297 o 5: Changed handling of unsupported foreign namespace elements and 4298 attributes. The MS send a 427 error response if it encounters 4299 foreign elements and attributes it does not support. 4301 o 5.2.1.4.3: . Clarified that the VAS policy is 4302 implementation-specific if a participant provides more than one 4303 audio stream. 4305 o 5.2.2.2/5.2.2.3/5.2.2.4: Clarified that joining behavior so that 4306 streams which have previously been ed or ed 4307 are not affected by a general . 4309 o 5.2.1.4.3: : Added support for whether active 4310 speaker is displayed on their video layout ('activespeakermix' 4311 attribute) and clarified that personal video mixes are out of 4312 scope for this package. 4314 o 5.2.1.4.3/5.2.2.5.4: : Added support for a priority 4315 mechanism in video switching policy and a . 4318 o 8:Updated security section 4320 o 13:Updated references 4322 o 5.2.1.4.4.1: Added default of 3 seconds for 4323 interval. 4325 o 5.2.2.5.1: controltype attribute set to mandatory. 4327 o Updated schema 4329 The following are the major changes between the -00 of this work 4330 group item draft and the individual submission -04 version. 4332 o Control package name is now 'msc-mixer/1.0'. Namespace is now 4333 'urn:ietf:params:xml:ns:msc-mixer'. Mime type is now 4334 'application/msc-mixer+xml'. 4336 o Added XML root element . 4338 o Editorial tidy up of sections. 4340 o Added audit request/response elements. 4342 o Added video layout and switching conference configuration. 4344 o : changed 'mix-type' attribute to 'type' 4345 (consistency with video-switch) 4347 o Added "inactive" as value of 's direction attribute. 4349 o Added child to element. 4351 o : element is no longer mandatory; 4352 added and child elements. reserved- 4353 talkers and reserved-listeners as attributes. 4355 o replaced conf-id attribute with conferenceid attribute. 4357 o Removed element. Active talkers subscription and 4358 notifications used dedicated elements now. 4360 o Added notification event to indicate when 4361 (un)expected joins occur. Use case: connection or conference 4362 joined to a conference and conference exits (either by request or 4363 runtime error. 4365 The following are the major changes between the -04 of the draft and 4366 the -03 version. 4368 o Updated reference for Media Control Channel Framework 4370 The following are the major changes between the -03 of the draft and 4371 the -02 version. 4373 o None 4375 The following are the major changes between the -02 of the draft and 4376 the -01 version. 4378 o clarified the model for join operations and introduced several new 4379 package error codes 4381 o added definition for MS connection 4383 The following are the major changes between the -01 of the draft and 4384 the -00 version. 4386 o restructured into single request response model for non-trivial 4387 operations 4389 o aligned with XML structure of other control framework packages 4391 10. Contributors 4393 Asher Shiratzky provided valuable support and contributions to early 4394 versions of this document. 4396 The authors would like to thank the Mixer design team consisting of 4397 Roni Even, Lorenzo Miniero, Adnan Saleem, Diego Besprosvan and Mary 4398 Barnes who provided valuable feedback, input, diagrams and text to 4399 this document. 4401 11. Acknowledgments 4403 The authors would like to thank Roni Even, Lorenzo Miniero, Steve 4404 Buko and Stephane Bastien for expert reviews of this work. 4406 Shawn Emery carried out a thorough security review. 4408 12. References 4410 12.1. Normative References 4412 [I-D.ietf-mediactrl-sip-control-framework] 4413 Boulton, C., Melanchuk, T., and S. McGlashan, "Media 4414 Control Channel Framework", 4415 draft-ietf-mediactrl-sip-control-framework-12 (work in 4416 progress), September 2010. 4418 [I-D.ietf-xcon-common-data-model] 4419 Novo, O., Camarillo, G., Morgan, D., and J. Urpalainen, 4420 "Conference Information Data Model for Centralized 4421 Conferencing (XCON)", draft-ietf-xcon-common-data-model-22 4422 (work in progress), December 2010. 4424 [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail 4425 Extensions (MIME) Part One: Format of Internet Message 4426 Bodies", RFC 2045, November 1996. 4428 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 4429 Requirement Levels", BCP 14, RFC 2119, March 1997. 4431 [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media 4432 Types", RFC 3023, January 2001. 4434 [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, 4435 January 2004. 4437 [RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and 4438 Registration Procedures", BCP 13, RFC 4288, December 2005. 4440 [RFC4574] Levin, O. and G. Camarillo, "The Session Description 4441 Protocol (SDP) Label Attribute", RFC 4574, August 2006. 4443 [RFC4647] Phillips, A. and M. Davis, "Matching of Language Tags", 4444 BCP 47, RFC 4647, September 2006. 4446 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 4447 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 4448 May 2008. 4450 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 4451 Specifications: ABNF", STD 68, RFC 5234, January 2008. 4453 [RFC5646] Phillips, A. and M. Davis, "Tags for Identifying 4454 Languages", BCP 47, RFC 5646, September 2009. 4456 [XML] Bray, T., Paoli, J., Sperberg-McQueen, C M., Maler, E., 4457 and F. Yergeau, "Extensible Markup Language (XML) 1.0 4458 (Third Edition)", W3C Recommendation, February 2004. 4460 [XMLSchema:Part2] 4461 Biron, P. and A. Malhotra, "XML Schema Part 2: Datatypes 4462 Second Edition", W3C Recommendation, October 2004. 4464 12.2. Informative References 4466 [IANA] "IANA registry for RTP Payload Types", 4467 . 4469 [MIME.mediatypes] 4470 "IANA registry for MIME Media Types", 4471 . 4473 [RFC2277] Alvestrand, H., "IETF Policy on Character Sets and 4474 Languages", BCP 18, RFC 2277, January 1998. 4476 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 4477 A., Peterson, J., Sparks, R., Handley, M., and E. 4478 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 4479 June 2002. 4481 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 4482 Jacobson, "RTP: A Transport Protocol for Real-Time 4483 Applications", STD 64, RFC 3550, July 2003. 4485 [RFC5022] Van Dyke, J., Burger, E., and A. Spitzer, "Media Server 4486 Control Markup Language (MSCML) and Protocol", RFC 5022, 4487 September 2007. 4489 [RFC5167] Dolly, M. and R. Even, "Media Server Control Protocol 4490 Requirements", RFC 5167, March 2008. 4492 [RFC5707] Saleem, A., Xin, Y., and G. Sharratt, "Media Server Markup 4493 Language (MSML)", RFC 5707, February 2010. 4495 Authors' Addresses 4497 Scott McGlashan 4498 Hewlett-Packard 4500 Email: smcg.stds01@mcglashan.org 4502 Tim Melanchuk 4503 Rain Willow Communications 4505 Email: tim.melanchuk@gmail.com 4507 Chris Boulton 4508 NS-Technologies 4510 Email: chris@ns-technologies.com