N900 : Synchronisation avec Horde Groupware

Le but de cette synchronisation est de pouvoir accéder et modifier via une interface web agréable (surtout avec le thème Silver Surfer) aux contacts, notes, tâches et calendrier et de synchroniser le tout en gardant une base commune.

Pré-requis :

  • Un serveur LAMP avec Horde Groupware (Webmail ou non)
  • Syncevolution (dépôts extras-testing)

Configuration syncevolution

Syncevolution propose un assistant graphique pour créer facilement un profil de synchronisation en quelques clics en utilisant des templates prédifinis (funambol, memotoo, google, etc).

Néanmoins,pour mieux comprendre le fonctionnement, nous allons créer manuellement les 5 fichiers de configuration.

On crée un profil horde avec les dossiers suivants :

$ mkdir /home/user.config/syncevolution/horde
$ mkdir /home/user.config/syncevolution/horde/sources/

On crée le fichier de configuration principal /home/user/.config/syncevolution/horde/config.ini :

syncURL = https://monserveur.tld/horde/rcp.php
username = votre_user
password = votre_password
printChanges = 0
deviceId = my-n900-xxxyyy
SSLVerifyServer = 0 
SSLVerifyHost = 0
WebURL = https://monserveur.tld/horde/

Si vous partez d'un template existant, le point essentiel dans une configuration horde est de modifier dans le début du champ deviceId sc-pim-xxx…xxx comme par exemple my-n900-xxx…xxx . Dans le cas contraire, un bug vous empêchera de synchroniser les éléments de horde vers le téléphone.

Définition des sources à synchroniser

L'une des limitations principales de cette solution est qu'un seul calendrier du téléphone peut être synchronisé. Il existe une solution de contournement (partielle) à ce problème qui sera exposée plus loin

Les sources définies ci-dessous sont celles par défaut du téléphone.

Carnet d'adresses

Crée le dossier adhoc :

$ mkdir /home/user.config/syncevolution/horde/sources/addressbook

Ainsi que le fichier de configuration /home/user/.config/syncevolution/horde/sources/addressbook/config.ini contenant :

sync = two-way
type = addressbook
uri = card

La synchronisation des contacts entre le N900 et Horde n'est pas parfaite. Mettez vos contacts à jour en fonction des éléments ci-dessous (les champs barrés correspondent à ceux ne se synchronisant pas avec Horde) :

  • Prénom
  • Nom
  • Nom complet
  • Pseudonyme
  • E-mail
  • E-mail (privé)
  • E-mail (bureau)
  • Mobile
  • Mobile (privé)
  • Mobile (bureau)
  • Anniversaire
  • Adresse
  • Adresse (Privé)
  • Adresse (Bureau)
  • Téléphone
  • Teléphone (privé)
  • Téléphone (bureau)
  • Téléphone (fax)
  • Profession
  • Société
  • Notes
  • Page Web
  • Photo

Tous les informations liées à la messagerie instantanée (Gtalk, skype, etc.) ne sont pas synchronisées.

Agenda

Crée le dossier adhoc :

$ mkdir /home/user.config/syncevolution/horde/sources/calendar

Ainsi que le fichier de configuration /home/user/.config/syncevolution/horde/sources/calendar/config.ini contenant :

sync = two-way
type = calendar:text/calendar!
uri = event

Tâches

Crée le dossier adhoc :

$ mkdir /home/user.config/syncevolution/horde/sources/todo

Ainsi que le fichier de configuration /home/user/.config/syncevolution/horde/sources/todo/config.ini contenant :

sync = two-way
type = todo:text/calendar!
uri = task

Notes

Crée le dossier adhoc :

$ mkdir /home/user.config/syncevolution/horde/sources/memo

Ainsi que le fichier de configuration /home/user/.config/syncevolution/horde/sources/memo/config.ini contenant :

sync = two-way
type = memo
uri = note

Lancement de la synchronisation

$ syncevolution horde

Ajout de source supplémentaire

Il est possible de synchroniser d'autre source en créant un nouveau profil. Néanmoins, nous sortons du fonctionnement normal de l'application horde et les risques de dysfonctionnement sont nombreux (notamment les doublons).

Ici, on prend l'exemple du calendrier ecocach.

Création d'un nouveau profil

On crée un profil horde_ecoach avec les dossiers suivants :

$ mkdir /home/user.config/syncevolution/horde_ecoach
$ mkdir /home/user.config/syncevolution/horde_ecoach/sources/

On récupère le fichier de configuration du profil horde

$ cp /home/user/.config/syncevolution/horde/config.ini /home/user/.config/syncevolution/horde_ecoach/config.ini 

Il est essentiel que le deviceId soit identique entre les 2 profils pour éviter de se retrouver avec des doublons dans tous les sens.

Il faut maintenant identifier la référence du calendrier de ecoach en lançant syncevolution sans paramètre :

$ syncevolution
 
Evolution Address Book = Evolution Contacts = evolution-contacts: 
<<system>> (file:///home/user/.osso-abook/db) <default> 
 
Maemo Calendar = maemo-events: 
N900 (id:1) <default> 
cal_ti_calendar_private (id:2) 
Anniversaires (id:3) 
Boulot (id:4) 
eCoach activities (id:5) 
 
Maemo Tasks = maemo-tasks: 
N900 (id:1) <default> 
cal_ti_calendar_private (id:2) 
Anniversaires (id:3) 
Boulot (id:4) 
eCoach activities (id:5) 
 
Maemo Notes = maemo-notes: 
N900 (id:1) <default> 
cal_ti_calendar_private (id:2) 
Anniversaires (id:3) 
Boulot (id:4) 
eCoach activities (id:5) 

Exemple : Agenda ecoach

On sait donc que le calendrier ecoach est identifié par eCoach activities (id:5)

On crée le dossier adhoc pour le calendrier :

$ mkdir /home/user.config/syncevolution/horde_ecoach/sources/calendar

Ainsi que le fichier de configuration /home/user/.config/syncevolution/horde_ecoach/sources/calendar/config.ini contenant :

sync = two-way
type = calendar:text/calendar!
evolutionsource = id:5
uri = event

A l'heure actuelle, Horde ne sait gérer qu'un seul calendrier de synchronisation. Il n'existe donc pas de méthode de synchronisation sans impact pour cette nouvelle ressource. En effet :

  • sync = two-way

Si vous créez un événement sur horde, il sera ajouté sur le téléphone dans le prochain calendrier à se synchroniser. De plus, la 1ère synchronisation va créer un doublon sur le téléphone pour chaque événement déjà présent sur horde.

  • sync = refresh-from-client

Si vous modifiez un événement sur horde (ex : affecter à une catégorie), un doublon sera crée sur horde à la synchronisation du téléphone.

  • sync = one-way-from-client

Si vous supprimez un événement sur horde, il ne sera pas supprimer sur le téléphone.

Personnellement, je préfère le two-way. Je fais juste attention à bien lancer la synchronisation du calendrier principal en premier et seulement après avec la synchronisation du calendrier ecocach.

Lancement de la synchronisation

$ syncevolution horde_ecoach
fr/ressources/astuces/n900_syncml.txt · Last modified: 2011/03/16 01:41 (external edit)
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0