RFC 4770

vCard Extensions for Instant Messaging (IM)

πŸ“… published January 2007, from ietf

RFC 4770: vCard Extensions for Instant Messaging (IM) πŸ’–

okay bestie, here's the title block tea 🫢

  • Series: Network Working Group
  • RFC number: 4770
  • Category: Standards Track
  • Authors: C. Jennings (Cisco Systems) and J. Reschke, Ed. (greenbytes)
  • Date: January 2007
  • Obsoletes/Updates: The title block doesn't list anything it obsoletes. Section 2 says this document updates the "text/directory MIME Types" subregistry, so that's the update to know about πŸ¦‹

Status of This Memo πŸ“œ

ok so this doc is an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements 🌸 For the current standardization state and status, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited ✨

Copyright (C) The IETF Trust (2007).

Abstract πŸ’œ

this doc is an extension to vCard that adds support for Instant Messaging (IM) and Presence Protocol (PP) apps πŸ’¬ IM and PP are getting seriously popular, and people want to save that contact info in their address books. It lets you put a URI tied to IM or PP inside a vCard, and it's giving very useful 🫢

Table of Contents πŸ—‚οΈ

   1. Overview ........................................................2
   2. IANA Considerations .............................................3
   3. Formal Grammar ..................................................4
   4. Example .........................................................4
   5. Security Considerations .........................................4
   6. Acknowledgments .................................................4
   7. References ......................................................5
      7.1. Normative References .......................................5
      7.2. Informational References ...................................5

1. Overview 🌈

okay so more and more people use all kinds of IM and PP apps, which means sharing that contact address info along with everything else is a big deal πŸ“± RFC 2425 [1] and RFC 2426 [2] define the standard format for this stuff, and it's called vCard. This doc adds a new type to a vCard for representing instant IM and PP URIs πŸ’… It's super similar to the types we already have for email addresses and phone numbers, so it's not a whole new vibe 🧚

The type entry that holds this new contact info is an IMPP type ✨ An IMPP entry has a single URI (see RFC 3986 [3]) that points to the address of a service that provides IM, PP, or both. There are also some parameters that give hints about when certain URIs would be appropriate πŸ“ A vCard can have multiple IMPP entries, but each entry can only contain one URI. Each IMPP entry can contain multiple parameters. Any combination of parameters is valid, although a parameter should occur, at most, once in a given IMPP entry πŸ™ˆ

The type of URI tells you which protocols might be usable for accessing it, but this doc doesn't define any of the types πŸ’– For example, a URI type of:

  • "sip" [5] tells you to use SIP/SIMPLE
  • "xmpp" [6] tells you to use XMPP
  • "irc" tells you to use IRC
  • "ymsgr" tells you to use yahoo
  • "msn" might tell you to use Microsoft messenger
  • "aim" tells you to use AOL
  • "im" [7] or "pres" [8] means a CPIM or CPP gateway should be used

The normative definition of this new vCard type is in Section 2, and an informational ABNF is in Section 3 πŸ”₯

2. IANA Considerations πŸ‘‘

The required email to define this extension (as defined in RFC 2425 [1]) was sent on October 29, 2004, to the ietf-mime-direct@imc.org mailing list, with the subject "Registration of text/directory MIME type IMPP" πŸ’Œ You can find it at http://www.imc.org/ietf-mime-direct/mail-archive/msg00068.html.

This specification updates the "text/directory MIME Types" subregistry in the "text/directory MIME Registrations" registry at http://www.iana.org/assignments/text-directory-registrations with the following info:

   Type name: IMPP

   Type purpose: To specify the URI for instant messaging and presence
   protocol communications with the object the vCard represents.

   Type encoding: 8bit

   Type value: A single URI.  The type of the URI indicates the protocol
   that can be used for this contact.

   Type special notes: The type may include the type parameter "TYPE" to
   specify an intended use for the URI.  The TYPE parameter values
   include one or more of the following:

   o  An indication of the type of communication for which this URI is
      appropriate.  This can be a value of PERSONAL or BUSINESS.

   o  An indication of the location of a device associated with this
      URI.  Values can be HOME, WORK, or MOBILE.

   o  The value PREF indicates this is a preferred address and has the
      same semantics as the PREF value in a TEL type.

Additional information can be found in RFC 4770.

   Intended usage: COMMON

3. Formal Grammar πŸ“

The following ABNF grammar [4] extends the grammar in RFC 2425 [1] (Section 5.8.2) and RFC 2426 [2] (Section 4) 🧠

   ;For name="IMPP"
    param      = impp-param ; Only impp parameters are allowed

    value      = URI
                 ; URI defined in Section 3 of [3]

    impp-param = "TYPE" "=" impp-type *("," impp-type)

    impp-type  = "PERSONAL" / "BUSINESS" / ; purpose of communications
                 "HOME" / "WORK" / "MOBILE" /
                 "PREF" /
                 iana-token / x-name;
                 ; Values are case insensitive

4. Example 🧚

Here's what it looks like in practice, and it's so cute πŸŽ€

   BEGIN:vCard
   VERSION:3.0
   FN:Alice Doe
   IMPP;TYPE=personal,pref:im:alice@example.com
   END:vCard

5. Security Considerations πŸ”

ok this part is SERIOUS bestie 😭

This doesn't add any extra security issues beyond the current vCard spec. But it's worth knowing that lots of people think their presence info is more sensitive than other address info πŸ™ˆ So any system that stores or transfers vCards needs to really think hard about the privacy issues around this info πŸ’€

6. Acknowledgments 🫢

Huge thanks to Brian Carpenter, Lars Eggert, Ted Hardie, Paul Hoffman, Sam Roberts, and Pekka Pessi for their comments πŸ’–

7. References πŸ“š

7.1. Normative References

   [1]  Howes, T., Smith, M., and F. Dawson, "A MIME Content-Type for
        Directory Information", RFC 2425, September 1998.

   [2]  Dawson, F. and T. Howes, "vCard MIME Directory Profile", RFC
        2426, September 1998.

   [3]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
        Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986,
        January 2005.

   [4]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
        Specifications: ABNF", RFC 4234, October 2005.

7.2. Informational References

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

   [6]  Saint-Andre, P., "Internationalized Resource Identifiers (IRIs)
        and Uniform Resource Identifiers (URIs) for the Extensible
        Messaging and Presence Protocol (XMPP)", RFC 4622, July 2006.

   [7]  Peterson, J., "Common Profile for Instant Messaging (CPIM)", RFC
        3860, August 2004.

   [8]  Peterson, J., "Common Profile for Presence (CPP)", RFC 3859,
        August 2004.

Authors' Addresses 🏑

   Cullen Jennings
   Cisco Systems
   170 West Tasman Drive
   MS: SJC-21/2
   San Jose, CA  95134
   USA

   Phone: +1 408 902-3341
   EMail: fluffy@cisco.com


   Julian F. Reschke (editor)
   greenbytes GmbH
   Hafenweg 16
   Muenster, NW  48155
   Germany

   Phone: +49 251 2807760
   EMail: julian.reschke@greenbytes.de

Copyright (C) The IETF Trust (2007).

This doc is subject to the rights, licenses and restrictions in BCP 78, and except as set forth there, the authors keep all their rights πŸ’…

The doc and the info in it are provided on an "AS IS" basis, and the disclaimer goes like this:

THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST, 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.

Intellectual Property πŸ¦‹

The IETF takes no position on the validity or scope of any Intellectual Property Rights or other rights that might be claimed to apply to the implementation or use of the technology in this doc, or on whether any license under those rights might be available. It also doesn't say it has made any independent effort to find those rights πŸ” Info on the procedures for rights in RFC documents is in BCP 78 and BCP 79.

Copies of IPR disclosures sent to the IETF Secretariat, any assurances of licenses to be made available, or the result of an attempt to get a general license or permission for implementers or users to use those proprietary rights, can be found in the IETF online IPR repository at http://www.ietf.org/ipr.

The IETF invites anyone to tell it about any copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard. Send that info to the IETF at ietf-ipr@ietf.org πŸ’Œ

Acknowledgement 🌸

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

πŸ“¦ where this page comes from