Un client Jabber en mode texte

Ven 26 août 2005

Je farfouillais à propos de Google Talk et Gaim, quand j'ai été pris d'une envie soudaine : trouver un client Jabber en mode texte. Dans les dépôts activés sur mon Ubuntu, j'en ai trouvé deux : cabber et imcom.
L'installation de cabber est certes allée jusqu'au bout, mais impossible de le faire fonctionner : le programme ne crée pas de fichier de configuration dans /home et quand bien même on recopie un fichier de conf' d'exemple, il refuse de fonctionner.
$ apt-get remove cabber
Sans regret. On s'appelle d'accord ?
Puis, j'ai testé imcom.
Oh ! avant de passer à la suite, je rappelle (à tout hasard) mon identifiant Jabber : brunobord@jabber.org. Je dis ça, c'est surtout parce que je pense que ce protocole va devenir mon mode principal de messagerie instantanée, et que je risque de mettre peu à peu aux oubliettes Yahoo!IM et MSN au profit de ce standard ouvert et ô combien performant. J'en ai rien à foutre du client que tu auras choisi d'utiliser, mais je t'en conjure, si tu veux te mettre à discuter via une messagerie instantanée, UTILISE JABBER ! (ou Google Talk, c'est presque pareil)

Où en étais-je ? Ah ! oui ! IMCom !

Là, on change carrément de catégorie. Il fait tout. Il est en mode texte, est écrit en Python, il s'ouvre depuis la console, mais il fait tout ce qu'un client graphique peut faire, pour un poids considérablement plus faible.

Installation et configuration

Pour l'installer sous Ubuntu : il te faudra activer les paquets "universe", puis installer le paquet imcom, via Synaptic. Si comme moi tu as des difficultés avec les applications graphiques, tu peux lancer la commande :
$ sudo apt-get install imcom
Ensuite on lance "imcom" et pour la première exécution le programme nous demande :
- un nom de profil : c'est le titre générique du profil. Exemple "Premier"
- le nom du serveur : pour ma part, c'est "jabber.org". Ca correspond à ce qui se trouve à droite du "@" de ton identifiant.
- Est-ce que tu veux utiliser SSL ? Les connexions sécurisées sont généralement recommandées, elles évitent que les pirates de "bas étage" espionnent tes communications (qui sont du domaine privé). Avec ce type de configuration, les échanges seront cryptés.
- Quel port utiliser ? Le port par défaut est une bonne option. Il faudra penser à configurer le pare-feu pour qu'il laisse passer les communications en entrée.
- Ton login : c'est ce qui se trouve à gauche de ton identifiant jabber. Pour ma part, "brunobord"
- Ton mot de passe : ben... c'est ton mot de passe, quoi. Tu crois pas que je vais te le donner non plus ?
- La ressource : Là... On touche à un point important. Quelque chose que je n'avais pas encore saisi, et c'est en testouillant imcom que j'ai enfin pigé quelque chose : Jabber, c'est l'ubiquité. Dans les protocoles Yahoo ou MSN, par exemple, il n'est pas possible de se connecter avec le même compte de deux endroits différents. Avec Jabber, c'est parfaitement possible. La chose qui différencie tes différentes apparitions sur la toile, c'est justement ce paramètre "ressource". Ca, c'est génial !
- Encodage de caractères : Fais bien attention à utiliser utf-8 sous Hoary, j'ai testé iso-8859-1 (option par défaut), et les caractères accentués sont apparus comme autant de verrues sur ma console.

Normalement, c'est good. Si ton compte existait déjà, imcom récupère la liste de tes contacts ("roster").
Ta configuration est enregistrée dans ton ~/.imcom/imcomrc, sous format XML. En cas de bug, tu peux éditer le fichier. Au pire, tu le supprimes et tu recommence ton inscription, ça se refabrique tout seul.

Quelques commandes utiles

Etant donné que le développement de l'application est un peu en pause (définitve ?), et que le site supposé abriter la doc est mort (apparemment, le nom de domaine a sombré, corps et biens), la seule aide que tu peux avoir, c'est la commande /help.
Bon, je mens... Y'a pas que l'aide du soft. Mais attends... D'abord, on va commencer à discuter, on agira après, ok ? Dans la petite doc qui suit, JID est l'identifiant de la forme "monnom@serveur.tld"
Contacts

/add [JID] [surnom] : Ajoute l'utilisateur JID dans la liste de tes contacts. Si c'est un autre utilisateur qui t'invite à devenir son contact, la commande pour l'accepter sera :
/auth [JID]

Pour connaître la liste des contacts de ta liste :
w
Ca te donne la liste des utilisateurs, avec leur statut (en ligne, connecté...)

Pour ne voir que les contacts connectés :
e

Discuter
/msg [surnom ou JID] [message avec des mots dedans] : Envoie le "message avec des mots dedans" à ton contact. A noter que tu peux aussi envoyer des messages multiligne en tapant sur "Entrée" avant de taper le message. Tu peux ensuite entrer autant de lignes que tu veux. Pour finir, tape une ligne avec un seul caractère : "." (point), qui met un point final à ta tirade.

// [message avec des mots dedans] : Envoie un message à la dernière personne à qui tu as parlé

/r [message avec des mots dedans] : répond à la dernière personne qui t'a parlé.

Attention les yeux, rien ne voit plus ! Là, on voit une faille de "sécurité" dans l'utilisation d'imcom. Ca tient au fait qu'il n'y a pas, comme dans Gaim, d'onglet pour différencier les conversation. Tout se passe dans la même fenêtre (pour toi). Et là, c'est le drame

Scénario de la peuuuur !
Tu as deux contacts, Josette et Raymond. Tu te connectes juste. Raymond t'interpelle, d'un coup :

\< Raymond> : Ah vraiment Josette, elle me sort par les yeux ! Quelle morue !

Là dessus, Josette se connecte, et commence à taper un message PENDANT QUE TU REPONDS A RAYMOND !
La commande que tu tapes est :
/r tout à fait d'accord avec toi, Raymond. Josette, c'est vraiment une connasse. Je me demande encore comment tu as fais pour supporter cette pauvre fille.

Le soucis, c'est si c'est Josette qui termine son message en premier, juste avant que tu appuies sur "Return".

\< Josette> : Salut, toi, tu vas bien ?
\< Toi> (à Josette !!!) : tout à fait d'accord avec toi, Raymond. Josette, c'est vraiment une connasse. Je me demande encore comment tu as fais pour supporter cette pauvre fille.

Au se-cours.
Heureusement, il y a une astuce... Plutôt que d'utiliser /r et de foutre la merde, tu peux taper sur [Espace], puis [Tabulation]. Ca remplira la ligne par /msg [l'id de la dernière personne qui t'a parlé].
De même, pour simuler "//", il suffit de taper sur [tab].

En terme d'utilisabilité, c'est un peu contraignant de devoir toujours taper quelque chose avant son message, mais c'est surtout une question d'habitude. Avant de répondre directement, il faut savoir à qui on veut parler, c'est tout.

Bon, là, t'as déjà le minimum vital pour utiliser imcom. Pour quitter, c'est simple :
/quit

Eléou la doc ?

Comme le site de base est fermé, heureusement qu'archive.org est là pour nous sauver !
Les commandes principales dIMCom, avec toutes les options. Y'a aussi les fonctions de conférence, bien utiles pour tailler la bavette à plusieurs. Je ne te cache pas que NiKo, Play et moi, on s'est tapé quelques belles tranches de rigolade grâce à Jabber et sa fonction "conférence"...

Maintenant, cette situation est moyennement tenable. La doc est dans un HTML "avec des gros tableaux pas beaux" et uniquement en Anglais. Je pense que je vais mettre bientôt en ligne une version sémantiquement convenable et à la fois en Anglais et en Français. Ca me servira autant à moi qu'à toi.