7/31/2019 Laboratorio 2v0
1/12
Laboratorio #2 Comunicacin de VoIP SIP a travs de Asterisk
Contenido:
1- Introduccin de Asterisk como una soft-PBX.
2- Instalacin de Asterisk a travs de un repositorio.
3- Configuracin bsica de Asterisk para lograr comunicaciones empleando a SIP como
protocolo de sealizacin.
4- Capturar paquetes SIP y RTP, para su anlisis posteriormente.
Objetivos:
1- Conocer a Asterisk como ejemplo de soft-PBX.
2- Dominar la configuracin bsica para lograr comunicaciones SIP.
3- Comprobar los conocimientos adquiridos en conferencias acerca del intercambio de
mensajes SIP para establecer sesiones de comunicacin.
Desarrollo:
En el presente laboratorio se trabajar con una mquina virtual (MV) (Ubuntu 10.04 server) que ya
posee instalado Asterisk, configurado el fichero /etc/resolv.conf para el trabajo en la red con el
servidor DNS de la Cujae y el repositorio (/etc/apt/sources.list) con el propsito de ganar
tiempo.
A la misma se le debe configurar la red (por la va empleada la red debe ser configurada cada vez
que se inicie la MV):
- La IP y mscara:
ifconfig eth0 192.168.0.12 netmask 255.255.255.0 up
La ruta por omisin:
route add default gw 192.168.0.1
7/31/2019 Laboratorio 2v0
2/12
7/31/2019 Laboratorio 2v0
3/12
Un canal es el equivalente a una lnea telefnica o a un troncal en la forma de un circuito de vozdigital. Este generalmente consiste de una seal analgica en un sistema POTS o alguna
combinacin de CODEC y protocolos de sealizacin (GSM con SIP, Ulaw con IAX). En un
principio las conexiones de telefona eran siempre analgicas y por eso, ms susceptibles a ruidosy ecos. Ms recientemente, buena parte de la telefona pas para el sistema digital, donde la seal
analgica es codificada en forma digital usando normalmente PCM. Existen canales para la PSTN
y la ISDN, para VoIP (SIP, H.323, IAX) e internos para la gestin de la PBX.
Asterisk soporta los siguientes CODECs: G.711 ulaw (usado en EUA) (64 Kbps).
G.711 alaw (usado en Europa y Brasil) (64 Kbps).
G.723.1 Modo Pass-through G.726 - 32kbps en Asterisk1.0.3, 16/24/32/40kbps
G.729 Precisa adquisicin de licencia, a menos que est siendo usado en modo passthru.
(8Kbps) GSM (12-13 Kbps)
iLBC (15 Kbps)
LPC10 - (2.5 Kbps)
Speex - (2.15-44.2 Kbps)Asterisk soporta:
SIP
H323
IAXv1 y v2 MGCP
SCCP (Cisco Skinny).
2- Instalacin del Asterisk:
Se actualiza y se upgradea con los comandos: apt-get update y apt-get upgrade (en caso de
requerir los permisos necesarios comenzar con sudo).
7/31/2019 Laboratorio 2v0
4/12
En este punto ya se puede comenzar a instalar:
sudo apt-get install asterisk
La instalacin debe haber sido exitosa. La PC en donde haya sido instalado debe ser reiniciada.
En la MV dada Asterisk se encuentra configurado para que cada vez que la MV se iniciada
automticamente el Asterisk se inicie.
Para comprobar que el Asterisk est corriendo ejecutamos:
ps A | grep Asterisk
Cuya respuesta de estar activo Asterisk debe ser algo parecido a:
2865 ? 00:00:00:00 asterisk
En donde 2865 es el identificador del proceso asignado a Asterisk.
Asterisk posee su programa binario que se ejecuta cada vez que se inicia el servidor Asterisk y que
se realice una conexin al mismo para su gestin. Este programa posee 2 modos: modo
operationserver y modo client. El servidor es la instancia del Asterisk que se mantiene
corriendo todo el tiempo, manejando las llamadas, almacenando los mensajes de voz, etc. La
instacia cliente permite monitorear y manipular al servidor mientras corre.
Para iniciar el modo servidor se ejecuta:
sudo asterisk &
o
sudo asterisk -cvvv
Una vez iniciado el servidor, se puede conectar el modo cliente:
sudo asterisk -rvvv
A partir de este momento se estar trabajando en la interfaz CLI del Asterisk. Se puede trabajar
desde esta interfaz o desde la CLI del SO empleado en la MV. En este laboratorio emplearemos la
interfaz CLI del Asterisk, ya que es el aconsejado por la bibliografa.
3- Establecimiento de una sesin de comunicacin a travs de Asterisk, empleando como
protocolo de sealizacin a SIP:
En este ejercicio como el enunciado indica emplearemos canales SIP. Los canales SIP se
configuran en el archivo sip.conf (/etc/asterisk/sip.conf), en donde en realidad lo que se hace es
crear y configurar los usuarios que trabajarn con este protocolo de sealizacin.
7/31/2019 Laboratorio 2v0
5/12
- El fichero sip.conf por defecto del Asterisk contiene mucha informacin de ayuda, por
lo que este fichero es muy largo y hace engorroso el trabajo, por lo que moveremos
este fichero original a uno llamado sip.conf.old:
Se colocan en /etc/asterisk/ (cd /etc/asterisk/) y ejecutamos:
mv sip.conf sip.conf.old
- sip.conf es ledo por el programa binario de arriba hacia abajo, por lo que los
parmetros globales que son aplicados a todos los usuarios son definidos en el contexto
[general], mientras que para personalizar a cada usuario se le crea su contexto y se le
configura sus parmetros (que sobre escriben a los globales). A continuacin se
muestra un ejemplo (bsico):
[general]
context=default
port=5060bindaddr=0.0.0.0
allow=all
Estos parmetros indican:
context: configura el contexto en el plan de marcacin en que de manera general todos
los clientes sern colocados, a menos que sea sobrescrito en la definicin del usuario.
En el fichero en donde se define el plan de marcacin (extensions.conf) existe el
contexto por defecto default, en el cual, a menos que se configure manualmente otro
contexto, sern ubicadas todas las extensiones de los usuarios.
port: puerto en el cual Asterisk debe esperar por conexiones de entrada SIP. El ms
general o usado es el puerto 5060.
bindaddr: direccin IP en donde Asterisk ir a esperar por las conexiones SIP. El
comportamiento general es esperar en todas las interfaces y direcciones secundarias
(0.0.0.0).
allow: permite que un determinado codec sea usado (all indica que todos los codecs
pueden ser empleados).
- Despus de configurar el contexto general, siguen las definiciones de los usuarios o
entidades SIP. Es bueno recordar que en esta seccin vamos apenas a dar una
introduccin al archivo sip.conf. A continuacin se muestra un ejemplo bsico:
[255]
type=friend
username=255
7/31/2019 Laboratorio 2v0
6/12
secret=1010
host=dynamic
careinvite=yes
context=local-users
[name]: es la parte nombre de usuario de la SIP URI. Es el contexto del usuariocreado conteniendo su configuracin.
type: configura la clase de la conexin, las opciones son peer (el usuario solo podr
recibir llamadas), user (el usuario solo podr realizar llamadas) y friend (el usuario
podr recibir y realizar llamadas).
username: indica el nombre del usuario. Generalmente este campo es igual a lo
configurado en [name], e igual a lo configurado en el nmero de la extensin que se le
asignar.
secret: contrasea empleada para autentificar al usuario.
host: configura la direccin IP o el nombre del host. Se puede usar tambin la opcin
dynamic donde se espera que el telfono se registre, es la opcin ms comn.
careinvite: indica si la informacin de media pasar a travs del servidor Asterisk (=no)
o no (=yes).
context: sobre escribe el contexto definido en la sesin [general].
Una vez configurado el fichero sip.conf se configura el plan de marcacin en extensions.conf:
- Al igual que se hizo con sip.conf, crearemos un nuevo extensions.conf. Se colocan
en /etc/asterisk/ (cd /etc/asterisk/) y ejecutamos:
mv extensions.conf extensions.conf.old
- Este fichero se divide en tres sesiones:
[general]: permite modificar determinadas variables como static y writeprotect,pero para el presente laboratorio, estas variables no son de importancia.
[globals]: permite definir variables globales.
[default]: es el plan de marcacin que brinda Asterisk por defecto. El administrador
puede definir nuevos contextos.- A continuacin se muestra el presente ejemplo:
[general]
autofallthrough=yes
clearglobalvars=yes
[globals]
CONSOLE=Console/dsp
7/31/2019 Laboratorio 2v0
7/12
[default]
[local-users]
exten => 307,1,Dial(SIP/307,20)
exten => 307,2,Hangup
exten => 310,1,Dial(SIP/310,20)exten => 310,2,Hangup
La sintaxis para definir una extensin es el siguiente:
El comando exten=> es seguido por un nmero de extensin, la prioridad y la
aplicacin.
Las prioridades son pasos numerados de ejecucin de cada extensin. Cada prioridad
llama a una aplicacin especfica. Normalmente estos nmeros de prioridad comienzan
con 1 y aumentan de uno en uno en cada extensin. Los nmeros de prioridad nosiempre son consecutivos. Las prioridades son corridas en orden numrica.
Las aplicaciones son parte fundamental de Asterisk, ellas tratan al canal de voz,
tocando sonidos, aceptando dgitos o cortando una llamada. Las aplicaciones son
llamadas con opciones que afectan a su forma de funcionamiento. Usted puede usar
core show applications en la interfaz de lnea de comando de Asterisk.
El presente fichero define un nuevo contexto local-users, y en este 2 extensiones: 307
y 310 (correspondiente al usuario creado en el ejemplo del paso anterior):
exten => 310,1,Dial(SIP/310,20); en este ejemplo, discando 310 sonar el telfonoIP registrado como 310, el cual de no ser atendido en 20 segundos ser desviado para
la prioridad 2.
exten => 310,2,Hangup; colgar la llamada.
Hasta el momento se ha visto que como mnimo se deben configurar los ficheros sip.conf (para
crear los usuarios) y extensions.conf (para crear las extensiones de los usuarios), ahora se deben de
configurar los clientes SIP:
Se emplear como en el Laboratorio #1 el softphone Ekiga, en donde:
7/31/2019 Laboratorio 2v0
8/12
Se configuran las cuentas de usuarios. En esta nos referimos a:
7/31/2019 Laboratorio 2v0
9/12
En donde se presentar la siguiente ventana, con las casillas en blanco:
7/31/2019 Laboratorio 2v0
10/12
name: nombre de la cuenta (arbitraria).
registrar: IP del servidor de registro SIP al que deber registrarse el usuario. Esta accin permite
que el usuario sea localizado para recibir llamadas, independientemente de su ubicacin.
user: el nombre del usuario identifica al usuario de esa cuenta en el Ekiga.
authentication user: es el nombre del usuario definido en el servidor que sirve como PBX, en este
caso el Asterik. De manera general user se hace coincidir con este parmetro.
password: contrasea del usuario definida en la PBX.
time out: indica el intervalo de tiempo cada cuanto el usuario debe registrarse.
Hasta el momento se tiene un usuario SIP, pero no se le ha indicado a qu servidor proxy debe
solicitarle la conexin, para entonces realizar el proceso de establecimiento de la sesin de
comunicacin. En este caso coincide con la PBX Asterisk. Se indica en:
En donde aparecer la ventana:
7/31/2019 Laboratorio 2v0
11/12
En la cual se indica la IP del servidor SIP proxy.
A partir de este momento todo se encuentra listo para establecer llamadas.
Para establecer una sesin de comunicacin se procede a teclear el nombre de la extensin
deseada, que en este caso coincide con el usuario.
Una vez establecida la sesin aparecer que estamos conectados a usuario@IP del Asterisk. Esto se
debe a que los mensajes SIP son:
En donde el intercambio de mensajes SIP son entre UA1-Asterisk y Asterisk-UA2, es decir, no es
directo entre los usuarios agentes. El transporte de media puede pasar o no a travs de Asterisk en
dependencia de lo configurado en careinvite.
4- Capturar con el Wireshark el intercambio de mensajes SIP entre un usuario SIP y el
Asterisk para establecer una sesin de comunicacin, y posteriormente paquetes RTP.
Analizar el contenido del mensaje SIP INVITE.
7/31/2019 Laboratorio 2v0
12/12
Top Related