Jun
10Ejabberd y mod_archive
Filed Under (Trabajo) by admin on 10-06-2008
Tagged Under : ejabberd, jabber, mod_archive, MySQL
Hace algo de tiempo conocà ejabberd, es un servidor de Jabber de alto desempeño; inicialmente debo admitir que no me gustó mucho principalmente porque está escrito en Erlang y que tenÃa poca documentación, además de que cometer un error de configuración mostraba muchisimos datos sin sentido para programadores de Erlang y nada en lenguaje ‘humano’.
Ahora el proyecto ha madurado considerablemente y una de las ventajas por la que sigo utilizando Ejabberd es que es el único servidor Jabber open source en manejar clustering.
Recientemente me pidieron instalar un módulo para almacenar la historia de las conversaciones, algo que hace por ejemplo Google Talk (que está implementado en Jabber), este es el protocolo: XEP-0136 y utilizar la opción de guardar conversaciones automáticamente (sin intervención del usuario para solicitar que se almacene).
Hay diversos modulos para implementar esto en ejabberd, pero buscando me encontré que mod_archive es el mejor y el que se encuentra con desarrollo activo.
El problema es que prácticamente no existe documentación ni información de si por ejemplo funcionarÃa en Ejabberd 2 que es la versión del servidor que utilizo.
A prueba y error y con algunos pequeños documentos que me encontré descubrà que si funciona en la versión 2.0, a continuación vienen los pasos para hacerlo funcionar con MySQL:
- Compilar ejabberd para que acepte odbc
./configure --enable-odbc - Descargar los módulos de ejabberd
svn co http://svn.process-one.net/ejabberd-modules - Compilar el módulo interno de MySQL de los módulos descargados de ejabberd
cd mysql/trunk ./build.sh cp ebin/*.beam /directorio_ejabberd/var/lib/ejabberd/ebin/
- Compilar el módulo de archivo (mod_archive)
cd mod_archive/trunk ./build.sh cp ebin/*.beam /directorio_ejabberd/var/lib/ejabberd/ebin/
- Editar el archivo de configuración de Ejabberd para habilitar odbc
{odbc_server, {mysql, "direccion_servidor", "base_de_datos", "usuario", "contraseña"}}. - Editar el archivo para agregar mod_archive (parte de
{modules,…){mod_archive_odbc, [{database_type, "mysql"}, {default_auto_save, true}, {enforce_default_auto_save, false}, {default_expire, infinity}, {enforce_min_expire, 0}, {enforce_max_expire, infinity}, {replication_expire, 31536000}, {session_duration, 1800}, {wipeout_interval, 86400} ]}, - Crear la base de datos utilizando el archivo:
ejabberd-modules/mod_archive/trunk/src/mod_archive_odbc_mysql.sql
Hay que hacer notar que el archivo sql es para MySQL 5 y posteriores (para utilizarlo con una versión anterior hay que eliminar la parte de triggers), además el archivo crea una base de datos llamada ejabberd, si se necesita otro nombre editarlo para ya sea eliminar la parte de crear o cambiar el nombre de la base de datos que será creada; utiliza el prefijo archive_ para sus tablas.
Iniciar (o reiniciar) el servicio de ejabberd y a partir de ahora todas las conversaciones serán guardadas en mysql.
Hola
Es de mi real necesidad llegar al fin de este tema por que necesito guardar las conversaciones y aunque y las xplicas pudieras darme una mano el caso es para comenzar estos pasos simplemente.
./configure –enable-odbc
el sistema dice que no reconoce esto. mi pregunta ejecuntar esto dentro de algo???
tengo instalado make, gcc por qué???
disculpa mi novatada.
Saludos
Cosme
socio tengo la 2.0.5 y del manual probé para poder guardar las conversaciones de usuarios pero no hace nada co crea ningún fichero.
Cuando trato de implementar los pasos que describes
./configure –enable-odbc
me pone que no reconoce el fichero.
desde donde se corre esto??? o que falta por instalar???
además cuandro trato de probar ejabberctl status me dice que no reconoce esto todo lo demás trabaja y la verdad es que necesito guardar las conversaciones ya el jefe las quiere.
Qué puedes decirme de esto???
Saludos
Cosme