Contents |
The BionicMessage GroupWare Sync server is a custom distribution of the Funambol 6.5.14 Device Sync server intended for use with GroupWare servers that implement the GroupDAV standard. There are additions such as the Citadel email connector and a groupware authentication backend.
Basic documentation for Funambol v6.5 is available from the Funambol Open Source download page.
The Funambol Administration guide[1]is particularly useful for post-install configuration.
NOTE: As the install script mentions Funambol will come up on port 8080. You may already have something running on this port. If you do, shut it down for now. You can change the port Funambol is on after the install script is done
The setup process has changed from the previous bundles. The installation of the server is now done by a script launched automatically by the extractor binary. If you downloaded the 'BYO JRE' version, you will need to:
ln -s /opt/jdk1.5.0 java #symbolic link to existing jdk ./install.sh #Run installer
The install script will ask for the server you are using, the server and port its webserver is on. If you are running Citadel, you will also be asked for the server the Citadel is actually running on.
For the initial install you need to answer 'y' to the Funambol install script when it asks to create the databases.
After Funambol has installed itself, the install script will then bring up the server. Once the server is running post-configuration occurs. You will be asked if you wish to authenticate users against your groupware server, or stay with the default Funambol method of creating users in its database with any credentials they use.
During post configuration a set of sync sources are automatically set up, so if everything is done right, thats all you need to do to start syncing!
You will need to configure your device's SyncML software with the following information:
| SyncML Server | http://yourserver:8080/funambol/ds |
| Username | The same username you use to login to your Groupware |
| Password | The same password you use to login to your Groupware |
| Calendar URI | groupdav-cal-v (groupdav-cal-s for Funambol clients). Note: If you are using a Synthesis client disable filtering. If you are using a Symbian device where calendar's and task's are treated as one you need to use groupdav-s60-v. |
| Task URI (not for OpenGroupware) | groupdav-task-v (groupdav-task-s for Funambol clients) |
| Addressbook URI | groupdav-addr-v (groupdav-addr-s for Funambol clients) |
| mail (Using Funambol clients and Citadel only) |
With this configuration you should be ready to sync all your data. Where possible, on first sync, do each data type separately incase one of them fails.
Note the layout of the server bundle:
| Funambol bundle structure | Subdirectory | Description |
|---|---|---|
| ds-server | Funambol DS-Server main directory | |
| modules | Drop any future GroupDAV connector updates (groupdav-2.0.s4j) into here | |
| config | Funambol configuration files | |
| admin | Funambol administration tool | |
| tomcat | Apache tomcat 5.5 application/web server | |
| conf | Tomcat configration. Modify server.xml to change http port | |
| database | Funambol's configuration database. | |
| java | Java runtime. (If you are running non-x86, you could drop your
JRE here) | |
| logs | Funambol's log files are within this directory | |
| stores | The Funambol GroupDAV and Citadel mail connectors store information about each sync client here | |
| postconfig | The postconfig tool - responsible for setting the authentication backend and setting up sync sources as seen earlier | |
| Main directory scripts | ||
| start.sh | Starts the Funambol server | |
| stop.sh | Stops the Funambol server | |
| install.sh | Clean install's the Funambol server | |
| update-modules.sh | Runs Funambol's update-modules script, for use after the fnbl-get tool or when you manually install modules | |
| postreconfig.sh | Runs the postreconfig.sh should you need to perform actions provided by the postconfig tool manually |
The Funambol administration tool can be used to configure GroupDAV sync settings and other aspects of the Funambol server, such as authentication.
Lauch it by entering the admin/bin directory and running funamboladmin:
cd admin/bin ./funamboladmin
Note: Users of OS X Leopard will have to launch the administration tool another way due to a bug:
sh platform6/lib/nbexec --clusters funamboladmin
After startup, login, by going to the File menu and clicking login.
There may be a delay when logging in, be patient.
If login fails, stop and start server again to be sure. If problem persists, see the troubleshooting section.
The left hand pane of the Funambol administration tool lists available configuration options and modules. Of interest to us is the ‚'groupdav' module. Expanding Modules->groupdav->BionicMessageGroupDAVConnector shows two choices:
Double clicking on contacts or calendar will take you to a source configuration screen.
Each sync source has various configuration options:
| SyncML Source | Clients will use this URI to tell Funambol they want to sync with this source |
| GroupDAV Server | GroupDAV server in http://host:port/ format
Reminder: Ensure you specify the port number, even if the server is on port 80! Note: Where possible, avoid SSL (https://) server connections. You would need to add the GroupDAV servers SSL certificate to the Java key store. |
| Data format | Funambol offers two sets of data formats:* IMC vCal/vCard – used by just about all SyncML clients
|
| Store locaton | Each GroupDAV sync source requires a 'store' for databases and sync logs. Ideally, this should be a directory within the Funambol bundle
WARNING: Ensure correct permissions with this directory and the entire Funambol installation to prevent non-Funambol local users from viewing others data. |
| GroupDAV Source | (From connector version 2.0 onwards, the infrastructure supports multiple backend sources, however, this functionality is beyond the scope of this guide)
The source(s) on the GroupDAV server to sync, i.e
For servers such as OpenGroupware where the username is part of the source URL, use ‚'%USER%' in its place. The GroupDAV connector will substitute the user name from the client into this URL. |
| Symbian mixed todo mode | For use with devices running Symbian S60. Read the note on the next page. |
| Use single log files | By default, to assist with debugging and bug fixing, the connector will output two log files (connector and storelog) for each sync, uniquely timestamped. This setting changes this behavior to reuse the same log file, recommended for production environments. |
| OGo/Zidestore all day fix (GMT-relative all day) | Under this setting, when all day events are created/modified on the device, they are formatted in a way that OpenGroupware WebUI would detect.
(With OpenGroupware WebUI it is advisable to enter in hours manually rather than use all day events) Note: With this option Funambol needs to know the timezone of each device syncing. This is the same process as Synthesis mentioned below. |
Click ‚Save settings to activate the sync source. Should you want to reconfigure it later, just expand the Calendar/Contact type node.
As of GroupDAV Connector 2.2, the connector can obtain a list of objects from the server via a CalDAV query. This functionality can be used to filter the events processed by the connector and eventually synced to the device. At the time of writing this functionality has only been tested on eGroupware SVN versions.
| Component | Component to filter, i.e VEVENT |
| Property | Leave blank for now, empty placeholder property for CalDAV property based filtering, if needed. |
| Start | A date-time in rfc2445/ical2 format, i.e 20080514T120000Z |
| End | As above |
As of Funambol 6.5.14 these steps are no longer required for newer clients, but some clients, such as the Java Demo/Test client still need it.
When using SIF based sync sources (i.e text/x-s4j-sif*), the data coming in and out of the sync source needs to be 'wrapped' in a way that separates it from the SyncML stream, which is also XML. Base64 encoding is used to achieve this. Also, you can encrypt the data with DES for added security.
For more information, see ‚'Manually Enabling Encryption/Encoding' in the Funambol Administration guide.
Symbian S60 devices sync the calendar and todo as a whole and need special treatment by the connector. All you need to do when creating a sync source is:
Note the output type should be text/x-vcalendar
Sync sources configured for S60 devices cannot be used by other devices/clients.
After the first sync, you need to configure the timezone for your Palm device in the Funambol administration tool. As you did in the post-install configuration, start and log into your Funambol server.
The install scripts will install the Citadel Email connector if you specified the Citadel server type during install time. You can use this to achieve "Push Email" functionality with Citadel and clients such as:
Currently there are two methods available to send a new email notification to a phone:
CTP has an advantage in that there is no cost per message, but will drain battery, and seems to take a megabyte or two per day on top of any email traffic. If CTP sessions drop due to network or device problems the session usually does not come back until the user manually syncs. SMS has an advantage in that it will not drop battery, but there is a small cost per message.
Note: When the default notification type is changed devices will have to be deleted within the Funambol admin tool and then resynced in order to use them.
The CTP server has been included with the bundle distribution, and should be a 'plug and play' affair. However, you first have to set JAVA_HOME:
From the root dir of the bundle (i.e where ./install.sh is): export JAVA_HOME=`pwd`/java # or where your JRE is cd ctp-server bin/ctpserver.sh start # append -debug for console output
The bundle includes the 'BMClickatell' notification configured to use the Clickatell SMS gateway, however, is capable of using equally capable gateways provided they have a HTTP API.
To use SMS notification, run postreconfig while the server is running:
./postreconfig.sh setusepostnotify
You then need to use the administration tool to set your username, password and API ID detail. The SMS component is under smsnotify->bmclickatell .
For each user and device you wish to use push with you need to set its phone number, in international format (i.e 61430004010 for an Australian mobile number) in the Devices section of the Funambol admin tool.
Should you wish to use the SMS notification component with another gateway, consider the URL format:
http://api.clickatell.com/http/sendmsg?api_id=%s&user=%s&password=%s&to=%s&udh=%s&data=%s
| Key | Value |
|---|---|
| api_id | The API ID used to identify this connection with Clickatell. Mapped to the last field in the configuration screen |
| Username | Gateway username |
| Password | Gateway password |
| To | Phone number of device sending notification to. Must be in international format |
| UDH | User data field of SMS in Hex. |
| Data | Data field of SMS in Hex |
When using a different gateway you must specify the URL fields in the exact same order.
Citadel needs to be configured to tell Funambol when email arrives. This needs to be done on two levels: system and user.
The system configuration involves entering the Funambol server, sync source and administrator password in Citadel. This can be done via Webcit or the command line Citadel client by logging in as the Administrator and going to the site configuration.
Each user wishing to use push email then needs to login via webcit and goto their Advanced settings page and then to Edit your push email settings and set their preference to use Funambol.
In the Funambol administration tool, logging can be configured in Server Settings->Logging. Turning up the verbosity can reveal more about server and connector operations.
For security reasons, Funambol doesn't disclose the contents of sync items in the log file. This behavior can be changed by changing -Dfunambol.debug=false to -Dfunambol.debug=true
tools/tomcat/catalina.out catches stdout and stderr output, which often contains exceptions which miss the logger.
Connector and store logs for each sync source can be found in the store directory you configured for your sync source. These log communication with the GroupDAV server and any errors encountered by the sync source.
The server bundle contains a custom updating tool called fnbl-get, which will compare timestamps of the module archives in your ds-server installation to those on the server, and offer to upgrade them while keeping configuration in place.
To run the updater you have to stop the server first and then run the update script:
./stop.sh ./upgrade-modules.sh
For each module installed fnbl-get will compare the modification timestamps and offer to download a new version. After downloading all updates, the Funambol module installer script will run, and like the initial setup, ask if you want to overwrite the database for each module. As each module is already installed you should answer 'n' when asked.
If need be, you can force fnbl-get to download the latest version by setting the timestamp of the module archives back, by using the touch command:
touch -t 197001010101 ds-server/modules/bmclickatell.s4j touch -t 197001010101 ds-server/modules/groupdav-2.1.s4j