Hi,
work in progress here... will be updating this first post.
Been testing out SOGo and would like to extend functionality to my Android smart-phone: synchronise addressbook and calendar, todo etc.
Note that even without SOGo this will setup a fully functional SyncML server.
This how-to assumes you already have SOGo up and running.
Funambol will be installed in its default location: /opt/Funambol
Install Funambol (install with root privilidges)
| Code: |
mkdir /opt
cd /opt
wget http://sourceforge.net/projects/funambol/files/bundle%2Fv9%2Ffunambol-9.0.0.bin
sh funambol-9.0.0.bin
|
>> read and accept the licence agreement
>> accept the default directory to install Funambol to
>> do you want to start the server = no
If you answered last question with yes and started Funambol use the command below to stop it again:
| Code: |
sh /opt/Funambol/bin/funambol stop
|
Install needed components
| Code: |
cd /opt/Funambol/tools/tomcat/lib/
wget http://json-simple.googlecode.com/files/json_simple-1.1.jar
cd /tmp
wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.15.tar.gz/from/http://mirror.leaseweb.com/mysql/
tar -xf mysql-connector-java-5.1.15.tar.gz
mv /tmp/mysql-connector-java-5.1.15/mysql-connector-java-5.1.15-bin.jar /opt/Funambol/tools/jre-1.6.0/jre/lib/ext
cd /opt/Funambol/ds-server/modules
wget http://www.sogo.nu/uploads/Funambol/funambol-sogo-1.0.8.s4j
|
Create the MySQL database and user
| Code: |
mysql --user=root --password=[ROOTPASSWORD] mysql
CREATE DATABASE funambol;
CREATE USER 'funambol'@'localhost' IDENTIFIED BY '[FUNAMBOLPASSWORD]';
GRANT ALL PRIVILEGES ON `funambol` . * TO 'funambol'@'localhost' WITH GRANT OPTION ;
FLUSH PRIVILEGES;
exit
|
Change installation properties
| Code: |
nano /opt/Funambol/ds-server/install.properties
|
>> add "funambol-sogo-1.0.8" at the end of the "modules-to-install" line
>> replace dbms=hypersonic with dbms=mysql
change the MySQL settings as stipulated below
| Code: |
# MySQL
# =====
#
jdbc.classpath=/opt/Funambol/tools/jre-1.6.0/jre/lib/ext/mysql-connector-java-5.1.15-bin.jar
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/funambol?characterEncoding=UTF-8
jdbc.user=funambol
jdbc.password=[FUNAMBOLPASSWORD]
#
|
Comment out all the hypersonic settings
| Code: |
#jdbc.classpath=../tools/hypersonic/lib/hsqldb.jar
#jdbc.driver=org.hsqldb.jdbcDriver
#jdbc.url=jdbc:hsqldb:hsql://localhost/funambol
#jdbc.user=sa
#jdbc.password=
|
Rerun Funambol installation to implement configuration changes
| Code: |
cd /opt/Funambol/bin
sh install
|
>> Answer 'yes' to all questions
Autostart Funambol the ClearOS way
| Code: |
nano /etc/rc.d/init.d/funambol
|
paste the following contents and save
| Code: |
#!/bin/bash
#
# /etc/rc.d/init.d/funambol
#
# Sync Daemon for Contacts, Calendars and Tasks
#
# chkconfig: 2345 99 01
# description: Funambol Sync Service
# processname: funambol
# Source function library.
. /etc/init.d/functions
RETVAL=
start() {
echo -n "Starting funambol: "
/opt/Funambol/bin/funambol start
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
touch /var/lock/subsys/funambol
fi
}
stop() {
echo -n "Shutting down funambol: "
/opt/Funambol/bin/funambol stop
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
rm -f /var/lock/subsys/funambol
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
*)
echo "Usage: funambol {start|stop|reload|restart}"
exit 1
;;
esac
exit $RETVAL
|
set permissions:
| Code: |
chmod 755 /etc/rc.d/init.d/funambol
chown root:root /etc/rc.d/init.d/funambol
chkconfig --add funambol
|
you can now use the following command to start and stop funambol:
| Code: |
service funambol start | stop
|
Start Funambol and test if Funambol is running correct:
in your webbrowser: http://[yourservername]:8080/funambol
Configure Funambol - SOGo integration
For this you need to have funamboladmin running on your client, this is a java app and also comes with a windows .exe
please find below the steps involved for Ubuntu:
install the funamboladmin package or copy it from your ClearOS server (/opt/Funambol/admin/*)
set the JAVA-Home environment variable to hold you java location:
| Code: |
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
|
start funamboladmin with the following command:
| Code: |
sh [your path to funamboladmin directory]/admin/bin/funamboladmin
|
connect to your server and login: admin > password sa
goto [user] and press search, select the admin user acount and change password
reconnect to your server and login: admin > [yournewpassword]
In Server Setting > Engin set Officer to:
| Code: |
ca/inverse/sogo/security/SOGoOfficer.xml
|
save preferences
On your server edit the SOGoOfficer.xml
| Code: |
nano /opt/Funambol/config/ca/inverse/sogo/security/SOGoOfficer.xml
|
and change the portnumber
| Code: |
<void property="port">
<string>20000</string>
</void>
|
Add SOGo connectors under Modules > sogo > FunambolSOGOconnector >SOGo syncsource
| Code: |
Source URI: sogo-card
Name: sogo-card
Supported type: text/x-vcard
Database URL: jdbc://mysql://localhost/sogo
Database username: sogo
Database password: [yoursogopassword]
|
you can then do the same (and specify the same database connection information) for events
and tasks using sogo-cal and sogo-todo as sync source names and URI.
[WIPWIPWIPWIP]
Open firewall for port 8080
SyncML url = http://[yourserver]:8080/funambol/ds
You need an Android Funambol client with the possibility to manualy set remote names (otherwise it will not sync against SOGo but against your Funambol database), current is (debug) version 9.1 which can be found
HERE