Aujourd’hui lorsque vous décrochez votre téléphone pour appeler un correspondant, vous ne vous préoccupez pas de savoir s’il est abonné chez le même opérateur que vous. Il n’en va pas de même pour les messageries instantanées. MSN, Yahoo, AIM, ICQ constituent autant d’univers parfaitement cloisonnés. Vous ne pouvez discuter qu’avec les utilisateurs du même réseau. Il arrive que 2 sociétés décident de rendre compatibles [2] leurs réseaux mais les échanges restent impossibles avec les autres protocoles. On nous prend pour des idiots [3] écrit avec raison Thierry Stoehr sur Formats-ouverts.org.
Jabber est basé sur le protocole ouvert XMPP. Cet article s’inscrit dans la série Des formats ouverts pour des données libres. Les lecteurs pour lesquels les notions de format ouvert et d’interopérabilité ne sont pas familières liront avec intérêt l’introduction de notre article consacré au format Opendocument.
L’architecture du réseau Jabber est très proche de celle utilisée pour la messagerie électronique. Chaque client communique avec un serveur. Les serveur échangent entre eux les messages de leurs clients. On trouve un bon aperçu technique [4] sur le wiki Jabberfr.
Cette architecture décentralisée constituée de très nombreux serveurs distribués sur l’ensemble de la planète offre l’avantage de ne pas dépendre d’un fournisseur unique. À l’inverse, Microsoft imposait récemment la mise à jour de son logiciel de messagerie en interdisant l’accès aux utilisateurs récalcitrants [5].
Comme les standards Opendocument [6] et SVG [7] qui ont fait chacun l’objet d’un article de la série Des formats ouverts pour des données libres, Jabber est basé sur la technologie XML. Notre article consacré au format SVG comporte une courte présentation de cette technologie.
XMPP est une norme internationale maintenue par la Fondation XSF [8] et reconnue par l’IETF [9] depuis octobre 2004 [10]. Le protocole est décrit dans des documents appelés RFC (Request For Comment) [11] qui décrivent précisément les différents aspects du protocole. Ces spécifications sont librement consultables [12] [13] et l’IETF n’impose aucune restriction à l’utilisation de sa norme. Il s’agit donc bien d’un standard ouvert tel que définit dans la loi française [14].
Les JEPs (Jabber Enhancement Proposals) permettent d’étendre le protocole pour des applications spécifiques. C’est le cas par exemple de Jingle pour la vidéo [15].
La messagerie instantanée est sans aucun doute l’utilisation la plus courante parmi les possibilités offertes. On trouve de nombreux clients Jabber [16] sous licence libre : Coccinella [17], Exodus [18], Freetalk [19], Gabber [20], Gajim [21], Gossip [22], Psi [23]. D’autres clients supportent plusieurs protocoles dont Jabber : Adium [24], CenterICQ [25], Kopete [26], Miranda [27], Openwengo [28], Pidgin [29] (anciennement Gaim). Ces listes n’ont pas la prétention d’être exhaustives.
Parmi les applications propriétaires, on peut citer Google Talk [30] dont la FAQ vente les mérites du protocole XMPP en matière d’interopérabilité : Google Talk prend également en charge des clients de communication standard. Les utilisateurs Gmail peuvent donc accéder au service Google Talk et échanger des messages instantanés à l’aide d’autres clients prenant en charge le protocole standard XMPP, tels que Trillian, GAIM, iChat, Adium et Psi. Vous pouvez donc accéder au service Google Talk et envoyer des messages instantanés à partir des principales plates-formes du marché, notamment OSX, Linux et Windows [31].
Jabber gère également votre présence, ce qui permet à vos contacts de connaître votre statut (connecté, disponible, occupé…).
Le JID (Jabber IDentifiant) désigne l’adresse Jabber d’un utilisateur. Sa forme est la même que celle des adresses de courrier électronique.
Les JUD (Jabber User Directory) sont les annuaires d’utilisateurs Jabber.
Chaque utilisateur stocke ses contacts dans son roster. Ces contacts sont stockés sur le serveur, ce qui permet de les rendre accessibles quel que soit le lieu de la connexion.
Les passerelles [32] ou transports vous permet de vous connecter à d’autres réseaux de messagerie instantanée depuis Jabber. Les passerelles sont installées sur le serveur Jabber. On trouve des passerelles pour MSN, ICQ, Yahoo, AIM…
Les MUC [33] (Multi User Chat) ou salles de discussion offrent la possibilité d’échanges à plusieurs avec Jabber.
D’autres termes vous semblent obscurs, le wiki Jabberfr comporte un très bon glossaire [34].
Il existe des serveur publics sur lesquels chacun peut s’inscrire pour disposer d’une adresse Jabber. Une liste est disponible sur le wiki Jabberfr [35].
Chacun peut faire fonctionner son propre serveur Jabber. Parmi les logiciels disponibles, on peut citer : ejabberd [36], jabberd [37], Tigase [38], Wildfire [39].
Citons le Journal du net : Jabber a aussi le bon goût d’être sûr : il supporte le protocole SSL, les systèmes d’authentification de LDAP et de SQL, il crypte les mots de passe stockés sur le serveur [40].
Jabber est conçu comme un protocole d’échange générique, dont une des applications est la messagerie instantanée mais son champ d’application s’étend largement au delà : notification, transfert de fichiers [41], salles de discussion [42] mais aussi voix sur IP et multimédia [43] ou encore jeux en réseau [44].
Vous aimez consulter rapidement les flux RSS de vos sites favoris ? Avec JabRSS [45], vous pouvez recevoir les mises à jour directement dans votre client Jabber.
Jabber sert également de support à des applications de travail collaboratif en temps-réel. Des outils comme Coccinella [46] ou Inkboard [47] permettent de partager une fenêtre de dessin entre plusieurs utilisateurs à travers le réseau. Le traitement de texte Abiword peut fonctionner en réseau via Jabber [48] comme l’illustre une animation disponible sur le site du logiciel [49].
Voici un exemple fictif de communication entre un client et un serveur Jabber. Bien entendu, tout ceci est transparent pour l’utilisateur. Nous nous inspirons ici du chapitre 4.8 de la RFC 3920 : Simplified Stream Examples.
Le client :
<?xml version='1.0'?>
<stream:stream
to='example.com'
xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams'
version='1.0'>
Le serveur :
<?xml version='1.0'?>
<stream:stream
from='example.com'
id='someid'
xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams'
version='1.0'>
Le client :
<message from='juliet@example.com'
to='romeo@example.net'
xml:lang='en'>
<body>Art thou not Romeo, and a Montague?</body>
</message>
Le serveur :
<message from='romeo@example.net'
to='juliet@example.com'
xml:lang='en'>
<body>Neither, fair saint, if either thee dislike.</body>
</message>
Le client :
</stream:stream>
Le serveur :
</stream:stream>
Le wiki Jabberfr
Présentation de Jabber sur le wiki Jabberfr
Le protocole Jabber sur Minet
Le guide de l’utilisateur Jabber et Vue d’ensemble du système Jabber traduits de l’anglais par Yvon Le Gal.
Jabber sur Wikipédia
Les deux crabes, le cocotier et l’utilisateur de Jabber et Jabber pour Marie et les non ordinateuriens… par Ploum
Quand Jabber ne sert pas qu’à la causette par Talou
Pour suivre l’actualité de Jabber :
Le Jabber Journal
News Jabber
Le Planet Jabberfr
A propos de l’auteur
Jean-Christophe BECQUET est le fondateur d’APITUX, cabinet spécialisé dans la formation et le conseil en informatique libre. Il est également l’auteur du site Apitux.org consacré aux enjeux du logiciel libre, aux standards ouverts et à l’interopérabilité.
Cet article est publié selon les termes de la licence Créative Commons BY-SA.
[1] Qu’est-ce qu’un protocole ? sur le site de l’Open Discussion Day [2] Compatibilité, standard de fait et interopérabilité sur Apitux.org [3] On nous prend pour des idiots sur Formats-ouverts.org [4] Aperçu technique sur le Wiki Jabberfr [5] Microsoft impose la màj Windows Live Messenger 8.1 sur Clubic [6] Bureautique : le format Opendocument sur Generationcyb.net [7] Le format SVG sur Generationcyb.net [8] La fondation XFS : XMPP Standards Foundation [9] IETF - Internet Engineering Task Force [10] Messagerie instantanée : la norme internationale XMPP sur Formats-ouverts.org [12] Extensible Messaging and Presence Protocol (XMPP) : Core RFC 3920 [13] Extensible Messaging and Presence Protocol (XMPP) : Instant Messaging and Presence : RFC 3921 [14] Formats ouverts et interopérabilité sur Apitux.org [15] Jingle sur le wiki Jabberfr [16] Clients Jabber sur le wiki Jabberfr [31] Google Talk - Foire aux questions (FAQ) [32] Les passerelles sur le wiki Jabberfr [33] Les MUC sur le wiki Jabberfr [34] Glossaire sur le wiki Jabberfr [35] Serveurs sur le wiki Jabberfr [40] Jabber : une messagerie instantanée libre et universelle sur le Journal du net [41] Le transfert de fichiers sur le wiki Jabberfr [43] Solutions de voix et de vidéo sur le wiki Jabberfr [44] Gtetrinet sur Telepathy par Alban Crequy [46] Aperçu du tableau blanc partagé dans Coccinella [48] Wiki, Google Docs et Abiword par Alban Crequy [49] Abicollab : partage d’une fenêtre de traitement de texte via Jabber (animation multimédia)
Mis en ligne le mercredi 10 octobre 2007
De prime abord, Spark est tourné vers les personnes connaissant déjà le réseau Jabber : en effet, pas d’assistant de création de compte ni d’aide à la mise en place des passerelles MSN, Yahoo… Autant dire que si vous n’avez jamais entendu parler de Jabber et que vous cherchez juste à vous initier, ce logiciel n’est pas tout à fait ce qu’il vous faut et vous préférerez peut-être des logiciels comme Wengophone.
En revanche, pour les utilisateurs plus avancés, il dispose d’une interface agréable et intuitive qui permet de converser par écrit, et Spark a intégré l’extension Jingle qui gère la fonction audio (et bientôt vidéo) afin d’ utiliser la VoIP qui vous permettra aussi de converser avec les correspondants qui utilise GoogleTalk. Il intègre aussi la fonction wizz qui permet de faire trembler votre fenêtre avec un son afin d’attirer votre attention. Rassurez vous, cette fonction n’est utilisable qu’entres clients Spark. ;)
L’interface est localisée, on a donc pas une traduction totale mais cependant largement suffisante pour une utilisation courante et pour pouvoir téléphoner librement.
Sortie de Psi 0.11
Après un cycle de développement particulièrement long, et après 5 bêta et 3 RC, le client Jabber libre et multiplateforme Psi sort enfin en version 0.11. Cette version devait - à la base - n’avoir aucune nouvelle fonctionnalité et ne devait comporter comme modification que le passage de Qt3 à Qt4, mais Qt4 ayant mis du temps à se stabiliser, les développeurs ont eu le temps de rajouter beaucoup de fonctionnalités. Cette sortie lui permet de rattraper en partie le retard que ce client a pris par rapport à son principal concurrent libre : Gajim.
Parmi les nouveautés, on trouve une gestion largement amélioré des salons de discussion. Il est maintenant possible avec Psi de configurer un salon et de le modérer. Les avatars ont également été ajoutés, par contre la méthode la plus utilisée par la majorité des autres clients jabber n’est supportée qu’en lecture, l’équipe préfère supporter la nouvelle méthode pour les avatars, techniquement meilleure mais qui demande une prise en charge au niveau du serveur qui n’est encore que très rarement présent.
- Le format Opendocument
- Des agendas partagés en toute liberté avec Webcalendar
- Le format SVG
- Jabber : la messagerie instantanée libre et bien plus encore