miércoles, 2 de septiembre de 2015

Implementación de un sistema VoIP con Asterisk

Introducción:


En la actualidad la implementación de sistema VoIP, abarca diversas tecnologías que ayudan a aprovechar las redes para trafico de voz y con ellas ahorrar costos con la utilización de una sola red tanto para voz como para datos. La voz digitalizada y dividida en pequeños paquetes IP, los cuales viajan a través de la red de datos y son reensamblados en el terminal de destino para estructurar la señal de voz.

El objetivo del blog es demostrar la implementacion de voz sobre IP que pueda soportar trafico de voz en el edificio de electrónica de la Universidad Don Bosco a costo cero, utilizando los recursos existentes, ofreciendo una buena calidad de servicio e interoperabilidad con la red telefónica interna de la Universidad.

Para la implementación de VoIP, se utilizara la red de datos existente y un host configurado como servidor de VoIP utilizando Asterisk en un Sistema Operativo Ubuntu 14.04.

Implementación de VoIP


Iniciaremos estableciendo la estructura de red VoIP a implementar. Figura 1.

Figura 1. Estructura de Red VoIP








El servidor VoIP de la Figura 1, utilizara asterisk como plataforma de telefonía para comunicaciones VoIP, la implementación se a basado en asterisk debido a sus beneficios por ser código abierto. Este software es utilizado en empresas como Google, Yahoo, IBM, e incluso el ejercito E.E.U.U. 

Asterisk puede funcionar con Sistema Operativos basados en Linux, BSD, OS X y Windows, y trabajara con la mayoría de teléfonos compatibles SIP y softphone. Para esta implementación utilizaremos el Sistema Operativo Ubuntu 14.04 y como clientes softphone instalados en cada computador.

La implementación se a diseñado para el laboratorio de electrónica de la universidad don bosco, por lo cual los clientes seran los docentes de dichos laboratorios. A continuación se muestra el plan de marcación, diseñado:

LocalUsuarioNumero Asignado
Primera plantaCarlos106106
Adal102102
Segunda plantaDenis105105
Kelman101101
Murcia103103
Edward104104
Tania107107
Tabla 1. Plan de marcación


Instalación y configuración de Asterisk

Asignación de cliente de red para el servidor VoIP. Se le asigna estaticamente una dirección dentro de la red del laboratorio de electrónica.


Figura 2. Configuración de usuarios y protocolo SIP.

Los comandos para instalación de Asterisk son los siguientes:

# apt-get update
#apt-get upgrade
#apt-get install asterisk

Creación de usuarios de Tabla 1 y configuración  de protocolo SIP en el archivo sip.conf, en este archivo se configuran las credenciales y servicios de usuarios en Asterisk.


Figura 3. Configuración de usuarios y protocolo SIP. 

Configuración de plan de marcación, para los usuarios de Tabla 1, se realiza en el archivo extensions.conf


Figura 4. Configuración de plan de marcación.

Las sentencias tienen el siguiente formato:

El contexto será udbelectronica, el cual agrupa los clientes para una configuración única dentro de la red.  Exten => extensión, prioridad, parámetros

La extensión, indica el numero marcado, la prioridad el orden en que se ejecutan las acciones (1 mayor prioridad) y parámetros la acción que se ejecuta. Para este caso la primera línea nos indica que si llaman al número 101 se ejecuta el comando Dial (destino, timeout, opciones).


Configuración de cliente VoIP en Xlite

Para la elección de los teléfonos IP debemos tener en cuenta que soporten el códec G.726(32 kbps), ademas de considerar los costos que representan los terminales físicos, por ello se optó por la opción de utilizar equipos softphone VoIP que se pueden utilizan para realizar las llamadas telefónicas usando las PC que tienen cada usuario en su laboratorio.

Los softphone permiten realizar llamada con casi cualquier proveedor de puerta enlace VoIP o PBX de oficina, además ofrece las opciones de conferencia, grabaciones y comandos de voz, etc. Para esta implementación de software utilizaremos Xlite que es compatible con Windows y Linux Ubuntu.

La configuración en X-Lite, se realiza desde la opción Softphone, opción Account Settings. 

Figura 5. xlite opción softphone de menú.
Las configuraciones se realizaran desde Account, donde ingresamos el nombre del cliente, el id de usuario asignado, el nombre de dominio(server.eca.local este dominio se configuro en un servidor DNS en todo caso si no colocamos el nombre deberemos colocar la ip del servidor 10.0.17.200) y el nombre que se observara en el softphone.

Figura 6. Configuración de cliente Kelman.

Luego de haber configurado todos los cliente VoIP de laboratorio, podemos verificar que estos terminales, están registrados con el servidor y pueden realizar y recibir llamadas. Para verificar el correcto registro de los terminales, se muestra la Figura 7, la consola de Asterisk, el cual muestra los usuarios y direcciones IP con las cuales se han registrado los terminales a través del comando.

*CLI> sip show peers

Figura 7. Vista de Asterisk de clientes conectados al servidor.
se observa en la Figura 7, tres usuarios registrados:
* El usuario Kelman con número 101 con IP 10.0.17.101.
* El usuario Adal con número 102 con IP 10.0.17.102.
* El usuario Karens con número 105 con IP 10.0.17.105.

Resultado de la implementación Asterisk

Se realizara peticiones de llamada a cliente Adal (extensión 102) desde los clientes Karens(Extensión 105) y kelman (Extensión 101), para verificar que se puede recibir más de una llamada en un mismo terminal, así como poder realizar un grupo de llamada.

Figura 8. Llamada de dos clientes recibidas.

Conclusión:

En esta implementación podemos comprobar que los clientes, pueden realizar y establecer llamada, ademas de tener la opción de mantener en espera y no perder ninguna llamada recibida. Lo cual verifica que el código fuente programado permite la operación de red VoIP de manera correcta.

En el próximo post presentare como implementar correo de voz y video llamada con Asterisk. Si tienen alguna duda con respecto al tema no duden en contactarme.

1 comentario:

  1. Exelente articulo, espero que pronto redactes uno de Elastix y hagas una breve comparación entre ambos, Elastix vs. Asterisk.
    Saludos

    ResponderEliminar