Open Source Mobile Calendar and Contact Synchronization
Method to provide mobile calendar and contact synchronization
With the great work from the forum user Wolfroma - a Zimbra/Funambol connector surfaced to allow the synchronization of calendar and contacts between Zimbra user accounts and their mobile devices.
The connector is stable but feedback reveals some minor incompletion with re-occurring events not syncing.
At present the most documentation is available directly on the Sourceforge wiki page (also where you can download the Funambol Zimbra connector).
Installation Guide
Installation contains fifteen steps. We assume you have your Zimbra setup and running standalone, and wish to add Funambol to the setup. The system running the Funamlbol Server requires Java to been installed as a dependent before starting this guide.
- 1. Download the Funambol Server for your OS, the instructions in this article are current as of v9.0.0. The newer versions of the server software are now more modular and there is no longer different editions of the server software. You can download the source or binary version, but the binary is much easier to install and is used for this guide.
- 2. Install the Funambol Server by running as root,
sh funambol-9.0.0.bin
The binary script will start to install and asks a few questions, agree to the license terms (or not), install to default directory (/opt), and do not start the server (just yet.) N.B.- for the duration of this article, the directory where you install the funambol bundle will be referred to as <FUNAMBOL>.
- 3. Download the latest Funambol - Zimbra Connector version from this link. The version at time of writing was 0.6.02. The connectors are also listed further down the page of the Funambol Link
- 4. The Funambol - Zimbra Connector name will download as a zip and needs to be extracted to a folder. This folder contains the module to add to Funambol Server
- 5. In this folder go into /output and copy everything to <FUNAMBOL>/ds-server/modules. Make sure the ZimbraConnector.s4j is included in the copy.
For the Funambol - Zimbra Connector you should create a ZimbraConnector.xml configuration file in <FUNAMBOL>/config/connector/ N.B.: You have to create this directory if it doesn't exist.
Example of this file: ZimbraConnector.xml
<java version="1.5.0" class="java.beans.XMLDecoder"> <object class="ru.korusconsulting.connector.config.ConnectorConfig"> <void property="dataSource"> <string>jdbc/fnblds</string> </void> </object> </java>
- 6. Edit the install.properties file in the <FUNAMBOL>/ds-server directory and find the line (usually the last line) beginning:
modules-to-install=
Append "ZimbraConnector", the result should look similar to the following :
modules-to-install=content-provider-8.7.0,email-connector-8.7.0,foundation-8.7.0,phones-support-8.7.0,webdemo-8.7.0,ZimbraConnector
- 7. Start the Funambol server and install the module by running
./<FUNAMBOL>/bin/funambol start
./<FUNAMBOL>/bin/funambol-server start
./<FUNAMBOL>/bin/install-modules
You will get prompts asking if you want to create databases, just select Yes to all of them. You might also want to check at this point that Funambol is setup to start on reboots either as a service or some sort of init script. - copy the startup script into init.d
cp /opt/Funambol/bin/funambol /etc/init.d/funambol
- Open the script in a text editor
vim /etc/init.d/funambol
change this:
FUNAMBOL_HOME=`(cd .. ; pwd)`
to this:
FUNAMBOL_HOME=`(cd /opt/Funambol ; pwd)`
- 8. Now the Zimbra connector is ready to use, but it is not configured yet. To configure we need to run the Funambol Administration Tool using
./<FUNAMBOL>/admin/bin/funamboladmin
Note that this a client program that requires a GUI. If you don't have X installed on your server, you can Download the GUI client on it's own. The package is under "Other Funamble Server Software" Once started go to File -> Login. You will likely need to change the Hostname/IP but the other settings can all be kept as default.
- 9. Remove follow items from the FunambolFoundationConnector , under <hostname> , Modules , foundation
PIM Calendar SyncSource -- cal; event; scal; stask; task PIM Contact SyncSource -- card; scard
- 10. Now you should add new SyncSources to FunambolZimbraConnector, under <hostname> , Modules , zimbra
You should try using https for the Zimbra URL's first, but if you run into problems try using http and see if this helps. If your hosting the connector on the same server as Zimbra, entering the hostname as localhost should help keep things secure. Also the port can be left out unless you have customized Zimbra to have special HTTP ports.
First of all click on FunambolZimbraConnector, then right click on the "CalendarSyncSource" and select "Add SyncSource". Enter the following details - Adding new SyncSource items for cal, event, scal, stask and task.
Source URI = cal,event,scal,stask,task Name = cal,event,scal,stask,task Zimbra URL = https://<hostname>:port/service/soap/
Now right ContactSyncSource, and select "Add SyncSource". Enter the following details - Adding new SyncSource items for both card and scard.
Source URI = card, scard Name = card, scard Zimbra URL = https://<hostname>:port/service/soap/
Then right click on the "GALSyncSource" and select "Add SyncSource". Enter the following details - Adding a new SyncSource item for zimbraGALContacts.
Source URI = zimbraGalContacts Name = zimbraGalContacts Zimbra URL = https://<hostname>:port/service/soap/
- 11. Configuration of all sync sources should resemble the picture below:
- 12. The article instructions leave a correctly configured Funambol Zimbra connector.
On the phone side simply add a new synchronization profile if you phone supports SyncML by default. The server setting should be the funambol URI which should be in the format http://<hostname>:8080/funambol/ds The server needs to be publicly accessible from the Internet, if you running behind a firewall make sure that you have NAT'd port 8080 to your Funambol server