Los requerimientos que presenta la versión 0.3 son los siguientes en lo que respecta al script en modo consola.
SQL Server DBI compatible (por defecto usa MySQL)
Perl v 5.6.1 o superior
y los siguientes módulos PERL
Net::Jabber versión 1.0024 o superior
XML::Stream versión 1.16
DBI (mysql)
POE
POE ::Component::Jabber
AUTHEN::DIGEST::MD5 versión 0.04 o superior
AUTHEN::SASL versión 2.0.8 o superior
DIGEST::SHA1 versión 2.10 o superior
MIME::BASE64 versión 3.0.5 o superior
NETSSLeay.pm versión 1.25 o superior
POE::Filter::XML
Net::Jabber
PXR
Una vez instalados las dependencias de bandersnatch, comenzamos con la instalación y configuración del componente siguiendo los pasos establecidos en el manual provisto por la distribución. A pesar de que el manual es bastante completo , lo es para la versión 1.4.x del servidor Jabberd. Información actualizada para la versión 2 se puede encontrar recorriendo los archivos de la mailing list https://sympa.funkypenguin.co.za/index.htm/arc/bandersnatch.
Dado que es un script, solo procedemos a descomprimir el tarball y luego pasamos a la configuración del mismo.
Para generar la base de datos que utiliza para almacenar los mensajes, debemos correr el script bandersnatch.sql. (Debimos editarlo para corregir errores de sintaxis en el mismo)
La configuración de el componente a nivel de jabberd2 es la siguiente:
En el router.xml hay que agregar las siguientes líneas dentro de la sección <aci>
<!-- These users can bind names other than their username -->
<acl type='bind'>
<user>bandersnatch</user>
</acl>
<!-- These users can elect to receive all packets that
pass through the router -->
<acl type='log'>
<user>bandersnatch</user>
</acl>
El archivo de configuración de bandersnatch según implantado en facultad se encuentra en el Apéndice de archivos de configuración del servicio implantado en Facultad A8
Para iniciar este componente solo debemos ejecutar el comando ./badernstach2.pl config.xml &
Primero debemos instalar las dependencias del mismo, las cuales son
PHP 4 con opción zlib habilitada al momento de compilación. Esto permitirá la instalación de los módulos PEAR desde los tarball directamente
PEAR DB 1.3 (included with PHP 4.3.0)
PEAR HTML_Template_IT 1.0.0
PEAR Auth 1.1.1
Servidor web con soporte para PHP
Instrucciones en cuanto a la descarga e instalación de las bibliotecas PEAR pueden ser encontradas en http://pear.php.net/manual/en/installation.php
Una vez instaladas las dependencias, se genera un alias para el directorio frontend dentro de la instalación de bandersnactch en la configuración del servidor web y se otorgan los permisos correspondiente (lectura y ejecución en todo el path.)
Luego debemos editar el archivo config.inc.php dentro del directorio frontend/includes de bandersnactch. Se deberá setear los valores adecuados de: local_server, local_domain, local-transports, etc..
Como último paso debemos editar el archivo de configuración de PHP (/etc/php.ini) y agregarle dentro de los include-path /usr/local/lib/php/.
Si el usuario admin de bandersnatch ya esta creado, se deberá cambiar la clave para que ésta este encriptada mediante MD5, a modo de ejemplo se incluye el comando SQL a ejecutar
mysql> update auth
-> set PASSWORD=MD5( 'nueva_password' )
-> where username='admin';
Corrección en fuente Perl para solucionar problemas de doble entrada de log de mensajes
........
# Function : log_message
# Purpose : Log "message" type nodes
##########################################*/
sub log_message
{
my $node = shift;
my %message;
my $sqlquery;
my $is_local = 0;
my $header = $node->get_children()->[0];
my $body = $header->get_children()->[0];
return if (!$body->data()); # Don't log empty messages, or "non-<message>" messages :)
return if ($header->attr('sc:sm')); # Para no duplicar mensajes. (Antes era !$header->attr('sc:sm'))
return if ($header->attr('sm:sm')); # (se implementa lo mismo para mensajes con conversaciones a travès de Gateways externos).
$message{'to'} = $header->attr('to');
$message{'from'} = $header->attr('from');
$message{'type'} = $header->attr('type');
$message{'subject'} = $header->attr('subject');
$message{'thread'} = $header->attr('thread');
$message{'error'} = $header->attr('error');
$message{'errorcode'} = $header->attr('errorcode');
$message{'body'} = $body->data();
..............
Estudio del Open/Free (GNU/Linux) como plataforma de servicios de red en entornos empresariales
Daniel Caraballo - Mario Madera - Marcelo Odin
Tutor: Ariel Sabiguero Yawelak
2004 - 2005.