Table des matières
Passerelles pour serveur jabber
Introduction
Les passerelles vous permettent de vous connecter à d’autres réseaux de messagerie instantanée depuis jabber.
L'avantage de Jabber (xmpp) est sa flexibilité, il permet de discuter avec des gens qui sont inscrits sur d’autres protocoles comme MSN, TWITTER, ICQ, Yahoo!, AIM, IRC, etc. Il suffit d’utiliser une passerelle associée à un serveur. Comme serveur jabber, nous utilisons ejabberd.
Information
Les passerelles sont un moyen très pratique de communiquer avec des personnes connectées sur d’autres réseaux de messagerie instantanée. Par contre, elle ne permettent pas d’utiliser toutes les fonctionnalités de ces réseaux. Par exemple, il n’est pas toujours possible d’échanger des fichiers, de démarrer des sessions de vidéoconférence ou de voir les avatars des personnes connectées aux autres réseaux.
Quel client utliliser ?
Beaucoup de clients permettent une inscription sur ces passerelles. Pour profiter pleinement de vos autres messageries, il est préférable d'utiliser un client multiprotocole.
Voici un site qui recense de nombreux clients : Cients
Je vous propose une petite liste :
Gnu/Linux | Windows | Mac OS X |
---|---|---|
Empathy | Trillian | iChat |
Coccinella | Coccinella | Coccinella |
Pidgin | Pidgin | Instantbird |
Instantbird | Miranda | Adium |
Jitsi | Jitsi | Jitsi |
Installation de Spectrum
La documentation officielle : Spectrum
Spectrum est une passerelle vers d'autres protocoles, cela permet de centraliser l'ensemble de ses comptes sur un seul compte.
Nous allons installer Spectrum sur une debian squeeze.
Ajouter le dépôt Spectrum au fichier /etc/apt/sources.list
deb http://packages.spectrum.im lenny spectrum
Ajout de la clé GPG du dépot :
wget -O – http://packages.spectrum.im/keys/apt-repository@fsinf.at | apt-key add -
Installation du paquet Spectrum :
apt-get update apt-get install fsinf-keyring apt-get update apt-get install spectrum libpurple0-minimal
Configurer les passerelles
Il suffit de créer un fichier par passerelle dans le dossier /etc/spectrum. Pour configurer notre fichier, nous utilisons le fichier exemple. Les fichiers possèdent une extension en .cfg
Nous allons mettre en place une passerelle MSN, sûrement l’une des plus utilisée.
Créons le fichier msn.cfg :
[service] # enable this spectrum instance enable=1 # one of: aim, facebook, gg, icq, irc, msn, myspace, qq, simple, xmpp, yahoo protocol=msn # component ip server=127.0.0.1 # if use_proxy is 1, the http_proxy env var will be used as the proxy server # for example export http_proxy="http://user:passwd@your.proxy.server:port/" use_proxy=0 # component JID jid=$protocol.mdl29.net # component secret password=pwdmsn # component port port=5203 config_interface = /var/run/spectrum/$jid.sock # IP:port where filetransfer proxy binds to. This has to be public IP. filetransfer_bind_address=jabber.mdl29:12345 # IP:port which will be sent in filetransfer request as stream host. #filetransfer_public_address=192.0.2.1:12345 # admin JIDs - Jabber IDs of transport administrators who have access to admin adhoc commands # separated by semicolons admins=jabbermdl@mdl29.net # directory where downloaded files will be saved filetransfer_cache=/var/lib/spectrum/filetransfer_cache # URL used to acces filestransfer_cache directory from the web. #filetransfer_web=http://example.com/files/ # if filetransfer_force_cache_storage is 1, files received from legacy networks # are always stored on server and link is sent to XMPP user #filetransfer_force_cache_storage=0 # name of transport (this will appear in service discovery) name=Passerelle msn # default language language=fr # transport features separated by semicolons # combination of: avatars, chatstate, filetransfer # if commented, all features will be used # This variable is DEPRECATED and will be removed in future versions. Use [features] instead. #transport_features = avatars;chatstate;filetransfer # if vip_mode is 1, users are divided to 2 groups according to 'vip' database field vip_mode=0 # if vip_mode is 1, you can set transport to be availabe only for VIP users by setting only_for_vip to 1. only_for_vip=0 # if vip_mode is 1 and only_for_vip is 1, users can connect from these servers even they are not VIP. # This feature is useful, if you want to enable transport only for users from your server, but also want # to give access to VIP users from other servers (for example from GTalk) # seperated by semicolons #allowed_servers=localhost # transport features separated by semicolons which will be used for VIP users. # combination of: avatars, chatstate, filetransfer # if commented, all features will be used # This variable is DEPRECATED and will be removed in future versions. Use [vip-features] instead. #vip_features = avatars;chatstate;filetransfer # pid file pid_file=/var/run/spectrum/$jid.pid # require_tls to connect legacy network #require_tls=false # Eventloop used by Spectrum. Allows to change default use of poll to epoll, # which should be faster and handles more connections better. # WARNING: some 3rd party libpurple protocol plugins are not prepared to be # used with different eventloop, but protocols included in libpurple by default # works OK. #eventloop=glib [registration] # Set to 0 to disable transport registration to everyone except # people from host from allowed_servers list. #enable_public_registration=1 # You can override username registered by transport user. This is useful # for example if you want to let users to register only their Facebook name # and internally connect them to facebook_name@chat.facebook.com. # $username variable is replaced by username which has been registered # by particular user. #username_mask = $username@chat.facebook.com # This option allows you to white-list newly created accounts according # to regexp. for example allowed_usernames=*.\.gmail\.com$ will allow only # GTalk users to register. If you use username_mask, then username_mask is # applied before this option. #allowed_usernames=regexp # Label used to described username field in registration form #username_label = Facebook username # This variable overrides default instructions text in registration form. #instructions = Type your Facebook name here: # Transport features, all features are enabled by default. [features] #filetransfer=1 #avatars=1 #chatstates=1 #statistics=1 # Transport features for VIP users, all features are enabled by default. [vip-features] #filetransfer=1 #avatars=1 #chatstates=1 [logging] # log file, needs to be unique for each spectrum instance log_file=/var/log/spectrum/$jid.log # log areas # combination of: xml, purple log_areas=xml;purple [database] # mysql or sqlite type=sqlite # hostname (not needed for sqlite) #host=localhost # username (not needed for sqlite) #user=user # password (not needed for sqlite) #password=password # sqlite: set path to database file here # mysql: set to name of database database=/var/lib/spectrum/$jid/database.sqlite # table prefix for multiple transport instances sharing the same database #prefix=icq_ [purple] # avatar, vcard, roster storage # needs to be unique for each spectrum instance userdir=/var/lib/spectrum/$jid/userdir port=80 http_method=1
Explications
- protocol= on choisit quel protocole on souhaite utilser, ici c'est msn
- server= on laisse l'adresse locale
- jid= ajoutons notre nom de domaine
- password= mot de passe utilisé lors de la connexion ejabberd et spectrum
- port= le port de connexion entre ejabberd et spectrum
- filetransfer_bind_address= port utilisé pour le transfert de fichiers
- name= nom de la passerelle
- language= on définit en fr
- [purple] ici on spécifie les paramètres spécifiques à msn
Par défaut, msn se connecte sur le port 1863. Nous utiliserons une connexion par la méthode HTTP (port=80, http_method=1)
On change les droits du fichier msn.cfg
cd /etc/spectrum chown root:spectrum msn.cfg chmod o-rwx msn.cfg
Démarrons Spectrum :
/etc/init.d/spectrum start
Si vous avez plusieurs fichiers .cfg, il est possible de les démarrer ou arrêter séparemment.
spectrumctl -c msn.cfg start spectrumctl -c msn.cfg stop
Une fois Spectrum correctement lancé , nous allons modifier la configuration de notre serveur jabber.
Configurer ejabberd
Avant d'effectuer toutes modifications, nous arrêtons notre serveur :
/etc/init.d/ejabberd stop
Pour rappel, le fichier de configuration se trouve dans /etc/ejabberd/ejabberd.cfg
Ajoutons les lignes suivantes :
%%Passerelle msn {{5203, "127.0.0.1"}, ejabberd_service, [ {access, all}, {host, "msn.mdl29.net", [{password, "pwdmsn"}]} ]},
Redémarrons le serveur :
/etc/init.d/ejabberd start
On verifie que le serveur est bien lancé :
ejabberdctl status
Voilà, votre passerelle msn est opérationnelle :)