Table des matières

Installation de Funambol

(doc en cours de rédaction…)

Funambol permet de synchroniser SOGo avec des téléphones portables.

Récupération du programme de Funambol sur le site officiel :

https://www.forge.funambol.org/download/

Nous prenons la version : funambol-10.0.2-x64.bin

Nous allons gérer Funambol avec une base Mysql.

Je vous laisse créer la base ainsi que l'utilisateur qui va gérer la base sur mysql.

Nous en aurons besoin plus tard dans la configuration de funambol.

Reste à lancer le programme.

L'installation se fait par défaut dans le répertoire /opt, ce qui nous va bien.

A la question si vous souhaitez lancer le serveur, répondez no.

Nous le lancerons plus tard après l'avoir configurer correctement.

Configuration du serveur

Ajout des connecteurs pour SOGo et mysql :

il faut récupérer sur le net les fichiers qui vont bien :

* funambol-sogo-1.0.8.s4j (le connecteur pour SOGo)

* mysql-connector-java-5.1.16.tar.gz (le connecteur pour mysql)

Configuration du connecteur mysql :

extraire les fichiers de l'archive pour mysql :

tar zxf mysql-connector-java-5.1.16.tar.gz

copie du fichier dans le bon répertoire :

cp mysql-connector-java-5.1.16/mysql-connector-java-5.1.16-bin.jar /opt/Funambol/ds-server/lib/

nous pouvons supprimer le répertoire de l'archive car nous n'en avons pas besoin :

rm -r mysql-connector-java-5.1.16

Édition du fichier /opt/Funambol/ds-server/install.properties et y mettre :

# ==============================================================================
# Funambol Data Synchronization Server
# ==============================================================================
# Installation properties
# ==============================================================================

#
# The server URI
#
# This parameter is optional: if empty the server will use the
# client request uri
#
server-uri=http://serveur_funambol:8080/funambol/ds

# The context path to use to access SyncServer
context-path=/funambol

#
# The DBMS name. One of:
#   - hypersonic
#   - postgresql
#   - mysql
#
dbms=mysql

#
# MySQL
# =====
#
 jdbc.classpath=/opt/Funambol/ds-server/lib/mysql-connector-java-5.1.16-bin.jar
 jdbc.driver=com.mysql.jdbc.Driver
 jdbc.url=jdbc:mysql://ip_serveur_mysql:port/funambol?characterEncoding=UTF-8
 jdbc.user=user_qui_va_bien_sur_la_base_mysql
 jdbc.password=password_du_user
#
#

#
# Modules definitions
#
modules-to-install=content-provider-10.0.0,email-connector-10.0.0,foundation-10.0.0,phones-support-10.0.0,webdemo-10.0.0,funambol-sogo-1.0.8

où : server-uri est l'adresse de connexion de votre serveur funambol (remplacer serveur_funambol par votre serveur) et il faut bien sûr mettre les bonnes infos de connexion à mysql.

Modification du fichier /opt/Funambol/ds-server/modules-classpath.properties et y mettre :

#Wed Jul 27 11:46:00 CEST 2011
modules-classpath=\ content-provider-10.0.0/lib/content-provider-10.0.0.jar email-connector-10.0.0/lib/email-connector-10.0.0.jar foundation-10.0.0/lib/foundation-10.0.0.jar phones-support-10.0.0/lib/phones-support-10.0.0.jar webdemo-10.0.0/lib/webdemo-10.0.0.jar funambol-sogo-1.0.8/lib/funambol-sogo-1.0.8.jar
Configuration du connecteur SOGo :

il faut copier le fichier funambol-sogo-1.0.8.s4j dans le bon répertoire :

cp funambol-sogo-1.0.8.s4j /opt/Funambol/ds-server/modules/

Modification du ficher /opt/Funambol/config/Funambol.xml et y mettre :

<?xml version="1.0" encoding="UTF-8" ?>
<java version="1.4.2" class="java.beans.XMLDecoder">
    <object class="com.funambol.server.config.ServerConfiguration">
        <void property="engineConfiguration">
            <object class="com.funambol.server.config.EngineConfiguration">
                <void property="officer">
                    <!--
                     <string>com/funambol/server/security/UserProvisioningOfficer.xml</string>
                    -->
                    <string>ca/inverse/sogo/security/SOGoOfficer.xml</string>
                </void>
                <void property="serverURI">
                    <string>http://serveur_funambol:8080/funambol/ds</string>
                </void>
                <void property="sessionHandler">
                    <string>com.funambol.server.session.SyncSessionHandler</string>
                </void>
                <void property="strategy">
                    <string>com/funambol/server/engine/Strategy.xml</string>
                </void>
                <void property="userManager">
                    <string>com/funambol/server/admin/DBUserManager.xml</string>
                </void>
                <void property="minMaxMsgSize">
                    <long>1800</long>
                </void>
                <void property="deviceInventory">
                    <string>com/funambol/server/inventory/PSDeviceInventory.xml</string>
                </void>
                <void property="dataTransformerManager">
                    <string>com/funambol/server/engine/transformer/DataTransformerManager.xml</string>
                </void>
                <void property="checkForUpdates">
                    <boolean>true</boolean>
                </void>
            </object>
        </void>
        <void property="serverInfo">
            <object class="com.funambol.framework.core.DevInf">
                <object class="com.funambol.framework.core.VerDTD">
                    <!-- verDTD                 -->
                    <string>1.2</string>
                </object>
                <!-- man                    -->
                <string>Funambol</string>
                <!-- mod                    -->
                <string>DS Server</string>
                <!-- oem                    -->
                <string>-</string>
                <!-- fwV                    -->
                <string>-</string>
                <!-- swV                    -->
                <string>10.0.0</string>
                <!-- hwV                    -->
                <string>-</string>
                <!-- devID                  -->
                <string>funambol</string>
                <!-- devTyp                 -->
                <string>server</string>
                <!-- utc                    -->
                <boolean>true</boolean>
                <!-- supportLargeObjs       -->
                <boolean>true</boolean>
                <!-- supportNumberOfChanges -->
                <boolean>true</boolean>
                <array class="com.funambol.framework.core.DataStore" length="0"/>
                <array class="com.funambol.framework.core.Ext" length="1">
                   <void index="0">
                    <object class="com.funambol.framework.core.Ext">
                        <string>X-funambol-smartslow</string>
                        <array class="java.lang.String" length="0"/>
                    </object>
                  </void>
                </array>
            </object>
        </void>
    </object>
</java>

Ceci afin de modifier le Officer et y mettre celui de SOGo.

Attention au serverURI qu'il faut adapter en fonction.

Création du fichier SOGoOfficer :

mkdir -p /opt/Funambol/config/ca/inverse/sogo/security
vi /opt/Funambol/config/ca/inverse/sogo/security/SOGoOfficer.xml

et y mettre :

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.4.0" class="java.beans.XMLDecoder">
    <object class="ca.inverse.sogo.security.SOGoOfficer">

        <void property="host">
            <string>serveur_internet</string>
        </void>
        <void property="port">
            <string>20000</string>
        </void>

    </object>
</java>

où serveur_internet doit contenir le serveur d'accès à internet s'il n'est pas sur la même machine, sinon, localhost.