We have moved to a new Sailfish OS Forum. Please start new discussions there.
6

CardDAV sync with radicale

asked 2014-12-21 20:43:34 +0300

mornfall gravatar image

So with update 10, I can create a CalDAV + CardDAV account, and the CalDAV portion works, I can sync things from my radicale server. The initial discovery goes OK as well, I am reproducing the server debug log below. However, even though an addressbook resource is advertised, Jolla doesn't pick it up and never mentions it in any further communication with the server. In other words, the CardDAV portion of the account is not even created and as such a sync is never attempted. The ag-tool output is at the end.

2014-12-21 18:08:56,025 - DEBUG: Request content:
<d:propfind xmlns:d="DAV:" xmlns:cs="http://calendarserver.org/ns/" xmlns:c="urn:ietf:params:xml:ns:caldav" xmlns:ca="http://apple.com/ns/ical/"><d:prop><d:resourcetype /><d:current-user-principal /><d:displayname /><cs:getctag /><ca:calendar-color /></d:prop></d:propfind>

2014-12-21 18:08:56,040 - DEBUG: Response content:

<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:CR="urn:ietf:params:xml:ns:carddav" xmlns:CS="http://calendarserver.org/ns/" xmlns:ICAL="http://apple.com/ns/ical/">

<response>
<href>/mornfall/main.ics/</href>
<propstat>
  <prop>
    <resourcetype>
      <C:calendar />
      <collection />
    </resourcetype>
    <current-user-principal>
      <href>/mornfall/</href>
    </current-user-principal>
    <displayname>main.ics</displayname>
    <CS:getctag>"408012581"</CS:getctag>
  </prop>
  <status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
  <prop>
    <ICAL:calendar-color />
  </prop>
  <status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>

<response>
<href>/mornfall/contacts.vcf/</href>
<propstat>
  <prop>
    <resourcetype>
      <CR:addressbook />
      <collection />
    </resourcetype>
    <current-user-principal>
      <href>/mornfall/</href>
    </current-user-principal>
    <displayname>contacts.vcf</displayname>
    <CS:getctag>"-1269130180"</CS:getctag>
  </prop>
  <status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
  <prop>
    <ICAL:calendar-color />
  </prop>
  <status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>

<response>
<href>/mornfall/konzerva.ics/</href>
<propstat>
  <prop>
    <resourcetype>
      <C:calendar />
      <collection />
    </resourcetype>
    <current-user-principal>
      <href>/mornfall/</href>
    </current-user-principal>
    <displayname>konzerva.ics</displayname>
    <CS:getctag>"1020629537"</CS:getctag>
  </prop>
  <status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
  <prop>
    <ICAL:calendar-color />
  </prop>
  <status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>

<response>
<href>/mornfall/</href>
<propstat>
  <prop>
    <resourcetype>
      <principal />
      <collection />
    </resourcetype>
    <current-user-principal>
      <href>/mornfall/</href>
    </current-user-principal>
    <displayname>mornfall</displayname>
    <CS:getctag>"0"</CS:getctag>
  </prop>
  <status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
  <prop>
    <ICAL:calendar-color />
  </prop>
  <status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>

</multistatus>

And ag-tool says this:

[nemo@jolla ~]$ ag-tool list-settings 33
default_credentials_username = mornfall
profile_id = caldav-sync-33
Jolla/segregated_credentials/Jolla = 34
CredentialsId = 34
CredentialsNeedUpdate = false
enabled = true
name = mornfall
        onlinesync-caldav
CredentialsId = 34
calendar_colors = ["#ffffff", "#ffffff"]
server_address = https://ash.fixp.eu:24
enabled_calendars = ["/mornfall/konzerva.ics/", "/mornfall/main.ics/"]
caldav-sync/profile_id = caldav-sync-33
auth/method = password
calendars = ["/mornfall/konzerva.ics/", "/mornfall/main.ics/"]
calendar_display_names = ["konzerva.ics", "main.ics"]
enabled = true
auth/mechanism = password
sync_profile_templates = ["caldav-sync"]
        onlinesync-carddav
auth/method = password
server_address = https://ash.fixp.eu:24
auth/mechanism = password
CredentialsId = 34
enabled = true
sync_profile_templates = []
edit retag flag offensive close delete

Comments

Today I installed 1.1.7.28 Björntrösket, and now Radicale contact sync seems to work. Could someone confirm?

soulsource ( 2015-09-01 17:21:02 +0300 )edit

1 Answer

Sort by » oldest newest most voted
2

answered 2014-12-21 21:09:06 +0300

updated 2014-12-21 21:18:45 +0300

I have analyzed the same combination: Jolla with Radicale. Like you I got the CalDAV to work.

The problem with the CardDAV is that the Jolla sync tries to figure out the exact URL based on the hostname by itself instead of taking a full and absolute path.

The problem is the same as what other people are experiencing with OwnCloud: https://together.jolla.com/question/60493/new-carddavcaldav-support-got-to-it-working-with-owncloud/

There is a current 'hack' that rewrites the URL's that Jolla tries serverside. But a better solution would be that we can specify the path for the CardDAV part in the Jolla Account Settings (just like CalDAV has a path setting).

Unfortunately the current Sailfish OS version does not have that setting, and manipulating the settings files from the command line does not seem to work.

Update:I haven't tried it myself, but perhaps you can use this workaround in the meantime: https://wied.it/blog/caldav-and-carddav-sync-with-jolla-phone-syncevolution-and-zimbra-zcs-owncloud-and-ssl.html

edit flag offensive delete publish link more

Comments

The workaround you linked to (SyncEvolution) does work well with Radicale. The only issue is that I've found auto-sync not to be reliable. I guess the SyncEvolution app has to be running for it to work... By the way: CardDAV is partially working now with Sailfish 1.1.6.27. I'm now able to add an account, and it synchronizes some of my contacts, but by far not all of them.

soulsource ( 2015-08-24 11:30:11 +0300 )edit
Login/Signup to Answer

Question tools

Follow
4 followers

Stats

Asked: 2014-12-21 20:43:34 +0300

Seen: 1,550 times

Last updated: Dec 21 '14