Manual Openfire
Sumario
- 1 Instalación de Openfire (versión 4.0.1)
- 2 Instalamos MYSQL
- 3 Integración con asterisk
- 4 Instalación de Jitsi-Videobridge
- 5 Instalación de Jitsi
- 6 Instalación Spark
- 7 Instalación de LDAP
- 8 Configurar el demonio SLAPD
- 9 Funcionamiento del Spark
- 10 Funcionamiento del Jitsi
- 11 Funcionamiento del Microsoft Outlook
- 12 Referencias
1 Instalación de Openfire (versión 4.0.1)
Nos bajamos openfire (recuerda, que este manual está basado en la versión 4.0.1) para linux a través de la siguiente página: http://www.igniterealtime.org/downloads/index.jsp.
Seleccionamos .tar.gz
Lo guardamos en el directorio /usr/src/
A continuación ejecutamos los siguientes comandos para extraer e instalar openfire:
# cd /usr/src/ # tar xvzf openfire_4_0_1.tar.gz
Tendremos que tener en nuestra máquina instalado JAVA.
2 Instalamos MYSQL
La instalación de MYSQL se realiza a partir de este comando:
# apt-get install mysql-server
En la Openfire setup tool, que será mas adelante, usaremos los siguientes valores:
- • driver: com.mysql.jdbc.Driver
- • server: jdbc:mysql://[YOUR_HOST]/[DATABASE_NAME]
Creamos la base e datos a partir del siguiente comando:
create database databaseName
Importamos el esquema de la base de datos:
mysql -u root -p < /usr/src/openfire/resources/database/openfire_mysql.sql
Una vez hecho esto vamos a instalar Java:
# apt-get update
# apt-get install openjdk-8-jre
Para configurar el openfire como servicio, tenemos que configurar el script openfired situado en el directorio bin/extra y guardarlo en /etc/init.d/:
PEDIR ARCHIVO A IVAN
# service openfire start
Abrimos navegador y escribimos la siguiente URL http://IP:9090, donde IP es donde hemos instalado openfire. Si está todo bien nos aparecerá la siguiente pantalla:
Configuramos el dominio del servidor:
Donde el dominio es el nombre del Host o IP del servidor.
Configuración de base de datos para nuestro ejemplo seleccionamos base de datos interna, si vamos a usar base de datos externa (OPCION RECOMENDADA) seleccionamos la otra opción.
Seteos de perfil
Seteos de perfil: Seteos de conexión, configuramos como sigue:
Seteos de perfil: Mapeos de usuarios, dejamos las opciones por defecto
Seteos de perfil: Mapeos de grupo, dejamos las opciones por defecto
Cuenta del administrador: usuario que administre openfire exixtentes en el LDAP, los buscamos y agregamos:
Finalizamos si todo esta ok.
Tras finalizar la instalación ingresaremos con la cuenta de administrador y si las credenciales son las correctas se nos mostrará la siguiente pantalla:
3 Integración con asterisk
Requisitos:
• haber instalado openfire con una base de datos externa (Mysql) • haber puesto el parámetro callevents=yes en la parte general del archivo sip.conf • haber configurado un usuario en el archivo manager.conf
Primero vamos a modificar el archivo manager.conf
# nano /etc/asterisk/manager.conf
La parte general debe aparecer de la siguiente manera:
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
Luego, añadimos un nuevo usuario;
[openfire]
secret = miclave
displayconnects = yes
read = all
write = all
Actualizamos la configuración de asterisk:
# /etc/init.d/asterisk reload
En el caso que el servidor jabber (openfire) y el servidor Asterisk estén en dos servidores distintos, en la configuración del cortafuegos, si no lo han hecho antes, tienen que abrir el puerto 5038 tcp.
Arrancamos iptables:
# nano /etc/sysconfig/iptables
y añadimos estas dos líneas:
# Asterisk Manager -A INPUT -p tcp --dport 5038 -j ACCEPT
Guardamos el archivo y volvemos a arrancar iptables
# service iptables restart
Ahora el archivo sip.conf
# nano /etc/asterisk/sip.conf
añadimos y/o modificamos la siguiente línea en la parte general
callevents=yes
Desde la consola de Asterisk:
# asterisk -rvvvvvvvvvvvvvv CLI> sip reload
Ahora instalamos el plugin en Openfire.
Desde la página web hay un plugin para la integracion de openfire con asterisk. Descargamos dicho plugin desde http://www.igniterealtime.org/projects/openfire/plugins/asterisk-im.jar
Tras descargarlo lo guardamos en /usr/src/openfire/plugins
Reiniciamos el servicio openfire:
/etc/init.d/openfire stop /etc/init.d/openfire start
Una vez instalado el plugin de asterisk, nos debe aparecer al lado de plugins algo así:
Clicamos en Asterisk-IM y luego en General Settings. Habilitamos el Asterisk-IM y salvamos.
Agregamos el servidor asterisk:
• Server Name: asterisk
• Server Address: xxx.xxx.xxx.xxx
• Port: 5038
• Username: Usuario creado en manager.conf
• Password: Password del usuario creado en manager.conf
Guardamos y pasamos al menú Phone Mappings
Configuramos todos los usuarios de Openfire que queremos asociar con una extensión SIP de nuestro servidor Asterisk.
4 Instalación de Jitsi-Videobridge
Lo primero que haremos es habilitar los Componentes Externos en Openfired:
Para instalar Jitsi Videobridge, lo descargamos de la siguiente URL:
https://download.jitsi.org/jitsi-videobridge/linux/
Simplemente extraeremos y ejecutaremos el script jvb.sh. Si lo ejecutamos sin parámetros se nos mostrará los diferentes argumentos que hay. Para arrancar el servicio basta con poner jvb.sh
--secret=xxxxx
Siendo el secret la clave que hemos configurado en el Componente Externo.
Para verificar que Jitsi esta correctamente conectado al Openfired iremos:
5 Instalación de Jitsi
Para sistemas de 32 bits:
https://download.jitsi.org/jitsi/debian/jitsi_2.2-latest_i386.deb
Para sistemas de 64 bits:
https://download.jitsi.org/jitsi/debian/jitsi_2.2-latest_amd64.deb
6 Instalación Spark
Lo descargamos de la siguiente URL:
* Windows: http://www.igniterealtime.org/downloads/download-landing.jsp?file=spark/spark_2_7_5.exe
* Linux: http://www.igniterealtime.org/downloads/download-landing.jsp?file=spark/spark_2_7_5.tar.gz
y ejecutamos en el terminal:
tar -xvf spark_2.6.3.tar.gz sudo mv Spark /opt/
Para correr el servicio: /bin/bash /opt/Spark
Si lo que queremos es crear un “desktop launcher”:
sudo nano /usr/share/applications/spark.desktop
Y añadimos lo siguiente:
[Desktop Entry]
Name=Spark
Version=2.6.3
GenericName=Spark
X-GNOME-FullName=Spark
Comment=ignite realtime Spark IM client
Type=Application
Categories=Application;Utility;
Path=/opt/spark
Exec=/bin/bash Spark
Terminal=false
StartupNotify=true
Icon=/opt/spark/logo-spark.png
TargetEnvironment=Unity
Para añadir el logo:
cd /tmp
wget http://www.thefanclub.co.za/sites/default/files/images/howto/logo-spark_256x256.png
sudo mv logo-spark_256x256.png /opt/Spark/logo-spark.png
7 Instalación de LDAP
El proceso de instalación es realmente sencillo. Básicamente consiste en instalar el paquete slapd, aunque nosotros también instalaremos el paquete que contiene las utilidades de administración de LDAP: ldap-utils.
# apt-get install slapd ldap-utils
Durante la instalación, aparece en la consola un mensaje que nos solicita la contraseña de administración para LDAP
El sistema nos pide que volvamos a escribirla.
A continuación, instalaremos la librería NSS para LDAP.
# apt-get install libnss-ldap
En el primar paso, nos solicita la dirección URi del servidor LDAP.
A continuación escribiremos el nombre global único (Distinguished Name – DN).
En el siguiente paso, indicaremos la versión del protocolo LDAP que vamos a utilizar. Salvo que dispongamos en nuestra red de clientes muy antiguos, lo normal será elegir el valor más alto.
A continuación, indicaremos si las utilidades que utilicen PAM deberán comportarse del mismo modo que cuando cambiamos contraseñas locales. Esto hará que las contraseñas se guarden en un archivo independiente que sólo podrá ser leído por el superusuario. Yes y pulsamos Intro.
A continuación, el sistema nos pregunta si queremos que sea necesario identificarse para realizar consultas en la base de datos de LDAP. No y pulsamos Intro.
Ya sólo nos queda indicar el nombre de la cuenta LDAP que tendrá privilegios para realizar cambios en las contraseñas.
En el último paso, el asistente nos solicita la contraseña que usará la cuenta anterior. Deberá coincidir con la que escribimos en el apartado Instalar OpenLDAP en el servidor.
8 Configurar el demonio SLAPD
SLAPD (Standalone LDAP Daemon) es un programa multiplataforma, que se ejecuta en segundo plano, atendiendo las solicitudes de autenticación LDAP que se reciban en el servidor.
# sudo dpkg-reconfigure slapd
Elegimos la opción No y pulsamos la tecla Intro.
A continuación, deberemos escribir el nombre DNS que utilizamos para crear el DN base (Distinguished Name) del directorio LDAP.
Después, escribiremos el nombre de la entidad en la que estamos instalando el directorio LDAP.
En el siguiente paso, deberemos escribir la contraseña de administración del directorio.
A continuación, elegiremos el motor de la base de datos que usaremos para el directorio. Se recomienda HDB porque nos permitirá, en el futuro, cambiar los nombres de los subárboles si fuese necesario.
Lo siguiente que nos pregunta el asistente es si queremos que se borre la base de datos anterior del directorio cuando terminemos la configuración de slapd. Usamos la tecla <tabulador> para elegir No y pulsamos Intro.
A continuación, como hemos decidido no borrar la base de datos antigua, el asistente nos pregunta si queremos cambiarla de sitio. Elegiremos la opción Sí y pulsaremos Intro.
En algunas redes, con clientes muy antiguos, puede ser necesario mantener la versión 2 del protocolo LDAP. Por ese motivo, antes de terminar, el asistente nos pregunta queremos permitir el protocolo LDAPv2. Elegimos que No.
Con esto habremos terminado la configuración del servidor LDAP. Ahora está listo para autenticar usuarios.
A continuación vamos a instalar phpmyadmin, para la configuración gráfica del LDAP. Para ello escribimos:
# apt-get install phpldapadmin
Acceder a phpLDAPadmin es tan sencillo como abrir cualquier navegador web en el servidor y, en la barra de direcciones, escribir la siguiente URL:
El esquemático de pruebas es el que se muestra a continuación:
9 Funcionamiento del Spark
Spark es un cliente gratuito de mensajería instantánea para Jabber el cual cuenta con una sencilla interface de usuario orientada a negocios y a corporaciones, estando actualmente disponibles para Windows, Mac y Linux.
Entre sus características se encuentran grupos de chat, integración con Asterisk-IM, transferencias de archivos, corrección automática y conversaciones mediante pestañas.
Una vez que hayas instalado la aplicación de Spark, deberás configurar el cliente para que se conecte con el servidor Openfire (Jabber o XMPP).
Para configurar tu cuenta de Chat:
- Abre la aplicación de Spark
- Como tenemos nuestro servidor Openfire conectado a un LDAP, introducir el usuario y contraseña creado en el LDAP y dirección del servidor Openfire.
Y con ello ya estaría creada la cuenta de chat.
Con esta configuración, si agregamos un contacto, podremos chatear con el, ver la presencia de cada contacto, compartir documentos, realizar llamadas a través de nuestro asterisk...
Al realizar llamadas desde la aplicación, primeramente nos llamara a nuestro número y una vez cogido, llamará al contacto que queríamos llamar.
10 Funcionamiento del Jitsi
Jitsi (antes SIP Communicator) es una aplicación de videoconferencia, VoIP, y mensajería instantánea para Windows, Linux y Mac OS X.
Es compatible con varios protocolos populares de mensajería instantánea y de telefonía como por ejemplo Bonjour, . NET Messenger Service, OSCAR, SIP, XMPP...
Para crear una cuenta XMPP iremos a Archivo > Agregar una nueva cuenta
Y seleccionaremos XMPP
Como nuestro servidor Openfire lo tenemos conectado al LDAP ingresaremos el usuario y contraseña que hemos creado dentro del LDAP.
Con solamente esta configuración, podemos chatear con los contactos, llamarles, ver la disponibilidad de cada contacto, hacer vídeo conferencias y compartir nuestro escritorio, pero tanto la voz como el vídeo no pasa por el asterisk, por lo que esta configuración no nos vale.
Hay una especificación llamada CUSAX (Combined Use of SIP And XMPP) que jitsi soporta y en la que nos apoyaremos. Esta especificación establece la combinación de una cuenta SIP y XMPP para realizar los diferentes servicios de comunicación. Por lo que el video y el audio irá por SIP, es
decir por nuestro asterisk y la mensajería y presencia por XMPP.
Para configurarlo primeramente tendremos que deshabilitar el audio y vídeo por XMPP. Esto se encuentra en opciones de la cuenta XMPP > >Telefonía
Archivo:Archivo:Deshabilitar audioyvideo.png
Sin realizar ninguna configuración vemos que solo podremos establecer un chat con los diferentes contactos. Para poder realizar llamadas, vídeo llamadas y compartir el escritorio es necesario crearnos una cuenta SIP.
Al tener ahora una combinación de cuenta SIP y XMPP podremos realizar las diferentes acciones sobre un contacto. Sin embargo ahora vemos que la mensajería la trata de enviar también por SIP y no funciona, queremos que los mensajes se envíen por XMPP. Para solucionarlo hay que añadir la siguiente propiedad:
net.java.sip.communicator.impl.protocol.sip.MESSAGING_DISABLED=true
Vamos a Opciones > Avanzado > Editor de propiedades
Otra limitación que hemos visto al configurar CUSAX es que a la hora de compartir el escritorio no funciona el que otro tome el control sobre este.
Para tener los contactos que hay en el LDAP y así evitar el crearlos uno a uno realizaremos lo siguiente.
Vamos a Opciones > Avanzado > Fuentes de contacto
y seleccionamos LDAP, añadimos uno nuevo y rellenamos los datos.
Una vez que hemos configurado que el jitsi se conecte al LDAP, buscaremos el contacto bien por el nombre o por el número.
11 Funcionamiento del Microsoft Outlook
El servidor de correos microsoft outlook permite la integración con un servidor XMPP. Se realiza automáticamente por lo que no hay que hacer ningún tipo de configuración, solamente poner en el LDAP, en la cuenta deseada, la dirección de correo del contacto.
Desde la propia bandeja de correo veo el estado del contacto, iniciar un chat o llamarle.
12 Referencias
http://www.igniterealtime.org/projects/openfire/
http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/index.html
https://www.voztovoice.org/?q=node/120
http://www.razametal.org/asterisk/library/how-to/openfire+asterisk.pdf