Today I wanted to synchronise my data across my laptop (Ubuntu Hardy) and my mobile phone (Nokia E61, Symbian S60). I decided to reduce my expectations from the start and went for the easy kill: a one-way, one time import of only my contacts, forgetting about notes, calendars and what not. After some investigation involving gnokii, Gammu and friends I stumbled upon that marvellous framework called OpenSync. It's been developed for more than 3 years and displays a huge list of supported devices, protocols and software. It is currently undergoing an important rework towards version 0.4 but today it is recommended to use the latest stable release: version 0.22 from march 2007. I thought it was worth giving it a shot. Everything went well, installation and setup were reasonably straightforward following that post on Ubuntu Forums and I was impressed by GNOME's bluetooth support working out of the box. My hopes went very high when I noticed that Multisync, OpenSync's GTK frontend, was able to handle two ways synchronisation of all my data. Unfortunately, after a couple of hours of fiddling with the thing I went out of luck: the contacts weren't goin' in! I was able to have at best 5 or 6 contacts sent to the phone. Shame :/ Solving real life issues while having fun coding is so enjoyable that I decided to fire up a good old iPython shell and started to look around the different possibilities of interaction I had with the Nokia E61. I settled for the following 3-steps technique, simple and efficient:

1. Export contacts from Evolution into separate vCard files, one for each contact

Thanks to the excellent Evolution's Python bindings coming straight from the Conduit project fame it is as simple as that Evolution-to-vCards script.

2. Transfer all the vCards to the Nokia E61 over bluetooth

ObexFTP does the trick in a one-liner:

obexftp -b [PHONE MAC ADDRESS] -c E:/Others/Contacts -p [VCARD FILES]

3. Import the contacts from the files

Go in Contacts > Options > Copy > From memory card.

That's it!

All contacts were imported even the problematic ones. I still noticed some glitches in the final result such as encoding problems and missing avatars but well, that will do for now. Next time: OpenSync development version.