Synchroniser les contacts et l’agenda avec un téléphone portable
par
popularité : 1%

Transférez vos contacts du carnet d’adresses d’Evolution, le PIM (Personnal Information Manager) de GNOME, vers votre téléphone portable, et inversement. Quelques clics suffisent pour synchroniser vos données.
L’ensemble de cet article a été rédigé sur une distribution Debian SID. Il est possible qu’il faille utiliser yum/urpmi/yast au lieu d’apt-get et/ou que les versions logicielles ne soient pas exactement les mêmes suivant votre distribution.
Il a pour but la mise en application d’une expression à la mode, la convergence numérique. Nous utiliserons ici le logiciel libre evolution pour gérer les contacts, les tâches et l’agenda. La méthode employée passe par un canal infrarouge. Elle doit être applicable à un téléphone Bluetooth. N’hésitez pas à le confirmer dans le forum.
Matériel utilisé
Un ordinateur portable de marque Fujitsu Siemens, modèle Amilo M Series : http://www.fujitsu-siemens.fr/produ... visiblement ma machine n’est plus au catalogue de Fujitsu-Siemens, on ne trouve rien avec les différents numéros d’identifiant ou de série figurant sous l’appareil. Bref, passons, c’eut été utile pour aider le lecteur à identifier la carte infra-rouge supportée, à titre de comparaison.
Un téléphone portable de marque Sony Ericsson, modèle K500i http://www.sonyericsson.com/spg.jsp... Cela aura son importance dans la suite de l’article, le forfait associé à ce téléphone est un forfait Orange Pro.
Installer les logiciels
Evolution s’installe très facilement :
apt-get install evolution
. Faites attention à installer également les dépendances. Lors de mes premiers tests, les plugins n’existaient pas, je ne saurais dire maintenant s’ils sont indispensables. Quoiqu’il en soit, voici les versions des paquetages installés sur ma machine :
ii evolution 2.2.3-5 The groupware suite
ii evolution-data-server 1.2.3-8 evolution database backend server
ii evolution-exchange 2.2.3-4 Exchange plugin for the Evolution groupware
ii evolution-plugins 2.2.3-5 All bundled plugins for Evolution 2.2
ii evolution-webcal 2.2.1-3 webcal: URL handler for GNOME and Evolution
ii libebook1.2-3 1.2.3-8 Client library for evolution address books
ii libecal1.2-2 1.2.3-8 Client library for evolution calendars
ii libedata-book1.2-2 1.2.3-8 Backend library for evolution address books
ii libedata-cal1.2-1 1.2.3-8 Backend library for evolution calendars
ii libedataserver1.2-4 1.4.2.1-1 Utility library for evolution data servers
ii libedataserverui1.2-4 1.2.3-8 GUI utily library for evolution data servers
ii libevolution-cil 0.10.2-2+b1 CLI bindings for Evolution
ii libevolution-ruby 0.5-2 revolution, ruby binding for the evolution m
ii libevolution-ruby1.8 0.5-2 revolution, ruby 1.8 binding for the evoluti
On en trouve d’autres comme ceux concernant l’intégration de certains modules d’Evolution avec OpenOffice.org, Gaim ou autres. Mais ce n’est pas là notre propos.
L’outil de synchronisation utilisé sera MultiSync et son plugin evolution :
apt-get install multisync libmultisync-plugin-irmc libmultisync-plugin-evolution
. Il existe un méta paquet pour installer tous les plugins d’un coup : libmultisync-plugin-all
. An final, voici ce que l’on peut obtenir :
ii libmultisync-plugin-all 0.82-5.1 Complete MultiSync suite
ii libmultisync-plugin-backup 0.82-5.1 Backup plug for MultiSync
ii libmultisync-plugin-evolution 0.82-5.1 Ximian Evolution plugin for MultiSync
ii libmultisync-plugin-irmc 0.82-5.1 IrMc Mobile plugin for MultiSync
ii libmultisync-plugin-irmc-bluetooth 0.82-5.1 Adds Bluetooth support to the IrMC pluginii libmultisync-plugin-opie 0.82-5.1 Opie plugin for MultiSync
ii libmultisync-plugin-palm 0.82-5.1 Palm plugin for MultiSync
ii libmultisync-plugin-syncml 0.82-5.1 SyncML plugin for MultiSync
ii multisync 0.82-5.1 A program to synchronize PIM data
Installez le module Infra-Rouge sur le portable :
apt-get install irda-utils
. Le système debian propose de gérer en tâche de fond l’Infra-Rouge via port série ou USB ou laisser choisir le noyau. Choisissez la simplicité, ni "ttyXX" ni USB ! La configuration ainsi obtenue donne ceci :
daffy@colerpia:~# cat /etc/default/irda-utils
# Set your startup settings for irattach, the IrDA-daemon, here.
# Set this to 'false' if you do not need to start irattach. Otherwise set it
# to 'true'.
ENABLE="true"
# Set discovery mode which usually is a good idea for finding other devices.
DISCOVERY="true"
# Set IRDA device to access (e.g. /dev/ttyS1 or irda0).
# In case of irda0, the proper module for FIR-mode has to be set in
# /etc/modutils/irda-utils (2.4) or /etc/modprobe.d/irda-utils (2.6)
DEVICE="irda0"
# Set dongle type, e.g. none, tekram, esi, actisys, actisys+, ep7211, girbil,
# litelink, airport, old_belkin, mcp2120, act200l, ma600). You do not need
# a dongle for FIR mode.
DONGLE="none"
# Set the serial device to quiet with setserial. This is only useful on some
# machines in FIR-mode, so most people should leave it blank. See
# README.Debian for more information.
SETSERIAL=""
Chargez ensuite les modules kernel [1] via l’utilitaire modconf
:
root@colerpia:~# lsmod |grep ir
irda_usb 17348 0
irtty_sir 9152 0
sir_dev 19244 1 irtty_sir
via_ircc 26416 0
irda 197120 4 irda_usb,irtty_sir,sir_dev,via_ircc
crc_ccitt 2144 1 irda
usbcore 118980 8 irda_usb,uhci_hcd,usbkbd,usbmouse,ndiswrapper,usb_storage
Démarrez ensuite le démon comme tous les autres services :
root@colerpia:~# /etc/init.d/irda-utils start
Starting IrDA service: irattach
Dans /var/log/syslog , vous voyez alors l’entrée suivante :
Jan 22 22:42:29 localhost irattach: executing: '/sbin/modprobe irda0'
Jan 22 22:42:29 localhost irattach: executing: 'echo colerpia > /proc/sys/net/irda/devname'
Jan 22 22:42:29 localhost irattach: executing: 'echo 1 > /proc/sys/net/irda/discovery'
Jan 22 22:42:29 localhost irattach: Starting device irda0
Jan 22 22:42:29 localhost kernel: irlap_change_speed(), setting speed to 9600
Les entrées de /proc sont consultables pour vérification. Très honnêtement, je ne connaissais pas ces entrées avant que Fabrice Eudes ne m’en parle. Chez moi tout a marché du premier coup :-)
Utilisation des applications
Je ne détaillerai pas ici l’utilisation d’Evolution , il existe déjà une aide très complète écrite par la communauté et la société Novell, elle est disponible ici : http://www.gnome.org/projects/evolu.... En gros, pour créer un contact, effectuez un clic droit sur un mail reçu puis choisissez Ajouter au carnet d’adresses. Eventuellement utilisez le bouton Editer si vous souhaitez mettre des informations complémentaires. L’intérêt d’Evolution réside dans son format vcard qui reprend une norme internationale. Par ailleurs, il respecte parfaitement la norme icalendar pour l’agenda.
Quant à multisync, voilà qui est plus délicat.
Démarrez multisync, soit depuis le menu GNOME, soit depuis une console. Ne vous étonnez de traces de debuggage si vous l’avez démarré depuis la console, c’est normal.
- Cliquez sur le bouton New et choisissez en First plugin : Ximian Evolution 2, en Second plugin : IrMC Mobile Device. Mettez comme nom Synchro Phone par exemple. Vous pouvez laisser les trois options cochées en Data types to synchronize, à savoir Calendar, Addressbook, Tasks.
- Là où ça se corse, c’est dans les options concernant Evolution. Choisissez Personnel dans Calendar. Vous accédez à tous les calendriers. Donc, me concernant, je pourrais synchroniser le calendrier de mon entreprise connecté lui-même à Evolution grâce au plugin evolution-exchange . On comprends d’un coup le côté génial de cette application. Tout ce que voit Evolution, je peux le faire entrer dans mon téléphone ! En fait, ici, cochez Personnel dans les trois rubriques, et validez votre choix.
- Sur le téléphone, allez dans le menu Connexions, puis choisissez Activation IR et enfin 10 minutes. Pas la peine de laisser la batterie se décharger, ça ne durera pas plus longtemps. Une nouvelle icône apparaît à côté de l’indicateur de signal.
- Continuons la configuration de MultiSync. Dans les options IrMC Device , choisissez Connection Type : IR ; et optez pour Search for Units. Si tout se passe bien, le numéro de série apparaît dans la boîte de dialogue. Vous pouvez valider. Une dernière fois essayez Test Connection..... Tout va bien, vous avez une popup Connection succeeded !. Vous validez et passez aux choses sérieuses.
- Dans les options du device, il est possible de définir d’autres choses sympas comme l’encodage (UTF-8 , ISO-8859-1), l’ordre de synchronisation, les alarmes du calendrier. Validez, le choix par défaut est pas mal.
- Ce n’est pas fini. On retrouve d’autres options, encore plus fines dans les Synchronize options du profil. Personnellement, je force Always use the entry from the first plugin. Pourquoi ? J’ai déjà eu des soucis avec la synchro dans les deux sens à cause de formats vcard différents, je me suis retrouvé avec tous les contacts en double. Quand à la résolution manuelle, elle ne marche pas. Bref, c’est un bon compromis.
- Il semble que l’on puisse affecter des règles de filtrage ou synchroniser (ou pas) des évènements particuliers, je n’ai pas encore eu à tester ces options.
- Validez une dernière fois. Ouf, le profil est prêt !
Vous pouvez alors synchroniser avec le bouton Resync : Validez le message d’erreur qui essaye de vous faire peur, en gros, il dit Attention vous allez perdre toutes les données sur le téléphone. Bah c’est le but, allez-y en toute confiance. C’est parti, le téléphone reçoit les contacts. Quelques secondes après c’est terminé.
Dans la fenêtre de debug, on peut lire
[...]
END:VTODO
END:VCALENDAR
[evo2-sync] INFORMATION: Done searching for changes. Found 580 changes
sync_done
Je ne sais pas pourquoi mais la valeur numérique n’est pas identique dans le bouton Log où on lit
Sun Jan 22 23:17:00 2006 : Synchronization of 579 entries succeeded.
Critiques, limites et améliorations probables
Les contacts sont bien synchronisés, à la seule et unique condition qu’il y ait un numéro de téléphone dans la fiche issue d’Evolution. C’est idéal, ça permet d’éviter de mettre les contacts qui ne serviront jamais (quoique). Les numéros doivent être renseignés dans Evolution (personnel, professionnel ou portable), le champ Autre n’est pas pris en compte.
Une seule adresse mail sera envoyée vers le téléphone, celle qui correspond au premier champ Email de la fiche Evolution du contact, quel que soit son attribut. Bien faire attention quand vous avez des contacts personnels et/ou professionnels. L’intérêt du mail, envoyer un MMS pardi !
L’adresse de la page Web est elle aussi intégrée dans la fiche, parfois les notes également. Avec ce type d’appareil, on n’a pas exactement les mêmes fonctionnalités que sur un PDA (Personal Digital Assistant), la fiche complète n’est parfois pas correctement interprétée. Il m’a été répondu sur la liste des développeurs de MultiSync que le format vcard des téléphones était souvent trop ancien et ne pouvait intégrer certains champs. De même, si un contact Evolution contient une photo, sa fiche arrivera toute "bousillée" dans le téléphone. C’est-à-dire que seule la photo sera connue du téléphone, les numéros et emails seront perdus (précision : uniquement dans le téléphone). A l’inverse, un contact avec photo ajoutée par le téléphone apparaîtra correctement dans Evolution, mais certains champs seront non-modifiables (adresses postales par exemple). On n’observe aucun problème d’encodage comme entre l’application propriétaire de Sony et Outlook Express de Microsoft.
Les tâches sont parfaitement synchronisées, avec deadlines (date de fin de tâches), et suivi.
L’agenda est parfaitement intégré, même les rendez-vous avec plusieurs rappels avant ou après. On n’observe aucun décalage de timezone comme parfois entre Evolution et Exchange de Microsoft .
Parmi les problèmes pénibles, un souci récurrent à l’usage, concerne la synchronisation incrémentale. En effet, l’utilisation du bouton ReSync ne se fait théoriquement que la première fois, ensuite on utilise Sync. Pour ce faire, des verrous sont positionnés dans le répertoire de l’utilisateur, le diff n’est pas fait à la volée. Problème, si un contact a été modifié entre temps, que ce soit dans le téléphone ou dans le PIM, il n’est plus envoyé. Je résous donc ce problème de façon radicale. Sur le téléphone, avant synchronisation, je purge tous les contacts, tâches et rendez-vous. Je supprime les verrous sur l’ordinateur :
daffy@colerpia:~$ find .evolution/ -name "*sync*" | xargs rm
puis j’utilise ReSync.
Pour aller plus loin
Le téléphone supporte le protocole SyncML. C’est à dire qu’en le configurant comme précisé dans la partie Votre espace du site Orange.fr, vous pouvez envoyer tous les contacts de la carte SIM et/ou dans la mémoire du téléphone, vers le webmail Orange et donc les utiliser dans votre webmail Wanadoo.fr. C’est ce qu’on appelle la convergence numérique. Ça, ça marche très bien. Conclusion du moment : Orange.fr supporte bien le SyncML. Je me suis alors mis en tête de faire fonctionner multisync et le plugin SynCML pour synchroniser directement Evolution avec Orange.fr. Ayant obtenu un peu d’informations de la part du service clientèle, qui ne m’a pas envoyé balader malgré avoir prononcé linux, le mot classiquement banni des hotlines, j’ai pu ajouter à priori les bons paramètres. A savoir :
serveur : http://repertoire.orange.fr//sync/SyncML/
port : 80
login : mon numéro de téléphone
mot de passe : mon mot de passe sur orange.fr
Problème, pour être sûr de voir ce qui se passe, au vu malgré tout de la réponse très évasive du support, j’ai trouvé ces paramètres en utilisant l’outil binaire propriétaire non configurable sous Windows (livré avec le téléphone) et en traçant la requête TCP/IP avec ethereal. Ce logiciel sous Windows ne me sert plus à rien puisque je n’utilise absolument jamais Outlook Express, et on l’a vu plus haut, il y a un problème d’encodage. Oui, il y a bien deux / entre le serveur et le répertoire, je ne sais pas en quoi c’est important.
Sous Linux, j’ai donc procédé de même, j’ai tracé avec ethereal les paquets qui s’échangent lors de la connexion de MultiSync vers le site http://repertoire.orange.fr
, et j’ai obtenu une trace tout à fait différente, un dump XML en fait. J’ai renvoyé cela au support mais comme mon mail est cette fois resté sans réponse près d’un mois plus tard je suppose qu’il va falloir attendre la stabilisation d’OpenSync, le successeur de MultiSync qui ne possède pas encore les bibliothèques pour Evolution.
Encore plus loin
Là on est à la limite du hors-sujet. Voici un petit script pour télécharger les photos, vidéos, et applications depuis le téléphone vers un ordinateur sous Linux. Pour cela, il faut utiliser les outils Obex :
apt-get install obexftp
Ne pas oublier de le rendre exécutable !
daffy@colerpia:~$ cat datas/Photos/phone/sync_sony
#!/bin/bash
#
#
# list folders
DIR=`pwd`
#
# Fuck, obexftp can't do recursive tasks
obexftp -i -l 1 > folders1.txt
# Listing format is not'ls' like but 'xml' like .
cat folders1.txt|sed -e "s/></\>\n</g"|grep -v listing |grep folder|awk -F'"' '{print $2}' > folders2.txt
# parse folders
for dir in `cat folders2.txt`
do
# list photos
echo "Retreiving photos list ..."
obexftp -i -c $dir -l 1 > files1_$dir.txt
cat files1_$dir.txt|grep file|awk -F'"' '{print $2}' > files2_$dir.txt
echo "Fetching $dir ..."
# obexftp have very troubles with files containing a blank space in their name
IFS=,
mkdir $dir
cd $dir
for files in `cat ../files2_$dir.txt|sed -e "s/$/\,/g"|tr -d '\012'`
do
echo "==== $files ===="
if [ -f $files ]
then break
else
obexftp -i -c $dir -g "$files"
fi
echo "========"
done
cd $DIR
IFS=
done
# remove listing files
rm *.txt
[1] Il est à noter que toutes ces opérations ont été effectuées en kernel 2.6.8 stable chez Debian, il m’a été impossible de les réaliser avec un kernel plus récent comme le 2.6.14.
Commentaires