Jabberd-MSN
http://msn-transport.jabberstudio.org/ : use
<servers> <ip>messenger.hotmail.com</ip> </servers>
in the <msntrans> section of your MSN-t config file if you encounter problems with the transport.
Note there are memory leaks in MSN-t so run it in a seperate process and restart it from time to time until this gets fixed.
apt-get install libcurl2-ssl libcurl-ssl-dev cd jabberd/jabber-1.4.2a wget http://msn-transport.jabberstudio.org/msn-transport-1.2.8rc1.tar.gz tar -xzvf msn-transport-1.2.8rc1.tar.gz cd msn-transport-1.2.8rc1 ./configure --with-jabberd=/home/hellea/installations/jabber/compilation/jabber-1.4.2a/jabberd make mkdir /var/lib/jabber/msn cp src/msntrans.so /var/lib/jabber/msn
On va lancer le service MSN dans un process a part car il est assez foireux (mem leakages, etc) Ajouter dans /etc/jabber/jabber.xml, section <browse>:
<service type="msn" jid="msn.reseaucitoyen.be" name="Passerelle vers MSN"> <ns>jabber:iq:gateway</ns> <ns>jabber:iq:register</ns> </service>
Ajouter dans /etc/jabber/jabber.xml, dans la liste des <service>:
<service id="linker-msn"> <host>msn.reseaucitoyen.be</host><host>conference.msn.reseaucitoyen.be</host> <accept> <ip>127.0.0.1</ip> <port>5224</port> <secret>msnkey</secret> </accept> </service>
Créer /etc/jabber/transport-msn.xml:
<jabber> <log id='elogger'> <host/> <logtype/> <format>%d: [%t] (%h): %s</format> <file>/var/log/jabber/msn-error.log</file> </log> <log id='rlogger'> <host/> <logtype>record</logtype> <format>%d %h %s</format> <file>/var/log/jabber/msn-record.log</file> </log> <service id="msn.reseaucitoyen.be"> <msntrans xmlns="jabber:config:msntrans"> <instructions>Entrez votre login MSN Messenger et password. Example: user1@hotmail.com. Nickname optionnel.</instructions> <vCard> <FN>Passerelle vers MSN</FN> <DESC>Ce service fournit une passerelle pour communiquer avec le reseau MSN</DESC> <URL>http://msn-transport.jabberstudio.org/</URL> </vCard> <conference id="conference.msn.reseaucitoyen.be"> <invite>Plus d'un user participe a cette discussion. Joignez-vous a cette chatroom pour passer en mode groupchat.</invite> <notice> <join> est maintenant en ligne</join> <leave> est parti</leave> </notice> </conference> <headlines/> <curl> </curl> </msntrans> <load> <msntrans>/var/lib/jabber/msn/msntrans.so</msntrans> </load> </service> <service id="linker-msn"> <uplink/> <connect> <ip>127.0.0.1</ip> <port>5224</port> <secret>msnkey</secret> </connect> </service> <pidfile>/var/run/jabber/jabber-msn.pid</pidfile> </jabber>
Créer /etc/init.d/jabber-msn:
#! /bin/sh # # jabber init script to start jabber daemon # # Created from Bernd Eckenfels <ecki@lina.inka.de> # # Written by Miquel van Smoorenburg <miquels@cistron.nl>. # Modified for Debian GNU/Linux # by Ian Murdock <imurdock@gnu.ai.mit.edu>. # # Version: @(#)skeleton 1.8 03-Mar-1998 miquels@cistron.nl # # This file was automatically customized by dh-make on Sun, 21 May:31:20 +0200 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/jabberd NAME=jabber-msn DESC=jabber-msn CONF=/etc/jabber/transport-msn.xml PID=/var/run/jabber/jabber-msn.pid CMDLINE="" test -f $DAEMON -a -f $CONF || exit 0 # set some parameters like JABBER_HOSTNAME if test -x /etc/jabber/jabber.cfg; then . /etc/jabber/jabber.cfg fi if [ x"$JABBER_HOSTNAME" != x"" ]; then CMDLINE="$CMDLINE -h $JABBER_HOSTNAME" fi if [ x"$JABBER_SPOOL" != x"" ]; then CMDLINE="$CMDLINE -s $JABBER_SPOOL" fi if [ x"$CONF" != x"" ]; then CMDLINE="$CMDLINE -c $CONF" fi if [ x"$CMDLINE" != x"" ]; then CMDLINE="-- $CMDLINE" fi set -e case "$1" in start) echo -n "Starting $DESC: " cd /usr/lib/jabber/ start-stop-daemon -b -c daemon --start --quiet --pidfile $PID --startas $DAEMON $CMDLINE || echo -n "<Failed> " echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --pidfile $PID || echo -n "<Failed> " echo "$NAME." ;; reload) echo "Reloading $DESC configuration files." start-stop-daemon --stop --signal 1 --quiet \ --pidfile $PID --exec $DAEMON ;; restart|force-reload) # # If the "reload" option is implemented, move the "force-reload" # option to the "reload" entry above. If not, "force-reload" is # just the same as "restart". # echo -n "Restarting $DESC: " $0 stop sleep 1 $0 start ;; *) N=/etc/init.d/$NAME # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0
update-rc.d jabber-msn defaults 21 19
Ajouter également à /etc/init.d/jabber:
case "$1" in start) echo -n "Starting $DESC: " cd /usr/lib/jabber/ start-stop-daemon -b -c daemon --start --quiet --exec $DAEMON $CMDLINE || echo -n "<Failed> echo "$NAME." + echo "Don't forget to start also jabber-msn" ;; stop) + /etc/init.d/jabber-msn stop echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --exec $DAEMON || echo -n "<Failed> " echo "$NAME." ;;
Cela est fait tel que:
/etc/init.d/jabber start -> lance le jabberd principal /etc/init.d/jabber-msn start -> lance le service MSN /etc/init.d/jabber-msn stop -> arrete le service MSN /etc/init.d/jabber stop -> arrete le jabberd principal ET le service MSN
Créer /etc/cron.weekly/jabber-msn:
#! /bin/sh # Restart this f** MSN service test -f /etc/jabber/msntrans.xml || exit 0 /etc/init.d/jabber-msn stop >/dev/null rm -f /var/run/jabber/jabber-msn.pid sleep 5 /etc/init.d/jabber-msn start >/dev/null
Rem: si on vient d'une version < 1.2.8.pre6 il faut convertir les noms de fichier de la XDB (dans /var/lib/jabber/msn.reseaucitoyen.be) en minuscules:
for i in *.xml; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done
voir aussi le "next-generation MSN transport"