Pasarelas (t.c.c. Transportes): la MSNetwork (t.c.c. Hasenet)
A continuación nos disponemos a configurar una pasarela a la red de mensajería del Hasefroch. De esta manera modemos controlar nuestros contactos, conversaciones y chats con los amigotes del MSN de forma centralizada desde la cuenta de jabber. Además de esta manera no será necesario un cliente "multiprotocolo".
La pasarela a la que se hace referencia a continuación es MSN-Transport. Según los autores parece ser que dicha pasarela no gestiona correctamente el uso de la memoria. Por ello, nos dispondremos a configurar un demonio aparte que se conectará al demonio principal. La idea es bella, y de esta manera en caso de problemas podremos reiniciar el demonio encargado de ofrecer servicio hacia MSN sin interferir en el funcionamiento del resto de cuentas jabber.
NOTA: En debian ya hay disponibles paquetes precompilados para añadir las distintas pasarelas existentes mediante apt-get.
A continuación siguen una serie de pasos a seguir para la instalación de la componente msn-transport:
1. apt-get install curl libcurl2 libcurl2-dev. Curl permite usar multitud de protocolos para la transmisión de datos entre un cliente y un servidor. Es una especie de wget pero más potente y orientado hacia la integración con otros programas.
2. Bajarse el código fuente del jabber. Por ejemplo, mediante apt-get source jabber, y en este caso el código queda disponible en $SRC/jabber-1.4.x/.
NOTA: Ya te puedes bajar el paquete jabber-dev para debian, de manera que no es necesario el paquete de fuentes y puedes abreviar los siguientes pasos ciñiéndote a la instalación de la pasarela (si no lo hay hecho ya con los paquetes precompilados).
3. Ejecutamos ./configure para generar información necesaria para el "configure" de la pasarela msn. Si vamos a instalar el jabberd a partir del código fuente en lugar de usar el paquete precompilado mediante apt-get, rpm o lo que queramos, entonces dentro del fichero "./configure" debe modificarse la variable WANT_SSL al valor 1 (o no tendremos soporte de SSL).
4. Descomprimir msn-transport-1.2.8pre10.gz (versión usada en este artículo) dentro del directorio que contiene el código de jabber. En este ejemplo el código del módulo quedará dentro de $SRC/jabber-1.4.x/msn-transport-1.2.8pre10/
5. Situándose dentro de la carpeta anterior, ejecutamos ./configure --with-jabberd=$SRC/jabber-1.4.x/jabberd/.
6. Ahora ya estamos listos para ejecutar make dentro del directorio del msn-transport.
7. Si todo ha ido bien ya tenemos compilado el módulo msntrans.so, el cual se encuentra en el subdirectorio $SRC/jabber-1.4.x/msn-transport-1.2.8pre10/src/. A continuación lo guardamos junto con los demás módulos de jabber. Por ejemplo, en /usr/lib/jabber/msntrans/msntrans.so
La parte de compilación ya está lista. Ahora debemos crear la configuración.
1. Seguramente en /etc/jabber/ disponemos de la configuración del jabber instalada por el apt-get del principio. Todo esto no puede ser muy distinto en otras distribuciones. En este directorio creamos el fichero msn.xml con el siguiente contenido:
<jabber>
<!-- msnlinker enlaza con los demás procesos de jabber -->
<service id="msnlinker">
<uplink/>
<connect>
<ip>127.0.0.1</ip>
<port>1234</port>
<secret>test</secret>
</connect>
</service>
<service id="hasenet.bulmalug.net">
<!-- Dominio válido, igual que el resto -->
<host>chat.hasenet.bulmalug.net</host>
<!-- Sala de chat pera usuarios de MSN-->
<msntrans xmlns="jabber:config:msntrans">
<instructions>Enter your MSN Messenger account and password.
Example: user@hotmail.com. Nickname's optional.
Data will be stored in the server to run transparently.
The server will import your friends list.</instructions>
<vCard>
<FN>Transport MSN</FN>
<DESC>This is MSN Transport</DESC>
<URL>http://bulma.net/</URL>
</vCard>
<conference id="chat.hasenet.bulmalug.net">
<invite>More than one user has joined this chat session.
Join this room to switch into groupchat mode.</invite>
<notice>
<join> has become available</join>
<leave> has left</leave>
</notice>
</conference>
<!-- Activar si no funciona el servidor por defecto
<servers>
<ip>64.4.13.56</ip>
<ip>64.4.13.57</ip>
</servers> -->
<headlines/>
</msntrans>
<!-- Path al módulo a partir de /usr/lib/jabber/~ -->
<load>
<msntrans>./msntrans/msntrans.so</msntrans>
</load>
</service>
<!-- xdb y logs gestionados por el demonio principal
mientras esté comentado
<log id="msnlog">
<file>./msnlog</file>
</log>
<xdb id="xdb">
<host>hasenet.bulmalug.net</host>
<load><xdb_file>./xdb_file/xdb_file.so</xdb_file></load>
<xdb_file xmlns="jabber:config:xdb_file">
<spool>/home/sheath/jabber/jabber2/spool</spool>
</xdb_file>
</xdb>
-->
</jabber>
Si queremos que se puedan establecer conferencias entre cuentas de MSN, no queda más remedio que configurar las resoluciones de dominio y servicios para chat.hasenet.xxx.yy, como subdominio de hasenet.xxx.yy.
2. A continuación debe modificarse el jabber.xml. En primer lugar añadimos el siguiente código dentro de la sección <browse> para que la pasarela a MSN aparezca en la lista de servicios ofrecidos (aquí la llamamos "Transport a MSN"):
<service type="msn" jid="hasenet.bulmalug.net" name="Transport a MSN">
<ns>jabber:iq:gateway</ns>
<ns>jabber:iq:register</ns>
</service>
3. También en jabber.xml debemos indicar la aceptación por el demonio principal del proceso que se ocupará de la pasarela a MSN. Para ello, dentro de la etiqueta <jabber> incluimos el código expuesto a continuación. Este sistema mediante el cual la componente está funcionando en un proceso independiente es aplicable también a la componente de Conferencias y en general a todas. De este modo añadimos estabilidad (el fallo de uno de los demonios secundarios no provoca la caída de todo el servicio) y la posibilidad de escalar el servicio entre varios hosts.
<service id="msnlinker">
<host>hasenet.bulmalug.net</host>
<host>chat.hasenet.bulmalug.net</host>
<accept>
<!-- Datos en concordancia con los existentes en msn.xml -->
<ip>127.0.0.1</ip>
<port>1234</port>
<secret>test</secret>
</accept>
</service>
4. En principio ya está casi listo. Reiniciamos el servicio: /etc/init.d/jabber restart. Y posteriormente cargamos el demonio para el transporte de MSN: /usr/sbin/jabberd -c /etc/jabber/msn.xml &
5. Seguramente nos interese automatizar la carga del demonio secundario. Con toda seguridad existen muchas maneras de hacerlo, pero por ejemplo podemos crear el fichero /etc/init.d/msntrans (con permisos 755), el cual puede contener un script tan sencillo como el siguiente:
#/bin/sh
su daemon -c "/usr/sbin/jabberd -h bulmalug.net -s /var/lib/jabber -c /etc/jabber/msn.xml" &
Posteriormente, para que la carga sea automática en el arranque del host, podemos ejecutar update-rc.d msntrans defaults XX donde XX es un número mayor que el asignado -por defecto 20- al demonio jabber. Lo anterior nos crea los enlaces necesarios dentro de cada /etc/rcX.d/.
Aunque lo anterior es para Debian y para cada distribución de linux el sistema varía ligeramente, la base es la misma. Además, si vais a configurar un servidor de jabber con pasarela incluida seguro que ya sabéis como arrancar automáticamente un proceso al arrancar la máquina ;-) |