Académique Documents
Professionnel Documents
Culture Documents
PARTE I
ELABORADO POR:
SUPERVISADO POR:
QUITO – ECUADOR
MAYO DE 2018
TRABAJO PRÁCTICO
IMPLEMENTACIÓN DE UN SISTEMA DE VoIP BASADO EN ASTERISK CON
ACCESO AL SISTEMA CELULAR
PARTE I
1. OBJETIVO
Implementar un sistema de VoIP con Asterisk con softphones en laptops y dispositivos móviles
y el equipo Grandstream HT503 como adaptador de teléfonos analógicos.
2. MARCO TEÓRICO
Una central PBX (Private eXchange Branch) es un sistema de conmutación telefónica que
realiza conexiones entre los teléfonos internos de una organización y también puede
interconectarse a otros sistemas como la red pública telefónica (PSTN) a través de troncales.
Una PBX, dependiendo de sus características, puede tener varios tipos de extensiones a las
cuales se conectan dispositivos tales como teléfonos analógicos, teléfonos digitales, teléfonos
IP, etc.
Una PBX-IP es una central privada que conmuta llamadas entre usuarios de VoIP (Voice over IP)
en líneas locales y permite a todos los usuarios compartir cierta cantidad de líneas telefónicas
externas. Tener una PBX-IP presenta ventajas debido a que como es una solución basada en
software, es más fácil de instalar, configurar y administrar, además, presenta un ahorro
significativo en costos.
Existe varias alternativas de software que permite que un servidor (PC) funcione como una
central telefónica, una de ellas es Asterisk que es un programa de software libre (bajo licencia
GPL) que proporciona funcionalidades de una PBX. Como cualquier PBX, se puede conectar un
número determinado de teléfonos para hacer llamadas entre sí dentro de una misma
organización e incluso acceder a la PSTN. En la siguiente figura se presenta un esquema básico
de comunicaciones de una PBX.
2
3. EQUIPOS Y SOFTWARE NECESARIOS
• Grandstream HT503
• Teléfono analógico
• Router inalámbrico
• Una PC con la máquina virtual con Asterisk
• PCs y smartphones con Zoiper (softphone)
Este sistema telefónico consta de un computador (o máquina virtual) con el sistema operativo
basado en la distribución de Linux Centos denominada "AsteriskNOW" que implementa la
funcionalidad de la PBX-IP. Asterisk es un paquete de PBX gratuito de código abierto.
Para la señalización se emplea el Protocolo de Inicio de Sesión (SIP, Session Initiation Protocol)
que permite el intercambio de señalización entre la PBX-IP con Asterisk y los softphones.
La PBX-IP y los softphones son parte de una red LAN/WLAN para lo cual se utilizará un router
inalámbrico, con el servicio DHCP habilitado. El computador con Asterisk se instala en una
máquina virtual, a la cual se le asignará una dirección IP estática. Los teléfonos que
administrará Asterisk estarán en PCs y smartphones con el softphone Zoiper instalado; a estos
dispositivos se les asignará la dirección IP dinámicamente.
Además, se desea emplear un teléfono analógico, lo cual es posible empleando como gateway
el dispositivo Grandstream HT503 conectado a la LAN y con una dirección IP estática.
De esta manera, para la configuración de Asterisk se deben crear extensiones para cada uno
de los dispositivos conectados en la LAN/WLAN y además es necesario configurar parámetros
de troncalización para el adaptador Grandstream HT503.
3
4.1. ARQUITECTURA DE ASTERISK
Asterisk ayuda a la implementación de una central telefónica PBX, que se realiza sobre la
plataforma Linux o Unix, con conexión a la PSTN. Permite conectividad en tiempo real entre la
PSTN y redes VoIP. Es una aplicación de código abierto, bajo licencia GPL que fue creada por
Marc Spencer de Digium y que ha sido desarrollada por él mismo, junto a programadores de
todo el mundo.
La arquitectura de Asterisk está formada por cuatro API (Application Programming Interface)1.
1. API de canales Asterisk: Maneja el tipo de conexión por el cual el cliente está
llegando, sea una conexión SIP, H323, RDSI, etc.
2. API de aplicaciones Asterisk: Permite a los módulos de tareas cumplir con funciones
como multiconferencias, lista de directorios, buzones de voz, aplicaciones
personalizadas, etc.
3. API de traducción de codecs: Carga módulos, codecs, para soportar varios tipos de
audio, codificando y decodificando formatos tales como G711, G729, GSM23, etc.
4. API de formato de ficheros Asterisk: Maneja la lectura y escritura de varios formatos
de archivos para el almacenaje de datos en el sistema de archivos.
1
API es conjunto de funciones y procedimientos que ofrece cierta biblioteca para ser utilizado por otro software
como una capa de abstracción.
4
• Grupos de llamada (ring groups).
• Identificador de llamante (CallerID).
• Sistema DISA24 (método por el cual una persona externa a la oficina puede realizar
llamadas a través de la centralita).
• Operadora digital (menús interactivos y guiados).
• Música en espera y en transferencia (ficheros MP3 actualizables por el usuario).
• Captura de llamadas de forma remota (remote pickup).
• Buzones de voz (general, individuales, por grupos) protegidos por contraseña.
• Gestión del buzón de voz mediante el terminal telefónico y página web.
• Gestión de listas negras (números telefónicos con acceso prohibido).
PJSIP es una biblioteca que se ha convertido en la base del controlador de canal chan_pjsip en
Asterisk versión 12 y superiores. Se puede usar chan_pjsip solo, o en paralelo con chan_sip.
PJSIP es muy modular y un cambio a un módulo no afecta a los demás. En otras palabras, los
desarrolladores de Asterisk (o cualquier otra plataforma de comunicaciones que utilice PJSIP)
pueden agregar (o eliminar) características mucho más fácilmente y tienen menor riesgo de
introducir errores de programación (bugs).
5. GRANDSTREAM HT503
El HT503 es un adaptador telefónico análogo híbrido y Router VoIP que permite al usuario
crear una solución híbrida integrada con soporte y backup. Este equipo ha sido diseñado para
una fácil instalación y configuración.
5
• Descripción de puertos:
El puerto FXS actúa como una Central, puede generar timbrado, proveer un nivel de voltaje,
proveer tono de marcado, generar voltaje de timbrado y detectar una condición de
descolgado/colgado (off-hook/on-hook) en un equipo terminal asociado. Un puerto con FXS
debe ser conectado a un equipo que pueda detectar o recibir tono.
Figura 5: FXS
Dado que el puerto FXO no proporciona señalización ni voltaje, necesita de otro equipo básico
de telefonía. Un puerto FXO debe ser conectado a un dispositivo que pueda generar tonos
(ejemplo: línea de la PSTN, línea de una central PBX, puerto con FXS).
Para crear una red local se necesitará configurar un router con DHCP habilitado por lo que se
debe especificar el rango de direcciones IP a utilizar para que asigne a cada dispositivo y poder
realizar las llamadas. La configuración presentada a continuación es para el router TL-
WR841HP.
Como primer paso se conecta el cable de red entre el puerto LAN del router y el puerto
ethernet de la computadora o conectándose de forma inalámbrica al router seleccionado el
SSID por default; luego, desde algún explorador se indica la dirección IP por defecto del router
a utilizar. Para el ejemplo, se utilizó el router TL-WR841HP y se escribe la dirección
192.168.0.1.
6
Si no se conoce esta dirección IP, se debe consultar utilizando la línea de comandos (cmd) en
Windows, ingresando el comando "ipconfig", el mismo que muestra los valores de
configuración de red actuales. Se asume que por default el servicio DHCP estuvo habilitado y la
computadora tiene habilitado DHCP como cliente. La dirección IP del router corresponde a la
puerta de enlace del Adaptador Ethernet.
El usuario y contraseña por defecto es admin. Seguidamente se accede a la opción DHCP para
configurar el rango de direcciones IP que se asignarán dinámicamente.
En la opción Wireless se verifica el SSID (nombre de la red) actual el cuál puede ser modificado,
en este caso el nombre de la red es APPBX.
7
Finalmente se guardan los cambios y se reinicia el equipo para aplicar los cambios.
Se instalará en una máquina virtual AsteriskNOW que es una distribución de GNU/Linux basada
en CentOS que permite transformar una PC en una central telefónica PBX basada en Asterisk.
Entre los programas de virtualización existentes (VWMware, VirtualBox, Parallels, etc.), se escogerá
VirtualBox debido a que es gratuito, muy funcional y relativamente sencillo de manejar.
https://www.virtualbox.org/wiki/Downloads
Se escogerá la última versión compatible y se instalará sobre Windows, que será el sistema
operativo anfitrión.
8
7.2. INSTALACIÓN Y CONFIGURACIÓN DE ASTERISKNOW
Como primer paso se debe descargar el ISO de AsteriskNow del siguiente enlace:
https://www.asterisk.org/downloads/asterisknow
Una vez descargada la imagen ISO se procede a la instalación, para ello se crea una nueva
máquina virtual en VirtualBox, empleando la opción “Nueva” indicada en la figura y proceder a
especificar las características de la máquina.
Se coloca el nombre de la máquina virtual (puede ser cualquier nombre, este caso se empleó
Asterisk), en tipo se selecciona Linux, y en la versión se escoge Ubuntu (64 bit).
9
Click en “Siguiente” y se establece el tamaño de memoria para el sistema operativo, en este
caso se estableció 1024MB.
10
Escribimos el nombre del archivo y establecemos el tamaño.
11
Aceptamos y luego presionamos la flecha verde para iniciar la máquina y proceder a instalar.
12
A continuación, se establece una clave para el servidor.
Si la contraseña es débil aparecerá un mensaje, pero se puede hacer click en la opción “Use
Anyway”.
Esperamos que inicie el proceso de instalación y luego comienza a descargar los paquetes, este
proceso podría tardar varios minutos hasta que se descarguen todos los paquetes
(aproximadamente 35 min).
Se presiona enter y esperamos que se inicie la máquina virtual (lo que puede tomar más de 20
minutos).
13
En “local host” nos identificamos como usuario root y escribimos la contraseña que se
configuró anteriormente.
NOTA:
• Se asume que se realizó la instalación con la computadora física conectada por cable o
inalámbricamente pero no en la red del router inalámbrico (192.168.0.0).
Se modificará la opción “BOOTPROTO” para indicar el valor “static”, y se añadirán los campos
de dirección IP, máscara, gateway y zone como se muestra a continuación.
14
Se escogió para el servidor la dirección IP 192.168.0.110.
NOTA:
• Se puede establecer la dirección IP del servidor y del Grandstream fuera del rango de IPs
definido cuando se configuró el servidor DHCP en el router TL-WR841HP, para evitar
realizar reservas y que existan conflictos.
Guardamos los cambios con “ctrl + o”, se presiona enter y se abandona el programa con ctrl+X.
Luego se apaga la máquina virtual para poder reiniciar los servicios y cambiar la configuración
de red en el modo puente (bridge).
Ahora configuramos la máquina virtual en modo puente, para ello se escoge la opción de
“Configuración”.
15
Seleccionamos la opción “Red”.
16
La máquina física debe estar conectada a la red APBX. Ahora con la máquina virtual nos
conectamos también a la red APBX.
Comprobamos que se puede hacer ping a la máquina física, al gateway establecido y a las PCs
que están en red. Es importante recordar que se debe desactivar los firewalls del computador
físico y del antivirus, en caso de que se tenga instalado uno, ya que muchas veces esto es lo
que no permite que se realicen pings entre las máquinas.
En Windows:
17
Comprobado que efectivamente se realicen los pings entre las máquinas, se procede a la
configuración de AsteriskNow.
Para realizar la configuración accedemos al GUI del Servidor Asterisk a través de la dirección IP
estática asignada. La IP asignada en este caso es 192.168.0.110, la misma que debe ser
insertada en un navegador (Google Chrome, Firefox).
18
En esta PBX se crearán líneas de extensión para cada uno de los dispositivos que se asociarán a
la LAN/WLAN. De esta manera se crearán extensiones para los softphones en las PC, para los
smartphones y un teléfono analógico que se conectará a la central a través del gateway
Grandstream HT503.
Después se selecciona la pestaña Añadir Extensión y se escoge la opción Agregar Nueva PJSIP.
Se despliega la siguiente ventana donde se ingresará información para los siguientes campos:
• Extensión del usuario: Se introduce un número que identifique la línea del dispositivo.
• Nombre a mostrar: Se coloca un nombre a la extensión.
• Secreto: Se escribe una contraseña que será conocida por el usuario que se conecte a
través de la PC o de un smarthphone.
Una vez completados estos campos, seleccionamos el botón Enviar y luego “Aplicar
Configuración” para guardar los cambios realizados.
19
De igual manera, creamos extensiones para otros PC, smarthphones y para el gateway
analógico Grandstream HT503.
20
Se realiza clic en la pestaña “Añadir Línea” y se escoge “Añadir SIP (chan_sip) Línea”
En la ventana que se despliega se ingresan datos para los campos: “Nombre de Línea”, para
este caso será GRANDSTREAM; “Número Máximo Canales”, que es el número de líneas
asociadas a esta troncal, en este caso será 1.
Una vez creada la troncal SIP, con el nombre GRANDSTREAM, se necesita registrar la dirección
IP asignada al HT503; a este dispositivo se le asignará la dirección 192.168.0.150, que será
configurada. Posteriormente. en el dispositivo Grandstream.
El campo Detalles PEER debe ser completado con los siguientes comandos:
DETALLES PEER
host=192.168.0.150
type=peer
canreinvite=no
insecure=very
dtmfmode=rcf2833
port=5060
qualify=yes
21
• host: Esto hace referencia a la dirección IP desde la que el terminal se registra a la
troncal. Puede configurarse dinámicamente o se puede especificar una IP en concreto.
En este se ingresa la dirección IP del Grandstream.
• canreinvite: Por defecto está en ''no'', lo que significa que el tráfico RTP entre dos
dispositivos SIP, pasa siempre por el servidor. Si este campo se configura en "yes", el
tráfico de voz entre los dos dispositivos no pasará por el servidor (no obstante, la
señalización si lo hará); de esta manera, se ahorran recursos de CPU. Se acostumbra a
poner este campo en "yes" en centralitas con muchos dispositivos o cuando se tiene
un tráfico entre dispositivos internos muy elevado.
• dtmfmode: Este campo especifica en qué formato se envían los tonos DTMF (Dual-
Tone Multi-Frequency). En nuestro país se emplea el formato RFC2833.
• port: Aquí se indica el puerto en el que se autenticará el terminal SIP. Es decir, se
ingresa el puerto local del Grandstream que por defecto es el 5060.
• qualify: Este parámetro es un indicador o umbral de la latencia máxima en un
dispositivo o troncal. Si se asigna "yes" corresponde a 2000 ms lo que quiere decir que
si la latencia del dispositivo es de más de 2s, éste se muestra como no disponible.
Ahora es necesario crear una ruta entrante con el número de extensión asignado al
Grandstream HT503, para ello se utilizará el número de extensión que debió ser instalado
inicialmente, en este caso se asigna la extensión 2000004 para las llamadas provenientes de
las otras extensiones. Para la configuración se selecciona la opción “Rutas Entrantes” de la
pestaña Conectividad.
Se añade una nueva ruta entrante y se ingresa la extensión del HT503 "2000004" en los
campos Descripción y “Número DID” (es un número telefónico virtual, es decir es un número
del mismo plan de numeración local que se entrega por medio de una troncal SIP). Después se
aceptan los cambios presionando Enviar y “Aplicar Configuración”.
22
Ahora se debe crear la ruta saliente para las llamadas dirigidas hacia el GRANDSTREAM. Para
añadir una nueva ruta saliente se selecciona la opción “Rutas Salientes” de la pestaña
Conectividad.
En la pestaña “Patrones de Discado” se ingresan las reglas de marcación para que una llamada
salga por esta ruta hacia el Grandstream, por lo que se necesita establecer un prefijo y un
patrón de comparación que debe considerarse cuando se marca de cualquier extensión hacia
el Grandstream.
Reglas:
X coincide con cualquier dígito entre 0-9
23
Z coincide con cualquier dígito entre 1-9
N coincide con cualquier dígito entre 2-9
[1237-9] coincide con cualquier dígito o letra entre los paréntesis (ejemplo: 1,2,3,7,8,9)
. comodín, coincide con uno o más caracteres (no permitido antes de | o +)
Como la extensión del Grandstream es el número 2000004, su patrón será XXXXXXX, el mismo
que deberá ser ingresado en el campo “Patrón de Comparación”.
Para habilitar el puerto WAN se debe conectar el cable de red en el puerto WAN del HT503 y
el otro extremo al puerto LAN del router de su red local. Seguidamente se conecta un teléfono
analógico en el puerto "phone" del HT503 y se procede a realizar la siguiente marcación en el
teléfono:
24
Aparecerá la siguiente pantalla e ingresamos con la contraseña por defecto que es admin.
Se selecciona la opción “statically configured as” y se escribe una dirección IP que esté dentro
del rango de la red configurada, en el ejemplo se anticipó en la PBX que la IP para el
Grandstream es 192.168.0.150; en “Default Router” va la dirección del gateway. En “DNS
Server 1” se coloca la misma dirección que en “Default Router”.
25
Seleccionamos la opción Update para actualizar los cambios (un click en Update cada vez que
se modifique algo en cada pestaña).
Estos tonos configurados son los tonos de progreso de llamada, son los tonos que indican
diferentes eventos de una llamada y están compuestos de frecuencias y cadencias.
“Confirmation Tone” no está especificado para Ecuador debido a que no se usa por lo que se
deja el valor que viene por defecto.
Luego se ingresa a la pestaña “FXS Port” y configuramos la IP del servidor en “Primary SIP
Server” y en “Outbound Proxy”. En “SIP User ID” y en “Authenticate ID” se coloca el número de
extensión configurado previamente en Asterisk. No olvide presionar en Update después de
realizar la configuración.
A continuación, se configuran los DTMFs que use el Grandstream, tanto con el servidor de VoIP
así como con la PSTN; en este caso se escoge RFC2833 ya que es el que se usa en Ecuador para
los tonos.
26
También se debe verificar que en la pestaña FXS y FXO que los siguientes campos estén
configurados así:
Luego de tener todo configurado se presiona el botón Apply, luego de lo cual aparecerá el
siguiente mensaje:
Volvemos a ingresar para comprobar que se hayan aplicado todos los cambios.
Un softphone es una aplicación que simula las funciones de un teléfono convencional a través
de la computadora, permitiendo servicios de Telefonía IP. Esta aplicación reemplaza a un
teléfono físico, consiguiendo la ventaja de no tener que disponer del equipamiento físico para
utilizar el servicio.
Para la instalación de Zoiper en las PC, se debe descargar el ejecutable de la siguiente URL:
https://www.zoiper.com/en/voip-softphone/download/current
27
Además, se debe descargar este softphone desde la PlayStore para smartphones que usen el
sistema operativo Android.
Una vez instalado Zoiper tanto en la PC como en los smartphones, se configura la cuenta con
los datos de las extensiones almacenadas en el servidor AsteriskNOW.
28
Una vez configurados todos los dispositivos con Zoiper se podrá realizar llamadas entre las
extensiones registradas en el Servidor Asterisk.
Se deben realizar llamadas utilizando las combinaciones posible entre los softphones en las PC,
en los móviles, y en el teléfono analógico.
Referencias:
• Manual HT503:
• http://www.grandstream.com/sites/default/files/Resources/ht503_user_manual.pdf
• https://www.grandstream.com/sites/default/files/faq/Alarm_Call_to_Cell_HT503.pdf
29