Vous êtes sur la page 1sur 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

1- Qu es Asterisk? Asterisk es un software PBX que usa el concepto de software libre. Digium, empresa que promueve el Asterisk, invierte tanto en el desenvolvimiento del cdigo fuente como en el hardware de telefona de bajo costo que funciona con Asterisk. El Asterisk corre en plataforma Linux y en otras plataformas Unix con o sin hardware, conectando a la red pblica de telefona (siglas en ingls, PSTN). El Asterisk permite conectividad en tiempo real entre las redes PSTN y redes Voip. Asterisk es mucho ms que un PBX central. Con Asterisk en su red, se puede crear cosas nuevas en telefona como: - Conectar empleados trabajando desde casa para una PBX de la oficina sobre conexiones de banda ancha. - Conectar oficinas en varias provincias sobre IP. Esto puede ser hecho por Internet o por una red IP privada. - Dar a los funcionarios, buzn de voz, integrndolo con una web y sus e-mail. - Construir aplicaciones de respuesta automtica por voz, que puede conectarlo a un sistema de pedidos, por ejemplo, o a otras aplicaciones internas. - Dar acceso a ls PBX de la compaa para usuarios que viajan, conectndose sobre la VPN de un aeropuerto o un hotel. - Y mucho ms... Asterisk incluye muchos recursos que solo eran encontrados en sistemas de mensajera unificada sistema encima de la lnea como: - Msica en espera para clientes en filas de espera, soportando streaming de media as como msica en MP3. - Filas de llamada donde agentes de forma conjunta atienden las llamadas y monitorean dicha fila. - Integracin para sintetizacin de la conversacin (text-tospeech). - Registro detallado de llamadas (call-detail-records) para la integracin con sistemas de tarificacin. - Integracin con reconocimiento de voz (tal como el software de cdigo abierto para reconocimiento de voz). - La habilidad de interfaces con lneas telefnicas normales e ISDN en acceso bsico (2B+D) y primario (30B+D). La figura que a continuacin se muestra refleja la arquitectura bsica de Asterisk:

Un canal es el equivalente a una lnea telefnica o a un troncal en la forma de un circuito de voz digital. 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 ruidos y 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).

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.

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=5060 bindaddr=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

secret=1010 host=dynamic careinvite=yes context=local-users

[name]: es la parte nombre de usuario de la SIP URI. Es el contexto del usuario creado 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

[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 no siempre 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 telfono IP 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:

Se configuran las cuentas de usuarios. En esta nos referimos a:

En donde se presentar la siguiente ventana, con las casillas en blanco:

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:

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.

Vous aimerez peut-être aussi