Network Working Group F. Dawson Request for Comments: 2426 Lotus Development Corporation Category: Standards Track T. Howes Netscape Communications September 1998 vCard MIME Directory Profile Status of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (1998). All Rights Reserved. Abstract This memo defines the profile of the MIME Content-Type [MIME-DIR] for directory information for a white-pages person object, based on a vCard electronic business card. The profile definition is independent of any particular directory service or protocol. The profile is defined for representing and exchanging a variety of information about an individual (e.g., formatted and structured name and delivery addresses, email address, multiple telephone numbers, photograph, logo, audio clips, etc.). The directory information used by this profile is based on the attributes for the person object defined in the X.520 and X.521 directory services recommendations. The profile also provides the method for including a [VCARD] representation of a white-pages directory entry within the MIME Content-Type defined by the [MIME-DIR] document. 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]. Dawson & Howes Standards Track [Page 1] RFC 2426 vCard MIME Directory Profile September 1998 Table of Contents Overview.........................................................3 1. THE VCARD MIME DIRECTORY PROFILE REGISTRATION.................4 2. MIME DIRECTORY FEATURES.......................................5 2.1 PREDEFINED TYPE USAGE ......................................5 2.1.1 BEGIN and END Type ......................................5 2.1.2 NAME Type ...............................................5 2.1.3 PROFILE Type ............................................5 2.1.4 SOURCE Type .............................................5 2.2 PREDEFINED TYPE PARAMETER USAGE ............................6 2.3 PREDEFINED VALUE TYPE USAGE ................................6 2.4 EXTENSIONS TO THE PREDEFINED VALUE TYPES ...................6 2.4.1 BINARY ..................................................6 2.4.2 VCARD ...................................................6 2.4.3 PHONE-NUMBER ............................................7 2.4.4 UTC-OFFSET ..............................................7 2.5 STRUCTURED TYPE VALUES .....................................7 2.6 LINE DELIMITING AND FOLDING ................................8 3. VCARD PROFILE FEATURES........................................8 3.1 IDENTIFICATION TYPES .......................................8 3.1.1 FN Type Definition ......................................8 3.1.2 N Type Definition .......................................9 3.1.3 NICKNAME Type Definition ................................9 3.1.4 PHOTO Type Definition ..................................10 3.1.5 BDAY Type Definition ...................................11 3.2 DELIVERY ADDRESSING TYPES .................................11 3.2.1 ADR Type Definition ....................................11 3.2.2 LABEL Type Definition ..................................13 3.3 TELECOMMUNICATIONS ADDRESSING TYPES .......................13 3.3.1 TEL Type Definition ....................................14 3.3.2 EMAIL Type Definition ..................................15 3.3.3 MAILER Type Definition .................................15 3.4 GEOGRAPHICAL TYPES ........................................16 3.4.1 TZ Type Definition .....................................16 3.4.2 GEO Type Definition ....................................16 3.5 ORGANIZATIONAL TYPES ......................................17 3.5.1 TITLE Type Definition ..................................17 3.5.2 ROLE Type Definition ...................................18 3.5.3 LOGO Type Definition ...................................18 3.5.4 AGENT Type Definition ..................................19 3.5.5 ORG Type Definition ....................................20 3.6 EXPLANATORY TYPES .........................................20 3.6.1 CATEGORIES Type Definition .............................20 3.6.2 NOTE Type Definition ...................................21 3.6.3 PRODID Type Definition .................................21 3.6.4 REV Type Definition ....................................22 3.6.5 SORT-STRING Type Definition ............................22 Dawson & Howes Standards Track [Page 2] RFC 2426 vCard MIME Directory Profile September 1998 3.6.6 SOUND Type Definition ..................................23 3.6.7 UID Type Definition ....................................24 3.6.8 URL Type Definition ....................................25 3.6.9 VERSION Type Definition ................................25 3.7 SECURITY TYPES ............................................25 3.7.1 CLASS Type Definition ..................................26 3.7.2 KEY Type Definition ....................................26 3.8 EXTENDED TYPES ............................................27 4. FORMAL GRAMMAR...............................................27 5. DIFFERENCES FROM VCARD V2.1..................................37 6. ACKNOWLEDGEMENTS.............................................39 7. AUTHORS' ADDRESSES...........................................39 8. SECURITY CONSIDERATIONS......................................39 9. REFERENCES...................................................40 10. FULL COPYRIGHT STATEMENT....................................42 Overview The [MIME-DIR] document defines a MIME Content-Type for holding different kinds of directory information. The directory information can be based on any of a number of directory schemas. This document defines a [MIME-DIR] usage profile for conveying directory information based on one such schema; that of the white-pages type of person object. The schema is based on the attributes for the person object defined in the X.520 and X.521 directory services recommendations. The schema has augmented the basic attributes defined in the X.500 series recommendation in order to provide for an electronic representation of the information commonly found on a paper business card. This schema was first defined in the [VCARD] document. Hence, this [MIME- DIR] profile is referred to as the vCard MIME Directory Profile. A directory entry based on this usage profile can include traditional directory, white-pages information such as the distinguished name used to uniquely identify the entry, a formatted representation of the name used for user-interface or presentation purposes, both the structured and presentation form of the delivery address, various telephone numbers and organizational information associated with the entry. In addition, traditional paper business card information such as an image of an organizational logo or identify photograph can be included in this person object. The vCard MIME Directory Profile also provides support for representing other important information about the person associated with the directory entry. For instance, the date of birth of the person; an audio clip describing the pronunciation of the name associated with the directory entry, or some other application of the Dawson & Howes Standards Track [Page 3] RFC 2426 vCard MIME Directory Profile September 1998 digital sound; longitude and latitude geo-positioning information related to the person associated with the directory entry; date and time that the directory information was last updated; annotations often written on a business card; Uniform Resource Locators (URL) for a website; public key information. The profile also provides support for non-standard extensions to the schema. This provides the flexibility for implementations to augment the current capabilities of the profile in a standardized way. More information about this electronic business card format can be found in [VCARD]. 1. The vCard Mime Directory Profile Registration This profile is identified by the following [MIME-DIR] registration template information. Subsequent sections define the profile definition. To: ietf-mime-directory@imc.org Subject: Registration of text/directory MIME profile VCARD Profile name: VCARD Profile purpose: To hold person object or white-pages type of directory information. The person schema captured in the directory entries is that commonly found in an electronic business card. Predefined MIME Directory value specifications used: uri, date, date-time, float New value specifications: This profile places further constraints on the [MIME-DIR] text value specification. In addition, it adds a binary, phone-number, utc-offset and vcard value specifications. Predefined MIME Directory types used: SOURCE, NAME, PROFILE, BEGIN, END. Predefined MIME Directory parameters used: ENCODING, VALUE, CHARSET, LANGUAGE, CONTEXT. New types: FN, N, NICKNAME, PHOTO, BDAY, ADR, LABEL, TEL, EMAIL, MAILER, TZ, GEO, TITLE, ROLE, LOGO, AGENT, ORG, CATEGORIES, NOTE, PRODID, REV, SORT-STRING, SOUND, URL, UID, VERSION, CLASS, KEY New parameters: TYPE Profile special notes: The vCard object MUST contain the FN, N and VERSION types. The type-grouping feature of [MIME-DIR] is supported by this profile to group related vCard properties about a directory Dawson & Howes Standards Track [Page 4] RFC 2426 vCard MIME Directory Profile September 1998 entry. For example, vCard properties describing WORK or HOME related characteristics can be grouped with a unique group label. The profile permits the use of non-standard types (i.e., those identified with the prefix string "X-") as a flexible method for implementations to extend the functionality currently defined within this profile. 2. MIME Directory Features The vCard MIME Directory Profile makes use of many of the features defined by [MIME-DIR]. The following sections either clarify or extend the content-type definition of [MIME-DIR]. 2.1 Predefined Type Usage The vCard MIME Directory Profile uses the following predefined types from [MIME-DIR]. 2.1.1 BEGIN and END Type The content entity MUST begin with the BEGIN type with a value of "VCARD". The content entity MUST end with the END type with a value of "VCARD". 2.1.2 NAME Type If the NAME type is present, then its value is the displayable, presentation text associated with the source for the vCard, as specified in the SOURCE type. 2.1.3 PROFILE Type If the PROFILE type is present, then its value MUST be "VCARD". 2.1.4 SOURCE Type If the SOURCE type is present, then its value provides information how to find the source for the vCard. Dawson & Howes Standards Track [Page 5] RFC 2426 vCard MIME Directory Profile September 1998 2.2 Predefined Type Parameter Usage The vCard MIME Directory Profile uses the following predefined type parameters as defined by [MIME-DIR]. - LANGUAGE - ENCODING - VALUE 2.3 Predefined VALUE Type Usage The predefined data type values specified in [MIME-DIR] MUST NOT be repeated in COMMA separated value lists except within the N, NICKNAME, ADR and CATEGORIES value types. The text value type defined in [MIME-DIR] is further restricted such that any SEMI-COLON character (ASCII decimal 59) in the value MUST be escaped with the BACKSLASH character (ASCII decimal 92). 2.4 Extensions To The Predefined VALUE Types The predefined data type values specified in [MIME-DIR] have been extended by the vCard profile to include a number of value types that are specific to this profile. 2.4.1 BINARY The "binary" value type specifies that the type value is inline, encoded binary data. This value type can be specified in the PHOTO, LOGO, SOUND, and KEY types. If inline encoded binary data is specified, the ENCODING type parameter MUST be used to specify the encoding format. The binary data MUST be encoded using the "B" encoding format. Long lines of encoded binary data SHOULD BE folded to 75 characters using the folding method defined in [MIME-DIR]. The value type is defined by the following notation: binary = 2.4.2 VCARD The "vcard" value type specifies that the type value is another vCard. This value type can be specified in the AGENT type. The value type is defined by this specification. Since each of the type Dawson & Howes Standards Track [Page 6] RFC 2426 vCard MIME Directory Profile September 1998 declarations with in the vcard value type are being specified within a text value themselves, they MUST be terminated with the backslash escape sequence "\n" or "\N", instead of the normal newline character sequence CRLF. In addition, any COMMA character (ASCII decimal 44), SEMI-COLON character (ASCII decimal 59) and COLON character (ASCII decimal 58) MUST be escaped with the BACKSLASH character (ASCII decimal 92). For example, with the AGENT type a value would be specified as: AGENT:BEGIN:VCARD\nFN:Joe Friday\nTEL:+1-919-555-7878\n TITLE:Area Administrator\, Assistant\n EMAIL\;TYPE=INTERN\n ET:jfriday@host.com\nEND:VCARD\n 2.4.3 PHONE-NUMBER The "phone-number" value type specifies that the type value is a telephone number. This value type can be specified in the TEL type. The value type is a text value that has the special semantics of a telephone number as defined in [CCITT E.163] and [CCITT X.121]. 2.4.4 UTC-OFFSET The "utc-offset" value type specifies that the type value is a signed offset from UTC. This value type can be specified in the TZ type. The value type is an offset from Coordinated Universal Time (UTC). It is specified as a positive or negative difference in units of hours and minutes (e.g., +hh:mm). The time is specified as a 24-hour clock. Hour values are from 00 to 23, and minute values are from 00 to 59. Hour and minutes are 2-digits with high order zeroes required to maintain digit count. The extended format for ISO 8601 UTC offsets MUST be used. The extended format makes use of a colon character as a separator of the hour and minute text fields. The value is defined by the following notation: time-hour = 2DIGIT ;00-23 time-minute = 2DIGIT ;00-59 utc-offset = ("+" / "-") time-hour ":" time-minute 2.5 Structured Type Values Compound type values are delimited by a field delimiter, specified by the SEMI-COLON character (ASCII decimal 59). A SEMI-COLON in a component of a compound property value MUST be escaped with a BACKSLASH character (ASCII decimal 92). Dawson & Howes Standards Track [Page 7] RFC 2426 vCard MIME Directory Profile September 1998 Lists of values are