Implementación de voz y video sobre IP.
Objetivo General
Implementar y Analizar una Red de Voz y Video sobre IP -de pequeña escala- mediante el uso de los programas Elastix y Wireshark, o similares.
Objetivos Específicos
- Interconectar audio y video entre dos terminales a través de la PBX.
- Interconectar audio y video entre dos terminales a través de dos PBXs (trunking).
- Configurar IVR.
- Configurar mensajes de voz e integración a correo electrónico.
- Configurar redirección de llamadas.
- Activar Follow-me List.
- Activar llamadas en espera.
- Capturar llamadas.
- Realizar conferencias.
- Configurar grupos de timbrado.
- Activar colas de llamadas.
- Recibir mensajería de texto Instantánea.
- Activar restricciones de llamada (PIN de seguridad).
- Enviar anuncios.
- Analizar codecs y protocolos SIP y RTP.
- Analizar desempeño, errores y jitter.
Elastix
Elastix es un software que provee el servicio de comunicaciones unificadas (VoIP, Email, IM, Faxing, Collaboration), la cual posee una interfaz web basada en FreePBX y funciones únicas en cuanto se refiere a IP PBX.
La versión utilizada es la versión 4.0.74, lanzada el 10 de febrero del 2016, conocida como una de las últimas versiones con licencia GPL, ya que siguientes versiones requieren una licencia propietaria.
Elastix a su vez integró el framework de Asterisk para el establecimiento de las comunicaciones, ya que este tiene implementado varios protocolos como SIP, MGCP, H.323, y su propio protocolo IAX.
FreePBX
Es la interfaz gráfica de Asterisk.
Asterisk
Es el núcleo de Elastix, otorga las principales funciones de central telefónica (PBX).
Wireshark
Es un analizador de paquetes y protocolos de red utilizado para encontrar y solucionar problemas de red, muy útil como herramienta didáctica y para depuración de código al momento de desarrollar software gracias a su interfaz gráfica y sus opciones de filtrado y organización de la información capturada.
Materiales, Herramientas y Equipos
2 Laptops (puede ser cualquier marca y modelo, pero se utilizaron 1 HP y 1 Mac).
Sistemas Operativos
Anfitrión: Windows o Mac (se utilizaron 1 Windows, 1 Mac)
Invitado (Virtualización tipo 2): 2 Elastix 4.0
1 Wireless Router.
Cables Ethernet RJ-45.
Software instalado en las laptops:
Wireshark.
X-Lite.
Cliente IM (Adium en Mac, Pidgin en Windows).
Dispositivos móviles:
Android o iPhone, con la app Linphone instalada.
Topología de la red a implementar
La red implementada como lo muestra la figura siguiente usa dos servidores de VOIP Elastix 4.0.
Cada servidor representa dos entornos diferentes de red los cuales se configura en el router TpLink. En uno de los ambientes de red se configura un prefijo de extensiones 1.. por lo tanto, mediante un softphone serán utilizados en cualquier computador o smartphone que se conecte a esa red.
Desarrollo
Instalar la distribución de Elastix en dos máquinas virtuales, una en cada computador. Se utilizaron los siguientes parámetros:
Por el lado derecho se tiene el otro dial plan que usa como servidor el otro servidor Elastix, el prefijo de extensiones es 2.. y mediante una troncalización entre los dos servidores se pretende que se pueda hacer llamadas desde cualquiera de los softphone de una central hacia la otra. Adicional a ello se busca configurar y activar algunos servicios agregados a la telefonía los cuales están listados en los objetivos específicos.
Desarrollo
Instalar la distribución de Elastix en dos máquinas virtuales, una en cada computador. Se utilizaron los siguientes parámetros:
a. Software de Virtualización: Oracle VirtualBox.
b. Procesadores: 1.
c. Memoria RAM: 2GB.
d. Espacio en disco: 30GB dinámico.
e. Hostname 1: convergentes
f. Hostname 2: convergentesDos
g. Base de datos (MySQL) 1: convergentes
h. Base de datos (MySQL) 2: convergentesDos
Establecer los parámetros básicos de red en Elastix
a. Activar el menú FreePBX.
b. Dirigirse a Asterisk SIP Settings.
c. Indicar la dirección IP y la red local.
d. Guardar y aplicar los cambios.
Habilitar códecs de Video
En Asterisk SIP Settings, habilitar todos los codecs que se encuentren deshabilitados, como se muestra en la siguiente figura:
a. Guardar y aplicar los cambios.
Realizar una grabación de Voz:
a. Desde el home de Elastix, navegar a PBX > PBX Configuration > System Recordings
b. Subir una grabación que cumpla los siguientes parámetros (se recomienda no hacerlo desde un teléfono conectado a la central, sino desde una aplicación externa):
i. Codificado con PCM
ii. 16 bits
iii. 8000 Hz
Configurar el IVR:
La configuración de la figura cumple los siguientes parámetros:
i. En el campo Announcement, se selecciona la grabación realizada en el paso 4
ii. Después de 3 segundos de haberse reproducido la grabación, se vuelve a reproducir 1 vez más.
iii. Después de 3 intentos fallidos, la llamada es redirigida a la operadora (extensión 100).
Habilitar el correo de voz en las extensiones requeridas:
a. Desde el home de Elastix, navegar a PBX > PBX Configuration > Extensions
b. Elegir la extensión a configurar.
c. Ir a la sección Voicemail, y seleccionar Status como Enabled.
d. Guardar y aplicar los cambios.
Configurar la integración a correo electrónico:
a. Desde el home de Elastix, navegar a Email > Remote SMTP
b. Llenar los campos acorde al servidor de correo y usuario a utilizar.
c. Cambiar el status enabled de No a Yes.
d. Desde el home de Elastix, navegar a PBX > PBX Configuration > Extensions
e. Elegir la extensión a configurar.
f. Ir a la sección Voicemail, y llenar la cuenta de correo a donde se enviarán los mensajes de voz.
g. Guardar y aplicar los cambios.
Configurar el SIP Trunk:
a. Llenar los campos tal y como se muestran en la siguiente figura:
Elastix 1:
Configurar Follow-me List:
Configurar llamadas en espera:
a. Desde el home de Elastix, navegar a PBX > PBX Configuration > Extensions
b. Elegir la extensión a configurar.
c. Seleccionar la opción Enabled del campo Call on-hold.
Configurar conferencias:
Esta nos permite unir múltiples grupos de conferencias para poder reunir un grupo de personas a debatir ciertos temas en diferentes áreas.
Rellenamos los campos de la siguiente manera:
Referencias Bibliográficas
Una vez que se
completen, podemos comenzar a moderar la conferencia.
Hacer clic en Participants como se muestra en la ilustración de arriba para comenzar a administrar la conferencia.
En la ilustración
de arriba puede hacer lo siguiente:
1. Invitar a
personas a unirse a la conferencia a través de la lista desplegable.
2. Puede silenciar
a cualquier participante haciendo clic en el botón de silencio
3. Expulsar a
cualquier participante usando el botón de Kick.
4. Terminar la
conferencia usando el botón Kick All.
Y luego
comprobamos que es posible establecer llamadas entre estas dos extensiones “200
y 201” al “222-Ext. Conferencia”
La conferencia se reiniciará automáticamente y finalizara al final del paríodo determinado al momento de la configuración.
Configurar mensajería de texto instantánea:
a.
Ingresar a la consola de mysql
del servidor de mensajería.
b.
Crear una base de datos
destinada para mensajería de texto instantánea.
c.
Desde el Home de Elastix,
navegar a IM > IM
d.
Habilitar el servidor Openfire.
e.
Dirigirse en el navegador a la
dirección: <hostname o dirección ip>:9990
f.
Llenar los parámetros del
servidor de base de datos (nombre del DBMS, dirección IP, puerto, nombre de
base de datos).
g. Opcional: Configurar la contraseña de administrador
h.
Crear mínimo 2 usuarios
i.
Desde los clientes de
mensajería instantánea, configurar el servidor al que se van a conectar:
i.
Domain: IP del servidor.
ii.
Protocolo: XMPP
Configurar restricciones de
llamada (PIN de seguridad):
“Restricción de llamadas” nos permite configurar que llamadas (ya sean salientes o entrantes)
podemos restringir. Esta opción generalmente se utiliza tener más control de las llamadas que nos
ingresan y salen de nuestro celular diariamente. (Samsung, 2019)
“Restricción de llamadas” nos permite configurar que llamadas (ya sean salientes o entrantes)
podemos restringir. Esta opción generalmente se utiliza tener más control de las llamadas que nos
ingresan y salen de nuestro celular diariamente. (Samsung, 2019)
Luego de realizar
el proceso de añadir PIN Set, debemos ir a “Outbound Routes - 1” (Rutas
Salientes), para seleccionar la ruta que deseamos que tenga acceso restringido
mediante el uso de los pines, y en “PIN Set - 2” seleccionamos el nombre PIN
Set “CONVER2PIN” ya creado, como se indica en la siguiente ilustración:
Ahora cada vez que
queramos utilizar esa ruta para establecer una llamada, debemos autenticarnos
mediante un PIN “1234” más el símbolo de “#”.
Desarrollar el análisis de
codecs y protocolos SIP y RTP:
Captura
de paquetes SIP de una videollamada:
A partir de la figura se puede concluir que:
- El flujo de paquetes se adhiere correctamente al producto.
- Se inició una llamada.
- La llamada se realizó correctamente.
- Se identifica el usuario llamante y el usuario llamado.
Captura de paquetes RTP de una videollamada:
A partir de la figura podemos concluir que:
- El orden de los paquetes se define por el SSRC que no cambia y el número de secuencia (Seg.)
- La diferencia del timestamp (Time) entre cada paquete secuencial es de 160.
Desarrollar el análisis de desempeño, errores y jitter.
A partir de la figura podemos concluir que:
- La calidad de la llamada no es muy buena (jitter muy alto para una llamada VoIP en una red LAN).
- No hay pérdida de paquetes.
- No hay errores de secuencia.
Análisis de resultados
Se realizaron varias pruebas de
conectividad las cuales respetaron los protocolos y objetivos propuestos. Hubo
varias formas de comprobar que se cumpla con los objetivos planteados en un
inicio. Desde una simple demostración visual y auditiva hasta el uso de
aplicaciones de monitoreo como Wireshark.
En la siguiente figura se puede comprobar
la conexión del softphone simplemente viendo en la esquina superior izquierda
de la aplicación. En esa parte se puede observar un mensaje de disponibilidad,
con eso por ende quiere decir que tanto el servidor como el aplicativo se
encuentran bien configurados y solo de esa manera se puede seguir probando los
servicios restantes.
Una vez que dos equipos terminales se
configuran correctamente se pueda la conectividad entre servidores. Al realizar
una llamada efectiva evidencia la correcta implementación de los dos servidores
y del enlace troncal que los une. Una llamada en curso también es mostrada por
el mismo softphone. En este caso se muestra un mensaje de que la llamada esta
establecida y a su vez se indica el tiempo que va durando la interconexión.
Para activar la videollamada solo es
cuestión de activar el ícono que muestra la cámara de video en los dos
terminales y se mostrará en la pantalla de cada uno. En lo que se refiere a los
servicios agregados como IVR, Follow me list, entre otros, la forma de probar
es más visual y audible mientras que el softphone va a mostrar solo mensajes de
llamada, establecida, línea ocupada o el mensaje de listo.
Para poder analizar los protocolos que
intervienen en una llamada de manera obligada hay que recurrir a un software de
análisis de red. En el caso de este proyecto se recurrió a Wireshark, ya que
permite realizar varias funciones de monitoreo e incluso filtrar la información
de acuerdo con los requerimientos que se necesiten de momento. En la siguiente
figura se puede ver el protocolo que se usa en cada etapa de la llamada o
intento de llamada en la columna cinco de la tabla.
El software antes mencionado da varias
facilidades de poder ver estadísticas del estado de la conexión al hacer una
llamada, todas las opciones se pueden ver en la siguiente imagen.
Incluso este software de análisis de red
permite poder obtener gráficas en las que se puede analizar de una mejor manera
lo que se ha mencionado anteriormente. En la siguiente figura se puede mirar un
ejemplo.
En la imagen se muestra por ejemplo la
relación de la cantidad de paquetes que se envían con respecto al tiempo
durante una llamada que duró aproximadamente unos 20 segundos.
Para un mejor análisis sobre el
rendimiento, jitter y errores de las llamadas se puede revisar en el punto 19
del presente documento.
Conclusiones y Recomendaciones
· Se concluyó que, en las restricciones de llamadas y
conferencias, las rutas salientes había que utilizar un password en cada ruta que
realiza la llamada para que los participantes puedan acceder a estos servicios.
·
El éxito de la interconexión
entre diferentes softphones, especialmente en lo que se refiere el video tiene
mucho que ver con la compatibilidad o disponibilidad de diferentes códecs de
video.
·
Se recomienda que, al
implementar y analizar una red de voz y video sobre IP, este debe garantizar
que todos y cada uno de sus servicios impartidos puedan correlacionarse entre
sí sin ningún tipo de restricción.
·
En una red con telefonía IP o
con VOIP es importante garantizar el ancho de banda para que esta no sufra de
factores que puedan afectar la forma en como el cliente experimenta el
servicio. Este factor debe ser tomado en cuanta especialmente en redes metropolitanas
en donde el tráfico puede llegar a congestionarse o quizá donde la telefonía
comparta el canal con los datos y el internet.
Referencias Bibliográficas
·
Sharif, B.
(2008). Elastix without tears. (1a ed.) PO Box 70 Kingswood NSW 2747,
Australia.
·
Samsung (2019). ¿Cómo
restringir todas las llamadas?. Recuperado el 31 de enero de 2019 de: https://www.samsung.com/co/support/mobile-devices/galaxy-s5-how-to-restrict-all-calls/
·
Tp-link (2019). Routers de Alta
Potencia TL-WR841HP. Recuperado el 31 de enero de 2019 de: https://www.tp-link.com/ar/products/details/cat-4732_TL-WR841HP.html#specifications
·
Todas las imágenes fueron
capturas del laboratorio o realizadas por los autores de este proyecto.