I have recently blogged a little on Funambol, the open source mobile

application server. After spending the last week playing with this software and

finally having some success with PIM synchronisation, I thought it may be a

good idea to take a closer look and go through the basic steps required to get

things running.


What is it?

Funambol is

an open source mobile application server platform which provides both a data

synchronisation engine and a software development platform for mobile

applications. Funambol is the de facto standard implementation of the Open Mobile Alliance

Data Synchronization and Device Management protocols (OMA DS and DM, formerly

known as SyncML).


What does it offer?

Funambol claims to offer the following:

  • Push
  • Address
    book and calendar (PIM) data synchronisation
  • Application
  • Device
    management for wireless devices and PCs
  • This
    means BlackBerry-like capabilities on commodity handsets

Now I say that Funambol ‘claims’ to offer these features, as

while looking into the project, I have found that there is a divide between

what Funambol can actually do in the real world and what people may be led to

believe it can accomplish. There is quite a bit of future tense being used on

the mailing lists; we’ll come to this later. I am, of course, approaching this

from the viewpoint of an enterprise user rather than that of a mobile operator.

Many different devices are supported by Funambol and its

various plugins/connectors. SyncML-enabled mobile phones (from Sony Ericsson,

Nokia, Motorola, Samsung and others), RIM Blackberry, Windows Mobile (pocket

pc), Palm, and even Apple’s iPod can be used with the data synchronisation

engine. On top of that, various software clients can be used including

Microsoft Outlook and Mozilla.



The history of Funambol dates back to 2001—software

developers saw the potential of SyncML for mobile computing but did not see a

platform independent (java) open source implementation. The Sync4j project later

became Funambol and has gone way beyond the original engine with many

components now available:

  • Funambol Data

    Synchronization Server: a mobile application server providing

    synchronization services for wireless clients and PCs, including push


  • Funambol Device Management:
    an OMA DM server to remotely manage mobile devices.
  • Funambol Connectors:

    gateways to file systems, databases, email systems, and applications for

    two-way synchronization with existing data assets.

  • Funambol Client Plug-ins:

    protocol extenders and clients for Microsoft Office Outlook, Windows

    Mobile, BlackBerry, Palm and iPod so users can

    synchronize their email messages and PIM data (address book, calendar,

    tasks and notes) with the server.

  • Funambol Software

    Development Kit: tools to develop sometimes-connected mobile applications

    on devices (in Java – J2SE and J2ME – and C++) and to

    add data sources to the server.


Getting stuck in

Ok, that’s enough of the sales jargon—I think the best way

to find out whether something can be of use is to try it out. This can be

especially true with open source software, as the only cost of testing it is

that of time. Hopefully I’ll be able to guide you through the basic setup and

configuration, saving a lot of wasted time trawling through mailing list

archives and hundreds of useless Google results!


The fact that Funambol runs on a standard java-based

application server platform (JBoss)

means it can be deployed on almost any platform. Pre-packaged server bundles

are available for Linux / Windows and individual packages can also be



Other than a platform capable of running java applications

what’s required to run and use Funambol? I would recommend having a

SyncML-compatible mobile phone (I have used both a Sony Ericsson W550i and

W800i) and Outlook in order to test the synchronisation server.

Some type of static internet address is also needed. If

you’re looking to use Funambol at home rather than in a corporate environment,

don’t panic; there are various solutions. I have successfully been using DynDNS along with the built-in IP updater in

my NetGear DSL router and had no problems. I created a new service in the

router for port 8080 and then added a firewall rule to redirect all incoming

connections for that service to the internal IP of my Funambol server—this

‘almost’ worked perfectly. The only issue was that—internally—redirection

didn’t work, meaning the Outlook connector wouldn’t connect to the service. Two

solutions to this were viable, and both worked: (1) Insert ‘dynamic.dnsdomain.com   192.168.0.x’ into your hosts file, where

192.168.0.x is the internal Funambol server IP. (2) Set the server address in

the Outlook connector to statically point to the internal server (e.g., Server

URI=http://192.168.0.x:8080/funambol/ds). These fixes only work if you are

going to be on the internal network—if you’re outside of the network on a

laptop, etc., then the dynamic DNS should resolve and the firewall rules will

forward data correctly. If you hold a static IP, then there is, of course, no need

to worry about this, you’ll be fine.


Funambol can be downloaded as a Server Bundle or as

individual components. If you’re starting from scratch, I guess it’s probably

best to go with a bundle. The components, along with additional connectors, can

all be downloaded here.

My first attempt at installing Funambol was using the Latest

Beta (v3.0) bundle on a clean Ubuntu server. Despite the simple install process

(simply execute the install script) this gave me nothing but trouble. I

couldn’t get the server admin tool running, so after wasting an hour looking

for solutions and fixes, I decided to dump that idea and install it on

Windows—after all, I’m only evaluating the software, not building a full-time

production system. The Latest Beta (v3.0) for Windows installed flawlessly;

simply execute the downloaded installer and follow the prompts.

I now have the application server and Funambol installed,

but I need to configure the Data Server, SyncSources (more on this later too)

and mobile devices. Next week, I’ll follow up with details on accomplishing

this, while avoiding the initial problems that I ran into.

If anybody is already using Funambol (or possibly a similar

mobile synchronisation system) in production, it would be interesting to hear

your experiences—leave a comment for us.