Blogilo January 15, 2011Posted by CK in Software.
add a comment
BTW, the previous post was the first one I wrote with Blogilo, and I like this tool quite a lot. Simple, and it just works.
Steve, I won January 15, 2011Posted by CK in Mobility, Productivity, Software.
Tags: Citadel, Funambol, Kontact, PIM, Synchronization
add a comment
After spending a considerable amount of time (yes, George, I know) looking at my options and trying various ways to synchronize desktop PIM data with my Nokia E71 phone, I eventually managed to make it work. It wasn’t piece of cake, and it requires running on my laptop some additional services, which I would not otherwise run. But it works. The main problem to deal with, is understanding your options. I tried many different setups with various combinations of Kontact / Evolution / Thunderbird+Lightning / Funambol / SOGo / OpenSync / SyncEvolution. Some of them appear to work for some people, but none worked for me in complete. Some that worked partially were
- Evolution + SyncEvolution + Funambol, but unfortunately Evolution was giving me so much pain re: my IMAP severs, that I just couldn’t stay with it;
- Thunderbird + SOGo connector + Funambol, but after creating TODOs and events I could not edit them anymore (this is a known bug, which remains unresolved).
Eventually, what worked for me was a combination of Kontact, Citadel, Groupware Sync server (customized Funambol release) and the Funambol SyncML client on the phone (although Nokia’s native client is used underneath and would apparently work directly if I tried it). This setup works almost out of the box (well that’s sort of a euphemism, admittedly); if you want to reproduce it, here’s how to do it:
First, install Citadel. This acts as a bridge between Kontact and Funambol, using GroupDAV on one side, and a Funambol connector on the other. Kontact is a full GroupDAV implementation, and so is Citadel. The alternative is eGroupware, but Citadel’s being fully open with no "upgraded" versions was the key factor to try it first. I never tried eGroupware eventually. The installation of Citadel (from source, as I could not find a Fedora package) was smooth and just happened. Configuration was, more or less, painless.
Then, I created a new KDE standard calendar resource from within System Settings, using GroupDAV and connecting to the local Citadel server. This bypasses akonadi, which has plenty of problems to solve, and is used immediately within Kontact (KOrganizer). Works like a charm. Following that, there was the biggest challenge: Going through akonadi for contacts. Unfortunately, KAddressbook cannot bypass akonadi; using a GroupDAV-based contact store must necessarily go through it. Until I managed to get it right, I had to fight with data store inconsistencies and delayed synchronization, disappearing contacts, and the like. Eventually it worked, when I created the new akonadi addressbook resource via KAddressbook and, before inserting any contacts, I set (via "Folder properties") an "Interval check time" of 2 min, "Local cache timeout" of 5 min. Apparently the exact values are semi-random and don’t play an important role, but it is (I guess) important to deactivate ""Inherit cache policy from parent". Based on the set up described above, contacts are always synchronized without problems, albeit with a delay of up to 5 minutes.
Having completed all that, it was time to install the Groupware Sync server, which was as easy as it gets. It knows where to find the local Citadel installation, and the built-in users are created automatically based on Citadel accounts. So not much more to do on this side either.
The last step was to install the Funambol SyncML client on the phone, and set it up. After some trial-and-error, I got it working. One of the things I had to do was to change the Funambol server’s port from 8080 to 80. As I am not running any other services on that port, it’s ok for me. I guess that eventually it would also work with 8080, if I would commit some more time to figure out the correct settings on the phone.
To make sure there’s a clean start, I removed all contacts and calendar entries from the phone — they were outdated anyway. The Funambol client has an option to do that very easily. Then I chose to synchronize everything, and, voila! My Kontact addressbook and calendar entries made it on the phone.
While using it I found out that addressbook entries are not synchronized when the default phone of the contact is a cell phone number (apparently a bug, it’s ok if it’s declared as a land line), and also that contact photos are not sync’ed (who cares). Perhaps these would be ok with eGroupware, but I’m not interested to change only because of that. Citadel’s appalling web interface? Yes, that could make me switch.
The result is much more important for me than simply synchronizing my PIM data. It means that, to a large extent, I am now safe from lock-in. I am running my PIM using an open integrated solution (Kontact) on an open desktop (KDE) and an open platform (Linux), so I’m safe enough on this side. Citadel is GPL as well, and Funambol is also open source (not sure about the exact license). All are running on my own infrastructure, and the data remains with me. On the phone side, I can use anything with a SyncML client available — and apparently, there’s one for most of the interesting phones/platforms out there. So I could simply switch to a different phone & OS, without caring too much about PIM synchronization. Which is, honestly, a blessing.
I’d love to hear if this article solved similar problems for you, so just leave a comment if you find it useful!