Você está na página 1de 15

Redes de Computadoras INF238 2017-1

LABORATORIO DE REDES DE COMPUTADORAS INF238

LABORATORIO NMERO: 3 SEMESTRE : 2017-1

TEMA: Servicio VoIP con Asterisk

OBJETIVOS:

Familiarizarse con comandos bsicos de red de datos en Linux.


Configurar servidores Asterisk y establecer llamadas entre sus extensiones
Analizar el trfico generado por paquetes de voz.

ACTIVIDADES A REALIZAR:
Actividades Puntos

1 Informe Previo 5 pts.

2 Prueba en lnea 5 pts.

3 Evaluacin de desempeo, colaboracin y comportamiento 3 pts.

4 Parte Prctica 7 pts.

River 1
Redes de Computadoras INF238 2017-1

Sobre el desarrollo del Laboratorio:


El desarrollo del laboratorio tiene una duracin alrededor de 1 hora 50 minutos.
Todo informe es personal salvo indicacin contraria del Jefe de Prctica.
La tolerancia mxima para ingresar al laboratorio es de 10 minutos. Pasado este tiempo el alumno
NO podr ingresar bajo ninguna circunstancia y obtendr la nota de CERO.
La primera parte a desarrollar es la Prueba en lnea, y tiene una duracin entre 5 a 10 minutos;
esta prueba est activado por tiempo limitado.
Una vez acabado la Prueba de Entrada, deber entregar el Informe Previo.
Esperar las indicaciones del Jefe de Prctica para iniciar el desarrollo de la parte prctica del
Laboratorio.
La evaluacin del desempeo, colaboracin y comportamiento ser tomado en todo instante por
observacin o por interaccin con los alumnos.
Al trmino del Laboratorio deber entregar su la Parte Prctica desarrollada.

Advertencias durante el desarrollo del Laboratorio:


Evitar faltar a sus sesiones de Laboratorio, porque NO habr recuperacin de ninguna sesin por
ningn motivo, ni se permitirn cambios de horario.
Todas las sesiones son consideradas para la evaluacin final de Laboratorio.
Est prohibido usar dispositivos mviles durante el desarrollo del Laboratorio. La omisin a esta
indicacin se le restar puntos en el Laboratorio.
Est prohibido ingresar e ingerir alimentos y/o bebidas en el Laboratorio. La omisin a esta
indicacin se le restar puntos en el Laboratorio.
Podr salir del Laboratorio por alguna urgencia; pero si la ausencia es demasiada larga sin que
exista justificacin, y a criterio del Jefe de Prctica, se le considerar como abandono al Laboratorio
por lo que tendr nota de CERO.
Evitar realizar conexiones si no ha recibido el visto bueno del Jefe de Prctica, asimismo evite tocar
los contactos metlicos de las tarjetas pues una carga electrosttica puede daarlas.
No intentar desensamblar componentes de la PC a menos que se le indique.
Al terminar el Laboratorio los alumnos debern dejar ordenado su entorno de trabajo; adems
debern dejar los equipos, dispositivos y su computadora con la configuracin por defecto para
facilitar el trabajo de sus dems compaeros. La omisin a estas indicaciones le restar puntos en
el Laboratorio.

Consultas al Jefe de Prctica:


Se podrn realizar consultas sobre el laboratorio a los jefes de prctica de su respectivo horario a
travs del correo electrnico, con copia al profesor del curso. Las direcciones electrnicas estn
disponibles en la Intranet del curso, donde se indica Profesores y Alumnos.

River 2
Redes de Computadoras INF238 2017-1

Sobre la evaluacin:
Actividades Puntos Descripcin

La tarea est relacionada con el tema de la Parte


Informe Previo 5 pts. Prctica del Laboratorio; y ser entregado al empezar
el Laboratorio.
Evaluacin con alternativas mltiples en lnea, que ser
Prueba en lnea 5 pts.
tomado al inicio Laboratorio.
Se evaluar durante el Laboratorio:
Desempeo acadmico: Nivel de preparacin para
el desarrollo del Laboratorio; puede incluir
Evaluacin del desempeo, responder a preguntas (1 pto).
3 pts. Colaboracin: Participacin activa frente al grupo
colaboracin y comportamiento.
de trabajo para poder lograr los objetivos (1 pto).
Comportamiento personal: Se evala el orden en
el trabajo, y el buen trato con el resto de las
personas (1 pto).

Costar de experiencias tcnicas que tendr que ser


Parte Prctica 7 pts.
desarrollado durante el Laboratorio.

River 3
Redes de Computadoras INF238 2017-1

FUNDAMENTOS TERICOS
Aplicacin VoIP con Asterisk

1. Instalacin y ejecucin del Asterisk en Ubuntu.


Para instalar el Asterisk.

# apt-get update
# apt-get install asterisk -y

Otra posibilidad, es instalar el Asterisk compilando desde sus fuentes (source code), los siguientes
pasos muestra esta alternativa.

# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-
1.8.10.1.tar.gz
# tar -zxvf asterisk-1.8.10.1.tar.gz
# cd asterisk-1.8.10.1/
# ./configure
# make menuconfig
# make
# make install

Pero en el laboratorio se utilizar apt para instalar el Asterisk.

Una vez instalado el Asterisk, por defecto ya estar ejecutandose; pero podemos verificar esto con:

# ps aux | grep asterisk

Si el servicio no se encuentra ejecutndose, podemos ejecutarlo de la siguiente manera:

# service asterisk start o # /etc/init.d/asterisk start

Los archivos de configuracin se encuentran en la carpeta /etc/asterisk.

# ls /etc/asterisk/
iax.conf extensions.conf sip.conf

Cuando se crean, o se editen los archivos de configuracin del Asterisk, recuerde mantener la
propiedad de los archivos; estos pertenecen al usuario asterisk y grupo asterisk. Esto se observa
haciendo.

# ls l /etc/asterisk/

River 4
Redes de Computadoras INF238 2017-1

2. Lnea de comandos (CLI) del Asterisk


Si el Asterisk se est ejecutndose podemos ingresar a su entorno de comandos. Asterisk dispone de
una interface de comandos (CLI). Para acceder a est interface se debe ejecutar el comando

# asterisk -vvvvr

Cada vez que se cambie los archivos sip.conf, extensions.conf o iax.conf, se debe actualizar en el
Asterisk, para esto se puede ingresar al CLI y se ejecutar:

CLI> reload

se puede reiniciar el Asterisk

# /etc/init.d/asterisk restart

Existen muchos comandos que se pueden ejecutar en el CLI para poder observar el comportamiento
de las llamadas telefnicas; como sip show peers, sip show channels, iax2 show channels. Cada uno de
estos comandos se puede listar ejecutando help.

CLI> help

3. Configuracin de un servidor Asterisk con dispositivos SIP.


En la siguiente imagen se muestra un esquema de red donde se ha implementado el servicio de
telefona IP utilizando Asterisk y Softphones.

sip.conf
extensions.conf
Softphone Softphone Asterisk 1500
1520 1510 10.11.11.10/24
10.11.11.12/24 10.11.11.11/24

Switch

Imagen 1: Esquema de una red de Telefona IP.

Para tener una comunicacin telefnica entre dispositivos SIP se necesita configurar bsicamente dos
archivos sip.conf y extensions.conf.

En sip.conf se especifican las caractersticas de los dispositivos SIP para su registro. Y en extensions.conf
se especifica la manera de cmo se realizar la comunicacin entre los dispositivos registrados.

Abajo se muestra los archivos de configuracin sip.conf del Servidor Asterisk 1500 mostrado en la
imagen anterior. Dentro de este archivo se observa la parte llamada [general] donde se especifica
parmetros que afectarn a cada uno de los siguientes dispositivos SIP. Se observa que el puerto para
SIP es el 5060; adems el cdec prioritario para ser usado por todos los dispositivos SIP es el ulaw
(G711u) porque est primero en la lista, como segunda prioridad est el cdec alaw (G711a).
Despus se especifica a cada uno de los dispositivos SIP; por ejemplo [1510] representa a un dispositivo
SIP. Los parmetros principales para configurar un dispositivos SIP, son el usuario (username) y su clave

River 5
Redes de Computadoras INF238 2017-1

(secret), adems se especifica el contexto para las llamadas entrantes para este dispositivo, en este
ejemplo es central (conext=central); este contexto deber existir en extensions.conf para resolver las
llamadas entrantes a este dispositivo.
Los parmetros que se especifican para cada dispositivo SIP en sip.conf debern ser los mismos cuando
se configure el dispositivo SIP. Si en ambos se mantiene la misma configuracin entonces el dispositivo
SIP podr ser registrado en el Asterisk. Los comentarios en una lnea empiezan con el punto y coma (;).

Tabla 1: sip.conf del servidor 1500


root@C060708:~# cat /etc/asterisk/sip.conf
[general]
;
bndport=5060
disallow=all
allow=ulaw
allow=alaw
allow=gsm
allow=g729
allow=g723
canreinvite=no
;
;
[1510]
type=friend
host=dynamic
language=es
context=central
secret=passwd
username=1510
callerid="User 1510" <1510>
dtmfmode=rfc2833
qualify=yes
;
[1520]
type=friend
host=dynamic
language=es
context=central
secret=passwd
username=1520
callerid="User 1520" <1520>
dtmfmode=rfc2833
qualify=yes
;

Abajo se muestra los archivos de configuracin extensions.conf del Servidor Asterisk 1500. Se observa
la parte denominada Macros (estas funcionan como las funciones creadas en Lenguaje C). Los
comentarios en una lnea empiezan con el punto y coma (;).

Tabla 2: extensions.conf del servidor 1500


root@C060708:~# cat /etc/asterisk/extensions.conf
[general]
;
static=yes
writeprotect=no
autofallthrough=no
clearglobalvars=no

River 6
Redes de Computadoras INF238 2017-1

;priorityjumping=yes
;
;================================================================
; variables globales
;
[globals]
;
;================================================================
; macros
;
[macro-dial-local]
exten => s,1,Dial(${ARG1}/${ARG2},26)
exten => s,2,Hangup
exten => s,102,Hangup
;
;================================================================
; contexto principal
;
[central]
;
; llamadas area local
exten => 1510,1,Macro(dial-local,SIP,${EXTEN})
exten => 1520,1,Macro(dial-local,SIP,${EXTEN})
;

En este archivo se observa el contexto [central] especificado en sip.conf. Cuando el 1510 desea llamar
al 1520, en extensions.conf buscar al 1520; en este caso se observa exten => 1520,1,Macro(dial-
local,SIP,${EXTEN}), por tanto se ejecutar esta lnea; se ejecuta la macro dial-local que contiene
como parmetros SIP y la variable ${EXTEN} que representa a la extensin 1520. En la definicin de la
macro dial-local se observa el comando dial con los argumentos ${ARG1} y ${ARG2} que representa
respectivamente al SIP y al nmero telefnico con el que se desea comunicar.

El comando dial es utilizado en extensions.conf para permitir realizar la comunicacin telefnica entre
los dispositivos registrados en el Asterisk. En la siguiente imagen se muestra un ejemplo del uso del
comando dial.

Contexto

Extensin Comando Canal

[central]
exten => 1510,1,Dial(SIP/${EXTEN},26)

Prioridad Tiempo de
timbrado
Imagen 2: Comando Dial
Donde:
Contexto: Encierra un plan de discado.
Extensin y Prioridad: Es un grupo de instrucciones agrupadas por un mismo identificador (Extensin);
cada una de estas instrucciones estn ordenados de acuerdo a una prioridad. Estas instrucciones se
ejecutan comnmente cuando ingresa una llamada que ha marcado la identificacin de la extensin.

River 7
Redes de Computadoras INF238 2017-1

Comando: Ejecutan una respectiva funcin. Dial por ejemplo establecer una comunicacin entre el
llamante con el Canal que tiene configurado. La variable ${EXTEN} que representa a la Extensin (en
este caso 1510) que aparece en la lnea del comando.

Una vez configurado los archivos, de actualizar los cambios, de configurar los dispositivos telefnicos
SIP, y de verificar el registro de los dispositivos SIP en el Asterisk, ya se puede establecer una
comunicacin telefnica.

4. Verificacin del registro de los dispositivos SIP y de las


llamadas telefnicas.
Ingresando al CLI del Asterisk, podemos verificar que los dispositivos SIP estn registrados en el
Asterisk. En el siguiente resultado se observa que slo est registrado el dispositivo 1510. Hasta que
no se registre el otro, este no podr realizar llamadas telefnicas.

CLI> sip show peers


Name/username Host Dyn Forcerport ACL Port Status Description
1510/1510 10.11.11.11 D A 43330 OK (3 ms)
1520/1520 (Unspecified) D a 0 UNKNOWN
2 sip peers [Monitored: 1 online, 1 offline Unmonitored: 0 online, 0 offline]
CLI>

Cuando dos dispositivos SIP estn estableciendo una comunicacin telefnica se puede observar
parmetros como el cdec utilizando el comando sip show channels. En el siguiente resultado se
observa que est estableciendo una comunicacin SIP entre 1520 y 1510 y ambos estn hablando en
ulaw.

CLI> sip show channels


Peer User/ANR Call ID Format Hold Last Message Expiry Peer
10.11.11.12 1520 64951f0d18b8da8 (ulaw) No Tx: ACK 1520
10.11.11.11 1510 75128f6ec86b3a9 (ulaw) No Tx: ACK 1510
2 active SIP dialogs
CLI>

5. Configuracin para la interconexin entre Asterisk


utilizando IAX.
Con IAX podemos crear una troncal telefnica para que dispositivos SIP registrados en cada servidor
Asterisk pueden comunicarse.

River 8
Redes de Computadoras INF238 2017-1

sip.conf
extensions.conf
iax.conf

Softphone Softphone Asterisk 1500


1520 1510 10.11.11.10/24
10.11.11.12/24 10.11.11.11/24

Switch

sip.conf
extensions.conf
iax.conf
Softphone Softphone Asterisk 1600
1620 1610 10.11.11.20/24
10.11.11.22/24 10.11.11.21/24

Imagen 3: Interconexin entre Asterisk.

En el esquema de arriba se muestra una red con dos servidores Asterisk. El servidor Asterisk 1500
registra a los dispositivos 1510 y 1510 y el servidor Asterisk 1600 registra a los dispositivos 1610 y 1620.
Para establecer la comunicacin entre estos dispositivos registrados en distintos Asterisk se utiliza el
archivo iax.conf si se desea utilizar IAX como medio de interconexin.

En este ejemplo, y el laboratorio, el archivo iax.conf ser el mismo para ambos servidores; porque
actuar como usuario y todos se comunican utilizando un mismo identificador que es iaxusuario. Los
comentarios en una lnea empiezan con el punto y coma (;).

Tabla 3: iax.conf del servidor 1500 y del 1600


root@C060708:~# cat /etc/asterisk/iax.conf
[general]
;
bindport=4569
language=es
disallow=all
allow=ulaw
allow=alaw
allow=gsm
allow=g729
allow=g723
;
[iaxusuario]
type=user
username=iaxusuario
secret=passwd
context=central
requirecalltoken=no
;

La configuracin del archivo iax.conf es similar al sip.conf. En este archivo se observa que la troncal IAX
utilizar el cdec ulaw porque esta primero en la lista; adems el puerto por defecto que usa IAX es
4569. Y tambin existe un usuario IAX identificado como iaxusuario con clave passwd. En
extensions.conf se adicionarn comandos para establecer la comunicacin entre Asterisks. Cuando el
Asterisk 1600 desea establecer una comunicacin IAX con el Asterisk 1500; el 1600 deber realizar la
peticin con el usuario iaxusuario y contrasea passwd con el servidor 1500. El Asterisk 1500

River 9
Redes de Computadoras INF238 2017-1

comparar la peticin con archivo su iax.conf, si los parmetros coinciden entonces el 1500 dejar
pasara las peticiones del 1600 al contexto central.

Cuando el dispositivo SIP 1510 desea establecer una comunicacin telefnica con el 1610; desde el
1510 se marca 1610. Este va redirigido al contexto central del servidor 1500 en extensions.conf, ah
deber ubicar al 1610; y se observa que est contenido en exten => _16XX,1,Macro(dial-
remoto,10.11.11.20,${EXTEN}) y se ejecutar la macro dial-remoto, que contiene como parmetros
la IP del servidor remoto y el nmero del dispositivo con el que se desea comunicar en la variable
${EXTEN}; en la definicin de la macro dial-remoto se observa que el comando dial contiene el
iaxusuario:passwd, y las variables ${ARG1} y ${ARG2} que respectivamente representan la IP del
servidor y el numero con el que se desea comunicarse. Al ejecutarse este comando se estable una
comunicacin con el Asterisk 1600, este servidor comparar el iaxusuario:passwd en su respectivo
archivo iax.conf, si los parmetros coinciden dejar pasar al 1510 al contexto central, ah deber
encontrar al 1610 para establecer la comunicacin.

Tabla 4: extensin.conf del servidor 1500


;================================================================
; macros
;
[macro-dial-local]
exten => s,1,Dial(${ARG1}/${ARG2},26)
exten => s,2,Hangup
exten => s,102,Hangup
;
[macro-dial-remoto]
exten => s,1,Dial(IAX2/iaxusuario:passwd@${ARG1}/${ARG2},28)
exten => s,2,Hangup
exten => s,102,Hangup
;
;================================================================
; contexto principal
;
[central]
;
; llamadas area local
exten => 1510,1,Macro(dial-local,SIP,${EXTEN})
exten => 1520,1,Macro(dial-local,SIP,${EXTEN})
;
; llamadas a areas remotas
;exten => _15XX,1,Macro(dial-remoto,10.11.11.10,${EXTEN})
exten => _16XX,1,Macro(dial-remoto,10.11.11.20,${EXTEN})
;

Tabla 5: extensin.conf del servidor 1600


;================================================================
; macros
;
[macro-dial-local]
exten => s,1,Dial(${ARG1}/${ARG2},26)
exten => s,2,Hangup
exten => s,102,Hangup
;
[macro-dial-remoto]
exten => s,1,Dial(IAX2/iaxusuario:passwd@${ARG1}/${ARG2},28)
exten => s,2,Hangup
exten => s,102,Hangup
;
;================================================================

River 10
Redes de Computadoras INF238 2017-1

; contexto principal
;
[central]
;
; llamadas area local
exten => 1610,1,Macro(dial-local,SIP,${EXTEN})
exten => 1620,1,Macro(dial-local,SIP,${EXTEN})
;
; llamadas a areas remotas
exten => _15XX,1,Macro(dial-remoto,10.11.11.10,${EXTEN})
;exten => _16XX,1,Macro(dial-remoto,10.11.11.20,${EXTEN})
;

6. Verificacin de las llamadas telefnicas a travs de una


troncal IAX.
Ingresando al CLI del Asterisk, podemos verificar el establecimiento de una comunicacin IAX. En el
siguiente resultado se observa que el servidor 1500 est estableciendo una comunicacin IAX con el
servidor Asterisk con la IP 10.11.11.20 y se est utilizando el codec ulaw.

CLI> iax2 show channels


Channel Peer Username ID (Lo/Rem) Seq (Tx/Rx) Lag Jitter
JitBuf Format FirstMsg LastMsg
IAX2/10.11.11.20:456 10.11.11.20 iaxusuario 05754/03082 00068/00069 00040ms -0001ms
0000ms ulaw Tx:NEW Rx:ACK
1 active IAX channel
CLI>

7. Flujo de audio y sealizacin en Asterisk.


Abajo se muestra un esquema que muestra cmo se comportan los flujos de audio y de sealizacin.
El flujo se sealizacin SIP pasar siempre por el servidor Asterisk si se usa la opcin canreinvite=no en
sip.conf; con esta opcin el flujo de audio entre los dispositivos SIP pasar a travs del Asterisk; por
defecto el audio pasa slo entre los dispositivos SIP. En IAX el flujo de sealizacin y el de audio
pasarn por el mismo flujo, esto es til si se desea travesar NAT sin muchos problemas comparados
con las troncales SIP.

IAX/Audio
SIP SIP

Audio Asterisk Audio


Asterisk
Telfono Telfono

Audio Audio

SIP SIP
Telfono Telfono

Imagen 4: Flujo de audio y de sealizacin en una comunicacin telefnica Asterisk.

River 11
Redes de Computadoras INF238 2017-1

8. Uso del jnettop


Se puede utilizar la aplicacin jnettop en Ubuntu para poder observar la cantidad de kbps que
consumen las aplicaciones de red; en este caso se utilizar para observar el consumo de una
comunicacin telefnica.

Para instalar:
# apt-get install jnettop

Para utilizar la aplicacin en un determinado interfaces (eth0) que usa el servidor para conectarse con
la red.
# jnettop -i eth0

En la siguiente imagen se muestra un ejemplo del resultado del jnettop en un instante. Podemos
detener la visualizacin presionado el punto (.) y regresamos a seguir observando presionando de
nuevo el punto.

En la primeria lnea se observa que hay comunicacin entre la 10.11.11.10 y 10.11.11.11; podemos
suponer que es audio porque se est usando UDP y usa puertos RTP que est en el rango configurado
por defecto en el Asterisk; lo mismo en la segunda lnea. En las ltimas dos lneas se observa
comunicacin en el puerto 5060, esto correspondera por defecto a la sealizacin SIP.
En la primera lnea se observa que existe un consume de 10.4KBps (10.4*8=83.2Kbps). Como el Asterisk
y en los dispositivos SIP se ha configurado para utilizar el cdec G711, entonces este consumo
corresponde al flujo de voz con este codec. En la ltima lnea se observa un consume de 0Bps
(0*8=1.24Kbs), que corresponde netamente a la sealizacin SIP; realmente no es cero, si se sigue
observado el consumo de la sealizacin SIP puede llegar a unos 155Bps (155*8=1.24Kbs).

Imagen 5: Visualizacin de los Kbps que consume la comunicacin telefnica SIP utilizando jnettop.

River 12
Redes de Computadoras INF238 2017-1

9. Configuracin del Zoiper:


Se utilizar el Sofphone Zopier de la versin Free para Windows o Linux (http://www.zoiper.com/).

Imagen 6: Vista inicial del Zopier

Una vez instalado se crear una nueva cuenta SIP. Ingresar a Settings y despus a Create a New
Account. Seleccionar SIP y despus completar0 el Usuario SIP, la contrasea del usuario, y la direccin
IP o nombre del Servidor Asterisk.

Imagen 7: Creacin de una SIP en el Zoiper

En siguiente ventana hacemos un check en Skip auto-detection para completar la configuracin


despus.

Ahora ingresar a Settings y despus a Preferences. Y sobre la cuenta creada seleccionar la


pestaa de Codec. Se recomienda usar un cdec a la vez; es decir en Selected codecs dejar slo
un cdec, y este ser utilizado en la comunicacin telefnica.

River 13
Redes de Computadoras INF238 2017-1

Imagen 8: Seleccin de una cdec de audio en el Zoiper

Regresamos a la pestaa General para poder registrar; y si esta ya est registrado podemos hacer
Unregister y despus Register.

River 14
Redes de Computadoras INF238 2017-1

Imagen 9: Seleccin del cdec u-law en la cuenta SIP 1520, en el Zoiper.

Si se tiene un dispositivo externos de audio, como un HeadPhone no se olvide de comprobar que el


audio y el micro estn funcionando correctamente; para esto se puede ingresar a Settings y
seleccionar Audio Wizard y seguir las indicaciones para elegir correctamente la entrada y salida del
audio y del micro.

Imagen 10: Prueba del audio para el uso en el Zoiper.

River 15

Você também pode gostar