Using Funambol to sync Thunderbird(s) and Windows Mobile phone

This is an article explaining how to synchronise one calendar (+tasks) and one address book of two PCs with Thunderbird (Lightning plugin for calendar) and a Windows Mobile phone. It is based on the open source synchronisation server Funambol and needs one of the computers to act as a server. The advantage to other solutions I tried (like FinchSync or the Addressbooks Synchroniser add-on) is that it covers all synchronisations even between different device types.

One disadvantage of my how-to is that the data which is synchronised is transmitted without encryption. However, it is possible to somehow use SSL encryption for the data transfer, but so far I am afraid of the effort to reconfigure all again now that it works. Another disadvantage concerns the fact that currently only one calendar and one address book can be synchronised. While this restriction does not bother me now, it might render this solution useless for you.

1. Setting up the server

The first part of this how-to is setting up the funambol server. First download the latest version of the installer, then follow the instructions of the setup process. After the installation, the server should have been started (visible by the tray icon). If not, start it manually using the links in the start menu. If you want the server to be started automatically when you launch the computer after each reboot, copy the link into the “Startup” folder of your start menu.

Then launch the Administration Tool, click onFile > Login and enter the user “admin” with the default password “sa”. The first thing to do is to change it: Select the $Hostname > Users in the tree on the left. Then click the Search button on the right side to display all users in the list below. Double-click on the entry of the user “admin” and enter a new password (two times). Save.

To make your server reachable from other machines it is necessary to setup the URI from which it will be reached. You need to setup a port forwarding on port 8080 from your router to the local IP address of your server computer. In the Administration tool, you then have to enter Server settings the string “http://%your_ip%:8080/funambol/ds” while replacing %your_ip% with your external IP address or a domain provided by a service like DynDNS.

One last addition has to be done before Thunderbird calendars can be synched: Under Modules > foundation > FunambolFoundationConnector > PIM Calendar SyncSource you have to add a new SyncSource. Double click the entry PIM Calendar SyncSource on the left, then enter “ical” for both the source URI and the name and select “iCalendar” as the default type. All settings are also shown in this image:

Funambol Administration Tool

Then click “Add” and check that your entry got also added to the tree on the left. Now your server should be ready for its first synchronisation. You can close the Administration Tool now.

2. Setting up a Thunderbird client

Funambol Mozilla Sync Client

Just download the Funambol Mozilla Sync Client Experimental Funambol Mozilla Sync Client for Thunderbird 8 and install it as an add-on from within Thunderbird. The add-on can be accessed in the menu Tools > Funambol sync. Open it and select Tools > Options from the menu:

In the Account pane, enter exactly the URI you entered in your server before. For the username and password you can choose one arbitrarily for the first client you setup. For each new client you want to synchronise with you have to use the same username and password, of course.

Fullscreen capture 07.10.2009 211243

In the pane Sync you have to select the address book and the calendar to be synchronised with the server and how often you want the synchronisation to be performed automatically. I chose 15 minutes and deactivated the synchronisation on startup. During setup (read: hunt for wrong settings) I stuck to manual synchronisation.

Close the configuration window and bravely click on Synch all. On the first synch, simply all your client’s data is transmitted to the server. On subsequent runs only changes will be transmitted.

On the second PC you just have to repeat the add-on installation, provide the same username and the synchronisation works.

3. Setting up the Windows Mobile client

Get the client *.cab file from the download page and transmit it to your phone. Execute it there to install it. The configuration is analogous to the Thunderbird client. I chose manual synchronisation for my mobile phone as I only run it when I have wireless LAN access. I only activated synchronisation of contacts, calendar and tasks — e-mail is taken care off by the IMAP servers.

Remarks

At first Thunderbird froze during each synchronisation. The cause for me was that I had used an *.cal-file for my private calendar. For the synchronisation to work I had to convert it to a calendar that is stored in Thunderbird’s profile folder (i.e. one with “moz-profile-calendar://?id=X” in the address field).

Update: there is one issue with my setup concerning the synchronisation between both Thunderbird clients: Reminders of events keep popping up on one client after having been confirmed on the other and vice versa. The problem is known to the developers and discussed in the developers’ board. As far as I understand the subject, a clean solution would require changes to the server itself which would take a long time to take effect. A “dirty fix” in the Thunderbird client could be possible, but so far no one with enough knowledge to do it wrote one. I keep you updated here if a fix is published.

Thunderbird 8 update: While the official source for the plugin has not released a new version in years, I found a working port for the latest version of Thunderbird on maurus.net.

Thunderbird 10 update (2012-02-26): the developer on maurus.net continues his support with experimental development builds for both Windows (32 bit) and Linux (32/64 bit) of the Thunderbird synchronisation client.