Funambol, the open source mobile device synchronization and push email provider, released version 7.0 of its server and client software in August. We took a look at what it offers, then took it for a test drive on mobile devices and the Linux desktop.
At the heart of Funambol's synchronization abilities is a SyncML server running on top of Apache Tomcat. The company provides source code to a community edition of this server, and sells a carrier edition to commercial clients that adds on functions like remote device configuration and management.
Armed with an account on a Funambol server, all you need to start synchronizing your data is a client for each phone, tablet, and desktop application that you want to use. The company develops clients for the most common mobile phone operating systems, and tracks community-developed apps for a wide swath of other clients, including less common mobile platforms, desktop productivity apps, server-driven collaboration suites, and even popular Web-based services.
New since the last release are support for iPhone, Yahoo!, and Gmail contacts, support for notes and to-do synchronization in more clients, and major improvements to the Java ME push email client. The new email client works on a wider selection of phones, can store more messages locally, can download and view attachments, and allows the user to choose either TCP/IP or SMS for new message notification.
The company has also rolled out my.funambol.com, a free, Web-based portal application that serves as both a mobile phone sync configuration tool and an online address book and calendar. The configuration tool walks you through phone selection, and for phones that support downloading software over the air (in other words, everything other than the iPhone), can send the download link directly to your handset.
The online address book and calendar are more useful in the long run, though. There are inevitably going to be sync conflicts that require human intervention to resolve, and a good Web interface at the sync server is invaluable. You can scan through your contacts far faster on a PC or laptop screen than on a mobile device, and editing and correcting is faster as a result.
The first time I tested Funambol, the only Web synchronization option was to use the third-party ScheduleWorld, and although it worked, its interface was slow, and navigation and data editing were inconvenient. Unless you have strict security requirements that dictate that you must run your own Funambol server, using the new my.funambol.com site is a much better choice.
Sync what you will
To put the new Funambol suite to the test, I piled a BlackBerry, a Symbian S60-powered Nokia phone, a Macbook Pro, and a Nokia N800 tablet onto the desk next to my desktop Linux machine, pulled up my old ScheduleWorld account info, and headed for the Funambol downloads page.
The Symbian phone is the easiest to sync, since it can use its built-in SyncML client to connect to the Funambol server. At the my.funambol.com portal, I selected the phone model, provided the number, at the server sent an SMS to the phone with the correct settings.
Because the BlackBerry OS does not natively support SyncML, setting up the BlackBerry entails downloading a new app. I was surprised to find that I could not add the BlackBerry to my my.funambol.com profile without first deleting the Symbian phone -- that seems rather shortsighted, considering the number of people who have work and personal phones to keep track of. Still, the app downloaded and installed on the BlackBerry in short order.
Like the native Symbian sync client, the BlackBerry app allows you to select which data (contacts, calendar, notes, and to-dos/tasks) to synchronize. But it also goes further, allowing you to schedule regular automated syncs, set the update policy (one-way or two-way), and change the log level.
Next in line came the Linux desktop machine. Thunderbird is my preferred email client, and although Funambol does not supply a supported Mozilla client, there is a community-maintained extension hosted at Funambol's community project site.
The extension is an XPI compatible with Thunderbird 2.0.x, Sunbird 0.8, and Lightning 0.8. It works cleanly enough in both Thunderbird and Sunbird, although it is clearly designed as a Thunderbird add-on, since it uses Thunderbird's logo even within Sunbird. It can sync Thunderbird's address book and Sunbird's calendar data, but has no support yet for to-do/task info, which I would appreciate. Since I use remote iCalendar calendars for my scheduling, I do not need any special out-of-band synchronization to keep Sunbird up to date.
The other major Linux app that can make use of Funambol is Evolution. I don't use Evolution for email, but I do love the ultra-slim "Pimlico" apps Dates, Contacts, and Tasks from OpenedHand; particularly Contacts. The Pimlico suite uses the same back end as Evolution, so synchronizing Evolution synchronizes them both.
SyncEvolution is a community-developed command-line tool. To configure it, you must read the online installation instructions carefully -- there are several different builds available, each of which is suitable only for certain releases of certain Linux distros. Choosing the right one and entering your my.funambol.com account info isn't difficult, you just have to pay attention. SyncEvolution worked without a hitch, grabbing contact, calendar, and note data from the my.funambol.com server.
The Pimlico apps run on desktop Linux, but they were originally designed for Nokia's Maemo tablets. That means syncing the N800 tablet is just as easy as syncing the Evolution-driven desktop apps. You can grab the SyncEvolution build for Maemo, open a terminal window, and enter the same account info used on the desktop.
The final device in my trial was the Macbook Pro. There are no Funambol clients or plugins designed specifically for Apple's default OS X PIM apps, iCal and Address Book. The Mozilla extension works for the OS X versions of Thunderbird and Sunbird, however, and Apple's iSync can sync iCal and Address Book data to the Symbian phone, which can then sync with Funambol. It is indirect, but it works.
Among all of the synchronization pairs, I encountered problems only with the Symbian-to-Funambol and Thunderbird-to-Funambol contacts syncs. In both cases, syncing with the server resulted in multiple duplicate entries. Some duplicates were contacts that existed on the device and on the server before the sync but with differing details, but others were 100% identical. I would like to see a tool to help resolve these problems -- merging or discarding where appropriate -- but because that falls outside the scope of SyncML itself, I'm not holding my breath.
Fortunately, it was easy enough to remove the dupes on the server via the Web portal -- but with older entries involving conflicting details, it can take some research to determine which one to keep and which to discard. The real test will come over time, as my newly synced devices and apps slowly get out of sync. At this stage, it is easy to make the my.funambol.com server copy the definitive one and push all of the changes one-way, but in real life we add and change friends' and contacts' phone numbers and email addresses in different places, and a two-way sync becomes inevitable.
But wait, there's more
Clearly there are far more devices and applications capable of syncing with Funambol 7. The community projects page currently lists 27 tools, covering everything from Google Android devices to Yahoo's online service, and a notable selection of customer relationship management applications.
A big hole in the coverage for Linux users right now is KDE. There do not appear to be any KDE apps that can sync with Funambol or with generic SyncML services. The topic comes up from time to time on various Linux support forums; this thread on ScheduleWorld's forum indicates that a project was started but is no longer maintained. If you know of a good solution for any KDE PIM app, speak up in the comments.
We've got mail
While I was at it, I also tested the push email client on both the Symbian and BlackBerry phones. Push email is a separate app; Funambol provides a native build for the BlackBerry (as well as for Windows Mobile), and a Java ME edition that runs on almost every other phone found in the wild.
Both the BlackBerry and Java versions worked without incident, but to me this is a far less interesting utility. There are native email clients for both phone OSes, not to mention a slew of mobile-formatted Web mail clients. Still, if you are looking for this functionality, Funambol can provide it, and with an open source code base, to boot.
Final thoughts on syncing
In the two years since I first tried Funambol, my synchronization needs have changed. I now use remote iCalendar calendars and can subscribe to them in every desktop calendar app I use, so the only calendar synchronization I need is one-way sync to mobile phones.
Contacts are still another matter. Unlike Web calendars and general-purpose documents, you cannot count on keeping a "master copy" of your contacts somewhere and making all of the changes flow in one direction. So until there is an LDAP directory Web service as easy to use as the calendar services from Yahoo! and Google, Funambol-like synchronization is a necessity.
Yes, it is complicated to find and install a sync client for every device and desktop application you use, and to remember to sync each of them. But what Funambol offers now makes it as painless as possible.