Ah quel plaisir d’avoir ses contacts et calendrier(s) synchronisés sur son téléphone et son webmail !
Un nouveau numéro de téléphone à noter ? Une simple édition du contact dans votre webmail et son numéro apparaîtra dans votre téléphone.
L’intégration de ce genre de services dans la vie de tous les jours la rend plus facile.
Cela dit, Google n’a pas le monopole du plaisir, des solutions existent et nous allons les mettre en place :)
Le choix du serveur
Tout d’abord choisissons un protocole libre et ouvert…
Bon, dans ce domaine, il n’y a pas trop le choix : on va utiliser les extensions CalDAV et CardDAV de WebDAV.
Il faut donc dans un premier temps trouver un serveur parlant couramment ces deux protocoles. A l’heure où j’écris ces lignes, seulement quelques serveurs implémentes ces protocoles de façon sérieuse et facile à mettre en place, voici ma courte sélection :
J’ai rapidement éliminé OwnCloud, il faudrait l’utiliser quotidiennement pour que cela vaille le coup, et ce n’est pas le cas pour moi.
J’ai ensuite testé les autres candidats en gardant à l’esprit qu’il faudra mettre les mains dans le cambouis ! Eh oui, si on reprend mon « cahier des charges » de la partie 1, je souhaite une authentification unique au niveau des différents services ! Le serveur doit donc pouvoir s’y plier d’une façon ou d’une autre.
Baïkal est rapidement sorti du lot, à vrai dire j’ai été conquis par son côté minimaliste (faire une chose et une seule, mais la faire correctement), et le fait d’avoir pu, simplement grâce à deux patchs, réaliser la partie authentification.
Pis Baïkal ça sonne russe, et le lac portant ce nom est magnifique :)
Je vais expliquer dans la suite comment procéder. Cela dit, rien ne vous empêche d’utiliser un autre serveur Cal/CardDAV.
Où l’on parle de Baikal
A l’époque où j’ai commencé à titiller la chose, Baïkal (en version 2.4) avait besoin de deux patchs pour s’intégrer dans ma solution :
- Un patch pour le support des adresses mail comme nom d’utilisateur, or le problème est réglé depuis la sortie de la version 2.5.
- Un patch pour ajouter le support de l’authentification IMAP. Il fallait configurer en dur dans le fichier php le serveur IMAP sur lequel baser l’authentification. C’était sale mais ça fonctionnait bien.
Avant d’écrire cet article, je me suis promené sur le Git de Baïkal et quelle ne fut pas ma surprise de voir ce pull request : enfin, un support d’authentification externe LDAP/MAIL propre et intégré à l’interface \o/
Voyez plutôt :
Pour vous faciliter la vie, et en attendant que le pull-request soit accepté et déployé dans une hypothétique nouvelle version, je vous ai préparé un git avec une version de Baïkal 2.7 déjà patchée.
Pour le déployer chez vous :
git clone https://wtf.roflcopter.fr/git/pogo/baikal.git
Il suffit ensuite d’installer et configurer Baikal en suivant le guide officiel.
Pour le type d’authentification, choisissez « Mail » en StartTLS et entrez l’IP ou le nom de votre serveur mail. Vous pouvez, si vous le désirer, utiliser le LDAP d’iRedMail au lieu de l’authentification IMAP, à vous de voir :)
Vous n’aurez normalement pas besoin de créer d’utilisateur dans Baïkal, lors d’une première connexion authentifiée, il sera créé automatiquement.
Pour le débug de l’authentification il y a même une doc avec la liste des commandes à entrer et l’interprétation des erreurs.
Baïkal n’offre que la partie serveur Card/CalDAV, il faut donc maintenant s’occuper de la partie client.
MyRouncube
J’expliquait dans la première partie que je voulais une interface où les mails, contacts et calendriers sont intégrés. Ayant fait le choix d’utiliser Roundcube je suis parti en quête de plugins.
Voilà le résultat : le quasi néant
Un plugin carddav plus maintenu depuis 2 ans (fonctionnel cependant), mais rien de sérieux pour le calendrier.
Pourtant un nom revient souvent dans mes recherches : MyRoundcube.
MyRoundcube propose une bonne liste de plugins offrant au webmail une dimension un peu plus « pro ». Certains sont payant, d’autres gratuits. Le hic : les plugins qui nous intéressent ici sont payant.
Ils existent dans une version « light », mais les fonctionnalités intéressantes (support CalDAV pour le calendrier, intégration automatique des contacts, …) font partie des versions payantes.
Installer le plugin calendar_plus coûte 8 crédits (soit 8€), les mises à jour majeures sont payantes : entre 4€ et 1€ (depuis 9 mois, il n’y en a eu qu’une, les autres mises à jour ont été considérées comme des « bug fix », donc gratuites).
Le plugin carddav_plus coûte 6 crédits (soit 6€) avec des mises à jour entre 3€ et 1€.
La liste des tarifs est disponible ici.
J’avoue avoir pas mal hésité, mais en voyant le nombre de téléchargement, un support plutôt réactif et un maintient constant des plugins, je me suis décidé de leur laisser une chance.
Personnellement j’ai préféré prendre le pluging carddav chez eux, mais pour limiter les frais, vous pouvez très bien ne prendre que le calendrier et utiliser plugin carddav cité plus haut.
Pour l’installation et le téléchargement des plugins, il faut forcément passer par leur « plugin_manager » qui va prendre la main sur la gestion des plugins au sein de Roundcube. Pour les explications et la documentation d’installation c’est par ici que ça se passe.
Pour les différentes URL (CalDAV et CardDAV) à renseigner lors de la configuration de ces plugins, je vous conseille de faire un tour sur l’article très complet d’Idleman.
Il vous servira aussi pour configurer la synchronisation de votre téléphone.
Synchronisons !
Votre webmail est maintenant complet, quoi de mieux que de retrouver tout ça sur votre téléphone ?
Pour synchroniser ses mails, vous pouvez utiliser le client mail fourni de base avec d’Android, ou K-9.
K-9 est plus complet, et est hautement configurable (parfois limite trop).
Pour la synchronisation (dans les deux sens) des contacts et des calendriers, deux choix s’offrent à vous :
- Davdroid : une seule application pour tout synchroniser, mais payante (2.99 €)
- Le couple Caldav-Sync (2.59 €) & CardDAV-Sync free.
Attention à ne pas confondre avec Caldav Sync Free Beta qui n’est pas du même auteur et qui – pour le moment – ne propose que la synchronisation dans un seul sens.
Pour supporter et encourager le développeur, je vous invite grandement à installer la version payante de CardDAV-Sync une fois la version gratuite prise en main.
Avec ces applications, vos contacts et calendriers seront intégrés dans votre Android tout comme avec votre compte Google.
Quelques réflexions…
J’ai vraiment été surpris du peu d’implémentation sérieuses (et maintenus) de CalDAV/CardDAV, je vous invite à faire un tour sur la page Wiki dédiée, vous verrez que ce n’est pas folichon… Est-ce un manque d’intérêt de la part de la communauté ?
Peut-être est-ce dû à la complexité du protocole, vu les nombreux RFC gravitant autour, ça peut en rebuter plus d’un…
Heureusement une librairie PHP existe : SabreDav.
Owncloud et Baïkal (entres autres) se reposent dessus. J’espère que dans le futur on verra plus de projets basés dessus :)
Au prochain épisode : on migrera vos données Google vers votre installation et se penchera sur le côté « backup » de la chose.