Funambol for SOGo on Debian

Quoting it’s website, Funambol is a mobile open source platform (that) can be used for many types of mobile applications, including push email, PIM data synchronization and device management.

I will “simply” going to use it to synchronize calendars and contacts between SOGo and Microsoft Outlook.

Here are the technical directions:

  • I installed a Debian GNU/Linux 5 domU ;
  • download and run the funambol-9.0.0.bin.sh script. The default installation creates /opt/Funambol ;
  • start the server daemon as prompted by the installation process ;
  • check the server status browsing to http://funambol.tumfatig.net:8080/funambol/ ;

The administration console is available here: /opt/Funambol/admin/bin/funamboladmin.
If you Debian system has X-Window installed, then you can run it from there. If not, but you wish to install X11 on a server, run:

# apt-get install x-window-system

which will installed a minimal graphical environment. What I personally do is run the command from a workstation with a X server, through a SSH session with X11 forwarding enabled.

Should you want to change the default password, which is admin/sa, you can use the Funambol Administration Tool. Expand the servername node, select the “Users” node and search for the “admin” user. Edit the object, change the password and apply the changes.

Configure Tomcat to use MySQL and Funambol to know SOGo:

  • stop the Funambol server:

    # /opt/Funambol/bin/funambol stop 

  • download JDBC driver for MySQL:

    # wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.16.tar.gz/from/ftp://mirrors.ircam.fr/pub/mysql/
    # cp -p mysql-connector-java-5.1.16-bin.jar /opt/Funambol/tools/tomcat/lib/ 

  • download JSON.simple package:

    # wget http://json-simple.googlecode.com/files/json_simple-1.1.jar
    # cp -p json_simple-1.1.jar /opt/Funambol/tools/tomcat/lib/ 

  • download and configure the Funambol / SOGo module:

    # http://www.sogo.nu/uploads/Funambol/funambol-sogo-1.0.8.s4j
    # diff /opt/Funambol/ds-server/install.properties.orig /opt/Funambol/ds-server/install.properties
    72c72
    < modules-to-install=content-provider-9.0.0,email-connector-9.0.0,foundation-9.0.0,phones-support-9.0.0,webdemo-9.0.0

    > modules-to-install=content-provider-9.0.0,email-connector-9.0.0,foundation-9.0.0,phones-support-9.0.0,webdemo-9.0.0,funambol-sogo-1.0.8

  • start the Funambol daemon:

    # /opt/Funambol/bin/funambol start

  • install the SOGo module:

    # cd /opt/Funambol && ./bin/install-modules

    answering “yes” to all the questions ;

  • start the “Funambol Administration Tool” and go to Modules > sogo > FunambolSOGoConnector > SOGo SyncSource ;
  • create the calendars (“sogo-cal”), contacts (“sogo-card”) and tasks (“sogo-todo”) data sources
    • Source URI: sogo-card
    • Name: sogo-card
    • Supported type: text/x-vcard
    • Database URL: jdbc:mysql://mysqlserver.tld/sogodb
    • Database username: sogologin
    • Database password: sogopass
  • from the “Funambol Administration Tool”, browse to the “Server Settings” and set the “Officer” to the ca/inverse/sogo/security/SOGoOfficer.xml value ;
  • edit the Officer file to reference your SOGo server:
    # vi /opt/Funambol/config/ca/inverse/sogo/security/SOGoOfficer.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <java version="1.4.0">
    	<object>
    		<void property="host">
    			<string>sogo.tumfatig.net</string>
    		</void>
    		<void property="port">
    			<string>20000</string>
    		</void>
    	</object>
    </java>
    

Don’t forget the set the access permissions on the MySQL server and to FLUSH PRIVILEGES. Then, the Funambol server should be able to interact with the SOGo server and the clients.

Using the Funambol client, I was able to synchronise the contacts from an iPhone.
Dealing with Microsoft Outlook, so far, 2003 and 2007 synchronize calendars, contacts and tasks. The only trick is to configure the “sogo-cal”, “sogo-card” and “sogo-todo” sources.

That’s All Folks!

No Comments

Leave a Reply

%d bloggers like this: