<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC2119    PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
<!ENTITY RFC5234    PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5234.xml'>
<!ENTITY RFC6350    PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6350.xml'>

]>
<?xml-stylesheet type='text/xsl' href='http://xml.resource.org/authoring/rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc tocompact="no" ?>
<?rfc tocindent="no" ?>
<?rfc comments="yes" ?>
<?rfc inline="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

<rfc
  category="std"
  ipr="trust200902"
  docName="draft-ietf-vcarddav-oma-cab-extensions-03">

  <front>
    <title abbrev="vCard-OMA-CAB">
    vCard Format extension : represent vCard extensions defined by the
    Open Mobile Alliance (OMA) Converged Address Book (CAB) group
    </title>

    <author initials="D." surname="Cauchie" fullname="Dany Cauchie">
      <organization>France Telecom - Orange</organization>
      <address>
        <postal>
          <street>2 Avenue Pierre Marzin</street>
          <code>22307</code>
          <city>Lannion</city>
          <country>France</country>
        </postal>
        <phone>+33 2 96 05 31 16</phone>
        <email>dany.cauchie@orange.com</email>
      </address>
    </author>

    <author initials='B.' surname="Leiba" fullname='Barry Leiba'>
      <organization>Huawei Technologies</organization>
      <address>
        <phone>+1 646 827 0648</phone>
        <email>barryleiba@computer.org</email>
        <uri>http://internetmessagingtechnology.org/</uri>
      </address>
    </author>

    <author initials='K.' surname="Li" fullname='Kepeng Li'>
          <organization>Huawei Technologies</organization>
          <address>
            <phone>+86 755 28974289</phone>
            <email>likepeng@huawei.com</email>
          </address>
    </author>

    <date/>

    <area>Applications</area>
    <workgroup>vcarddav</workgroup>

    <abstract>
      <t>
        This document defines extensions to the vCard data format for 
        representing and exchanging certain contact information.
        The properties covered here have been defined by the
        Open Mobile Alliance Converged Address Book group,
        in order to synchronize, using OMA Data Synchronization,
        contact fields that were not already defined in 
        the base vCard 4.0 specification. 
      </t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>
        Synchronization of an
        Open Mobile Alliance Converged Address Book <xref target="OMA-CAB"/>,
        using Open Mobile Alliance Data Synchronization <xref target="OMA-DS"/>,
        commonly uses vCard as an exchange format between the DS Server 
        and the DS Client.
        In order to properly perform synchronization of an OMA-CAB,
        the CAB specification 
        defines some CAB 
        contact fields not already defined in the vCard base specification.
        This document re-uses the definitions found in the OMA-CAB specification and 
        describes them as vCard extensions.
        The following sections define the necessary Properties and Parameters. 
      </t>

      <section anchor="introcab" title="A Brief Introduction to the Converged Address Book">
        <t>
          The Converged Address Book (CAB) Enabler provides consistent mechanisms 
          to manage contact information both in user-facing applications and 
          in support of network-facing activities.
          At the core of this enabler is a network-based contact repository in
          which a user can store contact information.
          That information can be retrieved by any CAB-enabled device.
          The network-based repository is also able to provide specific contact
          information to other users and to keep their copies up to date whenever 
          the information is changed.
        </t>
        <t>
          The CAB Enabler provides synchronization of the contact information 
          available in the user device(s) with the network-based contact repository.
        </t>
        <t>
          The CAB Enabler also manages the distribution of a user's own contact 
          information.  In essence, a user fills out a Personal Contact Card, which 
          includes all the information a user wishes to store about him or herself.
        </t>
        <t>
          Because systems that are supporting the CAB Enabler are likely supporting 
          multiple users, the CAB Enabler also defines a search paradigm that 
          permits other users to query those systems to locate information about 
          the available users.
        </t>
        <t>
          The CAB Enabler supports many different types of information.
          It, therefore, has a data model that is flexible and extensible.
          It manages traditional types of contact information
          (such as name, address, email, phone number, mobile number)
          as well as new types of information (such as websites,
          blogs, presence subscription references).  
        </t>
      </section>

      <section anchor="terms" title="Terminology Used in This Document">
        <t>        
          Syntax specifications shown here use the augmented Backus-Naur Form (ABNF)
          as described in <xref target="RFC5234"/>, and are specified as in the base
          vcard specification <xref target='RFC6350' />.
        </t>        
      </section>
    </section>
    
    <section anchor="properties" title="vCard Extensions : Properties">
      <t>
        The following sections define the CAB Properties.
      </t>
      <t>
        Note:<vspace/>
        Some string-value vCard properties are defined herein for which no specific list of
        allowed strings is specified.  For those properties, it is intended that de-facto
        taxonomies might develop.  One vCard can, for example, specify a hobby of "philately",
        while another uses "stamp collecting", and a third has "old postage stamps".
        Usage, not specification, may lead to a preference over time for a single term.
        In general, these are meant to be understood by humans, rather than to be used for
        automated categorization that might require standard terms and registries.
      </t>

      <section title="Property : EXPERTISE">
        <t>
          <list style="hanging" hangIndent="4">
            <t hangText="Namespace:">
            <vspace blankLines="1" /></t>
            
            <t hangText="Property name:">EXPERTISE
            <vspace blankLines="1" /></t>            
          
            <t hangText="Purpose:">
              To specify a field of expertise for the object that the vCard refers to.
            <vspace blankLines="1" /></t>

            <t hangText="Value type:">
              A single text value.
            <vspace blankLines="1" /></t>

            <t hangText="Cardinality:">*
            <vspace blankLines="1" /></t>

            <t hangText="Property parameters:">
              LEVEL (possible values : "beginner", "average", "expert"),
              INDEX
              <vspace blankLines="1" /></t>            

            <t hangText="Description:">
              This is intended to be a free-form naming of fields of expertise,
              meant for human consumption, and no specific expertise fields are defined.
              See the note at the beginning of <xref target="properties"/>.
            <vspace blankLines="1" /></t>

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="EXPERTISE-param =">
                LEVEL-param
                / INDEX-param
                / language-param
                / pref-param
                / altid-param
                / type-param
                / any-param
                </t>
                <t hangText="EXPERTISE-value =">
                text
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Examples:">
            <vspace blankLines="1" />
              EXPERTISE;LEVEL=beginner;INDEX=2:chinese literature
            <vspace blankLines="1" />
              EXPERTISE;INDEX=1;LEVEL=expert:chemistry
            <vspace blankLines="1" /></t>
          </list>
        </t>
      </section>

      <section anchor="propHobby" title="Property : HOBBY">
        <t>
          <list style="hanging" hangIndent="4">
            <t hangText="Namespace:">
            <vspace blankLines="1" /></t>
            
            <t hangText="Property name:">HOBBY
            <vspace blankLines="1" /></t>              
            
            <t hangText="Purpose:">
              To specify the hobbies of the object that the vCard refers to.
            <vspace blankLines="1" /></t>

            <t hangText="Value type:">
              A single text value.  
            <vspace blankLines="1" /></t>

            <t hangText="Cardinality:">*
            <vspace blankLines="1" /></t>

            <t hangText="Property parameters:">
              LEVEL (possible values : "high", "medium", "low"),
              INDEX
              <vspace blankLines="1" /></t>            

            <t hangText="Description:">
              This is intended to be a free-form naming of hobbies,
              meant for human consumption, and no specific hobbies are defined.
              See the note at the beginning of <xref target="properties"/>.
              <vspace blankLines="1" />
              A hobby, as opposed to an interest (see <xref target="propInterest" />) is
              an activity that one actively engages in for entertainment,
              intellectual stimulation, creative expression, or the like.
              <list style="symbols">
                <t>
                  "Art" might be a hobby if one actively sculpts or paints.
                </t>
                <t>
                  "Tennis" might be a hobby if one enjoys playing, rather than
                  just watching matches.
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="HOBBY-param =">
                LEVEL-param
                / INDEX-param
                / language-param
                / pref-param
                / altid-param
                / type-param
                / any-param
                </t>
                <t hangText="HOBBY-value =">
                text
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Examples:">
            <vspace blankLines="1" />
              HOBBY;INDEX=1;LEVEL=high:reading
            <vspace blankLines="1" />
              HOBBY;INDEX=2;LEVEL=high:sewing
            <vspace blankLines="1" /></t>
          </list>
        </t>
      </section>

      <section anchor="propInterest" title="Property : INTEREST">
        <t>
          <list style="hanging" hangIndent="4">
            <t hangText="Namespace:">
            <vspace blankLines="1" /></t>
            
            <t hangText="Property name:">INTEREST
            <vspace blankLines="1" /></t>  
            
            <t hangText="Purpose:">
              To specify the interest(s) of the object that the vCard refers to. 
            <vspace blankLines="1" /></t>

            <t hangText="Value type:">
              A single text value 
            <vspace blankLines="1" /></t>

            <t hangText="Cardinality:">*
            <vspace blankLines="1" /></t>
            
            <t hangText="Property parameters:">
              LEVEL (possible values : "high", "medium", "low"),
              INDEX
              <vspace blankLines="1" /></t>            

            <t hangText="Description:">
              This is intended to be a free-form naming of interests,
              meant for human consumption, and no specific interests are defined.
              See the note at the beginning of <xref target="properties"/>.
              <vspace blankLines="1" />
              An interest, as opposed to a hobby (see <xref target="propHobby" />) is
              an activity or topic that one finds interesting, but doesn't necessarily
              actively engage in.
              <list style="symbols">
                <t>
                  "Art" might be an interest if one likes looking at art,
                  but doesn't create art.
                </t>
                <t>
                  "Tennis" might be an interest if one enjoys watching matches,
                  but doesn't play.
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="INTEREST-param =">
                LEVEL-param
                / INDEX-param
                / language-param
                / pref-param
                / altid-param
                / type-param
                / any-param
                </t>
                <t hangText="INTEREST-value =">
                text
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Examples:">
            <vspace blankLines="1" />
              INTEREST;INDEX=1;LEVEL=medium:r&b music
            <vspace blankLines="1" />
              INTEREST;INDEX=2;LEVEL=high:rock'n roll music
            <vspace blankLines="1" /></t>
          </list>
        </t>
      </section>

      <section title="Property : ORG-DIRECTORY">
        <t>
          <list style="hanging" hangIndent="4">
            <t hangText="Namespace:">
            <vspace blankLines="1" /></t>
            
            <t hangText="Property name:">ORG-DIRECTORY
            <vspace blankLines="1" /></t>  

            <t hangText="Purpose:">
              To specify a directory of an organization the vCard's entity belongs to.
            <vspace blankLines="1" /></t>

            <t hangText="Value type:">
              A single URI value.

            <vspace blankLines="1" /></t>

            <t hangText="Cardinality:">*
            <vspace blankLines="1" /></t>

            <t hangText="Property parameters:">
              PREF,
              INDEX
              <vspace blankLines="1" /></t>            
              
            <t hangText="Description:">
              This is intended to be a URI that can be used to do an organization-directory
              lookup.  Presumably, the entity the vCard represents would be found in the
              directory, though that isn't required.  This might be used to make it easier
              to find someone's co-workers, management chain, and so on, in a company or
              organizational directory.
              <vspace blankLines="1" />
              How the lookup is done depends upon the URI scheme, and no attempt is made here
              to specify details of the lookup mechanism.  An HTTP URI might, for example,
              lead to a web form that's intended for manual lookup in a browser -- thus, this URI
              might or might not be useable for automated lookup or searching.
            <vspace blankLines="1" /></t>

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="ORG-DIRECTORY-param =">
                pref-param
                / INDEX-param
                / language-param
                / pid-param
                / pref-param
                / altid-param
                / type-param
                / any-param
                </t>
                <t hangText="ORG-DIRECTORY-value=">
                uri
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Examples:">
            <vspace blankLines="1" />
              ORG-DIRECTORY;INDEX=1:http://directory.mycompany.example.com
            <vspace blankLines="1" />
              ORG-DIRECTORY;PREF=1:ldap://ldap.tech.example/o=Example%20Tech,ou=Engineering
            <vspace blankLines="1" /></t>
          </list>
        </t>
      </section>

    </section>

    <section title="vCard extensions : Parameters">
      <t>
        The following sections define Parameters used within Properties
        definitions.
      </t>

      <section title="Parameter : INDEX">
        <t>
          <list style="hanging" hangIndent="4">
           <t hangText="Namespace:">
            <vspace blankLines="1" /></t>
            
            <t hangText="Parameter name:">INDEX
            <vspace blankLines="1" /></t>  
            
            <t hangText="Purpose:">
              Used in a multi-valued property to indicate the position
              of this value within the set of values.
            <vspace blankLines="1" /></t>

            <t hangText="Description:">
               When a property is multi-valued, INDEX can be used to indicate an ordering
               or sequence of the values. INDEX values MUST be strictly positive. Zero is not allowed.
            <vspace blankLines="1" /></t>

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="INDEX-param =">
                "INDEX=" INDEX-value
                </t>
                <t hangText="INDEX-value =">
                integer
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Examples:">
              <vspace blankLines="1" />
              ORG-URI;INDEX=1:http://mycompany.example1.com
              <vspace blankLines="1" />
              ORG-URI;PREF=1;INDEX=2:http://mycompany.example2.com
            <vspace blankLines="1" /></t>
          </list>
        </t>  
      </section>

      <section title="Parameter : LEVEL">
         <t>
          <list style="hanging" hangIndent="4">
           <t hangText="Namespace:">
            <vspace blankLines="1" /></t>
            
            <t hangText="Parameter name:">LEVEL
            <vspace blankLines="1" /></t>  
            
            <t hangText="Purpose:">
              Used to indicate a level of expertise, hobby or interest 
              attained by the object the vCard represents.
            <vspace blankLines="1" /></t>

            <t hangText="Description:">
              Allowable values:
              <list style="symbols">
                <t>
                  "beginner", "average", "expert" when used with EXPERTISE
                </t>
                <t>
                  "high", "medium", "low" when used with HOBBY or INTEREST
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Format definition:">
              <list style="hanging" hangIndent="8">
                <t hangText="LEVEL-param =">
                  "LEVEL=" LEVEL-value
                </t>
                <t hangText="LEVEL-value =">
                  "beginner" / "average" / "expert" / "high" / "medium" / "low"  
                </t>
              </list>
            <vspace blankLines="1" /></t>

            <t hangText="Examples:">
              <vspace blankLines="1" />
              EXPERTISE;LEVEL=beginner:chinese literature
              <vspace blankLines="1" />
              HOBBY;LEVEL=high:reading
              <vspace blankLines="1" />
              INTEREST;LEVEL=medium:r&b music
            <vspace blankLines="1" /></t>
          </list>
        </t>       
      </section>

    </section>
                                      
    <section anchor="security" title="Security Considerations">
      <t>
        This document presents no security considerations beyond those in 
        section 9 of the base vcard specification
        <xref target='RFC6350' />.
      </t>

    </section>


    <section anchor="iana" title="IANA Considerations">
      <t>
        IANA is requested to add the following entries to the
        vCard Properties registry, defined in
        <xref target='RFC6350' />
        section 10.3.1.
      </t>
      
      <figure>
         <artwork>
  +-------+---------------------------+-------------------+
  | Name  |                           |                   |
  | space | Property                  | Reference         |
  +-------+---------------------------+-------------------+
  |       | EXPERTISE                 | RFCXXXX, sec 2.1  |
  |       | HOBBY                     | RFCXXXX, sec 2.2  |
  |       | INTEREST                  | RFCXXXX, sec 2.3  |
  |       | ORG-URI                   | RFCXXXX, sec 2.4  |  
  +-------+---------------------------+-------------------+
         </artwork>
      </figure>
      
      <t>
        IANA is requested to add the following entries to the
        vCard Parameters registry, defined in
        <xref target='RFC6350' />
        section 10.3.2.
      </t>
      
      <figure>
         <artwork>
  +-------+---------------------------+-------------------+
  | Name  |                           |                   |
  | space | Parameter                 | Reference         |
  +-------+---------------------------+-------------------+
  |       | INDEX                     | RFCXXXX, sec 3.1  |
  |       | LEVEL                     | RFCXXXX, sec 3.2  |
  +-------+---------------------------+-------------------+
         </artwork>
      </figure>
      <t>
        IANA is requested to add the following entries to the
        vCard Values registry, defined in
        <xref target='RFC6350' />
        section 10.3.4.
      </t>
      
      <figure>
         <artwork>
  +-----------+-----------+---------------+-------------------+
  | Property  | Parameter | Value         | Reference         |
  +-----------+-----------+---------------+-------------------+
  | EXPERTISE | LEVEL     | beginner      | RFCXXXX, sec 3.2  |
  | EXPERTISE | LEVEL     | average       | RFCXXXX, sec 3.2  |
  | EXPERTISE | LEVEL     | expert        | RFCXXXX, sec 3.2  |
  | HOBBY     | LEVEL     | high          | RFCXXXX, sec 3.2  |  
  | HOBBY     | LEVEL     | medium        | RFCXXXX, sec 3.2  |
  | HOBBY     | LEVEL     | low           | RFCXXXX, sec 3.2  |
  | INTEREST  | LEVEL     | high          | RFCXXXX, sec 3.2  |  
  | INTEREST  | LEVEL     | medium        | RFCXXXX, sec 3.2  |
  | INTEREST  | LEVEL     | low           | RFCXXXX, sec 3.2  |
  +-----------+---------------------------+-------------------+
         </artwork>
      </figure>
    </section>

    <section title="Acknowledgments">
      <t>
        Thanks to Simon Perreault, Peter Saint-Andre, Cyrus Daboo, 
        and Chris Newman for particularly thorough reviews,
        which led to a much cleaner submission to the working group.
      </t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      &RFC5234; <!-- ABNF -->
      &RFC6350; <!-- vCard 4.0 -->
    </references>
      
    <references title="Informative References">
      <reference anchor="OMA-CAB" target="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">
        <front>
          <title>Converged Address Book (CAB) Specification</title>
          <author initials="" surname="Open Mobile Alliance" fullname="Open Mobile Alliance">
            <organization>Open Mobile Alliance</organization>
          </author>
          <date month="October" year="2010" />
        </front>
        <format type="PDF" target="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" />
        <annotation>
          Candidate Version 1.0,
          OMA-TS-CAB-V1_0-20101019-C
        </annotation>
      </reference>

      <reference anchor="OMA-DS" target="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">
        <front>
          <title>Data Synchronization Protocol</title>
          <author initials="" surname="Open Mobile Alliance" fullname="Open Mobile Alliance">
            <organization>Open Mobile Alliance</organization>
          </author>
          <date month="March" year="2009" />
        </front>
        <format type="PDF" target="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" />
        <annotation>
          Candidate Version 1.2.2,
          OMA-TS-DS_Protocol-V1_2_2-20090319-A
        </annotation>
      </reference>
    </references>
  </back>
</rfc>
    