Un client pour les contrôler tous !!
Un client pour les gourverner tous, ça en jette nan ?
Vous avez installer un serveur XMPP, mais vos amis son sur Facebook, MSN, Gtalk, Skype …
Vous vous sentez seul ?
Le XMPP, le protocole de furieux, n'a pas dit son dernier mot !
On va installer des passerelles vers les protocoles qu'utilisent vos autres contacts, et ainsi les fédérer sous le même logiciel, une gestion de groupe unifiée, avec une seule authentification…
Bref, ça semble pas trop mal
Pour ça on va installer un nouveau programme sur notre serveur XMPP (basé sur ejabberd dans notre cas, mais ça fonctionne avec d'autres !).
Ce programme c'est: Spectrum2 ⇒ http://spectrum.im
Dans ce "tuto" on va créer des passerelles pour : Facebook, MSN, et Gtalk, mais il en existe beaucoup d'autres, et c'est très simple à faire !
On commence par rajouter les sources de spectrum (afin de pouvoir l'installer par le gestionnaire de paquet) à notre source liste.
# nano /etc/apt/sources.list
Editez votre fichier et rajoutez :
deb http://repo.spectrum.im wheezy main
Et on installe :
# aptitude update # aptitude install spectrum2 spectrum2-backend-libpurple
Après avoir installé les trouze millions de dépendances, on va aller configurer tous ça
Premièrement, préparer les fichiers de conf :
# cd /etc/spectrum2/transports # cp spectrum.cfg.example msn.cfg # cp spectrum.cfg.example facebook.cfg # cp spectrum.cfg.example gtalk.cfg
On commence avec MSN ?
Alors modifiez (et adaptez selon vos besoins) votre fichier msn.cfg, de la façon suivante :
# JID of Spectrum instance. jid = msn.sheldon.fr # Password used to connect the XMPP server. password = monsecret1 # XMPP server port. port = 5347 # Libpurple protocol-id for spectrum_libpurple_backend #protocol=prpl-jabber protocol=prpl-msn #protocol=prpl-icq [identity] # Name of Spectrum instance in service discovery name=MSN # Type of transport ("msn", "icq", "xmpp"). # Check http://xmpp.org/registrar/disco-categories.html#gateway type=msn #à rajouter à la fin du fichier [purple] # avatar, vcard, roster storage # needs to be unique for each spectrum instance userdir=/var/lib/spectrum/$jid/userdir port=80 http_method=1
Pas trop compliqué ça va ?
Alors la suite avec Facebook :
# JID of Spectrum instance. jid = facebook.sheldon.fr # Password used to connect the XMPP server. password = monsecret2 # XMPP server port. port = 5348 # Libpurple protocol-id for spectrum_libpurple_backend protocol=prpl-jabber #protocol=prpl-msn #protocol=prpl-icq [identity] # Name of Spectrum instance in service discovery name=Facebook # Type of transport ("msn", "icq", "xmpp"). # Check http://xmpp.org/registrar/disco-categories.html#gateway type=facebook
Pour Gtalk, c'est strictement identique, on change juste les noms (et le port):
# JID of Spectrum instance. jid = gtalk.sheldon.fr # Password used to connect the XMPP server. password = monsecret # XMPP server port. port = 5349 # Libpurple protocol-id for spectrum_libpurple_backend protocol=prpl-jabber #protocol=prpl-msn #protocol=prpl-icq [identity] # Name of Spectrum instance in service discovery name=Gtalk # Type of transport ("msn", "icq", "xmpp"). # Check http://xmpp.org/registrar/disco-categories.html#gateway type=gtalk
Maintenant que Spectrum est configuré, on va s'occuper de ejjaberd.
# nano /etc/ejabberd/ejabberd.cfg
Rajouter les éléments suivant dans la partie "Listening Ports".
Chez moi ça donne :
%%% =============== %%% LISTENING PORTS %% %% listen: Which ports will ejabberd listen, which service handles it %% and what options to start it with. %% {listen, [ {5222, ejabberd_c2s, [ {access, c2s}, {shaper, c2s_shaper}, {max_stanza_size, 65536}, %%zlib, starttls, {certfile, "/etc/ejabberd/ejabberd.pem"} ]}, {5269, ejabberd_s2s_in, [ {shaper, s2s_shaper}, {max_stanza_size, 131072} ]}, %%Passerelle msn {{5347, "127.0.0.1"}, ejabberd_service, [ {access, all}, {host, "msn.sheldon.fr", [{password, "monsecret1"}]} ]}, %%Passerelle facebook {{5348, "127.0.0.1"}, ejabberd_service, [ {access, all}, {host, "facebook.sheldon.fr", [{password, "monsecret2"}]} ]}, %%Passerelle gtalk {{5349, "127.0.0.1"}, ejabberd_service, [ {access, all}, {host, "gtalk.sheldon.fr", [{password, "monsecret3"}]} ]},
On démarre les services spectrum :
# spectrum2_manager start
Ce qui doit donner :
root@ovz-XMPP:~# spectrum2_manager start Starting "/etc/spectrum2/transports/gtalk.cfg": OK Starting "/etc/spectrum2/transports/msn.cfg": OK Starting "/etc/spectrum2/transports/facebook.cfg": OK
Puis on redémmarre ejabberd :
# /etc/init.d/ejabberd restart
Voilà c'est fini !
Pour tester si ça fonctionne, allez sur votre client préféré (Gajim, Pidgin, Jappix …) et faites une recherche de services :
Pour moi ça fonctionne, je vois bien mes passerelles, je n'ai cas en sélectionner une, cliquer sur "Souscrire" :
Voilà à quoi ressemble mon client lorsque je me connect à mon unique compte XMPP
P.S : Si vous souhaitez essayer ce service, vous pouvez créer un compte XMPP ici : http://www.sheldon.fr/jappix/
Et par la suit utiliser le client léger à la même adresse ou un client lourd de votre choix