Jappix est un client XMPP libre, il peut remplacer des clients jabber comme Empathy, Pidgin, Gaijm…. Jappix. C’est un tout nouveau client Jabber qui a ceci de particulier qu’il fonctionne depuis une interface web. Bien pratique pour se connecter à Jabber depuis une machine sur laquelle il n’y a pas de client Jabber installé (au boulot, par exemple).
Jappix propose, entre autres, les fonctionnalités suivantes :
messagerie permettant la lecture, la composition et l'archivage de messages simples XMPP
édition de son profil utilisateur (informations, avatar)
publication et réception d'évènements personnels, tels que l'humeur, l'activité, la musique écoutée et la position géographique
gestion des salons de discussion favoris et recherche
recherche d'utilisateurs dans un annuaire
gestion, en plus des chats privés, des salons de discussion (avec un mode anonyme)
On commence par télécharger jappix à l'adresse suivante : http://project.jappix.com/ Il est capable de fonctionner avec divers serveurs web : lighttpd, apache… Notre installation se portera sur apache. Documentation officielle : http://codingteam.net/project/jappix/doc
Créons ce dossier :
mkdir -p /var/www/jappix
Changeons le propriétaire
chown -R www-data:www-data /var/www/jappix
On copie les fichiers de l'archive dans /var/www/jappix.
apt-get install apache2 php5 php5-gd libapache2-mod-php5
a2enmod rewrite proxy proxy_http
Fichier : /etc/apache2/sites-available/jappix.mdl29.net
<VirtualHost *:80> ServerName jappix.mdl29.net DocumentRoot /var/www/jappix/ ErrorLog syslog:local1 # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. # LogLevel warn CustomLog |/usr/local/bin/apache_log.pl combined <Directory /var/www/jappix/> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </Directory> </VirtualHost>
Et voilà, le tour est joué! il ne reste qu'à activer notre Vhost :
a2ensite jappix.mdl29.net /etc/init.d/apache2 reload
Fichier : /etc/apache2/apache2.conf on vérifie dans le fichier que la ligne suivante est bien décommentée :
AccessFileName .htaccess
Voilà pour la configuration d'apache c'est fini, on relance le serveur
/etc/init.d/apache2 restart
Une fois notre serveur apache correctement configuré, nous allons modifier 2 fichiers de configuration afin que notre serveur puisse communiquer avec jappix. Nos 2 fichiers se trouvent dans le dossier jappix/conf : hosts.php et main.php.php. Documentation officielle : http://codingteam.net/project/jappix/doc
// THE STATIC FILES HOST define('HOST_STATIC', '.'); (same server: . or external one like http://static.jappix.com // THE MAIN XMPP HOST (your XMPP server host, like jappix.com) define('HOST_MAIN', 'mdl29.net'); // THE MUC XMPP HOST (your MUC server host, like muc.jappix.com) define('HOST_MUC', 'conference.mdl29.net'); // THE ANONYMOUS XMPP HOST (enable it on your server and in main.php before) define('HOST_ANONYMOUS', 'anonymous.mdl29.net');
// SERVICE NAME define('SERVICE_NAME', 'Jappix'); // SERVICE DESCRIPTION define('SERVICE_DESC', ' messagerie maison du libre'); // JAPPIX RESOURCE define('JAPPIX_RESOURCE', 'mdl29'); // BINDING HTTP-BASE (generally : bosh/http-bind/bind) define('HTTP_BASE', 'bind'); // SECURED HTTP CONNECTIONS WITH SSL (on/off) define('SSL', 'off'); // LOCK TO THE DEFINED HOST (on/off) define('LOCK_HOST', 'off'); // ALL PAGES COMPRESSED WITH GZIP (on/off) define('GZIP', 'on'); // ANONYMOUS MUC CONNECTIONS ALLOWED (on/off) define('ANONYMOUS_ENABLED', 'off'); // DISABLE THE CACHING WITH THE DEVELOPER MODE (on/off) define('DEVELOPER_MODE', 'off');
Petite explication sur RESOURCE : La ressource est une partie optionnelle d’une adresse Jabber. C’est le dernier champ de celle-ci, séparé des autres par une barre oblique (« / »).
Une ressource, librement paramétrable par l’utilisateur dans son logiciel client, indique généralement l’endroit où un utilisateur de Jabber est situé. Par exemple, les valeurs Maison, Travail, Laptop ou bien Logiciel sont courantes. La ressource devient utile lorsqu’un utilisateur se connecte de plusieurs endroits ou avec plusieurs clients au même moment. Ses contacts ont alors le choix de lui envoyer un message à l’une ou l’autre de ses ressources, ou bien à celle par défaut, c’est-à-dire celle ayant la plus haute priorité. Si plusieurs ressources connectées au même moment ont des priorités égales, alors le message est adressé à la dernière ressource connectée. (source wikipedia)
Le but est de faire fonctionner notre serveur jabbber avec jappix pour cela on a besoin de modifier notre fichier de configuration. Documentation officielle : http://codingteam.net/project/jappix/doc/XmppServer
Fichier : /etc/ejabberd/ejabberd.cfg
On recherche le module mod_pubsub dans le fichier et on le remplace par :
{mod_pubsub, [ % requires mod_caps {access_createnode, pubsub_createnode}, {ignore_pep_from_offline, false}, {last_item_cache, false}, {max_items_node, 10000}, {plugins, ["flat", "pep"]}]},
On redémarre notre serveur jabber :
/etc/init.d/ejabberd restart
Maintenant que nos serveurs apache et jabber sont bien configurés, nous avons accès à notre client web : http://jappix.mdl29.net/
Après avoir cliquer sur Je me connecte, on renseigne les champs avec nos identifiants jabber. Il est possible d'utiliser ce service avec un téléphone mobile.