I noticed, that Thunderbird is not syncing photos from Kolab-Server.
rpm -qv pykolab
pykolab-0.8.0-4.2.el7.kolab_16.noarch
Thunderbird / Sogo-Connector needs the optional TYPE-Field to accept the photo. The current code does this for v4 only, but v3 does need it too. So I suggest the following change:
@@ -821,10 +821,8 @@ class ContactsBackend extends CardDAV\Backend\AbstractBackend if (!empty($contact['photo'])) { $vc->PHOTO = $contact['photo']; - $vc->PHOTO['ENCODING'] = 'B'; - if ($v4) { - $vc->PHOTO['TYPE'] = strtoupper(substr(rcube_mime::image_content_type($contact['photo']), 6)); - } + $vc->PHOTO['ENCODING'] = 'b'; + $vc->PHOTO['TYPE'] = strtoupper(substr(rcube_mime::image_content_type($contact['photo']), 6)); } // add custom properties
The lower case b in the encoding is according RFC 2426 Section 3.1.4.
I tried to implement the v4 format also, but this seams to trigger bigger changes in Sabre to support prepending string 'base64' in the Serialising, if (and only if) it is a version 4 vcard.