La fonctionnalité MUC (Multi-User Chat) c'est simplement reproduire IRC sur Jabber : discussion à plusieurs (> 2 personnes).
Avec ejabberd, il faut :
- une entrée A/AAAA/CNAME dans le DNS (par défaut c'est conference.<virtualhost_actuel> mais ça se change dans le fichier de config). D'après mes tests, ça ne peut pas être le nom de l'hôte lui même (erreur : le nombre max d'utilisateurs est atteint) ...
- Le module MUC est activé par défaut mais il faut ajuster les ACL (qui peut être admin ? qui peut créer un salon ?, ... ?) selon vos envies :
http://www.process-one.net/docs/ejabberd/guide_en.html#sec69
Mes observations de n00b découvrant le truc :
- Le serveur devient un point central pour les salons et pour les discussions privées. J'imaginais un mode P2P. Du full-mesh entre tous les participants, le serveur ne servant qu'à mettre en relation "tels JID sont connectés à ce chan". Le serveur d'un participant envoie le message à tous les participants, de manière directe. Oui, ça ne passerait pas à l'échelle et oui, ça montrerait les JID à tout le monde alors qu'ils sont masqués aux utilisateurs (visibles des modo/admins), par défaut). Donc Jabber+MUC c'est vraiment comme IRC d'un point de vue de l'architecture.
- On peut inviter des personnes de sa liste de contacts sur un salon hébergé sur un serveur qui n'est pas le sien. Ce qui signifie que, dans un groupe de connaissance, tout le monde n'a pas besoin de faire le petit bout de conf qu'il faut pour pouvoir discuter à plusieurs. Comme IRC quoi.
- C'est un pseudo par salon, pas par serveur contrairement à IRC.
- Les admins/modos ne peuvent pas s'entre-kicker/ban, contrairement à IRC (ce comportement dépend peut-être du logiciel serveur IRC utilisé). Un admin/modo ne peut pas non plus s'auto kick/ban.
- Un salon peut se caractériser par un nom, un sujet et une description. Sur IRC c'est nom (avec un # obligatoire) et un sujet.
- Quand on rejoint un salon, on a un historique de ce qui s'est dit sur le salon avant notre arrivée.
- Pour chaque personne, on peut définir une affiliation (outcast (banni), none (simple participant), member, admin et owner) et un rôle (none (kick), visitor (sans voix), participant (normal), moderator).
- Il y a une fonctionnalité d'auto-reconnexion au serveur/salon en cas de coupure réseau, en tout cas par défaut avec Gajim ... tout comme c'est possible de config irssi pour faire ça.