Sychlora Server - Serveur d'hébergement expérimental

Serveur d'Hébergement Expérimental

Auto-hébergement

Synchronisation des contacts avec SyncML

16/01/2012 22:43

La plupart des téléphones récents possèdent leur propre système de synchronisation pour garder sur son ordinateur une copie de ses contacts, fichiers, messages, tâches, mémos, etc.
Malheureusement ceux-ci utilisent souvent des applications propriétaires avec tous les défauts qu'on leur connaît (logiciel différents pour chaque fabricant, voire même pour chaque modèle de téléphone, nouvelles applications plutôt que nouvelles versions, ou encore manque de rétro-compatibilité).

D'autres smartphones s'intégreront parfaitement à un compte GMail pour y synchroniser automatiquement tous ces éléments sur les serveurs de Google. Malheureusement, les précédents inconvénients disparaissent pour laisser place à de nouveaux : aucune idée sur le traitement fait aux données personnelles, publicité ciblée (essayez de placer "Sangoku" dans un e-mail, vous verrez), aucune transparence sur le protocole utilisé, etc.

Plusieurs solution Libres et/ou Open-source sont alors possibles pour palier à tout ça, la plus répandue étant SyncML (Synchronization Markup Language), implémentée en Java par Funambol Server. Comme beaucoup d'entreprises contribuant au logiciel libre, la Funambol Inc. propose une version libre de son logiciel (la Community Edition) et une version commerciale (avec support et développements spécifiques).
Funambol Server est disponible sous Linux et Windows sous forme d'un bundle (Tomcat Server, Base de données Hypersonic, et le reste programmé en JAVA) mais chaque élément peut être installé séparément à la main.
Sous Linux, le bundle contient un installeur en lignes de commandes quasiment automatique, ce qui rend l'installation très simple et rapidement fonctionnelle. Cette installation est suffisamment détaillée sur cette page http://doc.ubuntu-fr.org/funambol de la Doc Ubuntu. Il existe également de nombreux connecteurs permettant de synchroniser les données avec de nombreux périphériques et autres serveurs.

Plusieurs scénarios sont imaginables à partir de ce concept. Tous les téléphones récents équipés de Wifi pourront être configurés pour se synchroniser automatiquement avec le serveur Funambol. Pour les personnes utilisant 2 téléphones (un pour le travail, l'autre privé), le protocole SyncML pourra être utilisé pour les synchroniser via le serveur Funambol, ou même tout simplement pour faire une sauvegarde de tous vos contacts avant de changer de téléphone (ou en cas de panne) !
Un serveur web étant utilisé, il est même possible que n'importe quel téléphone avec un forfait data (par exemple) puisse se synchroniser même sans un point d'accès Wifi.

La suite de cet article détaille l'installation du serveur Funambol version 10.0.3 x86 sous Ubuntu 10.04 LTS (cette même procédure fonctionne également avec la version 9.0.0 de Funambol).

Pour l'installation, il faudra télécharger le package approprié ici : http://sourceforge.net/projects/funambol/files/bundle/v10/
(Ne pas hésiter à vérifier s'il existe une version plus récente ici : http://download.forge.objectweb.org/sync4j/ ou là : https://www.forge.funambol.org/download/)

Lancer l'installation simplement avec un sudo sh ./emplacement_du_fichier sous Ububntu.

Sous Ubuntu ou Debian, un fichier /etc/init.d/funambol pourra être créé avec le contenu suivant :
#!/bin/sh
cd '/opt/Funambol/bin/'
/bin/su -s /bin/bash -l root /opt/Funambol/bin/funambol $1
cd '/etc/init.d'


Suivi d'un sudo chmod +x /etc/init.d/funambol pour le rendre exécutable.

Le serveur Funambol pourra alors être lancé manuellement avec la commande sudo /etc/init.d/funambol start. Pour pouvoir le lancer automatiquement au démarrage du serveur, il faudra utiliser la commande update-rc.d funambol defaults qui va créer automatiquement des liens dans les différents dossiers /etc/rc*.d/ .

Pour vérifier que le serveur s'est bien lancé au démarrage : ps -aux | grep funambol devrait renvoyer 3 processus ou bien visiter la page http://serveur:8080/funambol/ds/ avec un navigateur classique.

La gestion des utilisateurs se fait via l'interface graphique d'administration à installer à partir de cette adresse pour Windows : http://sourceforge.net/projects/funambol/files/admin-tool/v10/funambol-admin-10.0.0.exe/download ; ou via la commande sudo /opt/Funambol/admin/bin/funamboladmin sous Linux.
La première connexion se fera avec l'utilisateur admin, et le mot de passe sa. Il est bien sûr possible de créer un autre administrateur avec un autre login pour supprimer ce compte d'origine. Plusieurs utilisateurs peuvent utiliser le même serveur Funambol, aucune limitation quant au nombre de périphériques utilisés par un même utilisateur. Il n'est pas nécessaire de créer manuellement la liste des utilisateurs et périphériques, ils s'ajoutent automatiquement lors de la première synchronisation.

Plus d'informations sur le fonctionnement de l'interface graphique dans le manuel Funambol disponible à cette adresse : http://download.forge.objectweb.org/sync4j/Funambol-installation-and-administration-guide-v9.0.pdf (à partir du chapitre 4 - page 12).

Sur un téléphone mobile possédant ou non une connexion wifi, la configuration se fera avec les paramètres suivants :
Serveur de synchronisation : http://serveur:8080/funambol/ds/ ;
Login : Nom de l'utilisateur ou de l'administrateur précédemment créé ;
Mot de passe : Son mot de passe.

Exemple de configuration d'un smartphone

Note: Le port 8080 utilisé par défaut peut être changé dans le fichier de configuration de Tomcat : /opt/Funambol/tools/tomcat/conf/server.xml ou peut être facilmement routé par votre box Internet.

Les catégories à synchroniser sont définies de cette manière (cette configuration fonctionne, mais devra peut-être être modifiée en fonction du téléphone :
- card pour les contacts ;
- cal pour le calendrier ;
- task pour les tâches ;
- note pour les mémos.

Sur les smartphones, plusieurs applications semblent être capables d'utiliser ce protocole de synchronisation sous Android (Funambol sync : https://market.android.com/details?id=com.funambol.androidsync - à partir de la version 2.0) mais aussi sous Windows mobile et Symbian.

Attention, après la première synchronisation, le changement d'adresse du serveur semble poser problème. La même adresse http://serveur:8080/funambol/ds/ devra être utilisée par tous les périphériques à synchroniser (sinon des erreurs de certificat ou de serveur introuvable apparaîtront sur les périphériques, et des erreurs d'authentification dans les logs du serveur). Si l'adresse du serveur doit changer, le plus simple est de supprimer l'utilisateur sur le serveur, et utiliser le mode "Récupération depuis le téléphone" lors de la première synchronisation.

En cas de doute sur la synchronisation avec le téléphone, les logs côté serveur se situent principalement ici : /opt/Funambol/logs/ds-server/ds-server.log .
Le plus simple est d'utiliser la commande tail -f /opt/Funambol/logs/ds-server/ds-server.log et lancer la synchronisation sur le téléphone. Ainsi il est possible de vérifier où se situe le problème (ne pas hésiter non plus à activer progressivement chaque catégorie de la synchronisation pour changer les paramètres si besoin).

De la même manière que pour les téléphones, il existe sous Windows et Linux plusieurs solutions, en particulier le plugin Funambol pour Thunderbird ( page du projet : http://sourceforge.net/projects/sync4jmozilla/, ou juste le plugin, ici sur Sychlora : funambol-mozilla-sync-client-linux-1_0b4.xpi ) qui permet pour l'instant la synchronisation d'un répertoire de contacts en SyncML, et qui permettra plus tard de synchroniser également les rendez-vous et les tâches.
Il est donc possible d'importer les contacts de n'importe quel carnet d'adresse ou tableur compatible avec l'outil d'import de Thunderbird pour les synchroniser avec votre appareil mobile.

Après avoir installé ce plugin dans Thunderbird, créer un nouveau carnet d'adresses. Il sera utilisé pour cette synchronisation avec les périphériques mobiles.
La configuration du plugin Funambol se fait dans le menu Outils > Funambol Sync (à partir de l'écran principal de Thunderbird, ce lien n'existant pas sur l'écran des carnets d'adresses...).

Ouvrir le menu Outils > Options de la fenêtre du plugin Funambol, et y configurer les mêmes informations que sur l'appareil synchronisé.

Dans le second onglet, il faudra choisir le carnet d'adresse qui vient d'être créé afin de ne pas mélanger les contacts mails avec ceux du téléphone, ici la base de données utilisée pour les contacts est card.

Pour importer tous les contacts du serveur vers Thunderbird, utiliser le menu Outils > Recover, et choisir la seconde option. Une fois validé, l'import des contacts se fera automatiquement.

Si tout se passe bien jusque là, il est désormais possible de créer ou modifier un contact dans Thunderbird et après avoir tout synchronisé à nouveau, ce contact sera créé ou modifié sur le téléphone. L'import d'un tableau de contact ou le copier-coller sont également possibles directement dans Thunderbird, ce qui sera plus pratique et plus rapide que l'utilisation d'un clavier à 10 touches !

Sources :
http://en.wikipedia.org/wiki/SyncML
http://doc.ubuntu-fr.org/funambol
http://ubuntuforums.org/showthread.php?t=1488582

3 commentaires - Ajouter un commentaire