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.




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:



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)


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

·         FreePBX - Let Freedom Ring (https://www.freepbx.org)
·         Open Source Communications Software | Asterisk Official Site (https://www.asterisk.org)
·         Elastix - Your Linux PBX Unified Communications Solution (https://www.elastix.org)
·         Wireshark · Go Deep. (https://www.wireshark.org)
·         Pidgin, the universal chat client (https://pidgin.im)
·         Adium (https://adium.im)
·         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.









Entradas más populares de este blog

Conceptos generales

Consola de Comandos CMD

Estándar de nombre para equipos en una red