Search code examples
webdavvcf-vcardcarddav

Invisible contacts in CardDAV


Question

How can I access all contacts on a CommuniGate Pro Server?

Context

I need to migrate contacts from 70 email accounts stored on a Communigate Pro server. Since CommuniGate supports CardDAV, I decided to use this protocol rather than exporting the contacts manually from their web client, Pronto.

I have managed to access the CardDAV folders and to extract the vCards contained there. However, the problem is that not all of the contacts show up in CardDAV; in particular, the web client contains subgroups of contacts that are invisible in CardDAV.

When I export these subgroups from the web client, they are outputted as a txt file in a proprietary format called vCardGroup. Even though I wrote a PHP script to convert vCardGroup to vCard, using this method is still very slow.

I will be grateful if you suggest a way to extract these contact subgroups programmatically. I understand that CardDAV does not support subgroups, so I guess that the big question is: where are these txt files stored?

As a reference, please find here the result of a PROPFIND request on the root of the CardDAV folder. Note that CommuniGate seems to implement CardDAV via http://calendarserver.org.

Thank you for your attention!


Solution

  • After contacting the Communigate Pro (CGP) support team, I am able to answer my own question:

    The only way to extract contacts programmatically from a Communigate Pro server is having root access to the server and use a protocol like XIMSS.

    They also told me that CGP's support of CardDAV is limited, and does not include subgroups.

    Since the server administrator is an evil man, I will have to extract the contacts manually using the web client, Pronto.

    Just in case some poor soul is in my same situation, I provide a link to my script to convert the proprietary vGroupCard format (ie. BEGIN:VGROUP) to the standard vCard format (ie. BEGIN:VCARD).