RFC 6715

vCard Format Extensions: Representing vCard Extensions Defined by the Open Mobile Alliance (OMA) Converged Address Book (CAB) Group

πŸ“… published August 2012, from ietf

vCard Format Extensions: Representing vCard Extensions Defined by the Open Mobile Alliance (OMA) Converged Address Book (CAB) Group πŸŽ€

Okay bestie, this is RFC 6715 πŸ’… It's a Standards Track doc from the IETF, dated August 2012 🌸 The authors are D. Cauchie (France Telecom - Orange), B. Leiba, and K. Li (Huawei Technologies) πŸ‘‘ Its ISSN is 2070-1721 ✨ The title block doesn't list anything it obsoletes or updates, so this one is standing on its own, no cap πŸ’œ

Abstract ✨

So this doc adds new vCard extensions for representing and swapping certain contact info πŸ“‡ The properties here were defined by the Open Mobile Alliance (OMA) Converged Address Book group πŸ¦‹ They exist so contact fields that weren't already in the base vCard 4.0 spec can be synced with OMA Data Synchronization πŸ”„

Status of This Memo 🌈

It's an Internet Standards Track document ✨ It's a product of the Internet Engineering Task Force (IETF), so it has the consensus of the IETF community 🫢 It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). For more on Internet Standards, check Section 2 of RFC 5741 πŸ“š

To find the current status, any errata, and how to send feedback, go to http://www.rfc-editor.org/info/rfc6715 πŸ’–

Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved πŸŽ€ This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents, which you can find at http://trustee.ietf.org/license-info as they were on the publication date. Please actually read those, because they spell out your rights and restrictions πŸ™ˆ

If you pull Code Components out of this document, they have to include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions. They come without warranty, as described in the Simplified BSD License ⚠️

Table of Contents πŸ“

1. Introduction ....................................................2
   1.1. A Brief Introduction to the Converged Address Book .........2
   1.2. Terminology Used in This Document ..........................3
2. vCard Extensions: Properties ....................................3
   2.1. Property: EXPERTISE ........................................3
   2.2. Property: HOBBY ............................................4
   2.3. Property: INTEREST .........................................5
   2.4. Property: ORG-DIRECTORY ....................................6
3. vCard Extensions: Parameters ....................................7
   3.1. Parameter: INDEX ...........................................7
   3.2. Parameter: LEVEL ...........................................8
4. Security Considerations .........................................8
5. IANA Considerations .............................................9
6. Acknowledgments .................................................9
7. References .....................................................10
   7.1. Normative References ......................................10
   7.2. Informative References ....................................10

1. Introduction πŸ’–

Syncing an Open Mobile Alliance Converged Address Book [OMA-CAB] with Open Mobile Alliance Data Synchronization [OMA-DS] usually means using vCard as the exchange format between the DS Server and the DS Client πŸ” To sync an OMA-CAB properly, the CAB spec defines some contact fields that aren't in the vCard base spec yet. This doc reuses those OMA-CAB definitions and describes them as vCard extensions ✨ The sections that follow define the Properties and Parameters you need πŸ’…

1.1. A Brief Introduction to the Converged Address Book πŸ¦‹

The Converged Address Book (CAB) Enabler gives you consistent ways to manage contact info, both in user-facing apps and for network-facing stuff πŸ“± At its heart is a network-based contact repository where a user can store their contacts, and any CAB-enabled device can grab them from there 🌐 The repository can also share specific contact info with other users and keep their copies updated whenever the info changes πŸ””

The CAB Enabler syncs the contact info on a user's device(s) with that network-based repository πŸ”„

It also handles distributing a user's own contact info. Basically, a user fills out a Personal Contact Card with everything they want stored about themselves πŸͺͺ

Since systems supporting the CAB Enabler probably serve lots of users, the CAB Enabler also defines a search paradigm. That way, other users can query those systems to find info about the available users πŸ”

The CAB Enabler supports tons of different info types, so its data model is flexible and extensible 🌸 It handles the usual stuff like name, address, email, phone number, and mobile number, plus newer stuff like websites, blogs, and presence subscription references πŸ’œ

1.2. Terminology Used in This Document 🧚

The syntax specs in this doc use the augmented Backus-Naur Form (ABNF) from [RFC5234], and they're written the same way as in the base vCard spec [RFC6350] πŸ“

2. vCard Extensions: Properties 🌈

The sections below define the CAB Properties πŸŽ€

Note: Some string-value vCard properties are defined here without any specific list of allowed strings. For those, it's expected that de facto taxonomies will pop up. One vCard could say a hobby is "philately", another could say "stamp collecting", and a third could say "old postage stamps". Over time, usage (not the spec) might make people prefer one term. These are meant for humans to read, not for automated categorization that would need standard terms and registries πŸ€“

2.1. Property: EXPERTISE πŸ’…

Namespace:

Property name:  EXPERTISE

Purpose:  To specify a field of expertise for the object to which the
          vCard refers.

Value type:  A single text value.

Cardinality:  *

Property parameters:  LEVEL (possible values: "beginner", "average",
                      "expert"), INDEX

This is a free-form way to name fields of expertise, made for humans to read. No specific expertise fields are defined here, so check the note at the start of Section 2 🧠

Format definition:

EXPERTISE-param =  LEVEL-param / INDEX-param / language-param /
                   pref-param / altid-param / type-param /
                   any-param

EXPERTISE-value =  text

Examples:

EXPERTISE;LEVEL=beginner;INDEX=2:chinese literature

EXPERTISE;INDEX=1;LEVEL=expert:chemistry

2.2. Property: HOBBY 🎨

Namespace:

Property name:  HOBBY

Purpose:  To specify the hobbies of the object to which the vCard
          refers.

Value type:  A single text value.

Cardinality:  *

Property parameters:  LEVEL (possible values: "high", "medium",
                      "low"), INDEX

This is a free-form way to name hobbies, meant for humans to read. No specific hobbies are defined here, so again, see the note at the start of Section 2 🧢

A hobby is something you actively do for fun, brain stimulation, creative expression, or stuff like that. It's different from an interest (see Section 2.3) 🎭

  • "Art" might be a hobby if you actively sculpt or paint πŸ–ŒοΈ
  • "Tennis" might be a hobby if you enjoy playing matches, not just watching them 🎾

Format definition:

HOBBY-param =  LEVEL-param / INDEX-param / language-param /
               pref-param / altid-param / type-param / any-param

HOBBY-value =  text

Examples:

HOBBY;INDEX=1;LEVEL=high:reading

HOBBY;INDEX=2;LEVEL=high:sewing

2.3. Property: INTEREST πŸ”₯

Namespace:

Property name:  INTEREST

Purpose:  To specify the interest(s) of the object to which the vCard
          refers.

Value type:  A single text value

Cardinality:  *

Property parameters:  LEVEL (possible values: "high", "medium",
                      "low"), INDEX

This is a free-form way to name interests, meant for humans to read. No specific interests are defined here, so check the note at the start of Section 2 πŸ‘€

An interest is an activity or topic you find fascinating but don't necessarily actively do. It's the opposite of a hobby (see Section 2.2) πŸ“Ί

  • "Art" might be an interest if you love looking at art but don't create any πŸ–ΌοΈ
  • "Tennis" might be an interest if you enjoy watching matches but don't play 🍿

Format definition:

INTEREST-param =  LEVEL-param / INDEX-param / language-param /
                  pref-param / altid-param / type-param /
                  any-param

INTEREST-value =  text

Examples:

INTEREST;INDEX=1;LEVEL=medium:r&b music

INTEREST;INDEX=2;LEVEL=high:rock 'n' roll music

2.4. Property: ORG-DIRECTORY 🏒

Namespace:

Property name:  ORG-DIRECTORY

Purpose:  To specify a directory of an organization to which the
          vCard's entity belongs.

Value type:  A single URI value.

Cardinality:  *

Property parameters:  PREF, INDEX

This is a URI you can use to do an organization-directory lookup πŸ—‚οΈ The entity the vCard represents would presumably be in that directory, though that isn't required. It's handy for finding your coworkers, your management chain, and so on, in a company or org directory πŸ’Ό

How the lookup works depends on the URI scheme, and this doc doesn't try to spell out the details of the lookup mechanism. An HTTP URI could, for example, lead to a web form meant for manual lookup in a browser. So this URI might or might not work for automated lookup or searching πŸ€·β€β™€οΈ

Format definition:

ORG-DIRECTORY-param =  pref-param / INDEX-param / language-param
                       / pid-param / pref-param / altid-param /
                       type-param / any-param

ORG-DIRECTORY-value=  uri

Examples:

ORG-DIRECTORY;INDEX=1:http://directory.mycompany.example.com

ORG-DIRECTORY;PREF=1:ldap://ldap.tech.example/
o=Example%20Tech,ou=Engineering

3. vCard Extensions: Parameters πŸ¦„

Next up, the sections below define the Parameters used inside the Property definitions πŸ’œ More parameter goodness is coming up next ✨

3.1. Parameter: INDEX ✨

Namespace: (left blank in the spec) 🫢

Parameter name: INDEX

Purpose: okay so INDEX is used in a multi-valued property to show where each value sits in the lineup πŸ“

Description: when a property has a bunch of values, INDEX lets you give them an order or sequence. INDEX values must be strictly positive, so zero is a no-go πŸ™…β€β™€οΈ

Format definition:

INDEX-param =  "INDEX=" INDEX-value

INDEX-value =  integer

Examples:

ORG-URI;INDEX=1:http://mycompany.example1.com

ORG-URI;PREF=1;INDEX=2:http://mycompany.example2.com

3.2. Parameter: LEVEL πŸŽ€

Namespace: (left blank in the spec) πŸ’œ

Parameter name: LEVEL

Purpose: this one tells you how good (or how into it) the person the vCard represents is, for expertise, hobbies, or interests 🌈

Description: the allowed values depend on which property you're using πŸ‘‘

  • "beginner", "average", "expert" when used with EXPERTISE
  • "high", "medium", "low" when used with HOBBY or INTEREST

Format definition:

LEVEL-param =  "LEVEL=" LEVEL-value

LEVEL-value =  "beginner" / "average" / "expert" / "high" /
               "medium" / "low"

Examples:

EXPERTISE;LEVEL=beginner:chinese literature

HOBBY;LEVEL=high:reading

INTEREST;LEVEL=medium:r&b music

4. Security Considerations πŸ”

Okay, bestie, this one's short and sweet: this document doesn't add any security considerations beyond the ones in Section 9 of the base vCard specification [RFC6350]. So go check that section for the full security tea 🍡


5. IANA Considerations πŸ“‹

IANA has added the following entries to the "vCard Properties" registry, which is defined in [RFC6350] Section 10.3.1. It's giving organized πŸ’…

  +-------+------------------------+------------------------+
  | Name- |                        |                        |
  | space | Property               | Reference              |
  +-------+------------------------+------------------------+
  |       | EXPERTISE              | RFC 6715, Section 2.1  |
  |       | HOBBY                  | RFC 6715, Section 2.2  |
  |       | INTEREST               | RFC 6715, Section 2.3  |
  |       | ORG-URI                | RFC 6715, Section 2.4  |
  +-------+------------------------+------------------------+

IANA has also added the following entries to the "vCard Parameters" registry, which is defined in [RFC6350] Section 10.3.2 ✨

  +-------+------------------------+------------------------+
  | Name- |                        |                        |
  | space | Parameter              | Reference              |
  +-------+------------------------+------------------------+
  |       | INDEX                  | RFC 6715, Section 3.1  |
  |       | LEVEL                  | RFC 6715, Section 3.2  |
  +-------+------------------------+------------------------+

And finally, IANA added entries to the "vCard Parameter Values" registry, which is defined in [RFC6350] Section 10.3.4 πŸ¦‹

   +-----------+-----------+---------------+------------------------+
   | Property  | Parameter | Value         | Reference              |
   +-----------+-----------+---------------+------------------------+
   | EXPERTISE | LEVEL     | beginner      | RFC 6715, Section 3.2  |
   | EXPERTISE | LEVEL     | average       | RFC 6715, Section 3.2  |
   | EXPERTISE | LEVEL     | expert        | RFC 6715, Section 3.2  |
   | HOBBY     | LEVEL     | high          | RFC 6715, Section 3.2  |
   | HOBBY     | LEVEL     | medium        | RFC 6715, Section 3.2  |
   | HOBBY     | LEVEL     | low           | RFC 6715, Section 3.2  |
   | INTEREST  | LEVEL     | high          | RFC 6715, Section 3.2  |
   | INTEREST  | LEVEL     | medium        | RFC 6715, Section 3.2  |
   | INTEREST  | LEVEL     | low           | RFC 6715, Section 3.2  |
   +-----------+---------------------------+------------------------+

6. Acknowledgments 🧚

Huge thank-yous to Simon Perreault, Peter Saint-Andre, Cyrus Daboo, and Chris Newman 🫢 They did the particularly thorough reviews that made this a way cleaner submission to the working group. Main character energy for real πŸ‘‘


7. References πŸ“š

7.1. Normative References

[RFC5234]  Crocker, D., Ed., and P. Overell, "Augmented BNF for
           Syntax Specifications: ABNF", STD 68, RFC 5234,
           January 2008.

[RFC6350]  Perreault, S., "vCard Format Specification", RFC 6350,
           August 2011.

7.2. Informative References

[OMA-CAB]  Open Mobile Alliance, "Converged Address Book (CAB)
           Specification", October 2010, <http://
           www.openmobilealliance.org/Technical/release_program/docs/
           CopyrightClick.aspx?pck=CAB&file=V1_0-20101019-C/
           OMA-TS-CAB-V1_0-20101019-C.pdf>.

           Candidate Version 1.0, OMA-TS-CAB-V1_0-20101019-C

[OMA-DS]   Open Mobile Alliance, "DS Protocol", March 2009, <http://
           www.openmobilealliance.org/Technical/release_program/docs/
           copyrightclick.aspx?pck=DS&file=V1_2_2-20090319-A/
           OMA-TS-DS_Protocol-V1_2_2-20090319-A.pdf>.

Authors' Addresses πŸ’Œ

Dany Cauchie
France Telecom - Orange
2 Avenue Pierre Marzin
Lannion  22307
France

Phone: +33 2 96 05 31 16
EMail: dany.cauchie@orange.com


Barry Leiba
Huawei Technologies

Phone: +1 646 827 0648
EMail: barryleiba@computer.org
URI:   http://internetmessagingtechnology.org/


Kepeng Li
Huawei Technologies

Phone: +86 755 28974289
EMail: likepeng@huawei.com
πŸ“¦ where this page comes from