Revista Comunicación

Servidor jabber-XMPP con Openfire.

Por Hluisgarcia

Qué es

Leemos en la wikipedia que jabber, o mejor dicho, el protocolo XMPP, viene de “Extensible Messaging and Presence Protocol, más conocido como XMPP (Protocolo extensible de mensajería y comunicación de presencia) (anteriormente llamado Jabber1 ), es un protocolo abierto y extensible basado en XML, originalmente ideado para mensajería instantánea. Con el protocolo XMPP queda establecida una plataforma para el intercambio de datos XML que puede ser usada en aplicaciones de mensajería instantánea. Las características en cuanto a adaptabilidad y sencillez del XML son heredadas de este modo por el protocolo XMPP. A diferencia de los protocolos propietarios de intercambio de mensajes como ICQ, Y! y 2Windows Live Messenger, se encuentra documentado y se insta a utilizarlo en cualquier proyecto. Existen servidores y clientes libres que pueden ser usados sin coste alguno. Tras varios años de su existencia, ha sido adoptado por empresas como Facebook, Tuenti, WhatsApp Messenger y Nimbuzz, entre otras, para su servicio de chat. Google lo adoptó para su servicio de mensajería Google Talk, y en 2013 anunció que lo abandonaría en favor de su protocolo propietario Hangouts.”

Cómo se instala

Yo he estado haciendo una prácticas con un servidor jabber que viene muy completito, openfire, de ignite realtime. Su instalación es sencilla. En mi servidor Ubuntu 12.04 hacemos lo siguiente:

# Instalamos Apache2 + MySQL5.1 + PHP5 y phpmyadmin
sudo apt-get -y install apache2
sudo apt-get -y install mysql-server mysql-common
sudo apt-get -y install php5 php5-cli
sudo apt-get -y install phpmyadmin
# Para que Apache2 muestre el Error de Host
sudo echo "ServerName localhost" >> /etc/apache2/httpd.conf

# Para que Apache2 Muestre bien los Acentos y Tildes
sudo echo "AddDefaultCharset ISO-8859-1" >> /etc/apache2/conf.d/charset

# Reseteamos Apache2
sudo /etc/init.d/apache2 restart

Ya tenemos las aplicaciones mínimas, ahora a instalar OpenFire:

# Instalmos Java
sudo apt-get install sun-java6-bin

# Configuramos Java como Interprete Principal
sudo update-alternatives --config java

# Creamos el Usuario para OpenFire
sudo adduser openfire

# Descargamos OpenFire en Paquete DEB
wget -c http://www.igniterealtime.org/downloads/download-landing.jsp?
file=openfire/openfire_3.7.0_all.deb

# Instalamos OpenFire
sudo dpkg -i openfire_3.7.0_all.deb

# Copiamos Contenido Basico para OpenFire y MySQL
sudo cp /usr/share/openfire/resources/database/openfire_mysql.sql $HOME/
sudo chmod 777 openfire_mysql.sql

# Creamos Base de Datos e Importamos Comtenido Basico en MySQL
mysqladmin -h localhost -u root -p create openfire
mysql -h localhost -u root -p openfire < openfire_mysql.sql

# Creamos Usuario y Asignamos Permisos en MySQL
Linea="CREATE USER openfire@localhost IDENTIFIED BY 'CONTRASEÑA';"
echo "$Linea" | mysql -h localhost -u root -p
Linea="GRANT ALL ON openfire.* TO openfire@localhost;"
echo "$Linea" | mysql -h localhost -u root -p

# Eliminamos Archivos Residuales
rm openfire_3.7.0_all.deb
rm openfire_mysql.sql

# Resetamos OpenFire
sudo /etc/init.d/openfire restart

# Abrimos Administrador Web
firefox http://127.0.0.1:9090

El panel de administrador es:

http://127.0.0.1:9090

http://TUIP:9090

http://TUDOMINIO:9090

Desde la administración a través de web tenemos un montón de opciones para configurar: usuarios, grupos, salas de chat, cifrado de los mensajes, etc. Además, existen muchos plugins que se pueden instalar directamente desde allí y que os recomiendo que visitéis para descubrirlos. Uno de los que más me han interesado es fastpath. Con este plugin podemos crear un grupo de usuarios que recibirán los mensajes que se envíen mediante un formulario web instalado allí donde queramos.

Los programas de mensajería para acceder, como usuario, al servidor son varios: pigdin, Psi, Emphaty, etc. pero en la propia web de Openfire podemos descargar Spark, con versiones para Linux, mac y windows. Éste programa tiene una ventaja sobre todos los demás: Cuenta con un botón específico para acceder al grupo de Fastpath que pertenezcamos (si es que pertenecemos a alguno, claro) y cuando alguien acceda a alguna de las web donde hemos instalado nuestro formulario de consultas, recibir los mensajes según las disponibilidad de los miembros del mismo. Con otros programas de mensajería no he conseguido hacer esto, No hay forma humana de conectarse a un grupo de Fastpath aún teniendo todos los permisos necesarios.

La parte útil de todo esto

Ahora que tengo el servidor en marcha, que he creado un par de botones en la columna de la derecha de este blog mediante los que poder chatear conmigo o dejar un mensaje en caso de que no esté en línea, etc. llega el momento de explotarlo. Gracias a openfire he añadido la posibilidad de poder acceder a nuestras cuentas de Google y de Facebook, de tal forma que, en un solo programa como es Spark, puedo enviar y recibir mensajes y/o archivos de los usuarios de mi servidor privado y de mis contactos de estas dos redes sociales. Los del primer grupo, con sus mensajes cifrados y la posibilidad de dejarlos “en espera” cuando el destinatario no está en línea. Además, existen muchas aplicaciones para android para acceder a esta cuenta (con el añadido de las que hayamos dado de alta de las otras dos -google y faceboook), por lo que no hay escusa para estar conectados desde una red cifrada, segura y libre de espías y de multinacionales sumisas al orden establecido. ¿Quieres una cuenta de este tipo? Puedes solicitármela o buscar en otros servidores jabber, como jabber.es, ya que los usuarios de cada servidor pueden intercambiar mensajes con los de otros usuarios de otros servidores similares. Una forma de establecer una red de contactos descentralizada maravillosa.


Volver a la Portada de Logo Paperblog