Funambol

De DiouxX's Wiki
Révision datée du 30 mars 2013 à 13:01 par Ddevleeschauwer (discussion | contributions) (Page créée avec « == PostgreSQL == La base de données contiendra les infos nécessaires au fonctionnement de Funambol ainsi que vos données personnelles issues de la synchronisation. ==... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

PostgreSQL

La base de données contiendra les infos nécessaires au fonctionnement de Funambol ainsi que vos données personnelles issues de la synchronisation.

Installation

   Installez le gestionnaire de base de données en suivant le guide de PostgreSQL.
   Installez le paquet libpg-java du pilote JDBC (Java Database Connectivity) pour PostgreSQL nécessaire à la communication entre Java et la base.
   Installez, si vous le souhaitez, le client d'administration graphique PgAdmin III.

Base de données Funambol

Créez un utilisateur autorisé à se connecter à la base de données et à créer des tables. Il sera utilisé par Funambol pour accéder à la base qui contiendra les données. Saisissez funambol comme mot de passe :

$ sudo su postgres
$ createuser -S -D -R -P funambol
Saisissez le mot de passe pour le nouvel rôle : 
Saisissez-le à nouveau : 
CREATE ROLE

-S → pas un super-utilisateur -D → pas le droit de créer des bases -R → pas le droit de créer des rôles -P → demande un mot de passe pour l'utilisateur

Créez ensuite une base funambol dont l'utilisateur que l'on vient de créer sera le propriétaire (option -O pour owner) :

$ createdb -O funambol funambol
CREATE DATABASE

Intsallation Funambol

Télécharger la dernière version bundle de funambol

wget http://en.sourceforge.jp/projects/sfnet_funambol/downloads/bundle/v10/funambol-10.0.3-x64.bin/

On exécute l ebinaire

chmod +x funambol-10.0.3-x64.bin
./funambol-10.0.3-x64.bin

On accepte la license et le dossier d'installation est par défaut /opt/Funambol

A la fin de l'installation on répond non au lancement du serveur funambol

Parametrage Postgresql

On a besoin de télécharger le driver JDBC postgresql; Pour ce faire, on exécute la commande suivante :

Konsole.png
[root@ordi ~]# apt-get install libpg-java openjdk-7-jre


Une fois installé, on copie le jdbc dans le dossier d'installation de Funambol

Konsole.png
[root@ordi ~]# cp /usr/share/java/postgresql-jdbc4-9.1.jar /opt/Funambol/tools/postgresql/lib/


BlocNotes.png
À noter !
si les dossiers n'existe pas, on les crée


On édite le fichier /opt/Funambol/ds-server/install.properties pour spoécifier qu'on utilise une base PostgreSQL.

On modifie la ligne avec dbms

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

On commente les lignes concernant Hypersonic et on décommente celle de postgresql

# PostgreSQL
# ==========
#
 jdbc.classpath=/opt/Funambol/tools/postgresql/lib/postgresql-jdbc4-9.1.jar
 jdbc.driver=org.postgresql.Driver
 jdbc.url=jdbc:postgresql://IP:PORT/funambol
 jdbc.user=funambol
 jdbc.password=funambol

On crée l'utilisateur et groupe funambol

groupadd funambol
useradd -g funambol -d /opt/Funambol funambol
chmod 770 /opt/Funambol/

Script de demarrage


Warning.png
Attention !
Funambol n'est pas lancé au démarrage du serveur. Car il ne supporte pas cela


On crée un script pour démarrer/arrêter funambol

nano /etc/init.d/funambol
#!/bin/sh

cd `dirname $0`
FUNAMBOL_HOME=`(cd /opt/Funambol ; pwd)`
DS_SERVER_HOME=$FUNAMBOL_HOME/ds-server

if [ ! -d $FUNAMBOL_HOME/config ]; then
    #
    # maybe we are in Funambol/tool/bin
    #
    FUNAMBOL_HOME=$FUNAMBOL_HOME/..
    DS_SERVER_HOME=$FUNAMBOL_HOME/ds-server
fi

# Setting the JAVA_HOME to the JRE in the bundle if not set or if not correctly set
if [ -z "$JAVA_HOME" ]; then
    export JAVA_HOME=$FUNAMBOL_HOME/tools/jre-1.6.0/jre
else
    if [ ! -f "$JAVA_HOME/bin/java" ]; then
        export JAVA_HOME=$FUNAMBOL_HOME/tools/jre-1.6.0/jre
    fi
fi

if [ -z "$JAVA_HOME" ]; then
  echo "Please, set JAVA_HOME before running this script."
  exit 1
fi

if [ ! -f "$JAVA_HOME/bin/java" ]
then
    echo "Please set JAVA_HOME to the path of a valid jre."
    exit;
fi

export J2EE_HOME=${FUNAMBOL_HOME}/tools/tomcat
export CATALINA_HOME=${FUNAMBOL_HOME}/tools/tomcat

cd ${FUNAMBOL_HOME}

export LANG=en_US.utf-8

cd ${J2EE_HOME}/bin

COMED=false

case $1 in
start)

    if [ "$COMED" = "true" ] ; then
        #
        # Run Hypersonic
        #
        sh $FUNAMBOL_HOME/bin/hypersonic start > /dev/null
    fi

    #
    # Run CTP Server
    #
    sh $FUNAMBOL_HOME/bin/ctp-server start > /dev/null

    #
    # Run DS Server
    #
    sh $FUNAMBOL_HOME/bin/funambol-server start > /dev/null

    #
    # Run Inbox Listener
    #
    sh $FUNAMBOL_HOME/bin/inbox-listener start > /dev/null

    #
    # Run Pim Listener
    #
    sh $FUNAMBOL_HOME/bin/pim-listener start > /dev/null
    ;;
stop)
    #
    # Shutdown Inbox Listener
    #
    sh $FUNAMBOL_HOME/bin/inbox-listener stop > /dev/null

    #
    # Shutdown Pim Listener
    #
    sh $FUNAMBOL_HOME/bin/pim-listener stop > /dev/null

    #
    # Shutdown Tomcat
    #
    sh $FUNAMBOL_HOME/bin/funambol-server stop > /dev/null

    #
    # Shutdown CTP Server
    #
    sh $FUNAMBOL_HOME/bin/ctp-server stop > /dev/null

    if [ "$COMED" = "true" ] ; then
        #
        # Shutdown Hypersonic
        #
        sh $FUNAMBOL_HOME/bin/hypersonic stop > /dev/null
    fi
    ;;
license)
    less "${FUNAMBOL_HOME}/LICENSE.txt"
    ;;
*)
    echo "usage: $0 [start|stop|license]"
    ;;
esac

On aoute le script au démarrage et arrêt du système

Konsole.png
[root@ordi ~]# update-rc.d funambol defaults


Sogo connector

Avant d'installer le connecteur sogo, funambol a besoin de dépendances que l'on doit installer. Ces dépendances peuvent être téléchargée depuis :

http://commons.apache.org/

et copier dans le dossier /opt/Funambol/tools/tomcat/lib/

collections (v3.2.1)

wget http://apache.cu.be//commons/collections/binaries/commons-collections-3.2.1-bin.tar.gz
tar -xzf commons-collections-3.2.1-bin.zip
cp -p commons-collections-3.2.1/commons-collections-3.2.1.jar /opt/Funambol/tools/tomcat/lib/
rm -rf commons-collections-3.2.1
configuration (v1.6)

wget http://apache.cu.be//commons/configuration/binaries/commons-configuration-1.9-bin.tar.gz
tar -xzf commons-configuration-1.6.zip
cp -p commons-configuration-1.6/commons-configuration-1.6.jar /opt/Funambol/tools/tomcat/lib/
rm -rf  commons-configuration-1.6
logging (v1.1)

wget http://apache.cu.be//commons/logging/binaries/commons-logging-1.1.1-bin.tar.gz
tar -xzf commons-logging-1.1.1-bin.tar.gz
cp -p commons-logging-1.1.1/commons-logging-1.1.1.jar /opt/Funambol/tools/tomcat/lib/
rm -rf  commons-logging-1.1.1
lang (v2.4)

wget http://apache.cu.be//commons/lang/binaries/commons-lang3-3.1-bin.tar.gz
tar -xzf commons-lang3-3.1-bin.tar.gz
cp -p commons-lang3-3.1/commons-lang-3-3.1.jar /opt/Funambol/tools/tomcat/lib/
rm -rf commons-lang3-3.1
json-simple

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

Installation et configuration

On télécharge le connecteur Sogo

wget http://www.sogo.nu/uploads/Funambol/funambol-sogo-1.0.9.s4j
cp funambol-sogo-1.0.9.s4j /opt/Funambol/ds-server/modules

On édite le fichier /opt/Funambol/ds-server/install.properties pour ajouter à l afin de la ligne "modules-to-install" funambol-sogo-1.0.9

Installation des modules et création des tables funambol

Maintenant que Funambol et le connecteur sogo est connecté, on peux lancer l'installation de Funambol

cd /opt/Funambol/
./bin/install

On repond Oui à toutes les questions

On réattribue, par sureté, les bon propriétaire au dossier funambol

Konsole.png
[root@ordi ~]# chown -R funambol:funambol /opt/Funambol/

On peux démarrer Funambol pour tester qu'il s'est bien installé:

Konsole.png
[root@ordi ~]# /etc/init.d/funambol start


On se rend à l'adresse suivante pour s'assurer du bon fonctionnement

http://<server_domain_name>:8080/funambol/ds

Une fois fais, on peux éteindre funambol avant de poursuivre

Création des SOGo Sync Sources

On doit insérer 3 champs dans la table fnbl_sync_source

INSERT INTO `fnbl_sync_source` (`uri`, `config`, `name`, `sourcetype`) VALUES
('sogo-cal', 'sogo/sogo/sogo/sogo-cal.xml', 'sogo-cal', 'sogo'),
('sogo-card', 'sogo/sogo/sogo/sogo-card.xml', 'sogo-card', 'sogo'),
('sogo-todo', 'sogo/sogo/sogo/sogo-todo.xml', 'sogo-todo', 'sogo');

Configuration de la syncronisation des calendar

mkdir -p /opt/Funambol/config/sogo/sogo/sogo
cd /opt/Funambol/config/sogo/sogo/sogo

nano sogo-cal.xml

Adapter les informations userdb,passwd,ip serveur.

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.7.0_09" class="java.beans.XMLDecoder">
 <object class="ca.inverse.sogo.engine.source.SOGoSyncSource">
  <void property="databasePassword">
   <string>sogo</string>
  </void>
  <void property="databaseURL">
   <string>jdbc:postgresql://IP:PORT/sogo</string>
  </void>
  <void property="databaseUsername">
   <string>sogo</string>
  </void>
  <void property="info">
   <object class="com.funambol.framework.engine.source.SyncSourceInfo">
    <void property="supportedTypes">
     <array class="com.funambol.framework.engine.source.ContentType" length="1">
      <void index="0">
       <object class="com.funambol.framework.engine.source.ContentType" id="ContentType0">
        <void class="com.funambol.framework.engine.source.ContentType" method="getField">
         <string>type</string>
         <void method="set">
          <object idref="ContentType0">
           <void class="com.funambol.framework.engine.source.ContentType" method="getField">
            <string>version</string>
            <void method="set">
             <object idref="ContentType0"/>
             <string>1</string>
            </void>
           </void>
          </object>
          <string>text/x-vevent</string>
         </void>
        </void>
       </object>
      </void>
     </array>
    </void>
   </object>
  </void>
  <void property="name">
   <string>sogo-cal</string>
  </void>
  <void property="sourceURI">
   <string>sogo-cal</string>
  </void>
 </object>
</java>

Configuration de la syncro contacts

nano sogo-card.xml

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.7.0_09" class="java.beans.XMLDecoder">
 <object class="ca.inverse.sogo.engine.source.SOGoSyncSource">
  <void property="databasePassword">
   <string>sogo</string>
  </void>
  <void property="databaseURL">
   <string>jdbc:postgresql://IP:PORT/sogo</string>
  </void>
  <void property="databaseUsername">
   <string>sogo</string>
  </void>
  <void property="info">
   <object class="com.funambol.framework.engine.source.SyncSourceInfo">
    <void property="supportedTypes">
     <array class="com.funambol.framework.engine.source.ContentType" length="1">
      <void index="0">
       <object class="com.funambol.framework.engine.source.ContentType" id="ContentType0">
        <void class="com.funambol.framework.engine.source.ContentType" method="getField">
         <string>type</string>
         <void method="set">
          <object idref="ContentType0">
           <void class="com.funambol.framework.engine.source.ContentType" method="getField">
            <string>version</string>
            <void method="set">
             <object idref="ContentType0"/>
             <string>1</string>
            </void>
           </void>
          </object>
          <string>text/x-vcard</string>
         </void>
        </void>
       </object>
      </void>
     </array>
    </void>
   </object>
  </void>
  <void property="name">
   <string>sogo-card</string>
  </void>
  <void property="sourceURI">
   <string>sogo-card</string>
  </void>
 </object>
</java>

Configuration de la syncro todo

nano sogo-todo.xml

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.7.0_09" class="java.beans.XMLDecoder">
 <object class="ca.inverse.sogo.engine.source.SOGoSyncSource">
  <void property="databasePassword">
   <string>sogo</string>
  </void>
  <void property="databaseURL">
   <string>jdbc:postgresql://IP:PORT/sogo</string>
  </void>
  <void property="databaseUsername">
   <string>sogo</string>
  </void>
  <void property="info">
   <object class="com.funambol.framework.engine.source.SyncSourceInfo">
    <void property="supportedTypes">
     <array class="com.funambol.framework.engine.source.ContentType" length="1">
      <void index="0">
       <object class="com.funambol.framework.engine.source.ContentType" id="ContentType0">
        <void class="com.funambol.framework.engine.source.ContentType" method="getField">
         <string>type</string>
         <void method="set">
          <object idref="ContentType0">
           <void class="com.funambol.framework.engine.source.ContentType" method="getField">
            <string>version</string>
            <void method="set">
             <object idref="ContentType0"/>
             <string>1</string>
            </void>
           </void>
          </object>
          <string>text/x-vtodo</string>
         </void>
        </void>
       </object>
      </void>
     </array>
    </void>
   </object>
  </void>
  <void property="name">
   <string>sogo-todo</string>
  </void>
  <void property="sourceURI">
   <string>sogo-todo</string>
  </void>
 </object>
</java>

Auto-create Funambol user accounts

On édite la configuration de Funambol

nano /opt/Funambol/config/Funambol.xml

On change les paramètre officer

   <void property="officer">
    <string>ca/inverse/sogo/security/SOGoOfficer.xml</string>
   </void>

On crée le fichier SOGoOfficer.xml

nano /opt/Funambol/config/ca/inverse/sogo/security/SOGoOfficer.xml

on modifie :

<?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>localhost</string>
    </void>
    <void property="port">
      <string>20000</string>
    </void>
  </object>
</java>

On réassigne l'utilisateur funambol

Konsole.png
[root@ordi ~]# chown -R funambol:funambol /opt/Funambol/


Funambol Client Configuration

The URL for accessing the Funambol server from mobile devices is:

http://<server_domain_name>:8080/funambol/ds

Client

BlackBerry

Ouvrir le navigateur du blackberry

Inscrire l'adresse suivante (http://my.funambol.com/bb/sync45.jad (OS =< 4.5)) ou (http://my.funambol.com/bb/sync47.jad (OS >= 4.7))

Iphone

Calendrier

Calendar

Settings->Add Account->Other->Add CalDAV Account

Serveur: NOM DNS/IP SOGO
Utilisateur: nomUser
Mot de passe: mot de passe
Description: description souhaité ( on peux laisser par défaut )

Quand on accepte la connexion, une fenêtre apparait "Connexion impossible avec SSL"

Fermer le pop-up et allez dans Réglages avancés

Utiliser SSL: ON
Port: 443
URL du compte: https://IP OU NOM DNS:443/SOGo/dav/nomUser


Warning.png
Attention !
La case a de l'importance utilisez bien SOGo