MMUSIC                                                     O. Levin, Ed.
Internet-Draft                                     Microsoft Corporation
Expires: September 4, 2006                                       R. Even
                                                                 Polycom
                                                            P. Hagendorf
                                                               RADVISION
                                                          March 03, 2006


                      XML Schema for Media Control
                draft-levin-mmusic-xml-media-control-04

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

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

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on September 4, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   This document defines an XML Schema for Media Control in a tightly
   controlled environment for managing of video streams only.
   Implementation of this mechanism for interactive video applications
   in SIP environments significantly improves user experience.




Levin, et al.           Expires September 4, 2006               [Page 1]


Internet-Draft                Media Control                   March 2006


Table of Contents

   1.  Conventions  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  Background . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   4.  The Video Control Commands . . . . . . . . . . . . . . . . . .  3
   5.  The Schema Definition  . . . . . . . . . . . . . . . . . . . .  4
   6.  Error Handling . . . . . . . . . . . . . . . . . . . . . . . .  7
   7.  Examples . . . . . . . . . . . . . . . . . . . . . . . . . . .  7
     7.1.  The Fast Update command for the full picture . . . . . . .  7
     7.2.  Reporting an error . . . . . . . . . . . . . . . . . . . .  8
     7.3.  Freeze and Fast Update commands for the full picture . . .  8
     7.4.  Advanced XML schema usage  . . . . . . . . . . . . . . . .  8
   8.  Transport  . . . . . . . . . . . . . . . . . . . . . . . . . .  9
   9.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  9
   10. URN for XML schema . . . . . . . . . . . . . . . . . . . . . . 10
   11. Security Considerations  . . . . . . . . . . . . . . . . . . . 11
   12. Changes History  . . . . . . . . . . . . . . . . . . . . . . . 11
     12.1. Changes since -03  . . . . . . . . . . . . . . . . . . . . 12
     12.2. Changes since -02  . . . . . . . . . . . . . . . . . . . . 12
   13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
     13.1. Normative References . . . . . . . . . . . . . . . . . . . 12
     13.2. Informative References . . . . . . . . . . . . . . . . . . 12
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 14
   Intellectual Property and Copyright Statements . . . . . . . . . . 15


























Levin, et al.           Expires September 4, 2006               [Page 2]


Internet-Draft                Media Control                   March 2006


1.  Conventions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC-2119 [3].


2.  Introduction

   This document defines an XML Schema for Media Control in a tightly
   controlled environment for managing of video streams only.
   Implementation of this schema for interactive video applications in
   SIP [6] environments significantly improves user experience.  Both
   end users and conferencing servers need to implement this mechanism.


3.  Background

   SIP typically uses RTP [8] for transferring of real time media.

   RTP is augmented by a control protocol (RTCP) to allow monitoring of
   the data delivery in a manner scalable to large multicast networks.
   The RTCP feedback mechanism [10] has been introduced in order to
   improve basic RTCP feedback time in case of loss conditions across
   different coding schemes.  (Previously, a subset of this
   functionality was defined for H.261 [2] only).  Theses techniques
   address signaling of loss conditions and the recommended recovery
   steps.

   Just recently an extension to the feedback mechanism has been
   proposed [11] to express control operations on media streams as a
   result of application logic rather than a result of loss conditions.
   Note that in the decomposed systems the implementation of the new
   mechanism will require proprietary communications between the
   applications/call control components and the media components.

   This document describes the technology being deployed over the
   Internet for over the last three years and being used across real-
   time interactive applications from different vendors in interoperable
   manner.

   Of course, each command MUST be validated by the remote entity
   against current media capacity and network conditions before being
   executed.


4.  The Video Control Commands




Levin, et al.           Expires September 4, 2006               [Page 3]


Internet-Draft                Media Control                   March 2006


   Output of a video CODEC is a frame.  The frame can carry complete (in
   time) information about a picture or about a picture segment.  These
   frames are known as "Intra" frames.  In order to save bandwidth,
   other frames can carry only changes relative to previously sent
   frames.  Frames carrying relative information are known as "Inter"
   frames.

   Some CODECs (such as H.261 and H.263), in addition to a "full"
   picture, have a notion of picture slices: MB (Macro Block) and GOB
   (Group Of Blocks).

   Based on application logic (such as need to present a new video
   source), the application needs to have an ability to explicitly
   request from a remote encoder the complete (in-time) information
   about a "full" picture or a specific slice of the picture.

   Additionally, in case the encoder is aware of upcoming changes in the
   transmitted stream (that would result in synchronization lost by the
   decoder), the encoder needs to be able to request the decoder to
   freeze the picture, i.e. to stop presenting the changes until a new
   stable image is encoded and transmitted.

   In order to meet the presented requirements, four video primitives
   are defined by this document.

   The following commands are sent to the remote encoder:
   o  Video Picture Fast Update
   o  Video GOB Fast Update (first_GOB, no_of_GOBs)
   o  Video MB Fast Update (first_GOB, first_MB, no_of_MBs)

   The following command is sent to the remote decoder:
   o  Video Picture Freeze

   Note that out of all the defined primitives only the "Video Picture
   Fast Update" is currently being used by the known implementations.
   The rest of the primitives are being ignored.


5.  The Schema Definition

   <?xml version="1.0" encoding="utf-8" ?>

   <xsd:schema id="TightMediaControl"
    targetNamespace="urn:ietf:params:xml:ns:media_control"
    elementFormDefault="qualified"
    xmlns=" urn:ietf:params:xml:ns:media_control"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">




Levin, et al.           Expires September 4, 2006               [Page 4]


Internet-Draft                Media Control                   March 2006


           <xsd:element name="media_control">
               <xsd:complexType>
                  <xsd:sequence>
                     <xsd:element name="vc_primitive"
                                           type="vc_primitive"
                                           minOccurs="0"
                                           maxOccurs="unbounded" />
                     <xsd:element name="general_error"
                                           type="xs:string"
                                           minOccurs="0"
                                           maxOccurs="unbounded" />
                  </xsd:sequence>
               </xsd:complexType>
           </xsd:element>

           <!-- Video control primitive. Each primitive is directed
                 either to a remote encode or to a remote decoder. -->

           <xsd:complexType name="vc_primitive">
              <xsd:sequence>
                 <xsd:choice>
                     <xsd:element name="to_encoder" type="to_encoder" />
                     <xsd:element name="to_decoder" type="to_decoder" />
                 </xsd:choice>
                 <xsd:element name="stream_id"
                                       type="xsd:string"
                                       minOccurs="0"
                                       maxOccurs="unbounded" />
              </xsd:sequence>
              <xsd:attribute name="type"
                                     type="primitive_type"
                                     use="optional"
                                     default="cmd" />
              <xsd:attribute name="stream"
                                     type="stream_type"
                                     use="optional"
                                     default="all" />
           </xsd:complexType>

           <xsd:simpleType name="primitive_type">
                   <xsd:restriction base="xsd:string">
                           <xsd:enumeration value="cmd" />
                           <xsd:enumeration value="ind" />
                           <xsd:enumeration value="req" />
                           <xsd:enumeration value="rsp" />
                   </xsd:restriction>
           </xsd:simpleType>




Levin, et al.           Expires September 4, 2006               [Page 5]


Internet-Draft                Media Control                   March 2006


           <xsd:simpleType name="stream_type">
                   <xsd:restriction base="xsd:string">
                           <xsd:enumeration value="mid" />
                           <xsd:enumeration value="all" />
                   </xsd:restriction>
           </xsd:simpleType>

           <!-- Decoder commands:
                Currently only Picture Freeze is defined.
           -->
           <xsd:complexType name="to_decoder">
              <xsd:sequence>
                 <xsd:element name="picture_freeze" />
              </xsd:sequence>
           </xsd:complexType>


           <!-- Encoder Commands:
                Picture Fast Update
                GOB Fast Update
                MB Fast Update
           -->


           <xsd:complexType name="to_encoder">
               <xsd:choice>
                   <xsd:element name="picture_fast_update" />
                   <xsd:element name="gob_fast_update">
                       <xsd:complexType>
                           <xsd:attribute name="first_gob"
                                    type="xsd:nonNegativeInteger"
                                    use="optional"
                                    default="0" />
                           <xsd:attribute name="no_of_gobs"
                                    type="xsd:nonNegativeInteger"
                                    use="optional"
                                    default="1" />
                       </xsd:complexType>
                   </xsd:element>
                   <xsd:element name="mb_fast_update">
                      <xsd:complexType>
                          <xsd:attribute name="first_gob"
                                   type="xsd:nonNegativeInteger"
                                   use="optional"
                                   default="0" />
                              <xsd:attribute name="first_mb"
                                       type="xsd:nonNegativeInteger"
                                       use="optional"



Levin, et al.           Expires September 4, 2006               [Page 6]


Internet-Draft                Media Control                   March 2006


                                       default="1" />
                          <xsd:attribute name="no_of_mbs"
                                   type="xsd:nonNegativeInteger"
                                   use="optional"
                                   default="1" />
                      </xsd:complexType>
                   </xsd:element>
               </xsd:choice>
           </xsd:complexType>

   </xsd:schema>



6.  Error Handling

   Currently, only a single general error primitive is defined.  It MAY
   be used for indicating errors in free text format.  The general error
   primitive MAY report problems regarding XML document parsing,
   inadequate level of media control support, inability to perform the
   requested action, etc.

   The general error primitive MUST NOT be used for indication of errors
   other than related to media control parsing or to resultant
   execution.  The general error primitive MUST NOT be sent back as a
   result of getting an error primitive.


7.  Examples

7.1.  The Fast Update command for the full picture

   In the following example the full picture "Fast Update" command is
   issued towards the remote video decoder(s).  Note that this primitive
   is supported by all known implementaions.

   <?xml version="1.0" encoding="utf-8" ?>

   <media_control>

      <vc_primitive>
       <to_encoder>
         <picture_fast_update/>
       </to_encoder>
     </vc_primitive>

   </media_control>




Levin, et al.           Expires September 4, 2006               [Page 7]


Internet-Draft                Media Control                   March 2006


7.2.  Reporting an error

   If an error occurs during the parsing of the XML document, the
   following XML document would be sent back to the originator of the
   original Media Control document.

   <?xml version="1.0" encoding="utf-8" ?>

   <media_control>

     <general_error>
      Parsing error: The original XML segment is:...
     </general_error>

   </media_control>

7.3.  Freeze and Fast Update commands for the full picture

   In the following example the "Freeze" and the full picture "Fast
   Update" commands are issued towards the remote video decoder(s) and
   remote video encoder(s) respectively for all video streams.

   <?xml version="1.0" encoding="utf-8" ?>

   <media_control>

     <vc_primitive>
       <to_decoder>
         <picture_freeze>
         </picture_freeze>
       </to_decoder>
     </vc_primitive>

     <vc_primitive>
       <to_encoder>
         <picture_fast_update>
            </picture_fast_update>
       </to_encoder>
     </vc_primitive>

   </media_control>

7.4.  Advanced XML schema usage

   The following example demonstrates the full format of the defined
   schema.  The "Freeze" command is issued towards the remote video
   decoder(s) to be applied to streams with "mid" [7] values "1" and
   "2".  The GOB "Fast Update" command is issued towards the remote



Levin, et al.           Expires September 4, 2006               [Page 8]


Internet-Draft                Media Control                   March 2006


   video encoder to be applied to a video stream with "mid" value "3".

   <?xml version="1.0" encoding="utf-8" ?>

   <media_control>

     <vc_primitive stream="mid">
       <to_decoder >
         <picture_freeze>
         </picture_freeze>
       </to_decoder>

       <stream_id>1</stream_id>
       <stream_id>2</stream_id>

     </vc_primitive>

     <vc_primitive stream="mid">
       <to_encoder>
         <mb_fast_update first_gob="2" first_mb="3" no_of_mbs="4">
         </mb_fast_update>
       </to_encoder>

       <stream_id>3</stream_id>

     </vc_primitive>

   </media_control>



8.  Transport

   The defined XML document is conveyed using SIP INFO method [4] with
   the "Content-Type" set to "application/media_control+xml".  This
   approach benefits from the SIP built-in reliability.  This document
   registers the defined schema with IANA according to the guidelines
   specified in [9] .


9.  IANA Considerations

   Application/media_control+xml MIME type
   MIME Media Type Name:  application







Levin, et al.           Expires September 4, 2006               [Page 9]


Internet-Draft                Media Control                   March 2006


   MIME subtype name:  media_control+xml
   Required parameters:  None
   Optional parameters:  charset

   See RFC 3023 [5] for a discussion of the charset parameter on XML-
   derived MIME types.  Since this MIME type is used exclusively in SIP,
   the use of UTF-8 encoding is strongly encouraged.
   Encoding considerations:  8-bit text
   Security considerations:  Security considerations specific to uses of
      this MIME type are discussed in RFC xxxx [[Note to RFC editor:
      replace xxxx with the RFC number of this document when
      published]].  RFC 1874 [1] and RFC 3023 [5] discuss security
      issues common to all uses of XML.
   Interoperability considerations:  The use of this MIME body is
      intended to be generally interoperable.  No unique considerations
      have been identified.
   Published specification:  RFC xxxx [[Note to RFC editor: replace xxxx
      with the RFC number of this document when published]]
   Applications which use this media type:  This media type is used to
      convey information regarding media control commands and responses
      between SIP endpoints particularly for allowing a Video Fast
      Update intra-frame request.

   Additional information:
   Magic Number(s):  None.
   File Extension(s):  None.
   Macintosh File Type Code(s):  None.
   Object Identifier(s) or OID(s):  None.

   Intended usage: Limited Use

   Other Information/General Comment: None.

   Person to contact for further information:
   Name: Orit Levin
   E-Mail: oritl@microsoft.com

   Author/Change Controller:

   The specification of this MIME type is an individual submission to
   the MMUSIC working group of the IETF.  Change control of this
   specification is under control of the IETF WG.


10.  URN for XML schema

   URI: urn:ietf:params:xml:ns:media_control




Levin, et al.           Expires September 4, 2006              [Page 10]


Internet-Draft                Media Control                   March 2006


   Description:

   This is the XML namespace URI for XML elements defined by [RFCXXXX]
   to describe information exchanged between SIP endpoints for media
   control.  It is used in the application/media_control+xml body type.

   Registrant Contact:
   Name: Orit Levin
   E-Mail: oritl@microsoft.com

   Author/Change Controller:

   The specification of this MIME type is an individual submission to
   the MMUSIC working group of the IETF.  Change control of this
   specification is under control of the IETF WG.

   XML:


      BEGIN
        <?xml version="1.0"?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
                  "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
          <meta http-equiv="content-type"
             content="text/html;charset=utf-8"/>
          <title>Namespace for Tight Media Control</title>
        </head>
        <body>
          <h1>Namespace for Tight Media Control</h1>
          <h2>application/media_control+xml</h2>
          <p>See <a href="[[[URL of published RFC]]]">RFCXXXX</a>.</p>
        </body>
        </html>
      END


11.  Security Considerations

   This document doesn't introduce new security considerations beyond
   covered in [4].


12.  Changes History






Levin, et al.           Expires September 4, 2006              [Page 11]


Internet-Draft                Media Control                   March 2006


12.1.  Changes since -03
   o  This version reflects the deployment experience since the defined
      mechanism has been implemented and tested among the vendors
      represented by the authors of this document.
   o  The XML schema is identical to version -03.

12.2.  Changes since -02
   o  This version contains editorial changes only.
   o  The XML schema is identical to version -02.


13.  References

13.1.  Normative References

   [1]  Levinson, E., "SGML Media Types", RFC 1874, December 1995.

   [2]  Turletti, T., "RTP Payload Format for H.261 Video Streams",
        RFC 2032, October 1996.

   [3]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

   [4]  Donovan, S., "The SIP INFO Method", RFC 2976, October 2000.

   [5]  Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types",
        RFC 3023, January 2001.

   [6]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
        Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
        Session Initiation Protocol", RFC 3261, June 2002.

   [7]  Camarillo, G., Eriksson, G., Holler, J., and H. Schulzrinne,
        "Grouping of Media Lines in the Session Description Protocol
        (SDP)", RFC 3388, December 2002.

   [8]  Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson,
        "RTP: A Transport Protocol for Real-Time Applications", STD 64,
        RFC 3550, July 2003.

   [9]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
        January 2004.

13.2.  Informative References

   [10]  Ott, J. and S. Wenger, "Extended RTP Profile for RTCP-based
         Feedback(RTP/AVPF)", draft-ietf-avt-rtcp-feedback-11 (work in
         progress), August 2004.



Levin, et al.           Expires September 4, 2006              [Page 12]


Internet-Draft                Media Control                   March 2006


   [11]  Wenger, S., "Codec Control Messages in the Audio-Visual Profile
         with Feedback (AVPF)", draft-wenger-avt-avpf-ccm-02 (work in
         progress), February 2006.
















































Levin, et al.           Expires September 4, 2006              [Page 13]


Internet-Draft                Media Control                   March 2006


Authors' Addresses

   Orit Levin (editor)
   Microsoft Corporation
   One Microsoft Way
   Redmond, WA  98052
   USA

   Email: oritl@microsoft.com


   Roni Even
   Polycom
   94 Derech Em Hamoshavot
   Petach Tikva,   49130
   Israel

   Email: roni.even@polycom.co.il


   Pierre Hagendorf
   RADVISION
   24, Raul Wallenberg St.
   Tel-Aviv,   69719
   Israel

   Email: pierre@radvision.com
























Levin, et al.           Expires September 4, 2006              [Page 14]


Internet-Draft                Media Control                   March 2006


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Copyright Statement

   Copyright (C) The Internet Society (2006).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Levin, et al.           Expires September 4, 2006              [Page 15]