Funambol, formerly Sync4J, is a number of things, but the bit I care about is that it’s a FOSS SyncML server you can download, run on your own server, and appears to be widely supported by all sorts of other FOSS tools (groupware, PIM software, and so on), and offer support for a huge variety of free and non-free SyncML clients. Since I can has data plan the idea of over-the-air syncing to a SyncML host has gained greater appeal, on top of the pre-existing appeal of making it easier to share calendars and the like with Maire.
The out-of-the-box delivery for Funambol is a binary Linux package that contains a JDK, Tomcat6, an RDBMs, and Funambol itself. On the one hand, this makes getting it up and running in a one-clickish fashion kind of easy. On the other hand, if you already have a database server and app server configured (for example) this is a bit of a wasteful duplication of resources; Funambol will let you work with (some) alternatives.
Server configuration
You don’t need to get Java, Tomcat, or have a database. For my case, though, I’ve already got postgresql, which I’m perfectly happy with, thanks all the same, and I’d prefer to aggregate all my Java apps in one big ball of app server, so I’ll be using those.
Download and Install
You can download the package from the Funambol download page.
$ chmod a+x funambol-8.2.5.bin
$ sudo ./funambol-8.2.5.bin
Enter the destination; I’m a /usr/local kind of guy, but YMMV. Opt not to start for now. If you’re going to use a non-Hypersonic database, you’ll need to tinker with the install process; I cribbed the Simple Groupware notes for a postgresql installation:
$ createuser -P funambol_user
$ createdb --owner=funambol_user funambol_db
$ sudo apt-get install libpg-java
$ sudo jmacs $FUNAMBOL_DIR/ds-server/install.properties
The default parameters in this file will be for Hypersonic; there are two sections which are critical to change:
dbms=postgresql (or it will use hypersonic SQL).
jdbc.classpath=$PACKAGEDDRIVER
jdbc.driver=org.postgresql.Driver
jdbc.url=jdbc:postgresql://dblocation/funamboldb
jdbc.user=funamboluser
jdbc.password=xxxxxx
If you want things to use a different Java JDK and Tomcat instance, you can simply set environmental values for the installer, then run the installer thus:
$ export JAVA_HOME=/your/jre/home
$ export J2EE_HOME=/usr/share/tomcat6
$ $FUNAMBOL_DIR/bin/install
Opt to recreate the database when prompted; this will ensure the DML gets run into the Postgresql DB.
At the end of this process, you’ll have an app which has been deployed to a Tomcat instance, and it pretty much ready to go. Yay!
Configuring Funambol
Get the management client, or use the one on the server remotely. Either way, change the default login for the admin user, logout and login, then create a regular user for yourself, just like it says in the manual.
Phone Configuration
These notes are based on my Sony-Ericsson C903. They are (hopefully) applicable to any similar S-E phone with SyncML built-in, and may be helpful when you’re trying to get other similar units working.
Phone config notes: http://blogs.techrepublic.com.com/networking/?p=154
Helpful notes?
Menu > Settings > Connectivity > Synchronisation
Note that the address needs to be of the form “http(s)://servername:port/funambol/ds”, not “http(s)://servername:port/funambol/ds”. I would highly recommend running a secure server.
For each application you want to sync you’ll need corresponding tasks, as shown below.
The application settings map the application to the schema within Funambol; the names are:
Contacts -> card
Calendar -> cal
Tasks -> task
Notes -> note
Login/password is the same as your general user login.
You should now be able to start syncing!
Once you’ve done your first sync you can go back to the management client and find your new device auto-registered, and rename it as you see fit, again, as per the manual.
Other Notes
If you’re using Funambol standalone, you’ll want to edit the $FUNAMBOL_DIR/bin/funambol script to stop Hypersonic starting; look for “COMED=true” and change to “COMED=false” in order to avoid wasting resources here.
Funambol’s Java processes, such as the PIM listener, start by default with JMX management enabled, and no security. This is not so good.
Having had a good time getting Funambol working for OTA syncing is great, but it’s one part of a solution; it’s great for backup and multi-device information sharing, but it doesn’t give much in the way of, say, cross-user calender shari
Tracked: Mar 18, 22:00
Pleasantly surprised to note that the Sony-Ericsson PC suite will out-of-the-box sync with any SyncML capable host—Funambol or eGroupware—thereby syncing your phone to the rest of your world. While I’ve got a (tiny) data plan and I̵
Tracked: Mar 21, 21:53