<?xml version="1.0" encoding="US-ASCII" ?>
<!-- automatically generated by xml2rfc v1.33 on 2008-03-18T00:16:55Z -->
<!-- automatically generated by xml2rfc v1.33 on 2008-03-18T00:16:55Z -->
<!-- automatically generated by xml2rfc v1.33 on 2008-03-18T00:04:37Z -->
<!-- automatically generated by xml2rfc v1.33 on 2008-03-18T00:04:37Z -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>


<?rfc toc="yes" ?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?>

<rfc number="5167" category="info">
	<front>
		<title abbrev="MCP Requirements">Media Server Control Protocol Requirements</title>
		<author initials="M." surname="Dolly" fullname="Martin Dolly">
			<organization>AT&amp;T Labs</organization>
			<address>
				<postal>
					<street>200 Laurel Avenue</street>
					<city>Middletown</city>
					<region>NJ</region>
					<code>07748</code>
					<country>USA</country>
				</postal>
				<phone/>
				<email>mdolly@att.com</email>
				<uri/>
			</address>
		</author>
		<author initials="R" surname="Even" fullname="Roni Even">
			<organization>Polycom</organization>
			<address>
				<postal>
					<street>94 Derech Em Hamoshavot</street>
					<city>Petach Tikva</city>
					<country>Israel</country>
					<code>49130</code>
				</postal>
				<email>roni.even@polycom.co.il</email>
			</address>
		</author>
		<date month="March" year="2008"/>
		<area>RAI</area>
		<workgroup>Mediactrl</workgroup>
		<keyword>SIP</keyword>
		<keyword>Configuration</keyword>
		<keyword>Framework</keyword>
		<keyword>User Agent</keyword>
		<keyword>profile</keyword>
		<keyword>XML</keyword>
		<keyword>schema</keyword>

  <!-- [rfced] Please insert any keywords (beyond those that appear in the title) for use on http://www.rfceditor.org/rfcsearch.html. -->
		<abstract>
			<t>This document addresses the communication between an application
   server and media server.  The current work in IETF
   working groups shows these logical entities, but it does not address the
   physical decomposition and the protocol between the entities.
</t>
			<t>
   This document presents the requirements for a Media Server Control
 Protocol (MCP) that enables an application server to use a media
server.  It will address the aspects of announcements, Interactive
Voice Response, and conferencing media services.
</t>
		</abstract>
	</front>
	<middle>
		<section anchor="Introduction" title="Introduction">
			<t>The IETF conferencing framework in RFC
			4353 <xref target="CARCH"/> presents an
			architecture that is built of several
			functional entities. RFC 4353 <xref
target="CARCH"/> does not specify the protocols between the functional
entities since it is considered out of scope.</t> 
			<t>Based on RFC 4353 <xref target="CARCH"/>,
this document defines the requirements for a protocol that will enable
one functional entity, known as an Application Server (AS), that
includes the conference/media policy server, the notification server,
and the focus, all defined in RFC 4353 <xref target="CARCH"/>, to
interact with one or more functional entities, called Media Server
(MS), that serves as mixer or media server. 
</t>
			<t>
The media server can also be used for announcements and Interactive Voice Response (IVR) functions.
</t>
			<t>Application servers host one or more
instances of a communication application.  Media servers provide real
time media processing functions. An example of the decomposition of a
media server and an application server is described in the media
control framework document <xref target="MEDIACTRL-FW"/>.</t> 
			<t>

   This document presents the requirements for a Media Server Control
Protocol (MCP) that enables an application server to control a media
server. It will address the aspects of announcements, IVR, and
conferencing media services.</t> 
			<t>
The requirements are for the protocol and do not address the AS or MS functionality discussed in the media control framework.  
</t>
<t>Since the media server is a centralized component, the charter of the working group states that this work will not investigate distributed media processing algorithms or control protocols.</t>
		</section>
		
		<section title="Terminology">
			<t>The media server work uses, when
appropriate, and expands on the terminology introduced in the
conferencing framework <xref target="CARCH"/> and Centralized
Conferencing (XCON) framework <xref target="XCON-FRMWRK"/>. The
following additional terms are defined:
</t> 
			<t>Application Server (AS) - A functional
			entity that hosts one or more instances of a
			communication application. The application
			server may include the  conference policy
			server, the focus, and the conference
			notification server, as defined in
			<xref target="CARCH"/>. Also, it may include communication applications that use IVR or announcement services.
</t>
			<t>Media Server (MS) - The media server
			includes the mixer as defined in
			<xref target="CARCH"/>. The media server plays
			announcements, it processes media streams for
			functions like Dual Tone Multi-Frequency
			(DTMF) detection and transcoding. The media
			server may also record media streams for
			supporting IVR functions like announcing
			participants</t>
			<t>Media Resource Broker (MRB) - A logical
			entity that is responsible for both the
			collection of appropriate published Media
			Server (MS) information and supplying of
			appropriate MS information to consuming
			entities. The MRB is an optional entity and
			will be discussed in a separate document.
</t>
			<t>Notification - A notification is used when
			there is a need to report event-related
			information from the MS to the AS.</t>
			<t>Request - A request is sent from the
			controlling entity, such as an application
			server, to another resource, such as a media
			server, asking that a particular type of
			operation be executed.</t>
			<t>Response - A response is used to signal
			information, such as an acknowledgement or
			error code in reply to a previously issued
			request. </t>
		</section>
		<section anchor="Requirements" title="Requirements">

			<section anchor="ipinterconnection" title="Media Control Requirements">
				<t>The following are the media control requirements:</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-01 -">The MS Control Protocol shall enable one or more application servers to request media services from one or more media servers.                            </t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-02 - ">The MS Control Protocol shall use a reliable transport protocol.                              </t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-03 -"> The applications supported by the protocol shall include conferencing and Interactive Voice Response media services. </t>
					</list>
				</t>
				<t>Note: Though the protocol enables these services, the functionality is invoked through other mechanisms.</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-04 -">Media types supported in the context of the applications shall include audio, tones, text, and video. Tones media include in-band audio or RFC 4733 payload. </t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-05 -">The MS control protocol should allow, but must not require, a media resource broker (MRB) or intermediate proxy to exist with the application server and media server.
</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-06 -">On the MS control channel, there shall be requests to the MS, responses from the MS, and notifications to the AS.</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t
						hangText="REQ-MCP-07
						-">SIP/SDP (Session
                                                Initiation Protocol / Session
						Description Protocol)
						shall be used to
						establish and modify
						media connections to a
						media server.</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-08 -">It should be possible to support a single conference spanning multiple media servers. </t>
						<t> </t>
						<t>Note: It is probable that spanning multiple MSs can be accomplished by the AS and does not require anything in the protocol for the scenarios we have in mind. However, the concern is that if this requirement is treated too lightly, one may end up with a protocol that precludes its support. </t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-09 -">It must be possible to split call legs individually, or in groups, away from a main conference on a given media server, without performing re-establishment of the call legs to the MS (e.g., for purposes such as performing IVR with a single call leg or creating sub-conferences, not for creating entirely new conferences).  </t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-10 -">The MS control protocol should be extendable, facilitating forward and backward compatibility.</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-11 -"> The MS control protocol shall include an authentication component to ensure that only an authorized AS can communicate with the MS, and vice versa.</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-12 -"> The MS control protocol shall use some form of transport protection to ensure the confidentiality and integrity of the data between the AS and MS. </t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-13 -"> Different application servers may have different privileges for using an MS. The protocol should prevent the AS from doing unauthorized operations on a MS.  </t>
					</list>
				</t>

				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-14 -"> The MS control protocol requires mechanisms to protect  the MS resources used by one AS from another AS since the solution needs to support multiple ASs controlling one MS. </t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t
						hangText="REQ-MCP-15
						-">During session
						establishment, there
						shall be a capability
						to negotiate
						parameters that are
						associated with media
						streams. This
						requirement should
						also enable an AS managing conference to specify the media streams allowed in the conference. </t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-16 -">The AS shall be able to instruct the MS to perform stream operations like mute and gain control.
</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-17 -">The AS shall be able to instruct the MS to play a specific
   announcement.</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-18 -">The AS shall be able to request the MS to create, delete, and manipulate a mixing, IVR, or announcement session.</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-19 -">The AS shall be able to instruct the MS to play announcements to a single user or to a conference mix.
				</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t
						hangText="REQ-MCP-20
						-">The MS control
						protocol should enable
						the AS to ask the MS
						for a session summary report. The report may include resource usage and quality metrics.				</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t
						hangText="REQ-MCP-21
						-">The MS shall be
						able to notify the AS
						of events received in
						the media stream if
						requested by the AS. (Examples - STUN request, Flow Control, etc.)
				</t>
					</list>
				</t>
			</section>
			<section title="Media mixing Requirements">
				<t>
					<list style="hanging">
						<t
						hangText="REQ-MCP-22
						-">The AS shall be
						able to define a
						conference mix; the MS may offer different mixing topologies. The conference mix may be defined on a conference or user level.</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-23 -">The AS may be able to define a custom video layout built of rectangular sub-windows.
				</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-24 -">For video, the AS shall be able to map a stream to a specific sub-window or to define to the MS how to decide which stream will go to each sub-window. </t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t
						hangText="REQ-MCP-25
						-">The MS shall be
						able to notify the ASs
						of who the active
						sources of the media are;
						for example, who
						the active speaker is
						or who is being viewed in a conference. The speaker and the video source may be different, for example, a person describing a video stream from a remote camera managed by a different user.</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-26 -">The MS shall be able to inform the AS which layouts it supports.</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-27 -">The MS control protocol should enable the AS to instruct the MS to record a specific conference mix.				</t>
					</list>
				</t>
			</section>
			<section title="IVR Requirements">
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-28 -">The AS shall be able to instruct the MS to perform one or more IVR scripts and receive the results. The script may be in a server or contained in the control message.
			</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-29 -">The AS shall be able to manage the IVR session by sending requests to play announcements to the MS and receiving the response (e.g., DTMF). The IVR session flow, in this case, is handled by the AS by starting a next phase based on the response it receives from the MS on the current phase.
				</t>
					</list>
				</t>
				<t>
					<list style="hanging">
						<t hangText="REQ-MCP-30 -">The AS should be able to instruct the MS to record a short participant stream and play it back.  This is not a recording requirement.
				</t>
					</list>
				</t>
			</section>

			<section title="Operational Requirements">

			<t> These requirements may be applicable to
			the MRB, but they can be used by an AS if it
			has a one-to-one connection to the MS.</t>
			<t>
				<list style="hanging">
					<t hangText="REQ-MCP-31 -">The MS control protocol must allow the AS to audit the MS state during an active session. </t>
				</list>
			</t>
			<t>
				<list style="hanging">
					<t hangText="REQ-MCP-32 -">The MS shall be able to inform the AS about its status during an active session. </t>
				</list>
			</t>
		</section>
		</section>


			<section anchor="security-considerations" title="Security Considerations">
			<t>This document discusses high-level requirements for MCP.
The MCP has some specific security requirements, which will be summarized here at a very high level.
</t>
<t>All of the operations and functions described in this document need
  to be authorized by an MS or an AS.  It is expected that MS
  resources will be governed by a set of authorization rules defined
  as part of the AS / MS policy.  In order for the policy to be
  implemented, the MS needs to be able to authenticate requests.
  Normal SIP mechanisms, including Digest authentication and
  certificates, can be used as specified in RFC 3261 <xref
target="RFC3261"/>.  These MCP security requirements will be discussed
in detail in the framework and protocol documents.</t> 
			<t>

			</t>
		</section>

		<section title="Acknowledgments">
			<t>This RFC represents the work from two
			previous personal works in progress,
			"Media Control Protocol Requirements" and
			"Requirements for a Media Server Control
                        Protocol". The authors
			would like to acknowledge the work of Gary
			Munson from AT&amp;T Labs, and James Rafferty
			from Cantata who helped write
			"Media Control Protocol Requirements", on which
			this work is based.
</t>
		</section>
	</middle>
	<back>
		<references title="Informative References">
			<reference anchor="CARCH">
				<front>
					<title>A Framework for Conferencing with the Session Initiation Protocol (SIP)</title>
					<author initials="J." surname="Rosenberg" fullname="J. Rosenberg">
						<organization/>
					</author>
					<date year="2006" month="February"/>
					<abstract>
						<t>&lt;p>The Session Initiation Protocol (SIP) supports the initiation, modification, and termination of media sessions between user agents. These sessions are managed by SIP dialogs, which represent a SIP relationship between a pair of user agents. Because dialogs are between pairs of user agents, SIP's usage for two-party communications (such as a phone call), is obvious. Communications sessions with multiple participants, generally known as conferencing, are more complicated. This document defines a framework for how such conferencing can occur. This framework describes the overall architecture, terminology, and protocol components needed for multi-party conferencing. This memo provides information for the Internet community.&lt;/p></t>
					</abstract>
				</front>
				<seriesInfo name="RFC" value="4353"/>
				<format type="TXT" octets="67405" target="ftp://ftp.isi.edu/in-notes/rfc4353.txt"/>
			</reference>
			<reference anchor="MEDIACTRL-FW">
				<front>
					<title>An Architectural Framework for Media Server Control</title>
					<author initials="T"
						surname="Melanchuk"
						fullname="Tim
							  Melanchuk" role="editor">
						<organization/>
					</author>
					<date month="February" day="5" year="2008"/>
				</front>
				<seriesInfo name="Work in" value="Progress"/>
				<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-ietf-mediactrl-architecture-02.txt"/>
			</reference>
			<reference anchor="XCON-FRMWRK">
				<front>
					<title>A Framework for Centralized Conferencing</title>
					<author initials="M" surname="Barnes" fullname="Mary Barnes">
						<organization/>
					</author>
                                        <author initials="C"
						surname="Boulton">
                                        </author>
                                        <author initials="O"
						surname="Levin">
                                        </author>
					<date month="November" year="2007"/>
					<abstract>
						<t>This document defines the framework for Centralized Conferencing. The framework allows participants using various call signaling protocols, such as SIP, H.323, Jabber and PSTN, to exchange media in a centralized unicast conference. The Centralized Conferencing Framework defines logical entities and naming conventions, along with a high level conferencing data model. The framework also outlines a set of conferencing protocols, which are complementary to the call signaling protocols, for building advanced conferencing applications. The framework binds all the defined components together for the benefit of builders of conferencing systems.</t>
					</abstract>
				</front>
				<seriesInfo name="Work in" value="Progress"/>
				<format type="TXT" target="http://www.ietf.org/internet-drafts/draft-ietf-xcon-framework-10.txt"/>
			</reference>
			<reference anchor="RFC3261">
	<front>
		<title>SIP: Session Initiation Protocol</title>
		<author initials="J." surname="Rosenberg" fullname="J. Rosenberg">
			<organization/>
		</author>
		<author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne">
			<organization/>
		</author>
		<author initials="G." surname="Camarillo" fullname="G. Camarillo">
			<organization/>
		</author>
		<author initials="A." surname="Johnston" fullname="A. Johnston">
			<organization/>
		</author>
		<author initials="J." surname="Peterson" fullname="J. Peterson">
			<organization/>
		</author>
		<author initials="R." surname="Sparks" fullname="R. Sparks">
			<organization/>
		</author>
		<author initials="M." surname="Handley" fullname="M. Handley">
			<organization/>
		</author>
		<author initials="E." surname="Schooler" fullname="E. Schooler">
			<organization/>
		</author>
		<date month="June" year="2002"/>
	</front>
	<seriesInfo name="RFC" value="3261"/>
	<format type="TXT" octets="647976" target="ftp://ftp.isi.edu/in-notes/rfc3261.txt"/>
</reference>

		</references>
	</back>
<vspace blankLines="100"/>
</rfc>


