idnits 2.17.1 draft-ietf-jmap-jscontact-vcard-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There are 12 instances of too long lines in the document, the longest one being 41 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (October 11, 2020) is 1287 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'RFC6474' is defined on line 1564, but no explicit reference was found in the text Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 jmap M. Loffredo 3 Internet-Draft IIT-CNR/Registro.it 4 Intended status: Informational R. Stepanek 5 Expires: April 14, 2021 FastMail 6 October 11, 2020 8 JSContact: Converting from and to vCard 9 draft-ietf-jmap-jscontact-vcard-01 11 Abstract 13 This document provides informational guidance for converting the 14 contact card defined by JSContact specification, namely JSCard, from 15 and to vCard. 17 Status of This Memo 19 This Internet-Draft is submitted in full conformance with the 20 provisions of BCP 78 and BCP 79. 22 Internet-Drafts are working documents of the Internet Engineering 23 Task Force (IETF). Note that other groups may also distribute 24 working documents as Internet-Drafts. The list of current Internet- 25 Drafts is at https://datatracker.ietf.org/drafts/current/. 27 Internet-Drafts are draft documents valid for a maximum of six months 28 and may be updated, replaced, or obsoleted by other documents at any 29 time. It is inappropriate to use Internet-Drafts as reference 30 material or to cite them other than as "work in progress." 32 This Internet-Draft will expire on April 14, 2021. 34 Copyright Notice 36 Copyright (c) 2020 IETF Trust and the persons identified as the 37 document authors. All rights reserved. 39 This document is subject to BCP 78 and the IETF Trust's Legal 40 Provisions Relating to IETF Documents 41 (https://trustee.ietf.org/license-info) in effect on the date of 42 publication of this document. Please review these documents 43 carefully, as they describe your rights and restrictions with respect 44 to this document. Code Components extracted from this document must 45 include Simplified BSD License text as described in Section 4.e of 46 the Trust Legal Provisions and are provided without warranty as 47 described in the Simplified BSD License. 49 Table of Contents 51 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 52 1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . 3 53 1.2. Scope and Caveats . . . . . . . . . . . . . . . . . . . . 3 54 1.3. Conventions Used in This Document . . . . . . . . . . . . 4 55 2. Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 56 2.1. General Properties . . . . . . . . . . . . . . . . . . . 4 57 2.1.1. BEGIN and END . . . . . . . . . . . . . . . . . . . . 4 58 2.1.2. SOURCE . . . . . . . . . . . . . . . . . . . . . . . 4 59 2.1.3. KIND . . . . . . . . . . . . . . . . . . . . . . . . 5 60 2.1.4. XML . . . . . . . . . . . . . . . . . . . . . . . . . 6 61 2.2. Identification Properties . . . . . . . . . . . . . . . . 6 62 2.2.1. FN . . . . . . . . . . . . . . . . . . . . . . . . . 6 63 2.2.2. N and NICKNAME . . . . . . . . . . . . . . . . . . . 6 64 2.2.3. PHOTO . . . . . . . . . . . . . . . . . . . . . . . . 7 65 2.2.4. BDAY, BIRTHPLACE, DEATHDATE, DEATHPLACE, ANNIVERSARY 8 66 2.2.5. GENDER . . . . . . . . . . . . . . . . . . . . . . . 10 67 2.3. Delivery Addressing Properties . . . . . . . . . . . . . 10 68 2.3.1. ADR . . . . . . . . . . . . . . . . . . . . . . . . . 10 69 2.4. Communications Properties . . . . . . . . . . . . . . . . 11 70 2.4.1. TEL . . . . . . . . . . . . . . . . . . . . . . . . . 12 71 2.4.2. EMAIL . . . . . . . . . . . . . . . . . . . . . . . . 12 72 2.4.3. IMPP . . . . . . . . . . . . . . . . . . . . . . . . 13 73 2.4.4. LANG . . . . . . . . . . . . . . . . . . . . . . . . 14 74 2.5. Geographical Properties . . . . . . . . . . . . . . . . . 15 75 2.6. Organizational Properties . . . . . . . . . . . . . . . . 16 76 2.6.1. TITLE . . . . . . . . . . . . . . . . . . . . . . . . 16 77 2.6.2. ROLE . . . . . . . . . . . . . . . . . . . . . . . . 16 78 2.6.3. LOGO . . . . . . . . . . . . . . . . . . . . . . . . 17 79 2.6.4. ORG . . . . . . . . . . . . . . . . . . . . . . . . . 18 80 2.6.5. MEMBER . . . . . . . . . . . . . . . . . . . . . . . 19 81 2.6.6. RELATED . . . . . . . . . . . . . . . . . . . . . . . 20 82 2.6.7. CONTACT-URI . . . . . . . . . . . . . . . . . . . . . 22 83 2.7. Personal Information Properties . . . . . . . . . . . . . 22 84 2.7.1. EXPERTISE . . . . . . . . . . . . . . . . . . . . . . 22 85 2.7.2. HOBBY . . . . . . . . . . . . . . . . . . . . . . . . 23 86 2.7.3. INTEREST . . . . . . . . . . . . . . . . . . . . . . 24 87 2.7.4. ORG-DIRECTORY . . . . . . . . . . . . . . . . . . . . 25 88 2.8. Explanatory Properties . . . . . . . . . . . . . . . . . 26 89 2.8.1. CATEGORIES . . . . . . . . . . . . . . . . . . . . . 26 90 2.8.2. NOTE . . . . . . . . . . . . . . . . . . . . . . . . 27 91 2.8.3. PRODID . . . . . . . . . . . . . . . . . . . . . . . 28 92 2.8.4. REV . . . . . . . . . . . . . . . . . . . . . . . . . 28 93 2.8.5. SOUND . . . . . . . . . . . . . . . . . . . . . . . . 29 94 2.8.6. UID . . . . . . . . . . . . . . . . . . . . . . . . . 30 95 2.8.7. CLIENTPIDMAP and PID Parameter . . . . . . . . . . . 30 96 2.8.8. URL . . . . . . . . . . . . . . . . . . . . . . . . . 30 97 2.8.9. VERSION . . . . . . . . . . . . . . . . . . . . . . . 31 98 2.9. Security Properties . . . . . . . . . . . . . . . . . . . 31 99 2.9.1. KEY . . . . . . . . . . . . . . . . . . . . . . . . . 31 100 2.10. Calendar Properties . . . . . . . . . . . . . . . . . . . 32 101 2.10.1. FBURL . . . . . . . . . . . . . . . . . . . . . . . 32 102 2.10.2. CALADRURI . . . . . . . . . . . . . . . . . . . . . 33 103 2.10.3. CALURI . . . . . . . . . . . . . . . . . . . . . . . 34 104 2.11. Additional Clarifications about Mapping . . . . . . . . . 35 105 2.11.1. Media type . . . . . . . . . . . . . . . . . . . . . 35 106 2.11.2. Timezone . . . . . . . . . . . . . . . . . . . . . . 35 107 2.12. Extended Properties . . . . . . . . . . . . . . . . . . . 36 108 2.13. vCard Unmatched Properties . . . . . . . . . . . . . . . 36 109 2.14. JSCard Required Properties . . . . . . . . . . . . . . . 36 110 2.15. JSCard Unmatched Properties . . . . . . . . . . . . . . . 36 111 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36 112 4. Implementation Status . . . . . . . . . . . . . . . . . . . . 37 113 4.1. CNR . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 114 5. Security Considerations . . . . . . . . . . . . . . . . . . . 37 115 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 37 116 6.1. Normative References . . . . . . . . . . . . . . . . . . 38 117 6.2. Informative References . . . . . . . . . . . . . . . . . 39 118 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 120 1. Introduction 122 1.1. Motivation 124 The JSContact specification [draft-ietf-jmap-jscontact] has been 125 defined to represent contact card information as a more efficient 126 alternative to vCard [RFC6350] and its JSON-based version named jCard 127 [RFC7095]. 129 While new applications might adopt JSContact as their main format to 130 exchange contact card data, they are likely to interoperate with 131 services and clients that just support vCard/jCard. Similarly, 132 existing contact data providers and consumers already using vCard/ 133 jCard might want to represent their data also according to the 134 JSContact specification. 136 To facilitate this use cases, this document provides informational 137 guidance about how to convert the card defined in JSContact, namely 138 JSCard, from and to vCard. 140 1.2. Scope and Caveats 142 JSContact and vCard have a lot of semantics in common, however some 143 differences must be outlined: 145 o The JSContact data model defines some contact information that 146 doesn't have a direct mapping with vCard elements. In particular, 147 unlike vCard, JSContact distinguishes between a single contact 148 card, named JSCard, and a group of contact cards, named 149 JSCardGroup. 151 o The vCard specification includes some features (like parameters) 152 that have been formally removed from JSCard due to a complete 153 refactoring of vCard content. Anyway, the vCard parameters may 154 appear as JSCard features. 156 o Some vCard elements represented individually have been mapped onto 157 members of JSCard objects. 159 o The vCard custom elements, identified by the prefix "x-", don't 160 have a direct counterpart in the JSContact specification. 162 1.3. Conventions Used in This Document 164 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 165 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 166 document are to be interpreted as described in [RFC2119]. 168 2. Mapping 170 This section contains the mapping between vCard and JSCard. The 171 vCard properties are grouped according to the categories defined by 172 [RFC6350]. 174 Where it is needed, the JCardGroup is taken into account. 176 In the following of this document, the vCard features, namely 177 properties and parameters, are written in uppercase while the JSCard 178 features are written in camel case. 180 2.1. General Properties 182 2.1.1. BEGIN and END 184 The BEGIN and END properties don't have a direct match with a JSCard 185 feature. 187 2.1.2. SOURCE 189 A SOURCE element is represented as a "Resource" object in the 190 "online" array (Figure 1) whose "type" member is set to "uri" and 191 "labels" map contains the entry <"source",true>. 193 The PREF and MEDIATYPE parameters are mapped onto the "isPreferred" 194 and "mediaType" members respectively. 196 BEGIN:VCARD 197 VERSION:4.0 198 ... 199 SOURCE:http://directory.example.com/addressbooks/jdoe/Jean%20Dupont.vcf 200 ... 201 END:VCARD 203 { 204 ... 205 "online":[ 206 ... 207 { 208 "type": "uri", 209 "labels": { "source": true }, 210 "value": "http://directory.example.com/addressbooks/jdoe/Jean%20Dupont.vcf" 211 }, 212 ... 213 ], 214 ... 215 } 217 Figure 1: SOURCE mapping example 219 2.1.3. KIND 221 The KIND element is mapped onto the "kind" member (Figure 2). 222 Allowed values are those, except "group", described in section 6.1.4 223 of [RFC6350] and extended with the values declared in [RFC6473] and 224 [RFC6869]. A group of cards is represented through a JSCardGroup. 226 BEGIN:VCARD 227 VERSION:4.0 228 ... 229 KIND:individual 230 ... 231 END:VCARD 233 { 234 ... 235 "kind": "individual", 236 ... 237 } 239 Figure 2: KIND mapping example 241 2.1.4. XML 243 The XML property doesn't have a direct match with a JSCard feature. 245 2.2. Identification Properties 247 2.2.1. FN 249 All the FN elements are globally represented through the "fullName" 250 member. The presence of more than one name is implicitly associated 251 with the full name translations in various languages regardless of 252 the presence of the ALTID parameter. Each translation corresponds to 253 a different entry of the "localizations" map (Figure 3). 255 2.2.2. N and NICKNAME 257 Both the N and NICKNAME elements are converted into equivalent items 258 of the "name" array (Figure 3): 260 o the N components are transformed into related "NameComponent" 261 objects as presented in Table 1. Name components SHOULD be 262 ordered such that their values joined by whitespace produce a 263 valid full name of this entity; 265 o Each NICKNAME element is mapped onto an object whose "type" member 266 is set to "nickname" 268 +--------------------+--------------+ 269 | N component | "type" value | 270 +--------------------+--------------+ 271 | Honorific Prefixes | prefix | 272 | Given Names | personal | 273 | Family Names | surname | 274 | Additional Names | additional | 275 | Honorific Suffixes | suffix | 276 +--------------------+--------------+ 278 Table 1: N components mapping 280 BEGIN:VCARD 281 VERSION:4.0 282 ... 283 FN:Mr. John Q. Public\, Esq. 284 N:Public;John;Quinlan;Mr.;Esq. 285 NICKNAME:Johnny 286 ... 287 END:VCARD 289 { 290 ... 291 "fullName":{ 292 "value": "Mr. John Q. Public, Esq." 293 }, 294 "name":[ 295 { "value":"Mr.", "type": "prefix" }, 296 { "value":"John", "type": "personal" }, 297 { "value":"Public", "type": "surname" }, 298 { "value":"Quinlan", "type": "additional" }, 299 { "value":"Esq.", "type": "suffix" }, 300 { "value":"Johnny", "type": "nickname" } 301 ], 302 ... 303 } 305 Figure 3: FN, N, NICKNAME mapping example 307 2.2.3. PHOTO 309 A PHOTO element is represented as a "Resource" object in the "online" 310 array (Figure 4) whose "type" member is set to "uri" and "labels" map 311 contains the entry <"photo",true>. 313 The PREF and MEDIATYPE parameters are mapped onto the "isPreferred" 314 and "mediaType" members respectively. 316 BEGIN:VCARD 317 VERSION:4.0 318 ... 319 PHOTO:http://www.example.com/pub/photos/jqpublic.gif 320 ... 321 END:VCARD 323 { 324 ... 325 "online":[ 326 ... 327 { 328 "type": "uri", 329 "labels": { "photo": true }, 330 "value": "http://www.example.com/pub/photos/jqpublic.gif" 331 }, 332 ... 333 ], 334 ... 335 } 337 Figure 4: PHOTO mapping example 339 2.2.4. BDAY, BIRTHPLACE, DEATHDATE, DEATHPLACE, ANNIVERSARY 341 The BDAY and ANNIVERSARY elements and the extensions BIRTHPLACE, 342 DEATHDATE, DEATHPLACE described in [RFC6350] are represented as 343 "Anniversary" objects included in the "anniversaries" array 344 (Figure 5): 346 o BDAY and BIRTHPLACE are mapped onto "date" and "place" where 347 "type" is set to "birth"; 349 o DEATHDATE and DEATHPLACE are mapped onto "date" and "place" where 350 "type" is set to "death"; 352 o ANNIVERSARY is mapped onto "date" where "type" is set to "other" 353 and "label" is set to a value describing in detail the kind of 354 anniversary (e.g. "marriage date" for the wedding anniversary). 356 Both birth and death places are represented as instances of the 357 "Address" object. BIRTHPLACE and DEATHPLACE that are represented as 358 geo URIs are converted into "Address" instances including only the 359 "coordinates" member. If the URI value is not a geo URI, the place 360 is ignored. The LANGUAGE parameter values of both BIRTHPLACE and 361 DEATHPLACE elements are represented as corresponding entries of the 362 "fullAddress.localizations" map. 364 BEGIN:VCARD 365 VERSION:4.0 366 ... 367 BDAY:19531015T231000Z 368 BIRTHPLACE:Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\nU.S.A. 369 DEATHDATE:19960415 370 DEATHPLACE:4445 Courtright Street\nNew England, ND 58647\nU.S.A. 371 ANNIVERSARY:19860201 372 ... 373 END:VCARD 375 { 376 ... 377 "anniversaries":[ 378 { 379 "type": "birth", 380 "date": "19531015T231000Z", 381 "place": 382 { 383 "fullAddress": 384 { 385 "value": "Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\nU.S.A." 386 } 387 } 388 }, 389 { 390 "type": "birth", 391 "date": "19531015T231000Z", 392 "place": 393 { 394 "fullAddress": 395 { 396 "value": "4445 Courtright Street\nNew England, ND 58647\nU.S.A." 397 } 398 } 399 }, 400 { 401 "type": "other", 402 "label": "marriage date", 403 "date": "19860201" 404 } 405 ], 406 ... 407 } 409 Figure 5: BDAY, BIRTHPLACE, DEATHDATE, DEATHPLACE, ANNIVERSARY 410 mapping example 412 2.2.5. GENDER 414 TBD 416 2.3. Delivery Addressing Properties 418 2.3.1. ADR 420 An ADR element is represented as an "Address" object in the 421 "addresses" array (Figure 6). 423 The ADR components are transformed into the "Address" members as 424 presented in Table 2. 426 +------------------+----------------+ 427 | ADR component | Address member | 428 +------------------+----------------+ 429 | p.o. box | postOfficeBox | 430 | extended address | extension | 431 | street address | street | 432 | locality | locality | 433 | region | region | 434 | postal code | postcode | 435 | country name | country | 436 +------------------+----------------+ 438 Table 2: ADR components mapping 440 The LABEL parameter is converted into the "fullAddress" member. 442 The PREF parameter is converted into the "isPreferred" member. 444 The GEO parameter is converted into the "coordinates" member. 446 The TZ parameter is converted into by the "timeZone" member. 448 The TYPE parameter is converted into the "context" member. The 449 "home" value is replaced with the "private" value. 451 The LANGUAGE parameter values are represented as different entries of 452 the "fullAddress.localizations" map. 454 The CC parameter defined by [RFC8605] is converted into the 455 "countryCode" member. 457 BEGIN:VCARD 458 VERSION:4.0 459 ... 460 ADR;TYPE=work;CC=US:;;54321 Oak St;Reston;VA;20190;USA 461 ADR;TYPE=home;CC=US:;;12345 Elm St;Reston;VA;20190;USA 462 ... 463 END:VCARD 465 { 466 ... 467 "addresses": [ 468 { 469 "context": "work", 470 "fullAddress": 471 { 472 "value": "54321 Oak St\nReston\nVA\n20190\nUSA" 473 }, 474 "street": "54321 Oak St", 475 "locality": "Reston", 476 "region": "VA", 477 "country": "USA", 478 "postcode": "20190", 479 "countryCode": "US" 480 }, 481 { 482 "context": "private", 483 "fullAddress": 484 { 485 "value": "12345 Elm St\nReston\nVA\n20190\nUSA" 486 }, 487 "street": "12345 Elm St", 488 "locality": "Reston", 489 "region": "VA", 490 "country": "USA", 491 "postcode": "20190", 492 "countryCode": "US" 493 } 494 ] 495 ... 496 } 498 Figure 6: ADR mapping example 500 2.4. Communications Properties 501 2.4.1. TEL 503 A TEL element is represented as a "Resource" object in the "phones" 504 array (Figure 7). The vCard "type-param-tel" values are mapped onto 505 the "type" member values. Those vCard "type-param-tel" values that 506 don't have a counterpart among the "type" member values are 507 represented as entry keys of the "labels" map with the corresponding 508 entry value set to true. The "type-param" values are are mapped onto 509 the "context" member values. The "home" value is replaced with the 510 "private" value. 512 The PREF parameter is mapped onto the "isPreferred" member. 514 BEGIN:VCARD 515 VERSION:4.0 516 ... 517 TEL;VALUE=uri;PREF=1;TYPE="voice,home":tel:+1-555-555-5555;ext=5555 518 TEL;VALUE=uri;TYPE=home:tel:+33-01-23-45-67 519 ... 520 END:VCARD 522 { 523 ... 524 "phones":[ 525 { 526 "context": "private", 527 "type": "voice", 528 "value": "tel:+1-555-555-5555;ext=5555", 529 "isPreferred": true 530 }, 531 { 532 "context": "private", 533 "value": "tel:+33-01-23-45-67" 534 } 535 ], 536 ... 537 } 539 Figure 7: TEL mapping example 541 2.4.2. EMAIL 543 An EMAIL element is represented as a "Resource" object in the 544 "emails" array (Figure 8). The vCard "type-param" values are mapped 545 onto the "context" member values. The "home" value is replaced with 546 the "private" value. 548 The PREF parameter is mapped onto the "isPreferred" member. 550 BEGIN:VCARD 551 VERSION:4.0 552 ... 553 EMAIL;TYPE=work:jqpublic@xyz.example.com 554 EMAIL;PREF=1:jane_doe@example.com 555 ... 556 END:VCARD 558 { 559 ... 560 "emails":[ 561 { 562 "context": "work", 563 "value": "jqpublic@xyz.example.com", 564 }, 565 { 566 "context": "private", 567 "value": "jane_doe@example.com" 568 "isPreferred": true 569 } 570 ], 571 ... 572 } 574 Figure 8: EMAIL mapping example 576 2.4.3. IMPP 578 An IMPP element is represented as a "Resource" object in the "online" 579 array (Figure 9) whose "type" member is set to "username" and 580 "labels" map contains the entry <"XMPP",true>. 582 In case of a contact card related to an acconunt on another online 583 service, the entry key SHOULD be the canonical service name, 584 including capitalisation (e.g. "Twitter", "Facebook", "Skype", 585 "GitHub") 587 The PREF and MEDIATYPE parameters are mapped onto the "isPreferred" 588 and "mediaType" members respectively. 590 BEGIN:VCARD 591 VERSION:4.0 592 ... 593 IMPP;PREF=1:xmpp:alice@example.com 594 ... 595 END:VCARD 597 { 598 ... 599 "online":[ 600 ... 601 { 602 "type": "username", 603 "labels": { "XMPP": true }, 604 "value": "alice@example.com" 605 }, 606 ... 607 ], 608 ... 609 } 611 Figure 9: IMPP mapping example 613 2.4.4. LANG 615 A LANG element is represented through the "preferredContactLanguages" 616 map (Figure 10): an entry for each language that may be used for 617 contacting the entity associated with the JSCard. The entry keys 618 correspond to the language tags, the corresponding entry values are 619 arrays of "ContactLanguage" objects. 621 The TYPE and PREF parameters are mapped onto the "ContactLanguage" 622 members "type" and "preference" respectively. 624 If both PREF and TYPE parameters are missing, the array of 625 "ContactLanguage" objects MUST be empty. 627 BEGIN:VCARD 628 VERSION:4.0 629 ... 630 LANG;TYPE=work;PREF=1:en 631 LANG;TYPE=work;PREF=2:fr 632 LANG;TYPE=home:fr 633 ... 634 END:VCARD 636 { 637 ... 638 "preferredContactLanguages" : { 639 "en": [ 640 { 641 "type": "work", 642 "preference": 1 643 } 644 ], 645 "fr": [ 646 { 647 "type": "work", 648 "preference": 2 649 }, 650 { 651 "type": "home", 652 } 653 ] 654 }, 655 ... 656 } 658 Figure 10: LANG mapping example 660 2.5. Geographical Properties 662 The GEO and TZ elements are not directly mapped into equivalent 663 topmost JSCard members because the same information is represented 664 through equivalent "Address" members. 666 The ALTID parameter is used for associating both GEO and TZ elements 667 with the related address information. When the ALTID parameter is 668 missing, the element should be associated with the first contact 669 address. 671 2.6. Organizational Properties 673 2.6.1. TITLE 675 A TITLE element is mapped onto a "LocalizedString" object included in 676 the "jobTitle" array (Figure 11). 678 The ALTID parameter is used for for associating the language- 679 dependent alternatives with a given element. 681 The LANGUAGE parameter values are represented as corresponding 682 entries of the "localizations" map. 684 BEGIN:VCARD 685 VERSION:4.0 686 ... 687 TITLE:Research Scientist 688 ... 689 END:VCARD 691 { 692 ... 693 "jobTitle":[ 694 { 695 "value": "Research Scientist" 696 } 697 ], 698 ... 699 } 701 Figure 11: TITLE mapping example 703 2.6.2. ROLE 705 A ROLE element is mapped onto a "LocalizedString" object included in 706 the "role" array (Figure 12). 708 The ALTID parameter is used for for associating the language- 709 dependent alternatives with a given element. 711 The LANGUAGE parameter values are represented as corresponding 712 entries of the "localizations" map. 714 BEGIN:VCARD 715 VERSION:4.0 716 ... 717 ROLE:Project Leader 718 ... 719 END:VCARD 721 { 722 ... 723 "role":[ 724 { 725 "value": "Project Leader" 726 } 727 ], 728 ... 729 } 731 Figure 12: ROLE mapping example 733 2.6.3. LOGO 735 A LOGO element is represented as a "Resource" object in the "online" 736 array (Figure 13) whose "type" member is set to "uri" and "labels" 737 map contains the entry <"logo",true>. 739 The PREF and MEDIATYPE parameters are mapped onto the "isPreferred" 740 and "mediaType" members respectively. 742 BEGIN:VCARD 743 VERSION:4.0 744 ... 745 LOGO:http://www.example.com/pub/logos/abccorp.jpg 746 ... 747 END:VCARD 749 { 750 ... 751 "online":[ 752 ... 753 { 754 "type": "uri", 755 "labels": { "logo": true }, 756 "value": "http://www.example.com/pub/logos/abccorp.jpg" 757 }, 758 ... 759 ], 760 ... 761 } 763 Figure 13: LOGO mapping example 765 2.6.4. ORG 767 An ORG element is mapped onto a "LocalizedString" object included in 768 the "organization" array (Figure 14). The organization name includes 769 the organizational units if any. 771 The ALTID parameter is used for for associating the language- 772 dependent alternatives with a given element. 774 The LANGUAGE parameter values are represented as corresponding 775 entries of the "localizations" map. 777 BEGIN:VCARD 778 VERSION:4.0 779 ... 780 ORG:ABC\, Inc.;North American Division;Marketing 781 ... 782 END:VCARD 784 { 785 ... 786 "organization":[ 787 { 788 "value": "ABC, Inc.;North American Division;Marketing" 789 } 790 ], 791 ... 792 } 794 Figure 14: ORG mapping example 796 2.6.5. MEMBER 798 According to the JSContact specification, a group of contact cards is 799 represented through a JSCardGroup (Figure 15). The contact cards 800 composing the group are included in the "cards" array. Therefore, 801 the MEMBER element doesn't have a direct match with a JSCard feature. 803 BEGIN:VCARD 804 VERSION:4.0 805 KIND:group 806 FN:The Doe family 807 MEMBER:urn:uuid:03a0e51f-d1aa-4385-8a53-e29025acd8af 808 MEMBER:urn:uuid:b8767877-b4a1-4c70-9acc-505d3819e519 809 END:VCARD 810 BEGIN:VCARD 811 VERSION:4.0 812 FN:John Doe 813 UID:urn:uuid:03a0e51f-d1aa-4385-8a53-e29025acd8af 814 END:VCARD 815 BEGIN:VCARD 816 VERSION:4.0 817 FN:Jane Doe 818 UID:urn:uuid:b8767877-b4a1-4c70-9acc-505d3819e519 819 END:VCARD 821 { 822 "uid": "urn:uuid:ab4310aa-fa43-11e9-8f0b-362b9e155667", 823 "name": "The Doe family", 824 "cards": [ 825 { 826 "name": { 827 "fullName": { 828 "value": "John Doe" 829 } 830 }, 831 "uid": "urn:uuid:03a0e51f-d1aa-4385-8a53-e29025acd8af" 832 }, 833 { 834 "name": { 835 "fullName": { 836 "value": "Jane Doe" 837 } 838 }, 839 "uid": "urn:uuid:b8767877-b4a1-4c70-9acc-505d3819e519f" 840 } 841 ] 842 } 844 Figure 15: Group example 846 2.6.6. RELATED 848 All the RELATED elements are globally converted into the "relatedTo" 849 map (Figure 16): an entry for each entity the entity described by the 850 JSCard is associated with. The map keys are the "uid" values of the 851 associated cards. 853 Each map value is a "Relation" object including only the "relation" 854 member represented as a set of relation types described in section 855 6.6.6 of [RFC6350]. 857 If the relation type is unspecified, the "relation" is empty. 859 BEGIN:VCARD 860 VERSION:4.0 861 ... 862 RELATED;TYPE=friend:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 863 RELATED;TYPE=contact:http://example.com/directory/jdoe.vcf 864 RELATED;VALUE=text:Please contact my assistant Jane Doe for any inquiries. 865 ... 866 END:VCARD 868 { 869 ... 870 "relatedTo":{ 871 { 872 "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6": 873 { 874 "relation": { 875 "friend": true 876 } 877 } 878 }, 879 { 880 "http://example.com/directory/jdoe.vcf": 881 { 882 "relation": { 883 "contact": true 884 } 885 } 886 }, 887 { 888 "Please contact my assistant Jane Doe for any inquiries.": 889 { 890 "relation": { } 891 } 892 } 893 } 894 ... 895 } 897 Figure 16: RELATED mapping example 899 2.6.7. CONTACT-URI 901 A CONTACT-URI element defined by [RFC8605] is represented as a 902 "Resource" object of the "online" array (Figure 17) whose "type" 903 member is set to "uri" and "labels" map contains the entry <"contact- 904 uri",true>. 906 The PREF parameter is mapped onto the "isPreferred" member. 908 BEGIN:VCARD 909 VERSION:4.0 910 ... 911 CONTACT-URI;PREF=1:mailto:contact@example.com 912 ... 913 END:VCARD 915 { 916 ... 917 "online":[ 918 ... 919 { 920 "type": "uri", 921 "labels": { "contact-uri": true }, 922 "value": "mailto:contact@example.com", 923 "isPreferred": true 924 }, 925 ... 926 ], 927 ... 928 } 930 Figure 17: CONTACT-URI mapping example 932 2.7. Personal Information Properties 934 2.7.1. EXPERTISE 936 An EXPERTISE element defined by [RFC6715] is represented as a 937 "PersonalInformation" object in the "personalInfo" array (Figure 18). 938 The "type" member is set to "expertise". 940 The LEVEL parameter is mapped onto the "level" member with following 941 mapping: 943 o "beginner" is converted into "low"; 944 o "average" is converted into "medium"; 945 o "expert" is converted into "high". 947 The INDEX parameter is represented as the index of the expertise 948 among the declared expertises. 950 BEGIN:VCARD 951 VERSION:4.0 952 ... 953 EXPERTISE;LEVEL=beginner;INDEX=2:chinese literature 954 EXPERTISE;INDEX=1;LEVEL=expert:chemistry 955 ... 956 END:VCARD 958 { 959 ... 960 "personalInfo":[ 961 ... 962 { 963 "type": "expertise", 964 "value": "chemistry", 965 "level": "high" 966 }, 967 { 968 "type": "expertise", 969 "value": "chinese literature", 970 "level": "low" 971 } 972 ... 973 ] 974 ... 975 } 977 Figure 18: EXPERTISE mapping example 979 2.7.2. HOBBY 981 An HOBBY element defined by [RFC6715] is represented as a 982 "PersonalInformation" object in the "personalInfo" array (Figure 19). 983 The "type" member is set to "hobby". 985 The LEVEL parameter is mapped onto the "level" member with a direct 986 mapping. 988 The INDEX parameter is represented as the index of the hobby among 989 the declared hobbies. 991 BEGIN:VCARD 992 VERSION:4.0 993 ... 994 HOBBY;INDEX=1;LEVEL=high:reading 995 HOBBY;INDEX=2;LEVEL=high:sewing 996 ... 997 END:VCARD 999 { 1000 ... 1001 "personalInfo":[ 1002 ... 1003 { 1004 "type": "hobby", 1005 "value": "reading", 1006 "level": "high" 1007 }, 1008 { 1009 "type": "hobby", 1010 "value": "sewing", 1011 "level": "high" 1012 } 1013 ... 1014 ] 1015 ... 1016 } 1018 Figure 19: HOBBY mapping example 1020 2.7.3. INTEREST 1022 An INTEREST element defined by [RFC6715] is represented as a 1023 "PersonalInformation" object in the "personalInfo" array (Figure 20). 1024 The "type" member is set to "interest". 1026 The LEVEL parameter is mapped onto the "level" member with a direct 1027 mapping. 1029 The INDEX parameter is represented as the index of the interest among 1030 the declared interests. 1032 BEGIN:VCARD 1033 VERSION:4.0 1034 ... 1035 INTEREST;INDEX=1;LEVEL=medium:r&b music 1036 INTEREST;INDEX=2;LEVEL=high:rock 'n' roll music 1037 ... 1038 END:VCARD 1040 { 1041 ... 1042 "personalInfo":[ 1043 ... 1044 { 1045 "type": "interest", 1046 "value": "r&b music", 1047 "level": "medium" 1048 }, 1049 { 1050 "type": "interest", 1051 "value": "rock 'n' roll music", 1052 "level": "high" 1053 } 1054 ... 1055 ] 1056 ... 1057 } 1059 Figure 20: INTEREST mapping example 1061 2.7.4. ORG-DIRECTORY 1063 An ORG-DIRECTORY element is represented as a "Resource" object in the 1064 "online" array (Figure 21) whose "type" member is set to "uri" and 1065 "labels" map contains the entry <"org-directory",true>. 1067 The PREF parameter is mapped onto the "isPreferred" member. 1069 The INDEX parameter is represented as the index of the directory 1070 among the online resources with the "org-directory" key in the 1071 "labels" map. 1073 BEGIN:VCARD 1074 VERSION:4.0 1075 ... 1076 ORG-DIRECTORY;INDEX=1:http://directory.mycompany.example.com 1077 ORG-DIRECTORY;PREF=1:ldap://ldap.tech.example/o=Example%20Tech,ou=Engineering 1078 ... 1079 END:VCARD 1081 { 1082 ... 1083 "online":[ 1084 ... 1085 { 1086 "type": "uri", 1087 "labels": { "org-directory": true }, 1088 "value": "http://directory.mycompany.example.com" 1089 }, 1090 { 1091 "type": "uri", 1092 "labels": { "org-directory": true }, 1093 "value": "ldap://ldap.tech.example/o=Example%20Tech,ou=Engineering", 1094 "isPreferred": true 1095 }, 1096 ... 1097 ], 1098 ... 1099 } 1101 Figure 21: ORG-DIRECTORY mapping example 1103 2.8. Explanatory Properties 1105 2.8.1. CATEGORIES 1107 A CATEGORIES element is converted into an object in the "categories" 1108 array (Figure 22). 1110 BEGIN:VCARD 1111 VERSION:4.0 1112 ... 1113 CATEGORIES:INTERNET,IETF,INDUSTRY,INFORMATION TECHNOLOGY 1114 ... 1115 END:VCARD 1117 { 1118 ... 1119 "categories":[ 1120 "INTERNET", 1121 "IETF", 1122 "INDUSTRY", 1123 "INFORMATION TECHNOLOGY" 1124 ] 1125 ... 1126 } 1128 Figure 22: CATEGORIES mapping example 1130 2.8.2. NOTE 1132 A NOTE element is mapped onto a "LocalizedString" object included in 1133 the "notes" array (Figure 23). 1135 The ALTID parameter is used for associating the language-dependent 1136 alternatives with a given element. 1138 The LANGUAGE parameter values are represented as corresponding 1139 entries of the "localizations" map. 1141 BEGIN:VCARD 1142 VERSION:4.0 1143 ... 1144 NOTE:This fax number is operational 0800 to 1715 EST\, Mon-Fri. 1145 ... 1146 END:VCARD 1148 { 1149 ... 1150 "notes":[ 1151 { 1152 "value": "This fax number is operational 0800 to 1715 EST, Mon-Fri." 1153 } 1154 ] 1155 ... 1156 } 1158 Figure 23: NOTE mapping example 1160 2.8.3. PRODID 1162 The PRODID element is converted into the "prodId" member (Figure 24). 1164 BEGIN:VCARD 1165 VERSION:4.0 1166 ... 1167 PRODID:-//ONLINE DIRECTORY//NONSGML Version 1//EN 1168 ... 1169 END:VCARD 1171 { 1172 ... 1173 "prodId": "-//ONLINE DIRECTORY//NONSGML Version 1//EN" 1174 ... 1175 } 1177 Figure 24: PRODID mapping example 1179 2.8.4. REV 1181 The REV element is transformed into the "updated" member (Figure 25). 1183 BEGIN:VCARD 1184 VERSION:4.0 1185 ... 1186 REV:19951031T222710Z 1187 ... 1188 END:VCARD 1190 { 1191 ... 1192 "updated": "19951031T222710Z" 1193 ... 1194 } 1196 Figure 25: REV mapping example 1198 2.8.5. SOUND 1200 A SOUND element is represented as a "Resource" object in the "online" 1201 array (Figure 26) whose "type" member is set to "uri" and "labels" 1202 map contains the entry <"sound",true>. 1204 The PREF and MEDIATYPE parameters are mapped onto the "isPreferred" 1205 and "mediaType" members respectively. 1207 BEGIN:VCARD 1208 VERSION:4.0 1209 ... 1210 SOUND:CID:JOHNQPUBLIC.part8.19960229T080000.xyzMail@example.com 1211 ... 1212 END:VCARD 1214 { 1215 ... 1216 "online":[ 1217 ... 1218 { 1219 "type": "uri", 1220 "labels": { "sound": true }, 1221 "value": "CID:JOHNQPUBLIC.part8.19960229T080000.xyzMail@example.com" 1222 }, 1223 ... 1224 ], 1225 ... 1226 } 1228 Figure 26: SOUND mapping example 1230 2.8.6. UID 1232 The UID element corresponds to the "uid" member (Figure 27). 1234 BEGIN:VCARD 1235 VERSION:4.0 1236 ... 1237 UID:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 1238 ... 1239 END:VCARD 1241 { 1242 ... 1243 "uid": "urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6" 1244 ... 1245 } 1247 Figure 27: UID mapping example 1249 2.8.7. CLIENTPIDMAP and PID Parameter 1251 TBD 1253 2.8.8. URL 1255 An URL element is represented as a "Resource" object in the "online" 1256 array (Figure 28) whose "type" member is set to "uri" and "labels" 1257 map contains the entry <"url",true>. 1259 The PREF and MEDIATYPE parameters are mapped onto the "isPreferred" 1260 and "mediaType" members respectively. 1262 BEGIN:VCARD 1263 VERSION:4.0 1264 ... 1265 URL:http://example.org/restaurant.french/~chezchic.html 1266 ... 1267 END:VCARD 1269 { 1270 ... 1271 "online":[ 1272 ... 1273 { 1274 "type": "uri", 1275 "labels": { "url": true }, 1276 "value": "http://example.org/restaurant.french/~chezchic.html" 1277 }, 1278 ... 1279 ], 1280 ... 1281 } 1283 Figure 28: URL mapping example 1285 2.8.9. VERSION 1287 The VERSION property doesn't have a direct match with a JSCard 1288 feature. 1290 2.9. Security Properties 1292 2.9.1. KEY 1294 A KEY element is represented as a "Resource" object in the "online" 1295 array (Figure 29) whose "type" member is set to "uri" and "labels" 1296 map contains the entry <"key",true>. 1298 The PREF and MEDIATYPE parameters are mapped onto the "isPreferred" 1299 and "mediaType" members respectively. 1301 BEGIN:VCARD 1302 VERSION:4.0 1303 ... 1304 KEY:http://www.example.com/keys/jdoe.cer 1305 ... 1306 END:VCARD 1308 { 1309 ... 1310 "online":[ 1311 ... 1312 { 1313 "type": "uri", 1314 "labels": { "key": true }, 1315 "value": "http://www.example.com/keys/jdoe.cer" 1316 }, 1317 ... 1318 ], 1319 ... 1320 } 1322 Figure 29: KEY mapping example 1324 2.10. Calendar Properties 1326 2.10.1. FBURL 1328 A FBURL element is represented as a "Resource" object of the "online" 1329 array (Figure 30) whose "type" member is set to "uri" and "labels" 1330 map contains the entry <"fburl",true>. 1332 The PREF and MEDIATYPE parameters are mapped ontoy the "isPreferred" 1333 and "mediaType" members respectively. 1335 BEGIN:VCARD 1336 VERSION:4.0 1337 ... 1338 FBURL;PREF=1:http://www.example.com/busy/janedoe 1339 FBURL;MEDIATYPE=text/calendar:ftp://example.com/busy/project-a.ifb 1340 ... 1341 END:VCARD 1343 { 1344 ... 1345 "online":[ 1346 ... 1347 { 1348 "type": "uri", 1349 "labels": { "fburl": true }, 1350 "value": "http://www.example.com/busy/janedoe", 1351 "isPreferred": true 1352 }, 1353 { 1354 "type": "uri", 1355 "labels": { "fburl": true }, 1356 "value": "ftp://example.com/busy/project-a.ifb", 1357 "mediaType": "text/calendar" 1358 }, 1359 ... 1360 ], 1361 ... 1362 } 1364 Figure 30: FBURL mapping example 1366 2.10.2. CALADRURI 1368 A CALADRURI element is represented as a "Resource" object of the 1369 "online" array (Figure 31) whose "type" member is set to "uri" and 1370 "labels" map contains the entry <"caladruri",true>. 1372 The PREF and MEDIATYPE parameters are mapped onto the "isPreferred" 1373 and "mediaType" members respectively. 1375 BEGIN:VCARD 1376 VERSION:4.0 1377 ... 1378 CALADRURI;PREF=1:mailto:janedoe@example.com 1379 CALADRURI:http://example.com/calendar/jdoe 1380 ... 1381 END:VCARD 1383 { 1384 ... 1385 "online":[ 1386 ... 1387 { 1388 "type": "uri", 1389 "labels": { "caladruri": true }, 1390 "value": "mailto:janedoe@example.com", 1391 "isPreferred": true 1392 }, 1393 { 1394 "type": "uri", 1395 "labels": { "caladruri": true }, 1396 "value": "http://example.com/calendar/jdoe" 1397 }, 1398 ... 1399 ], 1400 ... 1401 } 1403 Figure 31: CALADRURI mapping example 1405 2.10.3. CALURI 1407 A CALURI element is represented as a "Resource" object of the 1408 "online" array (Figure 32) whose "type" member is set to "uri" and 1409 "labels" map contains the entry <"caluri",true>. 1411 The PREF and MEDIATYPE parameters are mapped onto the "isPreferred" 1412 and "mediaType" members respectively. 1414 BEGIN:VCARD 1415 VERSION:4.0 1416 ... 1417 CALURI;PREF=1:http://cal.example.com/calA 1418 CALURI;MEDIATYPE=text/calendar:ftp://ftp.example.com/calA.ics 1419 ... 1420 END:VCARD 1422 { 1423 ... 1424 "online":[ 1425 ... 1426 { 1427 "type": "uri", 1428 "labels": { "caluri": true }, 1429 "value": "http://cal.example.com/calA", 1430 "isPreferred": true 1431 }, 1432 { 1433 "type": "uri", 1434 "labels": { "caluri": true }, 1435 "value": "ftp://ftp.example.com/calA.ics", 1436 "mediaType": "text/calendar" 1437 }, 1438 ... 1439 ], 1440 ... 1441 } 1443 Figure 32: CALURI mapping example 1445 2.11. Additional Clarifications about Mapping 1447 2.11.1. Media type 1449 As described in section 5.7 of [RFC6350], the media type of a 1450 resource can be identified by its URI. For example, "image/gif" can 1451 be derived from the ".gif" extension of a GIF image URI. JSContact 1452 producers MAY provide the media type information even when it is not 1453 specified in the vCard. 1455 2.11.2. Timezone 1457 As specified in section 6.5.1 of [RFC6350], the time zone information 1458 can be represented in three ways: as a time zone name, as an UTC 1459 offset or as an URI. 1461 o The time zone name is directly matched by the "timeZone" member in 1462 JSContact. 1464 o An UTC offset MUST be converted into the related "Etc/GMT" time 1465 zone (e.g. the value "-0500" converts to "Etc/GMT+5"). If the UTC 1466 offset value contains minutes information, it MUST be mapped to 1467 map it to the zone "Etc/GMT:". 1469 o Since there is no URI scheme defined for time zones [uri-schemes], 1470 any implementation that does use some a custom URI for a time zone 1471 is not interoperable anyway. In this case, if the URI corresponds 1472 to an a IANA time zone [time-zones], this latter SHOULD be used. 1473 Otherwise, the URI value is dumped into a string. 1475 2.12. Extended Properties 1477 If an extended property is a resource, JSCard already allows to 1478 represent it by setting the "type" member to "other" and specifying a 1479 value for the "labels" map. 1481 Any other property supporting a custom feature MAY be added and its 1482 name MUST be prefixed with a specific domain name to avoid conflict, 1483 e.g. "example.com/customprop". 1485 2.13. vCard Unmatched Properties 1487 Any vCard property that doesn't have a direct counterpart in 1488 JSContact is treated as an extended property whose name is prefixed 1489 by "ietf.org/rfc6350/". 1491 The resulting name MUST be in lowercase. 1493 2.14. JSCard Required Properties 1495 While converting a vCard into a JSCard, only the topmost "uid" member 1496 is required. 1498 2.15. JSCard Unmatched Properties 1500 The "preferredContactMethod" member doesn't match any vCard element. 1502 3. IANA Considerations 1504 This document has no actions for IANA. 1506 4. Implementation Status 1508 NOTE: Please remove this section and the reference to RFC 7942 prior 1509 to publication as an RFC. 1511 This section records the status of known implementations of the 1512 protocol defined by this specification at the time of posting of this 1513 Internet-Draft, and is based on a proposal described in [RFC7942]. 1514 The description of implementations in this section is intended to 1515 assist the IETF in its decision processes in progressing drafts to 1516 RFCs. Please note that the listing of any individual implementation 1517 here does not imply endorsement by the IETF. Furthermore, no effort 1518 has been spent to verify the information presented here that was 1519 supplied by IETF contributors. This is not intended as, and must not 1520 be construed to be, a catalog of available implementations or their 1521 features. Readers are advised to note that other implementations may 1522 exist. 1524 According to RFC 7942, "this will allow reviewers and working groups 1525 to assign due consideration to documents that have the benefit of 1526 running code, which may serve as evidence of valuable experimentation 1527 and feedback that have made the implemented protocols more mature. 1528 It is up to the individual working groups to use this information as 1529 they see fit". 1531 4.1. CNR 1533 Responsible Organization: National Research Council (CNR) of Italy 1534 Location: https://github.com/consiglionazionaledellericerche/ 1535 jscontact-tools 1536 Description: This implementation includes tools for JSContact 1537 creation, validation, serialization/deserialization and conversion 1538 from vCard, xCard and jCard. 1539 Level of Maturity: This is an "alpha" test implementation. 1540 Coverage: This implementation includes all of the features 1541 described in this specification. 1542 Contact Information: Mario Loffredo, mario.loffredo@iit.cnr.it 1544 5. Security Considerations 1546 This document doesn't present any security consideration. 1548 6. References 1549 6.1. Normative References 1551 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1552 Requirement Levels", BCP 14, RFC 2119, 1553 DOI 10.17487/RFC2119, March 1997, 1554 . 1556 [RFC6350] Perreault, S., "vCard Format Specification", RFC 6350, 1557 DOI 10.17487/RFC6350, August 2011, 1558 . 1560 [RFC6473] Saint-Andre, P., "vCard KIND:application", RFC 6473, 1561 DOI 10.17487/RFC6473, December 2011, 1562 . 1564 [RFC6474] Li, K. and B. Leiba, "vCard Format Extensions: Place of 1565 Birth, Place and Date of Death", RFC 6474, 1566 DOI 10.17487/RFC6474, December 2011, 1567 . 1569 [RFC6715] Cauchie, D., Leiba, B., and K. Li, "vCard Format 1570 Extensions: Representing vCard Extensions Defined by the 1571 Open Mobile Alliance (OMA) Converged Address Book (CAB) 1572 Group", RFC 6715, DOI 10.17487/RFC6715, August 2012, 1573 . 1575 [RFC6869] Salgueiro, G., Clarke, J., and P. Saint-Andre, "vCard 1576 KIND:device", RFC 6869, DOI 10.17487/RFC6869, February 1577 2013, . 1579 [RFC7095] Kewisch, P., "jCard: The JSON Format for vCard", RFC 7095, 1580 DOI 10.17487/RFC7095, January 2014, 1581 . 1583 [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running 1584 Code: The Implementation Status Section", BCP 205, 1585 RFC 7942, DOI 10.17487/RFC7942, July 2016, 1586 . 1588 [RFC8605] Hollenbeck, S. and R. Carney, "vCard Format Extensions: 1589 ICANN Extensions for the Registration Data Access Protocol 1590 (RDAP)", RFC 8605, DOI 10.17487/RFC8605, May 2019, 1591 . 1593 6.2. Informative References 1595 [draft-ietf-jmap-jscontact] 1596 "JSContact: A JSON representation of contact data", 1597 . 1600 [time-zones] 1601 "Time Zone Database", . 1603 [uri-schemes] 1604 "Uniform Resource Identifier (URI) Schemes", 1605 . 1608 Authors' Addresses 1610 Mario Loffredo 1611 IIT-CNR/Registro.it 1612 Via Moruzzi,1 1613 Pisa 56124 1614 IT 1616 Email: mario.loffredo@iit.cnr.it 1617 URI: http://www.iit.cnr.it 1619 Robert Stepanek 1620 FastMail 1621 PO Box 234, Collins St West 1622 Melbourne VIC 8007 1623 AU 1625 Email: rsto@fastmailteam.com 1626 URI: https://www.fastmail.com