Lemonade Working Group                                      L. Nerenberg
Internet-Draft                                           Orthanc Systems
Expires: January 16, 2005                                        S. Hole
                                                           ACI Worldwide
                                                                B. Leiba
                                         IBM T.J. Watson Research Center
                                                           July 18, 2004


                   IMAP4 Channel Transport Mechanism
                  draft-ietf-lemonade-imap-channel-02

Status of this Memo

   By submitting this Internet-Draft, I certify that any applicable
   patent or other IPR claims of which I am aware have been disclosed,
   and any of which I become aware will be disclosed, in accordance with
   RFC 3668.

   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 16, 2005.

Copyright Notice

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

Abstract










Nerenberg, et al.       Expires January 16, 2005                [Page 1]


Internet-Draft     IMAP4 Channel Transport Mechanism           July 2004


Table of Contents

   1.  Conventions Used in this Document  . . . . . . . . . . . . . .  3
   2.  Protocol Framework . . . . . . . . . . . . . . . . . . . . . .  3
     2.1   CAPABILITY Identification  . . . . . . . . . . . . . . . .  3
     2.2   CHANNEL Command  . . . . . . . . . . . . . . . . . . . . .  3
     2.3   UID CHANNEL Command  . . . . . . . . . . . . . . . . . . .  4
     2.4   CHANNEL Response . . . . . . . . . . . . . . . . . . . . .  4
     2.5   CHANNELSCHEMES Command . . . . . . . . . . . . . . . . . .  4
     2.6   CHANNELSCHEMES Response  . . . . . . . . . . . . . . . . .  5
   3.  Command Sequencing . . . . . . . . . . . . . . . . . . . . . .  5
   4.  Formal Protocol Syntax . . . . . . . . . . . . . . . . . . . .  5
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . .  6
   6.  Normative References . . . . . . . . . . . . . . . . . . . . .  6
       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . .  7
   A.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  7
   B.  Administrivia  . . . . . . . . . . . . . . . . . . . . . . . .  7
   C.  Document Revision History  . . . . . . . . . . . . . . . . . .  8
     C.1   Changes in draft -02 . . . . . . . . . . . . . . . . . . .  8
   D.  Outstanding Issues . . . . . . . . . . . . . . . . . . . . . .  8
       Intellectual Property and Copyright Statements . . . . . . . .  9






























Nerenberg, et al.       Expires January 16, 2005                [Page 2]


Internet-Draft     IMAP4 Channel Transport Mechanism           July 2004


1.  Conventions Used in this Document

   The key words "MUST," "MUST NOT," "SHOULD," "SHOULD NOT," and "MAY"
   in this document are to be interpreted as described in [KEYWORD].

   In examples, "C:" and "S:" preface lines sent by the client and the
   server respectively.

2.  Protocol Framework

   This memo defines the following extensions to [IMAP4].

2.1  CAPABILITY Identification

   IMAP4 servers that support this extension MUST advertise the
   "CHANNEL" capability.

2.2  CHANNEL Command

   The CHANNEL command requests that message data be retrieved through
   an external scheme.  Clients may issue a request specifying a
   partially-qualified URI, in which case the server will determine the
   final connection end\-point.  What constitutes a partially-qualified
   URI is implementation defined.

   The syntax of the CHANNEL command is:

   tag CHANNEL channel-uri-list channel-set

   <channel-uri-list> is a list of URIs and schemes specifying how the
   client desires to retrieve the message data.  If <channel-uri-list>
   contains more than one element the server SHOULD return the message
   data using the first element in the list it is capable of using.

   <channel-set> is a list of message-number/body-section pairs
   describing the content to be retrieved.  The message number specifies
   the sequence number of the message to act on.

   The CHANNEL command is only valid in the selected state.

   Example:

   C: 0 CHANNEL (rtsp ftp://marvin@example.net/incoming/)
       (1 2)(3 1)(3 9.1)

   asks for section 2 of message 1 and sections 1 and 9.1 of message 3.
   The preferred retrieval scheme is RTSP.  If RTSP isn't available the
   IMAP server should attempt to transfer the requested data to the FTP



Nerenberg, et al.       Expires January 16, 2005                [Page 3]


Internet-Draft     IMAP4 Channel Transport Mechanism           July 2004


   server at example.com.

   In either case the server will fill in the connection end-point
   information.

2.3  UID CHANNEL Command

   The UID CHANNEL command is identical to the CHANNEL command with the
   exception that the message numbers in the sequence sets refer to
   unique identifiers instead of message sequence numbers.

2.4  CHANNEL Response

   An untagged CHANNEL response is returned for each message-number/
   body-section pair specified by the corresponding CHANNEL command:

   * message-number CHANNEL section-spec URI

   The ordering of these responses is arbitrary.  The message number and
   <section-spec> in the response mirror those in the corresponding
   request, therefore responses to UID CHANNEL commands report the
   message UID rather than the message sequence number.

   The server MUST NOT issue an untagged CHANNEL response containing a
   URI until such time as that URI is avaliable for the client to
   dereference.  The lifetime of the URI is implementation defined.

   For example, the responses to the example command in the previous
   section might look like:

   S: * 1 CHANNEL 2 rtsp://frobozz.example.com/144124
   S: * 3 CHANNEL 1
       ftp://marvin@example.com/incoming/abzzqfw11423
   S: * 3 CHANNEL 9.1 NIL
   S: 0 OK done

   The NIL response to the section 9.1 request indicates that the part
   could not be retrieved via any of the requested schemes.  For
   example, this could be caused by the inability to convert or
   represent the content via the requested schemes, or because a
   resource was unavailable.

2.5  CHANNELSCHEMES Command

   The CHANNELSCHEMES command queries the server for the list of schemes
   it supports.





Nerenberg, et al.       Expires January 16, 2005                [Page 4]


Internet-Draft     IMAP4 Channel Transport Mechanism           July 2004


   The syntax of the CHANNELSCHEMES command is:

   tag CHANNELSCHEMES


2.6  CHANNELSCHEMES Response

   A tagged CHANNELSCHEMES response is returned in response to a
   CHANNELSCHEMES command.

   The syntax of the CHANNELSCHEMES response is:

   tag CHANNELSCHEMES channelschemes-data


3.  Command Sequencing

   There is no way to distinguish between a response to a CHANNEL
   command and a UID CHANNEL command, therefore clients MUST NOT issue a
   UID CHANNEL command while a CHANNEL command is in progress.
   Conversely, clients MUST NOT issue a CHANNEL command while a UID
   CHANNEL command is in progress.  These restrictions are in addition
   to the normal sequencing rules that apply to UID-style commands.

   Servers MUST NOT send an EXPUNGE response while responding to a
   CHANNEL command, however a server MAY send an EXPUNGE response during
   a UID CHANNEL command.

4.  Formal Protocol Syntax

   The following syntax specification uses the augmented Backus-Naur
   Form (ABNF) notation as defined in [ABNF], and incorporates by
   reference the Core Rules from that document.  This syntax extends the
   grammar specified in [IMAP4].

   The following tokens are incorporated from [URI]: absoluteURI,
   scheme.














Nerenberg, et al.       Expires January 16, 2005                [Page 5]


Internet-Draft     IMAP4 Channel Transport Mechanism           July 2004


   channel             =  "CHANNEL" SP channel-uri-list
                          SP channel-set

   channelschemes      =  "CHANNELSCHEMES"

   channelschemes-data =  astring / "(" astring 1*(SP astring) ")"
                          ; <astring> encodes a <scheme>

   channel-data        =  nz-number SP "CHANNEL" SP section-spec SP
                          astring
                          ; <astring> encodes an <absoluteURI>

   channel-set         =  1*("(" nz-number SP section-spec ")")
                          ; <nz-number> refers to the message sequence
                          ; number or unique identifier.

   channel-uri-list    =  "(" channel-uri
                          *(SP channel-uri) ")"

   channel-uri         =  astring
                          ; <absoluteURI> / <scheme>
                          ; represented as an IMAP <astring>

   command-auth        =/ channelschemes

   command-select      =/ channel

   response-data       =  "*" SP (resp-cond-state / resp-cond-bye /
                          mailbox-data / message-data /
                          capability-data / channel-data) CRLF
                          ; adds <channel-data> to <response-data>

   uid                 =/ channel



5.  Security Considerations

   It is assumed that the IMAP server and its cooperating client share
   an authorization (and authentication) namespace.

6  Normative References

   [ABNF]     Crocker, D. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", RFC 2234, November 1997.

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



Nerenberg, et al.       Expires January 16, 2005                [Page 6]


Internet-Draft     IMAP4 Channel Transport Mechanism           July 2004


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

   [URI]      Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform
              Resource Identifiers (URI): Generic Syntax", RFC 2396,
              August 1998.


Authors' Addresses

   Lyndon Nerenberg
   Orthanc Systems
   304 - 1755 Robson Street
   Vancouver, BC  V6G 3B7
   CA

   EMail: lyndon+rfc-imap-channel@orthanc.ca


   Steve Hole
   ACI Worldwide
   Suite 1807
   10088 - 102 Avenue
   Edmonton, Alberta  T5J 2Z1
   CA

   Phone: +1 780 424 4922
   Fax:   +1 780 424 4925
   EMail: steve.hole@messagingdirect.com


   Barry Leiba
   IBM T.J. Watson Research Center
   30 Saw Mill River Road
   Hawthorne, NY  10532
   US

   Phone: +1 914 784 7941
   EMail: leiba@watson.ibm.com

Appendix A.  IANA Considerations

   IANA is requested to update the IMAP capabilities registry to add the
   CHANNEL capability defined by this memo.

Appendix B.  Administrivia

   [This appendix will not appear in the final document.]



Nerenberg, et al.       Expires January 16, 2005                [Page 7]


Internet-Draft     IMAP4 Channel Transport Mechanism           July 2004


   Discussion concerning this draft should be directed to the
   <lemonade@ietf.org> mailing list.

Appendix C.  Document Revision History

   [This appendix will not appear in the final document.]

Appendix C.1  Changes in draft -02

   1.  Revert text to that from draft-nerenberg-imap-channel-01, which
       again forms the baseline document for the specification.  The
       usage and implementation guide will be split out into another
       memo seperate from the specification itself.

   2.  Revert to the simple string "channel" for the capability.  The
       old scheme (channel=foo,bar) required parsable capabilities.  A
       new command (CHANNELSCHEMES) is proposed for discovering the
       supported scheme list.

   3.  The grammar has been cleaned up and synced with RFC3501.

   4.  References to schemes in the protocol no longer include the
       trailing ":" in the scheme name (e.g.  we now use "ftp" rather
       than "ftp:").  The grammar is now unambiguous with reference to
       the use of <scheme> and <absoluteURI> (a scheme name cannot
       contain a ":", and an <absoluteURI> requires one).  Both types
       are now encoded as <astring>.

   5.  Document reformatted to meet the latest RFC Editor's
       requirements.

   6.  Added a CHANNELSCHEMES command, used to discover the schemes
       supported by the server.


Appendix D.  Outstanding Issues

   [This appendix will not appear in the final document.]

   1.  The Security Considerations section needs to be expanded.

   2.  Examples need a seperate section.









Nerenberg, et al.       Expires January 16, 2005                [Page 8]


Internet-Draft     IMAP4 Channel Transport Mechanism           July 2004


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 (2004).  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.




Nerenberg, et al.       Expires January 16, 2005                [Page 9]