Network Working Group C. Boulton Internet-Draft NS-Technologies Intended status: Standards Track L. Miniero Expires: February 2, 2012 Meetecho G. Munson AT&T August 1, 2011 Media Resource Brokering draft-ietf-mediactrl-mrb-10 Abstract The MediaCtrl work group in the IETF has proposed an architecture for controlling media services. The Session Initiation Protocol (SIP) is used as the signalling protocol which provides many inherent capabilities for message routing. In addition to such signalling properties, a need exists for intelligent, application level media service selection based on non-static signalling properties. This is especially true when considered in conjunction with deployment architectures that include 1:M and M:N combinations of Application Servers and Media Servers. This document introduces a Media Resource Broker (MRB) entity which manages the availability of Media Servers and the media resource demands of Application Servers. The document includes potential deployment options for an MRB and appropriate interfaces to Application Servers and Media Servers. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on February 2, 2012. Copyright Notice Copyright (c) 2011 IETF Trust and the persons identified as the Boulton, et al. Expires February 2, 2012 [Page 1] Internet-Draft Media Resource Brokering August 2011 document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 7 3. Problem Discussion . . . . . . . . . . . . . . . . . . . . . 8 4. Deployment Scenario Options . . . . . . . . . . . . . . . . . 9 4.1. Query MRB . . . . . . . . . . . . . . . . . . . . . . . 9 4.1.1. Hybrid Query MRB . . . . . . . . . . . . . . . . . . 10 4.2. In-Line MRB . . . . . . . . . . . . . . . . . . . . . . 11 5. MRB Interface Definitions . . . . . . . . . . . . . . . . . . 14 5.1. Media Server Resource Publish Interface . . . . . . . . 14 5.1.1. Control Package Definition . . . . . . . . . . . . . 15 5.1.2. Element Definitions . . . . . . . . . . . . . . . . . 17 5.1.3. . . . . . . . . . . . . . . . . . . . . 17 5.1.4. . . . . . . . . . . . . . . . . . . 19 5.1.5. . . . . . . . . . . . . . . . . . . . . 29 5.2. Media Service Resource Consumer Interface . . . . . . . 31 5.2.1. Query Mode / HTTP Consumer Interface Usage . . . . . 31 5.2.2. In-Line Aware Mode / SIP Consumer Interface Usage . . 32 5.2.3. Consumer Interface Lease Mechanism . . . . . . . . . 34 5.2.4. Media Service Resource Request . . . . . . . . . . . 37 5.2.5. Media Service Resource Response . . . . . . . . . . . 49 5.3. In-Line Unaware MRB Interface . . . . . . . . . . . . . 51 6. MRB acting as a B2BUA . . . . . . . . . . . . . . . . . . . . 53 7. Multi-modal MRB Implementations . . . . . . . . . . . . . . . 54 8. Relative Merits of Query Mode, IAMM, and IUMM . . . . . . . . 55 9. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 57 9.1. Publish Example . . . . . . . . . . . . . . . . . . . . 57 9.2. Consumer Example . . . . . . . . . . . . . . . . . . . . 63 9.2.1. Query Example . . . . . . . . . . . . . . . . . . . . 63 9.2.2. IAMM Example . . . . . . . . . . . . . . . . . . . . 66 10. Media Service Resource Publisher Interface XML Schema . . . . 82 11. Media Service Resource Consumer Interface XML Schema . . . . 104 12. Security Considerations . . . . . . . . . . . . . . . . . . . 125 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 126 Boulton, et al. Expires February 2, 2012 [Page 2] Internet-Draft Media Resource Brokering August 2011 13.1. Control Package Registration . . . . . . . . . . . . . . 126 13.2. application/mrb-publish+xml MIME Type . . . . . . . . . 126 13.3. application/mrb-consumer+xml MIME Type . . . . . . . . . 127 13.4. URN Sub-Namespace Registration for mrb-publish . . . . . 128 13.5. URN Sub-Namespace Registration for mrb-consumer . . . . 128 13.6. XML Schema Registration for mrb-publish . . . . . . . . 128 13.7. XML Schema Registration for mrb-consumer . . . . . . . . 128 14. Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 14.1. Changes from 09 Version . . . . . . . . . . . . . . . . 130 14.2. Changes from 08 Version . . . . . . . . . . . . . . . . 130 14.3. Changes from 07 Version . . . . . . . . . . . . . . . . 130 14.4. Changes from 06 Version . . . . . . . . . . . . . . . . 130 14.5. Changes from 05 Version . . . . . . . . . . . . . . . . 131 14.6. Changes from 04 Version . . . . . . . . . . . . . . . . 131 14.7. Changes from 03 Version . . . . . . . . . . . . . . . . 131 14.8. Changes from 02 Version . . . . . . . . . . . . . . . . 132 14.9. Changes from 01 Version . . . . . . . . . . . . . . . . 132 14.10. Changes from 00 Version . . . . . . . . . . . . . . . . 132 15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 133 16. References . . . . . . . . . . . . . . . . . . . . . . . . . 134 16.1. Normative References . . . . . . . . . . . . . . . . . . 134 16.2. Informative References . . . . . . . . . . . . . . . . . 135 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 137 Boulton, et al. Expires February 2, 2012 [Page 3] Internet-Draft Media Resource Brokering August 2011 1. Introduction The topic of Media Resource management has been in discussion for a number of years with varying proprietary solutions being used today. It is clear that, as we move towards a consistent architecture and protocol for Media Server Control, a standard mechanism is required for accurate media resource selection. As IP based multimedia infrastructures mature, the complexity and demands from deployments increase. Such complexity will result in a wide variety of capabilities from a range of vendors that should all be interoperable using the architecture and protocols produced by the MediaCtrl work group. It should be possible for a controlling entity to be assisted in Media Server selection so that the most appropriate resource is selected for a particular operation. The importance increases when you introduce a flexible level of deployment scenarios, as specified in the RFC 5167 [RFC5167] and RFC 5567 [RFC5567] documents. These documents make statements like "it should be possible to have a many-to-many relationship between Application Servers and Media Servers that use this protocol". This leads to the following deployment architectures being possible when considering media resources. The simplest deployment view is illustrated in Figure 1. +---+-----+---+ +---+-----+---+ | Application | | Media | | Server |<-------MS Control------>| Server | +-------------+ +-------------+ Figure 1: Basic Architecture This simply involves a single Application Server and Media Server. Expanding on this view, it is also possible for an Application Server to control multiple (greater that 1) Media Server instances at any one time. This deployment view is illustrated in Figure 2. Typically, such architectures are associated with application logic that requires high demand media services. It is more than possible that each media server possesses a different media capability set. Media servers may offer different media services as specified in the Mediactrl architecture document. A Media server may have similar media functionality but may have different capacity or media codec support. Boulton, et al. Expires February 2, 2012 [Page 4] Internet-Draft Media Resource Brokering August 2011 +---+-----+---+ | Media | +----->| Server | | +-------------+ | +---+-----+---+ | +---+-----+---+ | Application | | | Media | | Server |<--MS Control-----+----->| Server | +-------------+ | +-------------+ | | +---+-----+---+ +----->| Media | | Server | +-------------+ Figure 2: Multiple Media Servers Figure 3 conveys the opposite view to that in Figure 2. In this model there are a number of (greater than 1) application servers, possibly supporting dissimilar applications, controlling a single media server. Typically, such architectures are associated with application logic that requires low demand media services. +---+-----+---+ | Application | | Server |<-----+ +-------------+ | | +---+-----+---+ | +---+-----+---+ | Application | | | Media | | Server |<-----+-----MS Control-->| Server | +-------------+ | +-------------+ | +---+-----+---+ | | Application | | | Server |<-----+ +-------------+ Figure 3: Multiple Application Servers The final deployment view is the most complex. In this model (M:N) there exists any number of Application Servers and any number of Media Servers. It is again possible in this model that media servers might not be homogeneous and have different capability sets and Boulton, et al. Expires February 2, 2012 [Page 5] Internet-Draft Media Resource Brokering August 2011 capacity. +---+-----+---+ +---+-----+---+ | Application | | Media | | Server |<-----+ +---->| Server | +-------------+ | | +-------------+ | | +---+-----+---+ | | +---+-----+---+ | Application | | | | Media | | Server |<-----+-MS Control-+---->| Server | +-------------+ | | +-------------+ | | +---+-----+---+ | | +---+-----+---+ | Application | | +---->| Media | | Server |<-----+ | Server | +-------------+ +---+-----+---+ Figure 4: Basic Architecture The high level deployment options discussed in this section rely on network architecture and policy to prohibit inappropriate use. Such policies are out of the scope of this document. This document will take a look at the specific problem areas related to such deployment architectures. It is recognised that the solutions proposed in this document should be equally adaptable to all of the previously described deployment models. It is also recognised that the solution is far more relevant to some of the previously discussed deployment models and can almost be viewed as redundant on others. Boulton, et al. Expires February 2, 2012 [Page 6] Internet-Draft Media Resource Brokering August 2011 2. Conventions and Terminology In this document, BCP 14/RFC 2119 [RFC2119] defines the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL". This document inherits terminology proposed in RFC 5567 [RFC5567] and Media Control Channel Framework [I-D.ietf-mediactrl-sip-control-framework] documents. In addition, the following terms are defined for use in this document and for use in the context of the MediaCtrl Work group in the IETF: Media Resource Broker (MRB): A logical entity that is responsible for both collection of appropriate published Media Server (MS) information and selecting appropriate MS resources on behalf of consuming entities. Query MRB: An instantiation of an MRB (See previous definition) that provides an interface for an Application Server to retrieve the address of an appropriate Media Server. The result returned to the Application Server can be influenced by information contained in the query request. In-line MRB: An instantiation of an MRB (See definition) that directly receives requests on the signalling path. There is no separate query. Within the context of In-line MRBs, additional terms are defined: In-line Aware MRB Mode (IAMM): Defined in Section 5.2.2.1. In-line Unaware MRB Mode (IUMM): Defined in Section 5.3. The document will often specify when a specific identifier in a protocol message needs to be unique. Unless differently stated, such uniqueness will always need to be intended within the scope of the Media Servers controlled by the same Media Resource Broker. The interaction among different Media Resource Brokers, as the partitioning of a logical Media Resource Broker, is out of scope to this document. Boulton, et al. Expires February 2, 2012 [Page 7] Internet-Draft Media Resource Brokering August 2011 3. Problem Discussion As anticipated in Section 1, the main aim of the MediaCtrl group is to produce a solution that must service a wide variety of deployment architectures. These range from the simplest 1:1 relationship between Media Servers and Application Servers to potentially linearly scaling 1:M, M:1 and M:N deployments. This still does not seem like a major issue for the proposed solution until you add a number of additional factors into the equation that increase complexity. As Media Servers evolve it must be taken into consideration that, where many can exist in a deployment, they may not have been produced by the same vendor and may not have the same capability set. It should be possible for an Application Server that exists in a deployment to select a Media Service based on a common, appropriate capability set. In conjunction with capabilities, it is also important to take available resources into consideration. The ability to select an appropriate Media Service function is an extremely useful feature but becomes even more powerful when considered with available resources for servicing a request. In conclusion, the intention is to create a tool set that allows MediaCtrl deployments to effectively utilize the available media resources. It should be noted that in the simplest deployments where only a single media server exists, an MRB function is probably not required. Only a single capability set exists and resource unavailability can be handled using the appropriate underlying signalling, e.g., SIP response. This document does not prohibit such uses of an MRB, it simply provides the tools for various entities to interact where appropriate. It is also worth noting that the tools provided in this document aim to provide a 'best effort' view of media resources at the time of request for initial Media Server routing decisions. Any dramatic change in media capabilities after a request has taken place should be handled by the underlying protocol. Please note that there may be additional information that it is desirable for the MRB to have for purposes of selecting an MS resource, such as resource allocation rules across different applications, planned or unplanned downtime of Media Server resources, the planned addition of future Media Server resources, or MS resource capacity models. How the MRB acquires such information is outside the scope of this document. The techniques used for selecting an appropriate Media Resource by an MRB is outside the scope of this document. Boulton, et al. Expires February 2, 2012 [Page 8] Internet-Draft Media Resource Brokering August 2011 4. Deployment Scenario Options On researching Media Resource Brokering it became clear that a couple of high level models exist. The general principles of "in-line" and "query" MRB concepts are discussed in the rest of this section. 4.1. Query MRB The "Query" model for MRB interactions provides the ability for a client of media services (for example an Application Server) to "ask" an MRB for an appropriate Media Server, as illustrated in Figure 5. +---+-----+---+ +------------>| MRB |<----------+----<-----+---+ | +-------------+ (1)| | | | | | | |(2) +---+--+--+---+ | | | | Media | | | | +---->| Server | | | | | +-------------+ | | | | (1)| | +---+--+--+---+ | +---+-----+---+ | | | Application | | | Media | | | | Server |<-----+-MS Control-+---->| Server |->-+ | +-------------+ (3) | +-------------+ | | | | +---+-----+---+ (1)| +---->| Media | | | Server |--->---+ +---+-----+---+ Figure 5: Query MRB In this deployment, the Media Servers use the "Media Server Resource Publish Interface", as discussed in Section 5.1, to convey capability sets as well as resource information. This is depicted by (1) in Figure 5. It is then the MRB's responsibility to accumulate all appropriate information relating to media services in the logical deployment cluster. The Application Server (or other media services client) is then able to query the MRB for an appropriate resource (as identified by (2) in Figure 5). Such a query would carry specific information related to the Media Service required and enable the MRB to provide an increased accuracy in its response. This particular interface is discussed in "Media Resource Consumer Interface" in Section 5.2. The Application Server is then able to direct control commands (for example create conference) and Media Dialogs to the Boulton, et al. Expires February 2, 2012 [Page 9] Internet-Draft Media Resource Brokering August 2011 appropriate Media Server, as shown by (3) in Figure 5. Additionally, with Query MRB, the MRB is not in the signaling path between the AS and the selected MS resource. 4.1.1. Hybrid Query MRB As mentioned previously, it is the intention that a tool kit is provided for MRB functionality within a MediaCtrl architecture. It is expected that in specific deployment scenarios the role of the MRB might be co-hosted as a hybrid logical entity with an Application Server, as shown in Figure 6. +------------<----------------<---------+----<-----+---+ | (1) | | | | | | | | +---+--+--+---+ | | | | Media | | | V +---->| Server | | | +------+------+ | +-------------+ | | | MRB | | | | +---+--+--+---+ | +---+-----+---+ | | | Application | | | Media | | | | Server |<-----+-MS Control-+---->| Server |->-+ | +-------------+ | +-------------+ | | | | +---+-----+---+ | +---->| Media | | | Server |--->---+ +---+-----+---+ Figure 6: Hybrid Query MRB - AS Hosted This diagram is identical to that in Figure 5 with the exception that the MRB is now hosted on the Application Server. The "Media Server Publish Interface" is still being used to accumulate resource information at the MRB but as it is co-hosted on the Application Server, the "Media Server Consumer Interface" has collapsed. It might still exist within the Application Server/MRB interaction but this is an implementation issue. This type of deployment suits a single Application Server environment but it should be noted that a "Media Server Consumer Interface" could then be offered from the hybrid if required. In a similar manner, the Media Server could also act as a hybrid for the deployment cluster, as illustrated in Figure 7. Boulton, et al. Expires February 2, 2012 [Page 10] Internet-Draft Media Resource Brokering August 2011 (1) +---+-----+---+ +---+---+------------->---------------->----------->| MRB | | | | +---+--+--+---+ +---+-----+---+ | | +-<-| Application | | Media | | | | Server |<--+-MS Control-+------->| Server | | | +-------------+ | +-------------+ | | | | | +---+--+--+---+ | | +---<---| Application | | | | Server |<--+-MS Control-+--+ | +-------------+ | | | | +---+--+--+---+ | +---<-------| Application | | | Server |<--+-MS Control-+--+ +-------------+ Figure 7: Hybrid Query MRB - MS Hosted This time the MRB has collapsed and is co-hosted by the Media Server. The "Media Server Consumer Interface" is still available to the Application Servers (1) to query Media Server resources. This time the "Media Server Publish Interface" has collapsed onto the Media Server. It might still exist within the Media Server/MRB interaction but this is an implementation issue. This type of deployment suits a single Media Server environment but it should be noted that a "Media Server Publish Interface" could then be offered from the hybrid if required. A typical use case scenario for such a topology would be a single MS representing a pool of MSs in a cluster. In that case, the MRB would actually be handling a cluster of MSs, rather than one. 4.2. In-Line MRB The "In-line" MRB is architecturally different from the "Query" model that was discussed in the previous section. The concept of a separate query disappears. The client of the MRB simply uses the media resource control and media dialog signalling to involve the MRB. This type of deployment is illustrated in Figure 8. Boulton, et al. Expires February 2, 2012 [Page 11] Internet-Draft Media Resource Brokering August 2011 +-------<----------+----<-------+---+ | | (1) | | | | | | | +---+--+--+---+ | | | | Media | | | | +------>| Server | | | | |(3) +-------------+ | | | | (1)| | +---+--+--+---+ | | +---+-----+---+ | | | Application | (2) +---+--V--+---+ (3) | Media | | | | Server |----->| MRB |----->| Server |->-+ | +-------------+ +---+-----+---+ +-------------+ | | | | (3) +---+-----+---+ (1)| +------>| Media | | | Server |--->---+ +---+-----+---+ Figure 8: In-line MRB The Media Servers still use the 'Media Server Publish Interface' to convey capabilities and resources to the MRB - as illustrated by (1). The media server Control (and Media dialogs as well, if required) is sent to the MRB (2) which then selects an appropriate Media Server (3) and would stay in the signaling path between the AS and the MS resource for the handled dialogs. In-line MRB can be split into two distinct logical roles which can be applied on a per request basis. They are: In-line Unaware MRB Mode (IUMM): Allows an MRB to act on behalf of clients requiring media services who are not aware of an MRB or its operation. In this case the AS does not provide explicit information on the kind of MS resource it needs (as in Section 5.2) and the MRB is left to deduce it by potentially inspecting other information in the request from the AS; for example, SDP content, or address of the requesting AS, or additional Request-URI parameters as per RFC 4240 [RFC4240]. In-line Aware MRB Mode (IAMM): Allows an MRB to act on behalf of clients requiring media services who are aware of an MRB and its operation. In particular it allows the AS to explicitly the convey the same kinds of MS characteristics desired as does the Query MRB mode (as in Section 5.2). In either role, the MRB would deduce that the selected MS resources are no longer needed when the AS or MS terminates the corresponding Boulton, et al. Expires February 2, 2012 [Page 12] Internet-Draft Media Resource Brokering August 2011 dialog. The two modes are discussed in more detail in Section 5.3. Boulton, et al. Expires February 2, 2012 [Page 13] Internet-Draft Media Resource Brokering August 2011 5. MRB Interface Definitions As discussed in previous sections in this document, the intention is to provide a tool-kit for a variety of deployment architectures where media resource brokering can take place. As a result, two main interfaces are required to support the differing requirements. The two interfaces are described in the remainder of this section and have been named the 'Media Server Resource Publish' and 'Media Server Resource Consumer' interfaces. These two interfaces have extremely differing responsibilities and usages which is reflected in the choice of solutions. It is beyond the scope of this document to define exactly how to construct an MRB. This includes interpreting the data for the Media Service Consumer interface supplied by the Media Server Publish interface. It is, however, important that the two interfaces are complimentary so that development of appropriate MRB functionality is supported. 5.1. Media Server Resource Publish Interface The Media Server Resource Publish interface is responsible for providing an MRB with appropriate Media Server resource information. As such, this interface is assumed to provide both general and specific details related to Media Server resources. This information needs to be conveyed using an industry standard mechanism to provide increased levels of adoption and interoperability. A Control Package for the Media Control Channel Framework will be specified to fulfil this interface requirement. It provides an establishment and monitoring mechanism to enable a Media Server to report appropriate statistics to an MRB. The Publish interface is used with both Query and In-line modes of MRB operation. As already anticipated in the introduction, the MRB view of MS resource availability will in practice be approximate - i.e., partial and imperfect. The MRB Publish interface does not provide an exhaustive view of current MS resource consumption, the MS may in some cases provide a best-effort computed view of resource consumption parameters conveyed in the Publish interface (e.g., DSP's with a fixed number of streams versus GPU's with CPU availability), there may be licensing constraints not factored in (e.g., even if lots of CPU and memory are available, licensing or other configuration elements may restrict the number of stream types), and MS resource information may only be reported periodically over the Publish interface to MRB. Nevertheless, despite such limitations it is assumed that the provided information is enough to allow MRB implementers to realize its functionality. Boulton, et al. Expires February 2, 2012 [Page 14] Internet-Draft Media Resource Brokering August 2011 It is also worth noting that, while the scope of the MRB is definitely on providing interested Application Servers with the available resources, the MRB also allows for the retrieval of information about the currently occupied resources. While this is of course a relevant piece of information (e.g., for monitoring purposes), such a functionality inevitably raises security considerations, and implementations should take this into account. See Section 12 for more details. The MRB Publish interface uses the Media Control Channel Framework ([I-D.ietf-mediactrl-sip-control-framework]) as the basis for interaction between a Media Server and an MRB. The Media Control Channel Framework uses an extension mechanism to allow specific usages which are known as control packages. Section 5.1.1 defines the control package that MUST be implemented by any Media Server wanting to interact with an MRB entity. Please note that it is out of scope how an MRB knows what MSs should be queried for publishing information. 5.1.1. Control Package Definition This section fulfils the mandatory requirement for information that must be specified during the definition of a Control Framework Package, as detailed in Section 8 of [I-D.ietf-mediactrl-sip-control-framework]. 5.1.1.1. Control Package Name The Media Channel Control Framework requires a Control Package definition to specify and register a unique name and version. The name and version of this Control Package is "mrb-publish/1.0". 5.1.1.2. Framework Message Usage The MRB publish interface allows a media server to convey available capabilities and resources to an MRB entity. This package defines XML elements in Section 5.1.2 and provides an XML Schema in Section 10. The XML elements in this package are split into requests, responses and event notifications. Requests are carried in CONTROL message bodies; element is defined as a package request. This request can be used for creating new subscriptions and updating/ removing existing subscriptions. Event notifications are also carried in CONTROL message bodies; the element is Boulton, et al. Expires February 2, 2012 [Page 15] Internet-Draft Media Resource Brokering August 2011 defined for package event notifications. Responses are carried either in REPORT message or Control Framework 200 response bodies; the element is defined as a package level response. Note that package responses are different from framework response codes. Framework error response codes (see Section 7 of [I-D.ietf-mediactrl-sip-control-framework]) are used when the request or event notification is invalid; for example, a request has invalid XML (400), or is not understood (500). Package level responses are carried in framework 200 response or REPORT message bodies. This package's response codes are defined in Section 5.1.5. 5.1.1.3. Common XML Support The Media Control Channel Framework [I-D.ietf-mediactrl-sip-control-framework] requires a Control Package definition to specify if the attributes for media dialog or conference references are required. The Publish interface defined in Section 10 does import and make use of the common XML schema defined in the Media Control Channel Framework. The Consumer interface defined in Section 11 does import and make use of the common XML schema defined in the Media Control Channel Framework. 5.1.1.4. CONTROL Message Body A valid CONTROL body message MUST conform to the schema defined in Section 10 and described in Section 5.1.2. XML messages appearing in CONTROL messages MUST contain either a or element. 5.1.1.5. REPORT Message Body A valid REPORT body MUST conform to the schema defined in Section 10 and described in Section 5.1.2. XML messages appearing in REPORT messages MUST contain a element. 5.1.1.6. Audit The 'mrb-publish/1.0' Media Control Channel Framework package does not require any additional auditing capability. Boulton, et al. Expires February 2, 2012 [Page 16] Internet-Draft Media Resource Brokering August 2011 5.1.2. Element Definitions This section defines the XML elements for the Publish interface Media Control Channel package defined in Section 5.1. The formal XML schema definition for the Publish interface can be found in Section 10. The root element is . All other XML elements (requests, responses, notifications) are contained within it. The MRB Publish interface request element is detailed in Section 5.1.3. The MRB Publish interface notification element is detailed in Section 5.1.4. MRB Publish interface response element is contained in Section 5.1.5. The content of an element is zero or more of the following attributes: version: a token specifying the mrb-publish package version. The value is fixed as '1.0' for this version of the package. The attribute MUST be present. The content of an element is the following child elements, only one of which is allowed to occur in a request. for sending an MRB request. See Section 5.1.3. for sending an MRB response. See Section 5.1.5. for sending an MRB notification. See Section 5.1.4. 5.1.3. This section defines the element used to initiate requests from an MRB to a Media Server. The element describes information relevant for the interrogation of a media server. The content of an element has no defined attributes. The content of an element is zero or more of following child elements: for initiating a subscription to a Media Server from an MRB. See Section 5.1.3.1. Boulton, et al. Expires February 2, 2012 [Page 17] Internet-Draft Media Resource Brokering August 2011 5.1.3.1. The element is included in a request from an MRB to a Media Server to provide the details relating to the configuration of updates. This element can be used either to request a new subscription or to update an existing one (e.g., to change the frequency of the updates), and to remove ongoing subscriptions as well (e.g., to stop an indefinite update). The MRB will inform the Media Server how long it wishes to receive updates for and the frequency that updates should be sent. Updates related to the subscription are sent using the element. The content of a element has the following attributes: id: indicates a unique token representing the subscription session between the MRB and the Media Server. The attribute MUST be present. seqnumber: indicates a sequence number to be used in conjunction with the subscription session id to identify a specific subscription command. The first subscription MUST have 1 as 'seqnumber', and following subscriptions MUST increment by 1 the previous 'seqnumber' value. The attribute MUST be present. action: provides the operation that should be carried out on the subscription: * The value of 'create' instructs the MS to attempt to set-up a new subscription. * The value of 'update' instructs the MS to attempt to update an existing subscription. * The value of 'remove' instructs the MS to attempt to remove an existing subscription and consequently stop any ongoing related notification. The attribute MUST be present. The content of a element has zero or more of the following child elements: expires: Provides the amount of time in seconds that a subscription should be installed for notifications at the Media Server. Once the amount of time has passed, the subscription expires and the MRB has to subscribe again in case it is still interested in receiving notifications from the MS. The element MAY be present. Boulton, et al. Expires February 2, 2012 [Page 18] Internet-Draft Media Resource Brokering August 2011 minfrequency: Provides the minimum frequency in seconds that the MRB wishes to receive notifications from the MS. The element MAY be present. maxfrequency: Provides the maximum frequency in seconds that the MRB wishes to receive notifications from the MS. The element MAY be present. Please note that these three optional pieces of information provided by the MRB only act as a suggestion: the MS MAY change the proposed values if it considers the suggestions unacceptable (e.g., if the MRB has requested a too high notification frequency). In such case, the request would not fail, but the updated, acceptable values would be reported in the accordingly. 5.1.4. The element is included in a request from a Media Server to an MRB to provide the details relating current status. The Media Server will inform the MRB of its current status as defined by the information in the element. Updates are sent using the element. The content of an element has the following attributes: id: indicates a unique token representing the session between the MRB and the Media Server and is the same as the one appearing in the element. The attribute MUST be present. seqnumber: indicates a sequence number to be used in conjunction with the subscription session id to identify a specific notification update. The first notification MUST have 1 as 'seqnumber', and following notifications MUST increment by 1 the previous 'seqnumber' value. The attribute MUST be present. The following subsections provide details of the child elements that are the content of the element. 5.1.4.1. The element provides a unique system wide identifier for a Media Server instance. The element MUST be present. 5.1.4.2. The element provides the list of Media Control Channel Packages supported by the media server. The element MAY be Boulton, et al. Expires February 2, 2012 [Page 19] Internet-Draft Media Resource Brokering August 2011 present. The content of a element has no attributes. The content of a element has zero or more of the following child elements: package: The element the name of a package supported by the media server. The element has a single attribute, 'name', which provides the name of the supported Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc-ivr/1.0"). 5.1.4.3. The element provides information detailing the current active Real-time Transport Protocol(RTP) sessions. The element MAY be present. The content of an element has no attributes. The content of an element has zero or more of the following child elements: rtp-codec: Describes a supported codec and the number of active sessions using that codec. The element has one attribute. The value of the attribute 'name' is a MIME media type (which can include parameters per [RFC4281]). The element has two child elements. The child element, , has as content the decimal number of RTP sessions being decoded using the specified codec. The child element, , has as content the decimal number of RTP sessions being encoded using the specified codec. 5.1.4.4. The element provides information detailing the current active mixed RTP sessions. The element MAY be present. The content of an element has no attributes. The content of an element has zero or more of the following child elements: active-mix: Describes a mixed active RTP session. The element has one attribute. The value of the attribute 'conferenceid' is the name of the mix. The element has one child element. The child element, , contains Boulton, et al. Expires February 2, 2012 [Page 20] Internet-Draft Media Resource Brokering August 2011 the same information relating to RTP sessions as defined in Section 5.1.4.3. The element MAY be present. 5.1.4.5. The element provides information detailing the currently available inactive RTP sessions. The element MAY be present. The content of a element has no attributes. The content of a element has zero or more of the following child elements: rtp-codec: Describes a supported codec and the number of non-active sessions for that codec. The element has one attribute. The value of the attribute 'name' is a MIME media type (which can include parameters per [RFC4281]). The element has two child elements. The child element, , has as content the decimal number of RTP sessions available for decoding using the specified codec. The child element, , has as content the decimal number of RTP sessions available for encoding using the specified codec. 5.1.4.6. The element provides information detailing the current inactive mixed RTP sessions. The element MAY be present. The content of an element has no attributes. The content of an element has zero of more of the following child element: non-active-mix: Describes available mixed RTP sessions. The element has one attribute. The value of the attribute 'available' is the number of mixes that could be used using that profile. The element has one child element. The child element, , contains the same information relating to RTP sessions as defined in Section 5.1.4.5. The element MAY be present. Boulton, et al. Expires February 2, 2012 [Page 21] Internet-Draft Media Resource Brokering August 2011 5.1.4.7. The element provides information detailing the current status of the media server. The element MUST be present. It can return one of the following values: active: Indicating that the Media Server is available for service. deactivated: Indicating that the Media Server has been withdrawn from service, and as such should not be contacted before it becomes 'active' again. unavailable: Indicating that the Media Server continues to process past requests but cannot accept new requests, and as such should not be contacted before it becomes 'active' again. The content of a element has no attributes. The content of a element has no child elements. 5.1.4.8. The element provides information detailing the current codecs supported by a media server and associated actions. The element MAY be present. The content of a element has no attributes. The content of a element has zero or more of the following child element: supported-codec: has a single attribute, 'name', which provides the name of the codec providing information. A valid value is a MIME media type which, depending on its definition, can include additional parameters (e.g., [RFC4281]). The element then has a further child element, . The element has a single attribute, 'name', which provides the name of the Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc-ivr/1.0"), for which the codec support applies. The element has one further child element, , which provide the actions that a Media Server can apply to this codec: * 'decode', meaning a decoder for this codec is available; * 'encode', meaning an encoder for this codec is available; Boulton, et al. Expires February 2, 2012 [Page 22] Internet-Draft Media Resource Brokering August 2011 * 'passthrough', meaning the MS is able to pass a stream encoded using that codec through without re-encoding. 5.1.4.9. The element provides arbitrary application level data. This data is meant to only have meaning at the application level logic and as such is arbitrary. The element MAY be present. The content of an element has no attributes. The content of an element has no child elements. 5.1.4.10. The element provides a list of file formats supported for the purpose of playing media. The element MAY be present. The content of a element has no attributes. The content of a element has zero of more the following child elements: supported-format: has a single attribute, 'name', which provides the type of file format that is supported. A valid value is a MIME media type which, depending on its definition, can include additional parameters (e.g., [RFC4281]). The element then has a further child element, . The element provides the name of the Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc-ivr/1.0"), for which the file format support applies. 5.1.4.11. The element provides the amount of time a media dialog can be prepared in the system before it is executed. The element MAY be present. The content of a element has no attributes. The content of a element has zero or more of the following child elements: max-time: has a single attribute, 'max-time-seconds', which provides the amount of time in seconds that a media dialog can be in the prepared state. The element then has a further child element, . The element Boulton, et al. Expires February 2, 2012 [Page 23] Internet-Draft Media Resource Brokering August 2011 provides the name of the Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc-ivr/1.0"), for which the time period applies. 5.1.4.12. The element supplies the supported methods to detect DTMF tones and to generate them. The element MAY be present. The content of a element has no attributes. The content of a element has zero of more of the following child elements: detect: Indicates the support for DTMF detection. The element has no attributes. The element then has a further child element, . The element has two attributes, 'name' and 'package. The 'name' attribute provides the type of DTMF being used, and it can only be either 'RFC4733' [RFC4733] or 'Media' (tones as signals in the audio stream). The 'package' attribute provides the name of the Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc-ivr/1.0"), for which the DTMF type applies. generate: Indicates the support for DTMF generation. The element has no attributes. The element then has a further child element, . The element has two attributes, 'name' and 'package. The 'name' attribute provides the type of DTMF being used, and it can only be either 'RFC4733' [RFC4733] or 'Media' (tones as signals in the audio stream). The 'package' attribute provides the name of the Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc-ivr/1.0"), for which the DTMF type applies. passthrough: Indicates the support for passing DTMF through without re-encoding. The element has no attributes. The element then has a further child element, . The element has two attributes, 'name' and 'package. The 'name' attribute provides the type of DTMF being used, and it can only be either 'RFC4733' [RFC4733] or 'Media' (tones as signals in the audio stream). The 'package' attribute provides the name of the Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc-ivr/1.0"), for which the DTMF type applies. Boulton, et al. Expires February 2, 2012 [Page 24] Internet-Draft Media Resource Brokering August 2011 5.1.4.13. The element provides information about the support for audio and video mixing of a Media Server, specifically a list of supported algorithms to mix audio and a list of supported video presentation layouts. The element MAY be present. The content of a element has no attributes. The content of a element has zero or more of the following child elements: audio-mixing-modes: Describes the available algorithms for audio mixing. The element has no attributes. The element has one child element. The child element, , contains a specific available algorithm. It has a single attribute, 'package'. The attribute 'package' provides the name of the Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc-ivr/1.0"), for which the algorithm support applies. video-mixing-modes: Describes the available video presentation layouts and the supported functionality for what concerns video mixing. The element has two attributes, 'vas' and 'activespeakermix'. The 'vas' attribute is of type boolean with a value of 'true' indicating the Media Server supports automatic Voice Activated Switching. The 'activespeakermix' is of type boolean with a value of 'true' indicating that the Media Server is able to prepare an additional video stream for the loudest speaker participant without its contribution. The element has one child element. The child element, , contains the name of a specific video presentation layout. The name may refer to one of predefined video layouts defined in the XCON conference information data model, or to non-XCON layouts as well, as long as they are properly prefixed. The element has a single attribute, 'package'. The attribute 'package' provides the name of the Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc- ivr/1.0"), for which the algorithm support applies. 5.1.4.14. The element provides information about which tones a media server supports. In particular, the support is reported referring to both country codes support (ISO 3166-1 [ISO.3166-1]) and supported functionality (ITU-T Recommendation Q.1950 [ITU-T.Q.1950]). Boulton, et al. Expires February 2, 2012 [Page 25] Internet-Draft Media Resource Brokering August 2011 The element MAY be present. The content of a element has no attributes. The content of a element has zero or more of the following child elements: supported-country-codes: Describes the supported country codes with respect to tones. The element has no attributes. The has one child element. The child element, , reports support for a specific country code, compliant with the ISO 3166-1 [ISO.3166-1] specification. The element has a single attribute, 'package'. The attribute 'package' provides the name of the Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc-ivr/1.0"), in which the tones from the specified country code are supported. supported-h248-codes: Describes the supported H.248 codes with respect to tones. The element has no attributes. The has one child element. The child element, , reports support for a specific H.248 code, compliant with the ITU-T Recommendation Q.1950 [ITU-T.Q.1950] specification. The codes can be either specific (e.g., cg/dt to only report the Dial Tone from the Call Progress Tones package) or generic (e.g., cg/* to report all the tones from the Call Progress Tones package) using wild-cards. The element has a single attribute, 'package'. The attribute 'package' provides the name of the Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc-ivr/1.0"), in which the specified codes are supported. 5.1.4.15. The element allows the Media Server to specify which protocols are supported for streaming to a Media Server for each Media Control Channel Framework package type. For example, whether the Media Server supports audio streaming via RTSP, HTTP, NFS, etc protocols. The element MAY be present. The content of a element has no attributes. The content of a element has zero or more of the following child element: Boulton, et al. Expires February 2, 2012 [Page 26] Internet-Draft Media Resource Brokering August 2011 stream-mode: has two attributes, 'name' and 'package'. The 'name' attribute provides the type of protocol that can be used for streaming (e.g., "HTTP", "RTSP", etc.). The 'package' attribute provides the name of the Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc-ivr/1.0"), for which the streaming protocol applies. 5.1.4.16. The element provides information about the support for Automatic Speech Recognition (ASR) and Text-to-Speech (TTS) functionality in a media server. The functionality are reported by referring to the supported languages (using ISO-639-1 [ISO.639.1988] codes) for what regards both ASR and TTS. The element MAY be present. The content of an element has no attributes. The content of an element has zero or more of the following child elements: asr-support: Describes the available languages for ASR. The element has no attributes. The has one child element. The child element, , reports the MS supports ASR for a specific language. The element has a single attribute, 'xml:lang'. The attribute 'xml:lang' contains the ISO-639-1 [ISO.639.1988] code of the supported language. tts-support: Describes the available languages for TTS. The element has no attributes. The has one child element. The child element, , reports the MS supports tts for a specific language. The element has a single attribute, 'xml:lang'. The attribute 'xml:lang' contains the ISO-639-1 [ISO.639.1988] code of the supported language. 5.1.4.17. The element specifies if the Media Server supports VoiceXML and if it does which protocols the support is exposed through (e.g., via the control framework, RFC4240 [RFC4240], or RFC5552 [RFC5552]). The element MAY be present. The content of a element has a single attribute 'support'. The 'support' attribute is of type boolean with a value of 'true' indicating that the media server does support VXML, and a value of 'false' indicating it does not support VXML. The default value is 'false'. Boulton, et al. Expires February 2, 2012 [Page 27] Internet-Draft Media Resource Brokering August 2011 The content of a element has the following child element: vxml-mode: has two attributes, 'package' and 'support'. The 'package' attribute provides the name of the Media Control Channel Framework package, compliant with the specification in the related IANA registry (e.g., "msc-ivr/1.0"), for which the VXML support applies. The 'support' attribute provides the type of VXML support provided by the Media Server (RFC5552 [RFC5552], RFC4240 [RFC4240] or IVR-Package [I-D.ietf-mediactrl-ivr-control-package]). 5.1.4.18. The element provides information about the civic location of a media server. Its description makes use of the Civic Address Schema standardized in RFC 5139 [RFC5139]. The element MAY be present. The content of a element has no attributes. The content of a element has zero or more of the following child elements: civicAddress: Describes the civic address location of the media server, whose representation refers to the Section 4 of RFC 5139 [RFC5139]. 5.1.4.19.