This forum has been archived. All content is frozen. Please use KDE Discuss instead.

[Kontact] Invalid IM references? (X-messaging/icq-All etc.)

Tags: None
(comma "," separated)
SvenWehner
Registered Member
Posts
3
Karma
0
OS
Hi,
I ran into a seemingly small problem which I'm not really sure how to handle:
I have a quite old Kontact addressbook (since at least 4.4, but updated) that includes people which have ICQ and/or Jabber accounts entered. The contacts seem to be overall valid, and are shown correctly in Kontact (including their ICQ/Jabber accounts).
Now I tried to export all my contacts to the owncloud akonadi agent (owncloud version 4.0.0) (via Kontact → Drag and Drop → Copy), but received a lot of "Invalid VObject, line 14 did not follow the icalendar/vcard format" errors, which made the contacts (silently!) be dropped/ignored.
When I exported one of the missing/non-exported contacts to a file and checked line 14, it was:
"X-messaging/icq-All:…"
The error in OwnCloud comes from "3rdparty/Sabre/VObject/Reader.php" around line 110:
Code: Select all
// Properties
[...]
$token = '[A-Z0-9-\.]+';
$parameters = "(?:;(?P<parameters>([^:^\"]|\"([^\"]*)\")*))?";
$regex = "/^(?P<name>$token)$parameters:(?P<value>.*)$/i";
$result = preg_match($regex,$line,$matches);
if (!$result) {
  throw new Sabre_VObject_ParseException('Invalid VObject, line ' . ($lineNr+1) . ' did not follow the icalendar/vcard format');
}

As you can see the regular expression matches against alpha-numerical charaters, hyphens and dots. Thus, the slash in "X-messaging/icq-All" is invalid.
(I think that I once hacked this regexp in an older version to accept slashes…)

I guess I'm not the first person to try to export his kontact addressbook which includes IM references, am I?
So, I guessed this would an error in my data and not owncloud's error.

Playing around with Kontact (removing old reference, adding a new one) didn't help. It just added a "X-KADDRESSBOOK-X-IMAddress:…" line, but kept the old "X-messaging/icq-All:…". And therefore, didn't fix the problem.

Then I thought about manually editing the source file of the information and remove the "bad" line.
But my "~/.local/share/contacts/" folder has a file called "WARNING_README.txt" that advise against playing around. But the file mentions akonadi.
So next attempt: akonadiconsole → Browser → "Personal Contacts" → select item via remote id → Raw Payload → edit → realize that the save button is disabled.

Checking "http://en.wikipedia.org/wiki/VCard" → vCard extensions → see "X-ICQ"…
Next attempt: akonadi's SQL database → PartTable → update/edit "data" field (replacing "X-messaging/icq-All" with "X-ICQ") → check kontact → IM reference gone → re-adding reference → checking result:
Code: Select all
X-ICQ-ICQ:…
X-KADDRESSBOOK-X-IMAddress:…
X-messaging/icq-All:…

Still invalid and double redundant.
(And yes, Akonadi changes "X-ICQ" to "X-ICQ-ICQ".)

Again SQL: Replacing "X-ICQ-ICQ" with "X-ICQ" and removing "X-messaging/icq-All" line → checking akonadi → again "X-ICQ-ICQ", but no "X-messaging/icq-All" → starting kontact → contact seems to have a reference, but only the ICQ number is displayed, the "Edit Instant Messaging Addresses" dialog is empty → adding the ICQ reference again → check akonadi: same three lines like before.

So I tried to debug: created a new contact "Test McTestson", added an ICQ reference → tried to copy to owncloud → same problem again:
Code: Select all
BEGIN:VCARD
FN:Test McTestson
N:McTestson;Test;;;
UID:klniTgp4Sp
VERSION:3.0
X-KADDRESSBOOK-X-IMAddress:1234567890
X-messaging/icq-All:1234567890
END:VCARD



And now I'm really wondering what's going on. Is it the old data? Is kontact broken? Is owncloud broken? Do I just have to apply an arbitrary sequence of export, delete, restart, import etc.?
(And where is the ICQ stuff in the source code? I couldn't find it…)

KDE version is 4.8.3 (4.8.4 is out, but the "fixed bugs list" doesn't mention anything similar).
akonadi-server version is 1.7.2.
Owncloud version is 4.0.0.
Distribution is Gentoo (regular updated, mostly stable amd64).

Sincerly Yours,
Sven
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
In this case, it may be worth stopping Akonadi (close Kontact, then run 'akonadictl stop') then simply edit the file on disk.
Afterward, start Akonadi again (akonadictl start) and open Kontact.

My guess is that X-messaging/icq-All is an old, now unused field which Kontact supports reading of only for migration purposes. Manual removal is needed in this case.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
SvenWehner
Registered Member
Posts
3
Karma
0
OS
Hi bcooksley,
thanks for your response!

But there is something not correct:
bcooksley wrote:My guess is that X-messaging/icq-All is an old, now unused field which Kontact supports reading of only for migration purposes. Manual removal is needed in this case.

Actually, even if you create a new contact, let's call him "Mr. Test", and give him an IM address via the "Messaging" menu. Let's say his "ICQ" number is "123". Then try to export him via "File" → "Export" → "Export via vCard 3.0…", then open the exported vcf file with a text editor. You'll see something like this:
BEGIN:VCARD
FN:Test
N:Test;;;;
UID:gq7bJA09sj
VERSION:3.0
X-messaging/icq-All:123
END:VCARD

Exactly the same data is shown when using Akonadi Console. So it's not a read-only thing, but the currently used standard.

I just recently updated to KDE 4.8.4.


Yours,
Sven
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
I would recommend filing a bug against Owncloud - as if my reading of the specification is correct, then X-* keys are always permitted, and are assumed to be vendor-specific data which should be retained.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
SvenWehner
Registered Member
Posts
3
Karma
0
OS
bcooksley wrote:I would recommend filing a bug against Owncloud - as if my reading of the specification is correct, then X-* keys are always permitted, and are assumed to be vendor-specific data which should be retained.

Just for the record: As you suggested, I filed a bug against OwnCloud which was declined and re-routed to a new KDE bug.


Bookmarks



Who is online

Registered users: Baidu [Spider], Bing [Bot], Google [Bot]