Network Working Group                                      A. Narasimhan
Internet-Draft                                                J. Sergent
Expires: August 23, 2002                                             Sun
                                                       February 22, 2002


                   MUTE and UNMUTE extension to RTSP
                       draft-sergent-rtsp-mute-00

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   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 August 23, 2002.

Copyright Notice

   Copyright (C) The Internet Society (2002).  All Rights Reserved.

Abstract

   RFC 2326 [1] overloads the functionality of the PLAY and PAUSE
   methods to provide rudimentary support for "muting" individual
   streams in an (Real Time Streaming Protocol) presentation.  The
   current specification has several inconsistencies.  In addition, we
   believe that this functionality should be optional.  This document
   specifies an extension to RTSP consisting of new MUTE and UNMUTE
   methods, providing equivalent functionality in a consistent, optional
   manner.






Narasimhan & Sergent     Expires August 23, 2002                [Page 1]


Internet-Draft      MUTE and UNMUTE extension to RTSP      February 2002


1. Introduction

   MUTE and UNMUTE are new optional RTSP methods designed to replace the
   functionality specified in [1] of doing PAUSE <stream-url> during an
   aggregate RTSP prsentation.  Clients MAY implement these methods to
   temporarily suppress delivery of one or more streams in an RTSP
   presentation without affecting delivery of the other streams.












































Narasimhan & Sergent     Expires August 23, 2002                [Page 2]


Internet-Draft      MUTE and UNMUTE extension to RTSP      February 2002


2. Method definitions and examples

2.1 MUTE

   The MUTE method causes the server to temporarily suspend delivery of
   the requested stream.  The URL must be for a stream which has already
   been SETUP in the current session.  If aggregate control is in use,
   the client MUST NOT send the presentation URL.  The presentation
   clock and any streams which are still playing are not affected.

   MUTE is legal in the Ready and Playing states.  If the stream was
   muted and is subsequently PAUSEd or PLAYed, it remains muted.
   Subsequent PLAY and PAUSE requests MUST NOT implicitly mute or unmute
   the stream.

   The Range header may be used to schedule MUTE operations to occur at
   a particular time.  If so used, the header MUST NOT contain a closed
   range.  If the starting time is earlier than the current time, or no
   Range header was sent, the MUTE acts immediately.  If the starting
   time is later than the current time, the MUTE does not act until that
   time.  If the Range header specifies a time outside the current PLAY
   request, or a Range header is specified when sending a MUTE in the
   Ready state, the error "457 Invalid Range" is returned.

   If a MUTE request is scheduled for future execution, but a subsequent
   PAUSE request halts stream delivery before the scheduled MUTE point
   is reached, the server MUST NOT execute the the pending MUTE request.

   A MUTE request should override any previous MUTE request for the same
   stream that are currently active or pending.

   If the stream is being delivered over RTP [2], RTCP reports SHOULD
   continue to be exchanged while the stream is muted.  This allows for
   synchronization to be maintained once the stream is unmuted so that
   loosely coupled RTP receivers will behave normally once the stream is
   unmuted.

2.2 UNMUTE

   The UNMUTE request causes the server to resume delivery of a stream
   that has previously been muted using the MUTE request.  If aggregate
   control is in use, the client MUST NOT send the presentation URL.
   Each stream must be unmuted individually.

   If a server implements MUTE, it MUST also implement UNMUTE.

   If the session is in the Playing state, the stream is resumed at the
   point where it would be had the MUTE request not been sent.  If



Narasimhan & Sergent     Expires August 23, 2002                [Page 3]


Internet-Draft      MUTE and UNMUTE extension to RTSP      February 2002


   aggregate control is in use, the stream MUST maintain the same
   synchronization it previously had with the rest of the streams in the
   presentation.  If the presentation is in the Ready state, the stream
   is taken out of the muted state and any future PLAY requests will
   deliver the stream normally.

   The Range header may be used to schedule UNMUTE operations to occur
   at a particular time.  If so used, the header MUST NOT contain a
   closed range.  If the starting time is earlier than the current time,
   or no Range header was sent, the UNMUTE acts immediately.  If the
   starting time is later than the current time, the UNMUTE does not act
   until that time.  If the Range header specifies a time outside the
   current PLAY request, or a Range header is specified when sending a
   UNMUTE in the Ready state, the error "457 Invalid Range" is returned.

   If the stream is being delivered over RTP [2], the same RTP session
   is used after the stream as unmuted as was used before the stream was
   muted.  Sequence numbers MUST continue in sequence (the server does
   not skip sequence numbers for the packets not delivered due to the
   MUTE).  RTP timestamps must continue with the presentation time (the
   timestamps for the packets delivered after UNMUTE are the same as
   they would have been had the stream not been muted).  The server
   SHOULD send an RTP-Info header with the UNMUTE response to inform the
   client where the unmuted packets begin.



























Narasimhan & Sergent     Expires August 23, 2002                [Page 4]


Internet-Draft      MUTE and UNMUTE extension to RTSP      February 2002


3. Negotiation

   Several mechanisms are available for clients and servers to negotiate
   their implementation of this extension.

   The client may send an OPTIONS request for one of the stream URLs.
   The server's Allow header will include MUTE and UNMUTE if the server
   supports them.

   The client may attempt a MUTE request.  If the server implements RTSP
   properly but does not implement the MUTE extension, it will respond
   with "501 Not Implemented" but not terminate the session or the
   connection.

   The client may use the option tag "mute" in the Require header on a
   SETUP request.  This may be useful if the client intends to use MUTE
   to switch between one or more streams with different representations
   of the same data.  For example, if the client intends to use MUTE to
   switch between multiple language tracks, it can send "Require: mute"
   on all SETUP requests except for the user's current default language.
   If the server does not support MUTE, SETUP would then fail on the
   other tracks, and the client could disable the user interface to
   switch languages.

   To enable negotiation with the Require as outlined above, all servers
   implementing this specification MUST support the "mute" option by
   adding the "Supported: mute" header to any request it receives with
   "Require: mute".  Clients SHOULD NOT fail to operate with servers
   that do not implement MUTE.






















Narasimhan & Sergent     Expires August 23, 2002                [Page 5]


Internet-Draft      MUTE and UNMUTE extension to RTSP      February 2002


References

   [1]  Schulzrinne, H., Rao, A. and R. Lanphier, "Real Time Streaming
        Protocol (RTSP)", RFC 2326, April 1998.

   [2]  Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson,
        "RTP: A Transport Protocol for Real-Time Applications", RFC
        1889, January 1996.


Authors' Addresses

   Aravind Narasimhan
   Sun Microsystems, Inc.
   901 San Antonio Road
   M/S UMPK15-215
   Palo Alto, CA  94303
   US

   Phone: +1 212 558 2494
   EMail: Aravind.Narasimhan@Sun.COM


   Jonathan Sergent
   Sun Microsystems, Inc.
   901 San Antonio Road
   M/S UMPK15-215
   Palo Alto, CA  94303
   US

   Phone: +1 650 352 6495
   EMail: Jonathan.Sergent@Sun.COM



















Narasimhan & Sergent     Expires August 23, 2002                [Page 6]


Internet-Draft      MUTE and UNMUTE extension to RTSP      February 2002


Appendix A. Open issues

   1.  Should acknowledge RTSP telecon participants.

   2.  Needs examples.

   3.  Needs security considerations section.

   4.  Needs a definition of terms.

   5.  This doesn't work with multiple queued play requests.  There has
       been some doubt as to whether there are interoperating
       implementations of queued play, so it may be removed from RTSP.
       If queued play is not removed from RTSP, this specification will
       need to support it.




































Narasimhan & Sergent     Expires August 23, 2002                [Page 7]


Internet-Draft      MUTE and UNMUTE extension to RTSP      February 2002


Full Copyright Statement

   Copyright (C) The Internet Society (2002).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS 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.

Acknowledgement

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



















Narasimhan & Sergent     Expires August 23, 2002                [Page 8]