Linux, Thunderbird, and the BlackBerry; A Love Story (Cooking with Linux)


Linux, Thunderbird, and the BlackBerry; A Love Story (Cooking with Linux)


Thinking about keeping our various devices in sync with our Linux systems can be the source of nightmares for many. After all, asking for an open source solution that can keep millions of smart phones, cell phones, email clients, contact databases, and calendars on the same planet, never mind the same page, seems akin to asking for the moon. To which Chez Marcel would like to ask, "Would you like a nice rich Merlot with that moon?"

Excuse me, François, but what are you doing? Are you sending text messages while you should be getting ready for the restaurant to open? You aren't? Well, if you aren't texting, what are you doing hunched over that cell phone? Quoi? You have three cell phones that you are typing into. My apologies, mon ami, but now I really have no idea what you are doing. Ah, I see . . . trying to update your contact list and calendars and you can't think of a way to do that with you Linux system. But three phones? One is your BlackBerry and the other two phones belong to your aunt and your mother. Sigh . . . Tech support for the family on restaurant time, François. What am I going to do with you? Put those phones down and I'll show you a better way to synchronize all those contacts. Quickly! I can see our guests arriving even now.
Good evening, everyone, and welcome to Chez Marcel, where excellent Linux and open source software finds its match with exquisite wines. , Please, sit and make yourselves comfortable, mes amis. François was just getting ready to make his way to the cellar and bring back tonight's wine. Hurry, mon ami, and bring back the 2005 Vina Requingua Puerto Viejo Merlot from Chile that we were sampling, er, I mean, submitting to quality control earlier today. Vite, mon ami!
While we wait for his return, let me tell you about François' dilemna. He has multiple portable devices including a BlackBerry, an Android phone, and a Motorola Razr, all of which he wants to synchronize with Evolution on his Linux notebook. On the store workstation, he uses Thunderbird instead and at home, something else. Getting those contact lists, calendars, and so on is easier than it sounds, and it can all be done with Linux and open source software.
All this is possible, and easy, with a great little package from a company called Funambol. The software itself is also called Funambol and it is freely distributed and open source. Essentially, this is a program that lets you perform over-the-air (also knows as OTA) synchronization of your contacts, calendars, and so on, using your cell or smart phone, desktop contact management software (Evolution, Thunderbird, Outlook, etc), and other hardware. Part of the magic behind all is SyncML, or Synchronization Markup Language, which is also known as Open Mobile Alliance Data Synchronization (OMA DS). SyncML is an open standard for synchronizing information such as calendars and contacts that is platform-independent. Several mobile phone manufacturers such as Motorola, Nokia, and Sony Ericsson already include SyncML in their devices. SyncML also supportpush email, which is handy for those needing (or just plain wanting) and alternative to proprietary products . . . oh, like the BlackBerry.
Most excellent, François. You have returned, and very quickly I might add. Please, pour for our guests. And be generous.
Funambol consists of a server component and a client for your device or application. Start by getting your copy of Funambol server from and save it somewhere on your system. The package file, with a .bin extension, needs to be made executable before you execute it.
   chmod +x funambol-7.1.bin
The whole thing takes only a few seconds. The steps that follow are extremely simple Type 'yes' at the 'agree to the above terms' prompt (it's the GPL version 3). You'll be prompted for an installation directory which, by default, is /opt. It's best to accept the default unless you have a very good reason to do otherwise. The resulting folder will be /opt/Funambol. Once the product has been extracted, you'll be asked whether you want to start the server. Type 'yes' and continue on. To make sure things are working properly, point your browser to http://localhost:8080/funambol/ds and you should get status information back from the Funambol data synchronization server (see Figure 1).
Figure 1, Just a quick test to make sure the server is up and running.
Of course, if you aren't running this test directly on the server, you'll want to change 'localhost' to the hostname or IP address of the server.
Funambol also comes with a simple Web app to test the contact as well as calendar creation and update before you turn it over to your mobile device. Point your browser to http://localhost:8080/funambol to bring up the demo page. You won't be able to do a great deal at this point other than read the terms and conditions and test out a very limited Web client. That demonstration will allow you to log in as 'guest' with a password of 'guest' and create contacts (see Figure 2) or a calendar entry. Once you have done so, update a record or two and make sure the changes are being saved.


Figure 2, The Web client demo does let you create calendars and contacts, making it a better test.
Now that you know it works, you still can't do a great deal with Funambol in this form. In order to do more interesting things, we need to do a little system configuration. Over on the server side, there is a graphical administration tool. You can start it from the command line like this.
   cd /opt/Funambol
A couple of seconds later, you'll see the Funambol administration tool appear (see Figure 3). To use the administration tool, you will first need to login. If you don't see the login window up front, click "File" on the menu bar and select "Login". By default, the admin password, "sa", is already set (you can always change it later) but for now, just click "Login".

Figure 3, The Funambol administration tool and login screen.
The Funambol administration tool is divided into three panes, a navigator pane fills the top left half, an admin tool pane over at the top right, and a status pane along the bottom (see Figure 4). Take a look at the navigator window, and you will see your system's domain name up at the top. To expand the system tree, click the switch icon next to the domain name. You'll then see Server Settings (which expands into its own subtree), Users, Devices, Principals, and Modules. That last also expands into several other branches. To see how this all works and how you can configure and change things, let's deal with that admin password right now.
Figure 4, Over on the right, you can see the Funambol administration tool's system navigator with several expanded properties.
Double-click on Users and look at the admin tool window (see Figure 5). The Search Users tool appears. You can search by username, first name, last name, and email address. Enter "admin" in the search box beside Username and click the Search button (notice that you can search by a part of the name as well as position of the text by clicking the drop down box beside the label). Only one admin name should show up so it will naturally be highlighted. If you did this by searching part of a name and you had multiple names, you would, of course, need to select the correct name.
Figure 5, Using the tool to change the admin password.
Click the Edit button, change the password, then save your changes. That takes care of controlling access to the tool. Your next step is to define access to the system. As it stands, your Funambol implementation allows connections only from localhost and then only to a limited set of users. We need to change that. Double-click on "Server Settings" in the navigator window. Now look over to the left and locate the "Server URI" field in the settings window (see Figure 6).
Figure 6, As a final first step, you'll need to configure the URI to the Funambol service on your server.
Enter the hostname (or the IP address) of your server, then click Save. You should see a confirmation message in the status window below. It should look something like this:
Believe it or not, that's pretty much it on the server end. Now let's take a break, have François refill everyone's glass and then let's see what we need to do on the BlackBerry end of things.
The first step is to install the BlackBerry client which you can find over at You will find an email client in addition to the sync client but, for the sake of this article, we are just going to concentrate on the sync client. Make sure you get the right client for your particular BlackBerry OS version.
In this article, I am concentrating on BlackBerry synchronization with a Linux system, but remember that Funambol offers sync clients for many different mobile devices and smart phones. Just point your browser to to find the right client for your mobile device. You can even sync your Android phone.
Once installed, you will see the Funambol BlackBerry sync icon in your list of applications on the BlackBerry screen (see Figure 7).
Figure 7, The Funambol client icon as it appears on my BlackBerry.
Click the icon and you should see a status screen showing Contacts, Calendar, Tasks, and Notes, all with "Not Synchronized" below the labels. To perform a sync, we need to configure the client. Press the menu key on your BlackBerry and select Settings (see Figure 8).
Figure 8, Press the menu key to configure the client settings.
When the Funambol client configuration screen appears (see Figure 9), enter the URI for your machine's Funambol server. This is the same address that you entered when you configured the server. You must also enter your user name and password; that's your Linux server user name and password. A little futher down that screen, there are check boxes beside labels to "Sync Contacts", "Sync Calendar", Sync Tasks", and "Sync Notes". These are all checked on by default but you made decide you don't want to sync all these resources so change it here if you need to. You can also configure a scheduled sync and have the client update your information every 30 minutes (the default) or whatever period makes sense to you. That feature is not turned on unless you specify otherwise.
Figure 9, The Funambol BlackBerry client's configuration screen.
When you are done, save your settings (one my BlackBerry, I just press the trackball or the back arrow). You'll find yourself back at the status screen and are now ready to synchronize for the first time. Press the menu key, and select Sync All from the menu. The Funambol client will connect with your server and start transferring the information on your BlackBerry. Underneath the labels for Contacts (and Calendar, etc), the client will show how many records are being transferred. Once complete, the status screen will list the last successful sync for each resource (see Figure 10).
Figure 10, During synchronization, the status screen will show you the number of records transferred. Once complete, you can see the latest sync at a glance.
This is all wonderful because the Funambol server is effectively keeping an over the air backup of your data, handy if you ever needed to reload it. But what if you use another client on your Linux desktop for email, contacts, and appointments? You might be using Evolution or Thunderbird. Funambol provides download clients for these and others as well. In Figure 11, I've got a screenshot of a pretty desolate looking address book in Thunderbird.
Figure 11, My Thunderbird address book, without any contacts.
The plugin you need for ThunderBird is available from the Funambol community download page. Download it and save it to a local directory. Once that is done, click Tools on the Thunderbird menu bar and select Add-ons. When the Add-ons window appears, click the Install button, then navigate to the folder where you stored the file, click on it and install it. Once done, Thunderbird will need to restart in order the load the new extension. After Thunderbird restarts, you must configure the Funambol client to connect to your server. Click Tools from the menu bar and select "Funambol plugin". When the Funambol PIM Plugin window appears, click the Options button and you'll see a screen that while shinier than the one on the BlackBerry, is similar in that it asks for the same information, namely the server URL, user name and password (see Figure 12). Enter the information, then click Close.
Figure 12, Configuring the Funambol Thunderbird plugin.
That's it. To synchronize Thunderbird with the contacts from my BlackBerry, I only need click the Synchronize button and wait while my contacts are transferred (see Figure 13). How long this all takes depends, of course, on how much information is being synchronized and how fast your connection is.
Figure 13, The Thunderbird sync plugin happily doing what it is built to do.
In this way, I can keep my desktop client in sync with my BlackBerry and the server itself. As an added bonus, I get over the air backup with my own server without having to shell out the dollars for a BES server. Funambol, Linux, and my BlackBerry . . . it's a match made in open source heaven.
With the help of Funambol, a great open source application, you, and François, can keep all that personal information in sync without having to resort to manually entering the information, or paying huge sums of money for a special server running proprietary code. Well, mes amis, the time is finally upon us. That old clock on the wall is telling us that closing time has arrived yet again. François will be happy to refill your glasses a final time while we say our goodbyes to one another. Until next time . . . Please, mes amis, raise your glasses and let us all drink to one another's health.
A votre santé! Bon appétit!
Funambol Downloads Page
Funambol Community Projects
Mozilla Thunderbird
Open Mobile Alliance (the home of SyncML)