Internet DRAFT - draft-burger-lemonade-streamctrls

draft-burger-lemonade-streamctrls







LEMONADE                                                       E. Burger
Internet-Draft                                  Cantata Technology, Inc.
Expires: January 19, 2007                                  July 18, 2006


          Lemonade Protocol for Streaming Media With Controls
                  draft-burger-lemonade-streamctrls-00

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 January 19, 2007.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   This document describes a method for providing streaming multimedia
   servives in the lemonade architecture.  The method provides for
   third-party streaming, as well as object playback control.  It
   leverages SIP for providing stream negotiation and media control.

Conventions used in this document

   RFC2119 [1] provides the interpretations for the key words "MUST",
   "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",



Burger                  Expires January 19, 2007                [Page 1]

Internet-Draft                  STREAMING                      July 2006


   "RECOMMENDED", "MAY", and "OPTIONAL" found in this document.

   In examples, "C:" and "S:" indicate lines sent by the client and
   server respectively.  If a single "C:" or "S:" label applies to
   multiple lines, then the line breaks between those lines are for
   editorial clarity only and are not part of the actual protocol
   exchange.

   All examples use the host name "me.example.com" for the client,
   "ms.example.net" for the media server, and "imap.example.net" for the
   IMAP server.


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Protocol Behavior . . . . . . . . . . . . . . . . . . . . . . . 4
     2.1.  Email Client  . . . . . . . . . . . . . . . . . . . . . . . 4
     2.2.  Media Server Behavior . . . . . . . . . . . . . . . . . . . 5
     2.3.  IMAP Server Behavior  . . . . . . . . . . . . . . . . . . . 6
   3.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
   4.  Security Considerations . . . . . . . . . . . . . . . . . . . . 6
   5.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 6
     5.1.  Normative References  . . . . . . . . . . . . . . . . . . . 6
     5.2.  Informative References  . . . . . . . . . . . . . . . . . . 6
   Appendix A.  Acknowledgements . . . . . . . . . . . . . . . . . . . 7
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . . 8
   Intellectual Property and Copyright Statements  . . . . . . . . . . 9























Burger                  Expires January 19, 2007                [Page 2]

Internet-Draft                  STREAMING                      July 2006


1.  Introduction

   The lemonade architecture [7] proposes to enable forward-without-
   download by creating a mechanism for a submit server to securely
   fetch an IMAP [8] body part for later submission.  The LEMONADE
   Profile [9] describes this mechanism in detail.  In particular, the
   mechanism uses the URLAUTH [2] token to give access to the body part
   in question to the submit server.  The submit server uses the
   URLFETCH command as described by RFC4467 to download the body part
   from the IMAP Server.

   The streaming media with controls approach is to use the same trust
   triangle established by URLAUTH, but have a media server fetch the
   content, perform appropriate content and protocol transformations,
   and stream the result to the client.  The three components of
   interest for our purposes is a URLAUTH-aware client that supports SIP
   [3] and MSCML [4]; an IMAP server that supports URLAUTH, URLFETCH and
   the IMAP BINARY [5] extension; and a media server that supports SIP,
   MSCML, URLFETCH, and the IMAP BINARY extension.

   Shamelesly lifting a drawing from LEMONADE Streaming [10], we have
   the following diagram.

   +----------------+
   |                |<
   |  Email Client  | \
   | me.example.com |  \
   |                |\  \
   +----------------+ \  \
       |               \  \
       |                \  \ (5)
       | (1),            \  \
       | (2)              \  \
       |               (3),\  \
       |               (6)  \  \
       |                     \  \
       v                      v  \
   +------------------+       +----------------+
   |                  |  (4)  |                |
   |   IMAP Server    |<------|  Media Server  |
   | imap.example.net |       | ms.example.net |
   +------------------+       +----------------+

   Shamelessly lifting Neil's text, as the call flow is nearly
   identical, we have the following protocol steps.
   1.  The Email Client determines that it wants to stream a particular
       message part (attachment).




Burger                  Expires January 19, 2007                [Page 3]

Internet-Draft                  STREAMING                      July 2006


   2.  The Email Client constructs an IMAP URL referencing the message
       part and requests the IMAP Server to generate a URLAUTH
       authorized IMAP URL.
   3.  The Email Client, takes the IMAP URL, constructs an appropriate
       MSCML request referencing the desired object, and uses the IVR
       service as described by RFC4240 [6] to establish a SIP sessoin
       with the Media Server.
   4.  The Media Server connects to the IMAP Server specified in the
       referenced URL, and uses the IMAP URLFETCH command to retrieve
       the message part that the Email Client requested.
   5.  The Media server streams the retrieved message part to the client
       as negotiated by SIP.
   6.  Either the Media server terminates the SIP session after playing
       the object or the Email Client terminates the session by issuing
       the SIP BYE method.

   The key difference betwenn LEMONADE Streaming [10] and this document
   is step (3) above.  In LEMONADE Streaming, using raw RFC4240 means
   that the Email Client does not have controls such as pause, rewind,
   skip-ahead, speed-up, slow-down, or replay.  In this document, we
   will describe how to implement such controls.

   The codec (data format) conversion, if required, is a matter for the
   Media Server and Email Client to negotiate, using SIP.  The Media
   Server fetches the content in the format specified by the Email
   Client, which presumably is the format returned by the BODYSTRUCTURE.
   That is, it should be the format the IMAP Server has stored the body
   part.  This means the IMAP Server does not have to do any media
   conversion.  Moreover, the Media Server fetches the content using
   IMAP, which means the IMAP Server does not need to do streaming.


2.  Protocol Behavior

2.1.  Email Client

   In an IMAP session, the client sees a body part it would like to
   stream.  For example, it may have seen the following result to the
   BODYSTRUCTURE IMAP command.  We have formatted the BODYSTRUCTURE
   result to be more readable for the purposes of this exposition.











Burger                  Expires January 19, 2007                [Page 4]

Internet-Draft                  STREAMING                      July 2006


   (
    ("TEXT" "PLAIN"
      ("CHARSET" "US-ASCII")
      NIL NIL "7BIT" 4946 139)
    ("AUDIO" "BASIC"
      "<messagedeposit074a3b7f@ms.example.net>"
      "Voice Message Object"
      "BASE64" 1774064 23343)
    "MIXED"
   )

   Fetching the headers
   C: a122 UID FETCH 24359 BODY[1.2.MIME]
   S: * 26 FETCH (BODY[1.3.MIME] {127}
   S: Content-Transfer-Encoding: base64
   S: Content-Type: audio/basic;
   S: UID 24359 FLAGS (\Seen))
   S: a122 OK FETCH completed.

   Here the Email client sees there is an audio/basic body part that is
   a little bit less than 1.7 megabytes.  The client decides it wants to
   stream that object.
   C: a123 GENURLAUTH "imap://joe@imap.example.com/INBOX/;uid=24359/;
      section=1.3;expire=2006-12-19T16:39:57-08:00;
      urlauth=submit+ms" INTERNAL
   S: * GENURLAUTH "imap://joe@imap.example.com/INBOX/;uid=24359/;
      section=1.3;expire=2006-12-20T18:31:\45-08:00;
      urlauth=submit_ms:
      internal:0a9823092c34092b84092d3840ff928402934c8023d948c2"
   S: a123 OK GENURLAUTH completed

   The Email client then forumlates the SIP INVITE to initiate the MSCML
   session.  Note the content is in G.711 (audio/basic) format; the
   Email client wants the content in G.729.

   INVITE sip:ivr@ms.example.net

   this is where the MSCML would go IF and only IF my net connection
   didn't die so I could put in real MSCML in time!!!

2.2.  Media Server Behavior

   Receive the INVITE.

   Execute the MSCML.  Note that the imap: URL scheme works just fine.
   Note the availability of VCR controls.





Burger                  Expires January 19, 2007                [Page 5]

Internet-Draft                  STREAMING                      July 2006


2.3.  IMAP Server Behavior

   The beauty of it all: nothing changes!


3.  IANA Considerations


4.  Security Considerations


5.  References

5.1.  Normative References

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

   [2]  Crispin, M., "Internet Message Access Protocol (IMAP) - URLAUTH
        Extension", RFC 4467, May 2006.

   [3]  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.

   [4]  Dyke, J., "Media Server Control Markup Language (MSCML) and
        Protocol", draft-vandyke-mscml-09 (work in progress), June 2006.

   [5]  Nerenberg, L., "IMAP4 Binary Content Extension", RFC 3516,
        April 2003.

   [6]  Burger, E., Van Dyke, J., and A. Spitzer, "Basic Network Media
        Services with SIP", RFC 4240, December 2005.

5.2.  Informative References

   [7]   Wong, J., "Goals for Internet Messaging to Support Diverse
         Service Environments", RFC 4416, February 2006.

   [8]   Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
         4rev1", RFC 3501, March 2003.

   [9]   Maes, S. and A. Melnikov, "Internet Email to Support Diverse
         Service Environments (Lemonade) Profile", RFC 4550, June 2006.

   [10]  Cook, N., "Streaming Multimedia Messaging Attachments",
         June 2006.




Burger                  Expires January 19, 2007                [Page 6]

Internet-Draft                  STREAMING                      July 2006


Appendix A.  Acknowledgements

   Lifted lots of text from Neil.
















































Burger                  Expires January 19, 2007                [Page 7]

Internet-Draft                  STREAMING                      July 2006


Author's Address

   Eric Burger
   Cantata Technology, Inc.
   18 Keewaydin Dr.
   Salem, NH  03079
   USA

   Email: eburger@cantata.com










































Burger                  Expires January 19, 2007                [Page 8]

Internet-Draft                  STREAMING                      July 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.




Burger                  Expires January 19, 2007                [Page 9]