Jabber - v-l-m/vlm GitHub Wiki

#Configuration server jabber pour vlm

Objectif

Un peu d'historique

VLM n'a pas de messagerie inter-joueur. La gestion des points de contacts a été basiquement mise en place depuis 2012, mais l'interaction reste très faible. Plusieurs raisons :

  • le site est vieux et pas en html5 dynamique, ce qui n'a pas favorisé l'apparition de fonction comme "contacter Untel par email" ou "via facebook"
  • les joueurs recherchent souvent un contact sur la base d'un concurrent dans une course
  • ils peuvent répugner à mettre à disposition leur id facebook ou mail perso
  • la conversation souhaité relève beaucoup du papotage, de team-grouping. Quand il s'agit d'échanger au fond (stratégie de course), le mail trouve naturellement sa place
  • la taverne de virtual winds rempli une partie des fonctions en offrant une shootbox et des messages privés

Pourquoi un chat / une messagerie instantannée, cahier des charges

On veut :

  • permettre aux joueurs de dialoguer en 1-to-1 OK
    • incidemment : pouvoir accompagner plus facilement les nouveaux arrivants.
    • idéalement : par clic simple sur le ranking pour dialoguer avec un joueur
    • à minima : en favorisant la recherche d'amis sur la base du boat ou du playername OK
  • permettre aux joueurs de dialoguer autour d'une course (chat de groupe)
    • idéalement : par clic simple en tête de ranking ou sur un icone à côté de ~id d'une course
    • à minima en affichant la liste des "chat de groupe" disponibles.
  • de manière transparente (connecté au site de vlm = connecté au chat) (Cf. notion de prebind) OK
    • idéalement de manière complètement transparente : le chat dans un outil est "cloné" en // dans le site et vice-versa (Cf. carbon) OK
  • en disposant des fonctions d'auto modération (bloquer un user par exemple) OK via un client dédié
    • idéalement en disposant pour les admins de fonction de modération plus globale
  • optionnellement,
    • permettre la gestion de message offline OK
    • recevoir les messages offline par envoi par mail
    • faire une passerelle IRC (mod_ircd)
    • intégrer avec les quicknews (broadcast aux utilisateurs connectés)
    • en profiter pour gérer une image d'avatar (à revoir avec l'utilisation vcard... ldap .. science-fiction...)

Dans les tickets :

  • #669 : Client web jabber (Converse.js : https://github.com/jcbrand/converse.js)
  • #793 : Chat interboat (Ticket maître : porte les commits du service jabber)
  • #797 : Web service pour identifiants :
    • /ws/playerinfo/profile.php
    • /ws/boatinfo/profile.php
    • /ws/serverinfo/misc.php
  • #798 : Web service de recherche de joueur
    • /ws/playerinfo/list.php
  • #799 : Url de prebind
    • /xmpp-pre-bind.php

Documents de référence utilisés / lus

Installation & configuration du serveur jabber #793

Paramètres :

  • url pour le serveur jabber : iridium.v-l-m.org
  • url pour les chats de groupes : vhf.iridium.v-l-m.org
  • adaptation pour testing : (vhf.)ir.testing.v-l-m.org

DNS

  • Configurer deux CNAME iridium et vhf vers neptune2.v-l-m.org (sur les 2 domaines v-l-m.org et virtual-loup-de-mer.org)
  • Optionnel : Ajouter la déclaration des services jabber _xmpp-client._tcp.v-l-m.org 3600 IN SRV 10 100 5222 iridium.v-l-m.org. _xmpp-server._tcp.v-l-m.org 3600 IN SRV 10 100 5269 iridium.v-l-m.org.

PROSODY 0.9 (exemple pour testing sur wheezy)

  • déclarer le dépôt prosody comme vu là : http://prosody.im/download/package_repository
  • apt-get install prosody-0.9 lua-dbi-mysql lua-event lua-zlib
  • openssl genrsa -out /etc/prosody/certs/iridium.v-l-m.org.key 2048
  • openssl req -new -x509 -key /etc/prosody/certs/iridium.v-l-m.org.key -out /etc/prosody/certs/iridium.v-l-m.org.cert -days 1095
  • cp /home/vlm/vlmcode/hosting/conf/iridium.v-l-m.org.cfg.lua.dist /etc/prosody/conf.avail/iridium.v-l-m.org.cfg.lua
  • adapter les domaines
  • ln -sf /etc/prosody/conf.avail/iridium.v-l-m.org.cfg.lua /etc/prosody/conf.d/iridium.v-l-m.org.cfg.lua
  • cp /home/vlm/vlmcode/hosting/conf/prosody.cfg.lua.dist /etc/prosody/prosody.cfg.lua
  • adapter les domaines, et le mot de passe de mysql
  • /etc/init.d/prosody restart
  • verifier l'ouverture des ports : telnet iridium.v-l-m.org 5222

BOSH SERVER : PUNJAB

  • installation de punjab
    • apt-get install python-twisted python-openssl
    • cd /opt/
    • wget https://github.com/twonds/punjab/archive/master.zip
    • unzip master.zip
    • cd punjab-master/
    • python setup.py install
    • ajouter le fichier tac si nécessaire : nano punjab.tac
    • instancier punjab twistd -y punjab.tac
  • faire un proxy sur le port 80 pour bosh
    • activer mod_proxy a2enmod rewrite proxy proxy_http

    • configurer le vhost apache (port 80) en copiant la conf dans le vhost vlm

      <Location /http-bind >
          ProxyPass  http://iridium.v-l-m.org:5280/http-bind/
          ProxyPassReverse  http://iridium.v-l-m.org:5280/http-bind/
          Header set Access-Control-Allow-Origin "*"
      </Location>
      
      <Proxy *>
        Order Allow,Deny
        Allow from all
      </Proxy>
      

PREBINDING

  • tout est déjà dans le code avec site/xmpp-pre-bind.php
  • Activer le chat dans conf/param.php define_if_not("VLM_XMPP_ON", false);
  • Optionnel (si pas instance de prod) : VLM_XMPP_HOST et VLM_XMPP_HTTP_BIND_URL dans conf/param.php

Notifications

  • configurer le dépot wheezy-backports
  • apt-get install php-monolog
  • le reste est pré intégré dans externals
  • configurer les différents paramètres pour le bot dans conf/param.php

TODO LATER

  • PROSODY : "ignore_presence_priority = true"
  • passerelle irc/jabber avec mod_ircd
  • intégration avec les quicks news
  • mod_server_status : pourquoi faire ?
  • adapter le module de mail offline pour utiliser l'email de contact du joueur
  • meilleure intégration vcard ?
  • mieux paramètrer la ressource
⚠️ **GitHub.com Fallback** ⚠️