Post on 25-Jul-2015
1
MAESTRÍA EN REDES DE TELECOMUNICACIONES
PARA PAÍSES EN DESARROLLO
Tendencias de Conmutación de Voz en Redes Heterogéneas
PRÁCTICA 1:
Instalación y configuración de un sistema de conmutación de voz RTC+IP con Asterisk
Estudiante: Francisco Naranjo C.
Tabla de contenido 1. OBJETIVOS DE LA PRÁCTICA .......................................................................................2
2. INTRODUCCIÓN.........................................................................................................2
3. METODOLOGÍA .........................................................................................................3
3.1. Material Empleado ................................................................................................3
3.2. Instalación de la centralita y de los otros elementos de la práctica. ..........................3
3.3. Instalación del software Asterisk y paquetes complementarios ................................5
3.4. Configuración de Asterisk y de los dispositivos ........................................................9
4. CONCLUSIONES .......................................................................................................12
5. BIBLIOGRAFÍA .........................................................................................................12
6. ANEXOS ..................................................................................................................12
6.1. Cuadro de Ilustraciones........................................................................................12
2
1. OBJETIVOS DE LA PRÁCTICA Probar experimentalmente las posibilidades que ofrece Asterisk, en combinación con diversos
complementos hardware para la conmutación de llamadas RTC y con dispositivos VoIP, para
proporcionar servicios avanzados de telefonía en que todas o parte de las comunicaciones
transcurran sobre redes IP.
2. INTRODUCCIÓN Asterisk es una aplicación de software libre (bajo licencia GPL) que proporciona
funcionalidades de una central telefónica (PBX).
Marc Spencer crea en 1999 ASTERISK, la primera central telefónica OpenSource,
multiplataforma originalmente pensada para GNU/LINUX.
Asterisk es un modo de interconectar todo con todo, un modo de revolucionar el
funcionamiento de las telecomunicaciones. Junto a una plataforma OpenSource, se crea la
primera empresa destinada pura y exclusivamente a diseñar, construir y crear nuevos
dispositivos de hardware, relativamente más baratos, a ser utilizados con esta excelente
central telefónica en una simple computadora.
Asterisk incluye muchas características que anteriormente sólo estaban disponibles en
costosos sistemas propietario. Asterisk es una solución que nos da todo lo que nos daría una
PBX comercial, pero con muchas más posibilidades y una mucho mayor flexibilidad que los
productos empaquetados comerciales. Por supuesto tenemos todo lo básico como:
Configuración de internos.
Planes de discado.
Contestador telefónico.
Transferencia de llamada.
Llamada en espera.
Espera musical.
IVR.
Casillas de mensaje
Seguridad
Pero también nos brinda mucho más, ya que Asterisk es completamente personalizable, se
puede utilizar en instalaciones serias y comerciales, así como también para armar una central
telefónica hogareña.
Solo necesitamos una PC con GNU/LINUX y muchas ganas de aprender y conocer. Al igual que
conectamos nuestras computadoras, todos juntos a la Internet, así podemos conectar cada
una de nuestras centrales, sin costo alguno, expandiendo la potencialidad de las
telecomunicaciones, prácticamente sin costos y con solo la imaginación como límite.
Asterisk fue pensado para concentrar en un programa informático, 100 años de evolución de
nada más y nada menos que las tecnologías de telecomunicaciones. Es absolutamente flexible
3
para crear y hacer cosas inimaginables. Podemos utilizar un viejo modem ya sin valor, así como
las caras placas DIGIUM o su contraparte las OpenPCI o sus variantes, o bien cualquiera de los
adaptadores externos de telefonía IP hoy disponibles en el mercado.
Si no queremos gastar un solo centavo en hardware, con nuestra PC y nada más que ella
podemos armar toda una red de comunicaciones basada únicamente en Soft Phones
3. METODOLOGÍA Para poder cumplir con los objetivos propuestos en esta práctica debemos cumplir los
siguientes pasos:
Instalación de la centralita y de los otros elementos de la práctica
Instalación del software Asterisk y paquetes complementarios
Configuración de Asterisk y de los dispositivos
3.1.Material Empleado PC con Linux
Tarjeta PCI Digium TDM410P con un módulo FXS y otro FXO
Hub o Switch Ethernet y cableado
Teléfono IP
ATA + teléfono analógico
Acceso a simulador de RTC (GXW4024 compartido de 24 puertos)
Acceso a teléfonos de videoconferencia (2 compartidos)
Acceso a multi-teléfono inalámbrico DECT IP (1 base con 4 terminales, compartido)
Posibilidad de instalar softphones en PCs o dispositivos móviles de los alumnos
3.2.Instalación de la centralita y de los otros elementos de la
práctica. En el ordenador poseemos una distribución Linux (Ubuntu), en la cual se ha instalado una
tarjeta PCI Digium TDM 410P.
4
Ilustración 1: Tarjeta Digium TDM410?
La cual cuenta con las siguientes características:
DISPOSITIVO TARJETA PCI DIGIUM CON 4 PUERTOS FXS Y FXO VACIOS
MODELO DIGIUM TDM410P
NUMERO DE PARTE TDM410P
PUERTOS 4 SLOTS PARA MÓDULOS FXS/FXO
DRIVER PARA ASTERISK:
ZAPTEL (WCTDM)
SOPORTE PARA CANCELACIÓN DE ECO HARDWARE.
INCLUYE EL CHIPSET VOICEBUS
Ilustración 2: Características Digium TDM410P
Tener completamente montado el hardware de la práctica y configuradas las direcciones IP de todos los elementos, de forma que se pueda hacer “ping” de unos a otros, así como a los dispositivos de los otros grupos que ya estén configurados en red.
El direccionamiento IP previsto para el grupo 3 en la presente práctica es el siguiente:
Asterisk: 212.128.244.152
ATA's Linksys: 212.128.244.142
Teléfonos VoIP Swissvoice IP10S: 212.128.244.132
Teléfonos DECT, VídeoIP, y GXW4024 212.128.244.129 dect1
212.128.244.128 videoip1
212.128.244.127 videoip2
212.128.244.120 gxwrtc1
Para asignar las direcciones IP a los distintos dispositivos, se realiza el siguiente procedimiento:
5
1) En el ordenador se asigna la dirección IP 212.128.244.152/24 con Gateway
212.128.244.1, modificando el archivo /etc/network/interfaces
2) Configuración de ATA (IP por defecto: 192.168.0.1)
Para configurar el ATA, agregamos un alias a nuestra tarjeta ethernet:
sudo ifconfig eth0:3 192.168.0.2
3) En un navegador web ingresamos a http://192.168.0.1 y en la pestaña WAN Setup
se asigna la dirección IP 212.128.244.142/24. Es importante habilitar la opción
WAN web server, para habilitar la configuración remota mediante esta IP.
4) En el teléfono IP se configura a través del teclado lo siguiente:
Menu -> Admin Settings -> Change Settings > passwd 0000 > ok
TCP/IP
En DHCP se selecciona No
Se introduce IP/ Netmask/ Gateway y se reinicia. La IP es
212.128.244.132
Menu -> Admin Settings -> Change Settings > passwd 0000 > ok
SIP configuration
En Proxi server se selecciona el IP de la máquina: 212.128.244.152
Menu -> Admin Settings -> Change Settings > passwd 0000 > ok
En User ID se establece 22
Menu -> Admin Settings -> Change Settings > passwd 0000 > ok
Authenticate login: 22
Menu -> Admin Settings -> Change Settings > passwd 0000 > ok
Authenticate password: lab6
5) A continuación se realiza un ping desde el ordenador al teléfono para comprobar
la conectividad.
3.3.Instalación del software Asterisk y paquetes complementarios Para esto realizamos el siguiente procedimiento:
Primero se instalan las actualizaciones, los paquetes necesarios para el correcto
funcionamiento y uso del Asterisk, el paquete “Asterisk” en sí que contiene la centralita
software y el paquete “zaptel” que contiene los drives, utilidades de configuración y
manejo del hardware de telefonía:
sudo apt-get update
sudo apt-get safe-upgrade
6
sudo apt-get install debconf-utils linux-headers-`uname -r` make bison flex g++
sudo apt-get install gcc sox libncurses5-dev libssl-dev mpg123 asterisk zaptel
Instalamos el driver zaptel, el cual nos permite hacer uso de la tarjeta Digium, en el
directorio /usr/src y con el siguiente código:
#descargamos las fuentes en /usr/src, y lo desempaquetamos
sudo su
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/zaptel/zaptel -1.4-current.tar.gz
tar xzf zaptel-1.4-current.tar.gz
cd `find . -name "zaptel-1.4.*" -print` solo si esta en etc
export KVERS=`uname -r`
echo $KVERS = 2.6.27-7-generic
#compilamos el código
./configure
make clean
make
make install
make config
Editamos el fichero /etc/default/zaptel y comentamos las líneas que asignan el valor a la
variable MODULES menos las que corresponden al driver “wctdm24xxp”, que es el que
vamos a utilizar para nuestra tarjeta Digium.
Reiniciamos el servicio de zaptel /etc/init.d/zaptel restart, y comprobamos que el driver
este cargado y que el hardware esté reconocido:
lab6@lab6-desktop:/usr/src$ lsmod | grep zaptel
zaptel 201508 1 wctdm24xxp
crc_ccitt 10112 1 zaptel
Para comprobar que el driver funciona correctamente se digita la siguiente instrucción:
lab6@lab6-desktop:/usr/src/zaptel-1.4.12.1$ zaptel_hardware
La información presentada debe ser la siguiente:
7
pci:0000:01:06.0 wctdm24xxp+ d161:8005 Wildcard TDM410P
Editamos el fichero /etc/zaptel.conf
Cambiamos el valor de las variables “loadzone” y “defaultzone” por “es”.
lab6@lab6-desktop:~$ sudo genzaptelconf
lab6@lab6-desktop:~$ sudo cat /etc/zaptel.conf
lab6@lab6-desktop:~$ sudo gedit /etc/zaptel.conf
# Autogenerated by /usr/sbin/genzaptelconf -- do not hand edit
# Zaptel Configuration File
# This file is parsed by the Zaptel Configurator, ztcfg
# It must be in the module loading order
# Span 1: WCTDM/0 "Wildcard TDM410P Board 1" (MASTER)
fxsks=1
fxoks=2
# channel 3, WCTDM, no module.
# channel 4, WCTDM, no module.
# Global data
loadzone = es # antes us
defaultzone = es # antes us
Cargamos el fichero de configuración en zaptel para visualizar como están designadas las
interfaces de la centralita:
llab6@lab6-desktop:~$ sudo ztcfg -vv
Se observa la siguiente información:
Zaptel Version: 1.4.12.1
Echo Canceller: MG2
Configuration
======================
Channel map:
8
Channel 01: FXS Kewlstart (Default) (Slaves: 01)
Channel 02: FXO Kewlstart (Default) (Slaves: 02)
2 channels to configure.
Debemos ejecutar el fichero genzaptelconf, que nos generará el fichero de configuración
/etc/Asterisk/zapata-channels.conf.
lab6@lab6-desktop:~$ gedit /etc/asterisk/zapata-channels.conf
El cual contiene lo siguiente:
; Autogenerated by /usr/sbin/genzaptelconf -- do not hand edit
; Zaptel Channels Configurations (zapata.conf) ;
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 1
context=default
signalling=fxo_ks
callerid="Channel 2" <6002>
mailbox=6002
group=3
context=from-internal
channel => 2
callerid=
mailbox=
group= 3
context=default
Finalmente, comprobamos el estado de los puertos:
lab6@lab6-desktop:~$ lszaptel
El cual nos muestra lo siguiente:
9
### Span 1: WCTDM/0 "Wildcard TDM410P Board 1" (MASTER)
1 FXO FXSKS RED
2 FXS FXOKS
3 FXO FXSKS
4 FXO FXSKS
3.4.Configuración de Asterisk y de los dispositivos Para realizar la configuración de Asterisk realizamos el siguiente procedimiento:
1. Configuramos los siguientes ficheros:
/etc/Asterisk/sip.conf
/etc/Asterisk/zapata.conf
/etc/Asterisk/extensions.conf
Descargamos las referencias de configuración de la máquina del laboratorio
lab6@212.128.244.159:/etc/asterisk/*, cuyo password es lab6.
2. Copiamos los ficheros en la maquina local, en el fichero etc/Asterisk/sip.conf se crean
dos nuevas extensiones con sus buzones de voz la "12" y "22" para el ATA y el teléfono
IP respectivamente, la contraseña que se asigna es "lab6" en ambos casos. El fichero
contiene el siguiente código:
[general] context = default
port = 5060
bindaddr = 0.0.0.0 compactheaders=no
language=es videosupport=yes
compactheaders=no srvlookup=no
[12] ; ata, puerto fxs
type=friend secret=lab6
qualify=yes nat=no
host=dynamic canreinvite=no
context=internal
[RTC-linksys] ; ata, puerto fxo type=friend
secret=lab6
10
qualify=yes
nat=no host=dynamic
port = 5061 canreinvite=no
context=internal
[22] type=friend
secret=lab6 qualify=yes
nat=no host=dynamic
canreinvite=no
context=internal [82] ; Ekiga
type=friend secret=lab6
qualify=yes nat=no
host=dynamic
canreinvite=no context=internal
Ilustración 3: Configuración sip.conf
3. Aspectos importantes a destacar definidos en el fichero sip.conf son:
El tipo (type) "user" para autenticar llamadas entrantes, "peer" para llamadas salientes
y "friend" para ambas ya que puede realizar y recibir llamadas,
Secret que es la contraseña usada para la autenticación = lab6,
Se puede monitorizar la latencia entre el servidor Asterisk y el teléfono
con qualify=yes.
Si se escoge host=dynamic el teléfono se podrá conectar desde cualquier dirección IP.
Con canreinvite=no, deshabilita el poder tener invitados de SIP, establecer llamadas y
redirigir el audio o video.
Para indicar el contexto donde están las instrucciones para una extensión, se configura
en esta context=interno.
4. Realizamos las modificaciones necesarias en el fichero: /etc/Asterisk/extensions.conf,
que se muestra a continuación:
[globals]
LANGUAGE=/es MYLANG=es
ZAP_FXO=Zap/1
ZAP_FXS=Zap/2 DIR_SCRIPTS=/var/lib/asterisk/scripts
DIR_PASSWD=/var/spool/lab6-asterisk/passwd DIR_VOICES=/var/spool/lab6-asterisk/voices
11
DIR_SOUNDS=/usr/share/asterisk/sounds${LANGUAGE}
[ata] extension del ATA linksys exten => 12,1,Dial(SIP/12,20,Tt)
[telip] ; extension del teléfono VoIP swissvoice IP10S exten => 22,1,Dial(SIP/22,20,Tt)
[softphone] ; extension teléfono analógico en FXS de tarjeta Digium exten => 82,1,Dial(SIP/82,20,Tt)
[kiax] ; extension teléfono analógico en FXS de tarjeta Digium exten => 92,1,Dial(IAX2/kiax,60,r)
[fxs] ; extension teléfono analógico en FXS de tarjeta Digium exten => 62,1,Dial(${ZAP_FXS},20,Tt)
Ilustración 4: Configuración extensions.conf
5. Para comprobar la configuración y conexión realizamos lo siguiente:
a. Primero detenemos asterisk:
lab6@lab6-desktop:~$ sudo /etc/init.d/asterisk stop
b. Luego se lo inicia:
lab6@lab6-desktop:~$ sudo /etc/init.d/asterisk start
c. Finalmente accedemos al CLI:
lab6@lab6-desktop:~$ sudo Asterisk -vvvvvr
d. Observamos lo siguiente:
Asterisk 1.4.21.2~dfsg-1ubuntu3, Copyright (C) 1999 - 2008 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under certain
conditions. Type 'core show license' for details.
Y se comienza a ingresar las instrucciones desde CLI:
lab6-desktop*CLI>
6. Finalmente, se realizan llamadas desde el teléfono IP hacia la extensión analógica y
viceversa, tomando en cuenta que para lograr la conexión hasta esta última se utiliza
el ATA.
7. Tuvimos la oportunidad de hacernos con otro teléfono y probar las 3 extensiones
12
4. CONCLUSIONES
Asterisk es una herramienta con una serie de prestaciones difíciles de
encontrar aun en PBX comerciales.
La posibilidad de programar extensiones al código en C, la convierten en una
herramienta cuyas limitaciones están únicamente en la capacidad de sus
usuarios.
El proceso de enrutamiento y configuración básico no resulta extremadamente
imposible de realizar por usuarios noveles.
La adaptabilidad de hardware es una fortaleza a tomar en cuenta.
Esta práctica no solo me ha brindado la capacidad de aprender la configuración
básica de Asterisk, sino también conocer su funcionalidad, y aunque es poco lo
que he podido ver, se abren un sin número de posibilidades.
Como profesor universitario de un país en vías de desarrollo puedo decir que lo
más importante para nosotros es brindar a nuestros estudiantes herramientas
que les permitan destacar y puedan aplicar en el mundo laboral, y esta es una
de las herramientas que con seguridad voy a aprender a utilizar y replicar ese
conocimiento en mis discípulos.
5. BIBLIOGRAFÍA
http://es.wikipedia.org/wiki/Asterisk, Wikipedia – Asterisk
http://www.voip-info.org/tiki-index.php?page=Asterisk+Linux+Ubuntu, voip-info.org
http://www.voipnovatos.es/#vocesasterisk, voipnovatos
http://www.voztovoice.org/?q=node/67, voztovoice-instalacion Asterisk
http://mmm.ubuntu-es.org/?q=node/1275, Ubuntu.es - Asterisk con ubuntu
http://www.voip-
info.org/wiki/view/Instalaci%C3%B3n+de+Asterisk+en+Ubuntu+Server+Paso+a+Paso,
voip-info.org instalación de Asterisk paso a paso
http://www.ubuntu-es.org/index.php?q=node/75202, ubuntu-es instálate Asterisk en
ubuntu
http://www.why-not.com.ar/downloads/linuxvoipasteriskbal.pdf, Mariano Acciardi.
http://www.asterisktron.org/asterisk-paso-a-paso/, Asterisk tron - Asterisk paso a
paso
http://wiki.ehas.org/index.php?title=Asterisk_en_Ubuntu, Wiki EHAS - Asterisk en
ubuntu
Referencias bibliográficas brindadas en la práctica.
6. ANEXOS
6.1.Cuadro de Ilustraciones Ilustración 1: Tarjeta Digium TDM410? __________________________________________________________4
Ilustración 2: Características Digium TDM410P ___________________________________________________4
Ilustración 3: Configuración sip.conf ___________________________________________________________ 10
13
Ilustración 4: Configuración extensions.conf ____________________________________________________ 11