Open source syncing, simplified

Funambol


Keeping contact and calendar data in sync across devices and applications is not a new problem, but it is still a problem. Funambol offers an open source syncing solution.

By Dmitri Popov

Funambol is enterprise-level open source software that provides an elegant and powerful syncing solution. To demonstrate what Funambol [1] can do for you, I'll look at an example scenario in which I use a combination of the Mozilla Thunderbird mail client and Lightning calendar module as my primary tool for managing contacts and calendar data on a desktop machine or laptop. While on the move, I'd like to access this data on my mobile phone via its built-in address book and calendar applications.

Moreover, I wouldn't mind being able to view and manage my address book and calendar on the web. It might sound like a tough nut to crack, but Funambol makes this possible. In fact, it provides two paths to syncing Nirvana.

myFUNAMBOL Portal

The myFUNAMBOL Portal [2] is a hosted service that acts as a showcase for Funambol's capabilities (Figure 1). The obvious advantage of using the hosted service is its sheer convenience - you don't have to spend time installing the server and getting your head around how to configure it. Moreover, myFUNAMBOL can push configuration settings to your mobile phone, so you don't need to do this manually.

Figure 1: The myFUNAMBOL Portal sports a simple yet functional web interface.

The most important advantage is a web interface that allows you to manage your address book and calendar via a browser. myFUNAMBOL's web interface is rather bare bones; the calendar, for example, offers only a fraction of the features found in Google Calendar. However, keep in mind that myFUNAMBOL's web interface doesn't attempt to compete with dedicated web services, instead it offers a way to look up a phone number or enter an appointment with minimum fuss.

When you create a myFUNAMBOL account, you will be prompted to choose your mobile phone model and enter your phone number. The service uses this information to send a configuration file to your mobile phone. Once you've accepted and saved the configuration settings, you can sync your mobile phone with the myFUNAMBOL Portal. For instructions on how to synch your phone, check your phone's manual.

To keep data in sync, myFUNAMBOL uses SyncML, so you can use the service with virtually any modern mobile phone without installing additional software (see a list of compatible devices at Funambol's website [3]). myFUNAMBOL also features plugins for other mobile devices, including Pocket PCs, Windows Mobile-based smartphones, and iPods.

A utility that allows you to sync data between myFUNAMBOL and Mozilla Thunderbird is the only missing piece. Fortunately, the Funambol Mozilla plugin [4] fills the gap nicely (Figure 2). The plugin can sync contact and calendaring data stored in Thunderbird's built-in address book and the Lightning calendar module [5]. To install the Funambol plugin in Thunderbird, download the extension, launch Thunderbird, choose Tools | Add-ons, press the Install button, and select the downloaded .xpi file.

Figure 2: The Mozilla Funambol plugin allows you to sync data between a Funambol server and Thunderbird.

To activate the plugin, restart Thunderbird. Before you can use the Funambol plugin to sync data with myFUNAMBOL, you must configure it. Choose Tools | Funambol Plugin, press Options, and switch to the Account section. There, enter http://my.funambol.com/sync into the Server URL field, and type your myFUNAMBOL user name and password in the appropriate fields.

In the Synchronization section, you can specify which address book and calendar the plugin should use. For example, you can choose to sync data from the Personal Address Book and the Work calendar. Once you're satisfied with the settings, close the Options dialog window and press the Synchronize button to sync the data. The plugin also sports the Recover feature that allows you to restore the contact and calendar data in case something goes wrong. To perform a one-way sync that replaces the data either in Thunderbird or myFUNAMBOL, press the Recover button.

Now you have the address and calendar data on your mobile phone and Thunderbird, but myFUNAMBOL has yet another nifty trick up its sleeve - you can use the service as an intermediary service for receiving and sending email via the Funambol Java-based client application installed on your mobile phone. Although most mobile phones now come with a built-in email client, you might want to give Funambol's application a try since it sports a few clever features, such as the ability to flag messages, IMAP support, and integration with the address data stored on myFUNAMBOL. To enable myFUNAMBOL's email functionality, use the Set Up Email section to configure an email account, then myFUNAMBOL sends a download link to your mobile phone. Install the Java-based email client and you are ready to go.

Funambol Server

As with any hosted service, myFUNAMBOL's convenience comes at the price of flexibility. If you prefer to have more control and the ability to tweak the service to your liking, you can roll out your own Funambol-based synchronization solution by installing the Funambol server on a local machine. Better yet, deploying and managing your own Funambol server is relatively easy, so it can be used by individual users and workgroups with limited expertise and resources. The server hardware requirements also are rather modest; all you need is a machine with a 1.8GHz processor, 512MB RAM, and 200MB free hard-disk space. In fact, there is no reason why you can't install the Funambol software on your production machine along with Thunderbird, thus turning it into a personal synchronization solution.

The first order of business is, of course, to download and install the Funambol server software bundle. The bundle includes pretty much everything you need, including the PIM and email components, the required server and database software, and administration tools. To install the downloaded package, simply run the sh funambol-x.x.x. bin command as root and follow the instructions.

To start the server, switch to the /opt/Funambol/tools/bin directory and run the sh funambol.sh start command. To see whether the server is started, point your browser to http://localhost:8080/funambol, and you should see the default Funambol page. The server comes as a bare-bones web demo (http://localhost:8080/webdemo), which you can try by logging in with "guest" as the user name and password (Figure 3).

Figure 3: The Funambol server web demo is simplicity itself.

Don't get too excited, though - Funambol is a synchronization solution, not a web-based PIM, so its interface is basic. To add a new contact or appointment quickly and check your calendar, the interface comes in handy.

After the server is up and running, you can configure your mobile phone and Thunderbird to work with it. Configuring the latter is a matter of entering the correct server URL (http://localhost:8080/funambol/ds) and credentials in the Options | Account section of the Funambol plugin. The exact steps of configuring your phone depend on the phone's model, so check its manual for more details.

One of the major advantages of running your own Funambol server is the ability to administer it, and the Funambol Administration Tool allows you to do just that (Figure 4). To launch the tool, switch to the /opt/Funambol directory and run the admin/bin/funamboladmin command, then log in using the default credentials.

Figure 4: The Funambol Administration Tool provides a graphical interface for administering the Funambol server.

To edit the default user accounts and add new ones, go to the Users section, press the Search button to list all existing users, then use the Edit button to edit them. To add a new user, press the Add button and fill out the relevant fields.

Like the myFUNAMBOL Portal, the Funambol server can handle email accounts, so you can use it to send and receive email on your mobile phone via the Java-based Funambol email client (see Figure 5).

Figure 5: The Funambol server is able to handle email servers and push email to the user's mobile phone.

The Funambol server comes with the preconfigured GMail, Yahoo!, and AOL email servers. To manage servers, go to Modules | Email | FunambolEmailConnector and press the Search button to view a list of the available mail servers. Then use the Add button to configure other mail servers.

Associating one of the mail servers with an existing user is equally easy. In the Accounts section, press the Add button, then press Search to view a list of the available users and double-click on the user account you need. Enter the login details and select the desired mail server from the Mail server drop-down list. To add a mail server that is not in the list, select Custom from the Mail server list and specify the required settings. Finally, the user must configure the account settings on the mobile phone, which can be done in the Options | Account section of the Funambol email client.

Conclusion

Thanks to Funambol, keeping data in sync between different platforms and applications is no longer a pipe dream. With myFUNAMBOL, you can let the hosted service do the drudge work and synchronize your data without worrying about the technical side of the matter. If you prefer to roll out your own synchronization solution, you can do so by installing the Funambol server on a local machine. No matter which way you decide to go, Funambol does the syncing magic equally well.

INFO
[1] Funambol website: www.funambol.com
[2] myFUNAMBOL Portal: http://my.funambol.com
[3] Funambol-compatible devices: http://www.funambol.com/solutions/devices.php
[4] Funambol Mozilla plugin: http://sourceforge.net/projects/sync4jmozilla
[5] Lightning Calendar extension for Thunderbird: http://www.mozilla.org/projects/calendar/lightning/
THE AUTHOR

Dmitri Popov holds a degree in Russian language and computer linguistics. He has been working as a technical translator and freelance contributor for several years. He has published more than 500 articles in Danish, British, US, and Russian magazines and websites.