Network Working Group                                       T. Showalter
Internet Draft                                           Carnegie Mellon
Document: draft-showalter-imap-id-00.txt                      March 1997
Expire in six months

                           IMAP4 ID extension

Status of this Memo
   This document is an Internet-Draft.  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.''

   To learn the current status of any Internet-Draft, please check the
   ``1id-abstracts.txt'' listing contained in the Internet- Drafts
   Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Europe),
   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
   ftp.isi.edu (US West Coast).

   A revised version of this draft document will be submitted to the RFC
   editor as a Proposed Standard for the Internet Community.  Discussion
   and suggestions for improvement are requested.  This document will
   expire before October 1997.  Distribution of this draft is unlimited.

1.   Abstract

   The purpose of the ID extension to the IMAP4rev1 protocol is to allow
   the server and client to exchange identification information on their
   implementation in order to make bug reports and usage statistics more
   complete.

   Although the IMAP4rev1 protocol described in [IMAP4rev1] provides a
   method for accessing remote mail stores, there is no facility to
   advertise what program a client or server uses to provide service.
   This makes it difficult for implementors to get complete bug reports
   from users, as it is frequently difficult to know what client or
   server is in use.

   Additionally, some sites may wish to assemble usage statistics based
   on what clients are used, but in an an environment where users are
   permitted to obtain and maintain their own clients this is difficult
   to accomplish.




Showalter                                                       [Page 1]


draft-showalter-imap4rev1-ext-00.txt    IMAP4 ID             19 Mar 1997


   The ID command provides a facility to advertise information on what
   programs are being used, along with contact information should bugs
   ever occur.

2.   Conventions Used in this Document

   The conventions used in this document are the same as specified in
   [IMAP4rev1]. In examples, "C:" and "S:" indicate lines sent by the
   client and server respectively.  Line breaks have been inserted for
   readability.

3.   Specification

   The ID extension is provided in order for clients and servers to
   exchange information on their implementations.

   This information may be submitted to a server by any client wishing
   to provide information for statistical purposes, provided the server
   advertises its willingness to take the information with the atom "ID"
   included in the list of capabilities returned by the CAPABILITY
   command.

   Implementations MUST NOT make operational changes based on the data
   sent as part of the ID command or response.

3.1. ID Command

   Arguments:  client parameter list or NIL

   Responses:  OPTIONAL untagged response: ID

   Result:     OK    identification information accepted
               BAD   command unknown or arguments invalid

   Identification information is sent by the client with the ID command.
   The information sent is in the form of a list of field/value pairs.
   Fields are permitted to be any IMAP4 string, and values are permitted
   to be any IMAP4 string or NIL.  A value of NIL indicates that the
   client can not or will not specify this information.  The client may
   also send NIL instead of the list, indicating that it wants to send
   no information, but would still accept a server response.

   The avalible fields are defined in section 3.3.


   Example:    C: a023 ID ("name" "sodr" "version" "19.34" "vendor"
                   "Pink Floyd Music Limited")
               S: a023 OK ID completed



Showalter                                                       [Page 2]


draft-showalter-imap4rev1-ext-00.txt    IMAP4 ID             19 Mar 1997



3.2.   ID Response


   Contents:   server parameter list

   In response to an ID command issued by the client, the server MAY
   reply with a tagged response containing information on its implemen-
   tation.  The format is the same as the client list.


   Example:    C: a023 ID NIL
               S: * ID ("name" "Cyrus" "version" "1.5" "os" "sunos"
               "os-version"
                    "5.5" "email" "cyrus-bugs@andrew.cmu.edu")
               S: a023 OK ID command completed

   The server is not required to send an ID response to an ID command.

3.3.   Defined Field Values

   Any string may be sent as a field, but the following are defined to
   describe certain values that might be sent.  Implementations are free
   to send none, any, or all of these.  Strings are not case-sensitive.

       name                     Name of the program
       version                  Version number of the program
       os                       Name of the operating system
       os-version               Version of the operating system
       vendor                   Vendor of the client/server
       contact                  Contact person for the client/server
       email                    Email address of contact/vendor
       phone                    Phone number of contact/vendor
       address                  Postal address of contact/vendor
       date                     Date program was released;
                                  should be in a human-readable form
       command                  Command used to start the program
       arguments                Arguments supplied on the command line,
                                  if any
       environment              Description of environment, i.e., UNIX
                                  environment variables or Window
                                  registry settings.

   Implementations MUST NOT use contact information to submit automatic
   bug reports.  Information supplied with the ID command is not neces-
   sarily complete or accurate.  Implementations may include uch infor-
   mation in a report submitted.

   It is preferrable to find the name and version of the underlying



Showalter                                                       [Page 3]


draft-showalter-imap4rev1-ext-00.txt    IMAP4 ID             19 Mar 1997


   operating system at runtime in cases where this is possible.

   Some of this information (specifically, the command, arguments, and
   environment fields) is likely to violate users' privacy.  See the
   section on security considerations below.

   Implementations may send the same tag more than once:


   Example:    C: a001 ID ("client-name" NIL "client-name" "spooky"
               "client-name"
                   NIL)
               S: a001 OK ID completed

4.   Formal Syntax

   This syntax is intended to augment the grammar specified in
   [IMAP4rev1] in order to provide for the ID command.  This specifica-
   tion uses the augmented Backus-Naur Form (BNF) notation as specified
   in [RFC-822] and modified by [IMAP4rev1].

       command_any ::= "CAPABILITY / "LOGOUT" / "NOOP" / x_command / id
           ;; adds id command to command_any in [IMAP4rev1]

       id ::= "ID" SPACE id_params_list / nil

       id_response ::= "ID" SPACE id_params_list / nil

       id_params_list ::= "(" #(string SPACE nstring) ")" / nil
           ;; list of field value pairs

       response_data ::= "*" (resp_cond_state / resp_cond_bye /
           mailbox_data / message_data / capability_data / id_response)

5.   References

       [IMAP4rev1] Crispin, M., "Internet Message Access Protocol - Version
           4rev1", RFC 2060, University of Washington, October, 1996.

       [RFC-822] Crocker, D., "Standard for the Format of ARPA Internet
           Text Messages", STD 11, RFC 822.

6.   Security Considerations

   A client or server supporting ID may violate the privacy of users by
   sending information on the underlying implementation, or in some
   cases, information on how the mail client was invoked.  For this rea-
   son, it is highly desirable that client implementations provide a



Showalter                                                       [Page 4]


draft-showalter-imap4rev1-ext-00.txt    IMAP4 ID             19 Mar 1997


   method of disabling ID support -- by either not sending ID at all, or
   by sending the command "ID NIL", or by controlling the level of
   detail of information sent.  A server may reply similarly in its
   untagged response ("* ID NIL"), or it may send no untagged response.



7.   Author's Address

   Tim Showalter
   Carnegie Mellon University
   5000 Forbes Avenue
   Pittsburgh, PA 15213

   Email: tjs@andrew.cmu.edu




































Showalter                                                       [Page 5]