Open spoorun opened 4 years ago
I think this is the same issue, or at least related to #800, reported back in 2018 and still open.
As reported before, NC Contacts is exporting invalid IMPP properties, but it should be noted it also can't import correctly formatted properties. E.g.:
BEGIN:VCARD
VERSION:4.0
FN:Alice
IMPP:xmpp:alice@example.com
N:Alice;;;;
END:VCARD
is displayed as
When a different IM handle is added on NC Contacts, the following happens:
BEGIN:VCARD
VERSION:3.0
PRODID:-//Sabre//Sabre VObject 4.1.6//EN
FN:Alice
IMPP:xmpp:alice@example.com
IMPP;TYPE=SKYPE:alice2020
N:Alice;;;;
UID:f1252f1b-001e-427d-a8f1-752b048bae36
REV;VALUE=DATE-AND-OR-TIME:20200312T164452Z
END:VCARD
An invalid property is added, which is displayed correctly on NC Contacts but is not likely to be understood by other clients, making vCards created or edited in NC Contacts incompatible with other clients.
ISSUE
Nextcloud creates/syncs/exports the following (vCard 4) for IMPP instant messaging fields:
E.g. Contact with a Skype IM address of https://skype.com/sfe
GROUP3.IMPP;TYPE=x-skype:https://skype.com/sfe GROUP3.X-ABLABEL:Skype
CAUSE
Nextcloud is applying the vCard 3 (extension) standards, and not the correct vCard 4 standard.
vCard 3 that Nextcloud is using for vCard 4 also: https://tools.ietf.org/html/rfc4770 RFC example: IMPP;TYPE=personal,pref:im:alice@example.com
vCard 4 that Nextcloud should be using for vCard 4 versions: https://tools.ietf.org/html/rfc6350#page-37 IMPP;PREF=1:xmpp:alice@example.com
RESULT
This does not accord with the RFC spec, and thus is incorrectly translated by other systems (such as Android via DavX) and appears wrongly: in this case: Label: https Value: //skype.com/sfe
DavX/Android correctly create the following value of the same field: IMPP:Skype:https://skype.com/sfe
RFC ( https://tools.ietf.org/html/rfc6350#page-36 ) Specifies the following example: IMPP;PREF=1:xmpp:alice@example.com
Note that 1) PREF is optional 2) TYPE is not provided for this property 3) A URI can be provided, but note that most modern systems recognise common IMPP parameters (Facebook (messenger), Instagram, Twitter, Skype) with just the username.
RESOLUTION
Read and write the correct vCard 4 specs for IM fields as above.