Está en la página 1de 74

Introduccin a VoIP y Asterisk

Sal Ibarra Corretg

Antes de empezar

Conocimientos previos recomendados:


Manejo bsico de la consola de GNU/Linux. Inters Ganas de aprender Lo has utilizado?

Qu sabes de Asterisk?

Sal Ibarra Corretg - http://www.saghul.net

Introduccin a VoIP

Sal Ibarra Corretg - http://www.saghul.net

VoIP en general
VoIP: Caractersticas Principales

Se utiliza una nica red. Si dos empresas estn unidas a travs de Internet, Porqu no aprovecharlo ? Se administra una nica red. Estndares abiertos e internacionales. Inter-operabilidad, Bajada de precios en proveedores y fabricantes de hardware VoIP. Calidad: Es posible conseguir la misma calidad, de hecho hoy por hoy, el 40% de las llamadas de las grandes operadoras se encaminan por VoIP. Fiabilidad: En LAN, se puede lograr una gran fiabilidad. En Internet tambin, pero existen quizs demasiados factores. (QoS, NAT) Coste: Instalacin sobre red existente, precios de llamadas.

Sal Ibarra Corretg - http://www.saghul.net

VoIP en general (2)


VoIP: Problemas

NAT: El cncer de la VoIP. Distintos tipos, no es fcilmente manejable. QoS: Necesidad de ofrecer calidad de servicio, al ser la voz crtica en tiempo real. Latencia: Tiempo que tarda la voz en llegar al destino. Jitter: Variacin de la latencia. Ancho de banda: En Espaa conexiones asimtricas. El ancho de banda es muy caro.

Sal Ibarra Corretg - http://www.saghul.net

Terminologa Bsica

Sal Ibarra Corretg - http://www.saghul.net

Telefona

PSTN: Public Switched Telephony Network. FXS: Foreign eXchange Station.


Lo que hay en nuestra pared. Alimenta dispositivos. Utiliza sealizacin FXO. El conector de nuestro telfono donde entra la lnea. Recibe alimentacin. Utiliza sealizacin FXS.

FXO: Foreign eXchange Office.

Sal Ibarra Corretg - http://www.saghul.net

Redes y protocolos

LAN, WAN, ... Protocolos:

Capa de Transporte: TCP UDP Capa de Aplicacin:

SIP: Session Initiation Protocol IAX2: Inter Asterisk eXchange

Sal Ibarra Corretg - http://www.saghul.net

El protocolo SIP

Sal Ibarra Corretg - http://www.saghul.net

El protocolo SIP

Protocolo de Inicio de Sesin (Session Initiation Protocol) Un protocolo de sealizacin. Legible por el ser humano, similar a HTTP. Es principalmente un protocolo de sealizacin de capa de aplicacin para iniciacin, modificacin y terminacin de sesiones de comunicacin multimedia entre usuarios. Principales elementos implicados:

User Agent (Usuario) Registrar y SIP Proxy

El sector de la VoIP tiende globalmente hacia SIP.

Sal Ibarra Corretg - http://www.saghul.net

El protocolo SIP (2)

Capacidades de SIP:

Localizacin del usuario. Disponibilidad del usuario: determinacin de la voluntad del receptor de la llamada de participar en las comunicaciones. Capacidad del usuario: Determinacin del medio y de sus parmetros. Gestin de la sesin: transferencia, terminacin de sesiones, modificacin de los parmetros de la sesin desde el propio 'User Agent'.

En SIP, el usuario es el 'dueo' de su sesin. Contrasta con el concepto de centralita.

Sal Ibarra Corretg - http://www.saghul.net

El protocolo SIP (3)

El protocolo SIP es de forma nativa peer to peer: 2 User Agents pueden establecer una sesin entre s:

Dos Canales:

Sealizacin(UDP 5060): Establecimiento, Negociacin,Fin...) Streaming RTP (UDP 10000-20000 normalmente) y control RTCP.

Sal Ibarra Corretg - http://www.saghul.net

El protocolo IAX2

Sal Ibarra Corretg - http://www.saghul.net

IAX2

Inter Asterisk eXchange v2. Protocolo exclusivo para enlaces entre Asterisk, aunque hay algunos hardphones IAX2 (Atcom). Los streams de audio y la sealizacin viajan por el mismo puerto: 4569 UDP. Protocolo binario, NO basado en texto. No tiene problemas con NAT!!
Internet
Datos + Sealizacin

Sal Ibarra Corretg - http://www.saghul.net

IAX2 (2)

IAX2 trunking:

Es posible enviar varias conversaciones por el mismo flujo, lo cual supone un importante ahorro de ancho de banda (overhead de la capas IP y transporte UDP). AES 128 ?? MD5 Texto en claro (plaintext) RSA

Encriptacin:

Autenticacin

Necesita una fuente de tiempo: Zaptel (ztdummy)

Sal Ibarra Corretg - http://www.saghul.net

y Skype?

Sal Ibarra Corretg - http://www.saghul.net

Skype

Ventajas:

Multiplataforma. Codec. Uso generalizado. P2P. SkypeOut.

Desventajas:

Espiando al usuario. Protocolo oscuro y cerrado. 0 de interoperabilidad. Imposibilidad de utilizar proveedores alternativos. Robo de ancho de banda. P2P ???

Sal Ibarra Corretg - http://www.saghul.net

Alternativas a Skype

Gizmo Project (http://www.gizmoproject.com/)


Multiplataforma. Interconexin con Astersk. Protocolo SIP.

Open Wengo (http://www.openwengo.org/)


#include gizmo.h Posibilidad de usarlo solo como softphone.

Sal Ibarra Corretg - http://www.saghul.net

Alternativas a Skype (2)

Servidor Asterisk!!

Extensiones SIP o IAX2. Varios proveedores IP. Conexin con la PSTN.

Sal Ibarra Corretg - http://www.saghul.net

Introduccin a Asterisk

Sal Ibarra Corretg - http://www.saghul.net

Qu es Asterisk?

Software

Cumple todas las funcionalidades de una centralita tradicional y ms. Open Source. Asterisk is an OpenSource Multiprotocol Modular PBX Para uso domstico. Uso empresarial (ABE) Operadores de telefona IP. etc...

Distintos tipos de uso


Sal Ibarra Corretg - http://www.saghul.net

Funcionalidades de Asterisk

Caractersticas tpicas de centralita:


Transferencias Msica en espera ...

Multiprotocolo y OpenSource!! Extensiones, DIDs para usuarios. Buzones de voz, desvos de llamada, follow-me, ... Colas y agentes. Mens IVR. Protocolos: SIP, IAX2, H.323, MGCP, ... PSTN: T1/E1, ISDN BRI, FXO/FXS. Soporte de vdeo (Asterisk 1.6: the video release).

Sal Ibarra Corretg - http://www.saghul.net

Arquitectura de Asterisk

Sal Ibarra Corretg - http://www.saghul.net

Arquitectura de Asterisk

Asterisk es muy modular. Nos permite ajustarlo a nuestras necesidades (escalabilidad).

Asterisk en dispositivos empotrados.

Sal Ibarra Corretg - http://www.saghul.net

Arquitectura de Asterisk (2)


Canal SIP Canal IAX2 Canal ZAP

Canales

CSV MySQL
CDR PBX Core

Dial Voicemail
Aplicaciones y funciones

AGI config
Recursos Formatos

.gsm .wav
Codecs

G.729 G.711

Sal Ibarra Corretg - http://www.saghul.net

Codecs de audio

Sirven para digitalizar la voz humana. Cuando dos dispositivos van a establecer una comunicacin, acuerdan el codec a utilizar. Factores importantes a la hora de seleccionar un codec:

Calidad de audio. Coste computacional. Gasto de ancho de banda.

Comparacin de ancho de banda utilizado por los codecs. Fuente: Cisco

Sal Ibarra Corretg - http://www.saghul.net

Codecs de audio (2)


Codec & Bit Rate (Kbps) G.711 (64 Kbps) G.729 (8 Kbps) G.723.1 (6.3 Kbps) G.723.1 (5.3 Kbps) G.726 (32 Kbps) G.726 (24 Kbps) G.728 (16 Kbps)
Sal Ibarra Corretg - http://www.saghul.net

Bandwidth Ethernet (Kbps) 87.2 Kbps 31.2 Kbps 21.9 Kbps 20.8 Kbps 55.2 Kbps 47.2 Kbps 31.5 Kbps

Codecs de audio (3)

Los proveedores VoIP suelen trabajar en g729, que consume muy poco ancho de banda y no sera viable utilizar g711 por ejemplo. PERO g729 no es libre :( Cada licencia de g729 para un canal = 10$ Hay una implementacin que puede utilizarse con fines no lucrativos/educacionales http://asterisk.hosting.lv/ Para comprobar los costes del transcoding: *CLI>core show translation

Sal Ibarra Corretg - http://www.saghul.net

Llamadas en Asterisk

Dispositivo que origina la llamada: SIP, ZAP, IAX2, ...

Asterisk recoge la llamada y la pocesa su lgica de enrutado (dialplan). Despus se encamina al destino.

Receptor de la llamada.

En una llamada hay 2 canales: el que origina la llamada y el que la recibe.


Sal Ibarra Corretg - http://www.saghul.net

AstChannels: La mgia

Si asterisk es multiprotocolo, como se realiza una llamada entre 2 dispositivos de distinta tecnologa? Hay 4 canales!! 2 dependientes de la tecnologa utilizada y 2 AstChannels. Asterisk crea los AstChannels para poder llevar a cabo el bridging.

Transferencias. Parking.

Sal Ibarra Corretg - http://www.saghul.net

Bridging

Canal dependiente de la tecnologa. SIP, ZAP, IAX2,...

Canales independientes de la tecnologa. Asterisk los genera y lleva a cabo el mecanismo de bridging.

Canal dependiente de la tecnologa. SIP, ZAP, IAX2,...

Sal Ibarra Corretg - http://www.saghul.net

Canales VoIP en Asterisk

Antes de profundizar en el protocolo SIP o IAX2, definiremos unos conceptos comunes que maneja Asterisk. Peers, users y friends:

Asterisk HACE una llamada A UN peer. Asterisk RECIBE una llamada DE un user. Un friend es ambas cosas. Concepto de user en desuso. Se utilizan peers y friends.

Sal Ibarra Corretg - http://www.saghul.net

Canales VoIP en Asterisk (2)

Proceso de registro:

Un dispositivo informa a Asterisk sobre su ubicacin (direccin IP y puerto) Solo es necesario registrarse con Asterisk si Asterisk no sabe donde esta el dispositivo (host=dynamic). El registro expira, y se vuelve a informar de la ubicacin. Necesaria para realizar una llamada. (o no?) Pueden realizarse llamadas sin registrarse pero no sin autenticarse. El registro implica autenticacin, para que Asterisk mande las llamadas a la IP que se le ha dicho.

Autenticacin:

Sal Ibarra Corretg - http://www.saghul.net

Canales VoIP en Asterisk (3)

Puertos y protocolos:

En IAX2 todo viaja por el mismo puerto: 4569 UDP. En SIP, la sealizacin por el puerto 5060 UDP y los streams de audio y video con el protocolo RTP por puertos aleatorios (rtp.conf) UDP.

Sal Ibarra Corretg - http://www.saghul.net

Building The ERASMUS Survival Kit

Sal Ibarra Corretg - http://www.saghul.net

Esquema

Sal Ibarra Corretg - http://www.saghul.net

Instalando Asterisk

Sal Ibarra Corretg - http://www.saghul.net

Antes de instalar...

Factores a tener en cuenta antes de instalar Asterisk:


Nmero de llamadas simultneas. Interrupciones. Transcoding.

Necesitamos que el servidor este completamente dedicado a Asterisk


Nada de X. Ningn servicio que no sea estrictamente necesario.

Sal Ibarra Corretg - http://www.saghul.net

Libreras necesarias

Para poder compilar Asterisk tendremos que instalar lo siguiente como mnimo:

#aptgetinstallbisonlibncurses5dev libnewtdevzlib1gdevlibssldevinitrd toolsprocpslinuxheaders$(unamer) buildessential Algunos mdulos requieren libreras especiales:

El mdulo chan_gtalk necesita la librera iksemel.

Sal Ibarra Corretg - http://www.saghul.net

Compilando Asterisk

Primero descargamos los ficheros necesarios:

#mkdirasterisk #cdasterisk #wgethttp://downloads.digium.com/pub/asterisk/asterisk1.4 current.tar.gz #wgethttp://downloads.digium.com/pub/asterisk/asteriskaddons1.4 current.tar.gz #wgethttp://downloads.digium.com/pub/zaptel/zaptel1.4 current.tar.gz

Compilamos por orden:


Zaptel Asterisk Asterisk-Addons (opcional)

Sal Ibarra Corretg - http://www.saghul.net

Compilando Asterisk (2)


#tarzxvfzaptel1.4current.tar.gz #cdzaptel1.4current #./configure #makemenuselect #make #makeinstall #modprobeztdummy #tarzxvfasterisk1.4current.tar.gz #cdasterisk1.4current #./configure #makemenuselect #make #makeinstall
Sal Ibarra Corretg - http://www.saghul.net

Compilando Asterisk (3)


#tarzxvfasteriskaddons1.4current.tar.gz #cdasteriskaddons1.4current #./configure #makemenuselect #make #makeinstall

Paso opcional, instala otras aplicaciones:


Formato MP3. CDR en MySQL. ...

Sal Ibarra Corretg - http://www.saghul.net

Estructura de directorios

/etc/asterisk: Contiene los ficheros de configuracin. Si al compilar ejecutamos make samples, tendremos ejemplos en este directorio. /usr/lib/asterisk/modules: Contiene los mdulos de Asterisk que hemos compilado. /var/lib/asterisk: Contiene diferentes libreras de Asterisk. /var/lib/asterisk/agi-bin: Directorio para contener los AGI. /var/spool/asterisk: Directorio para archivos que genera Asterisk (voicemail, etc.) /var/log/asterisk: Aqu se guardan los log de Asterisk.

Sal Ibarra Corretg - http://www.saghul.net

Ejecutando Asterisk

Hay que ser root. Modificadores de arranque:

-c: Modo consola. Asterisk se inicia en primer plano. -v: Verbose. Cuantas ms uves se aadan ms mensajes descriptivos veremos en la consola. -d: Debug. Cuantas ms des, ms mensajes de debug. -r: Remote console. Si hemos ejecutado Asterisk en segundo plano, nos permite conectarnos al CLI.

Sal Ibarra Corretg - http://www.saghul.net

Ejecutando Asterisk (2)

Para lanzar Asterisk en segundo plano: #asterisk Para lanzar Asterisk en primer plano: #asterisk -vvvvvvvvvvc Para conectarnos a la consola si Asterisk esta en segundo plano: #asterisk -vvvvvvvvvvr

Sal Ibarra Corretg - http://www.saghul.net

Ficheros de configuracin

Sal Ibarra Corretg - http://www.saghul.net

Configuracin del Linksys SPA3102

Sal Ibarra Corretg - http://www.saghul.net

SPA 3102

Conectarlo a la red (boca WAN) para que coja IP por DHCP. Consultar la IP usando el IVR: **** > 110# Activar el servidor web en la boca WAN: **** > 7932# >1# > 1 Acceder con el navegador.

Sal Ibarra Corretg - http://www.saghul.net

SPA 3102

Deshabilitar el router:

Entrar como Admin > Advanced. Pestaa Router > LAN Setup Networking Service: Bridge Mode

Sal Ibarra Corretg - http://www.saghul.net

SPA 3102

Configurar la FXO:

Pestaa Voice > PSTN Line. En la seccin Proxy and Registration, en el campo Proxy ponemos la direccin IP de nuestro Asterisk. En la seccin Subscriber Information, en el campo User ID ponemos el nombre de la cuenta SIP que hemos creado en Asterisk y en el campo Password la contrasea. En la seccin de Dialplans ponemos lo siguiente en el DialPlan 2: (S0<:s>)

Sal Ibarra Corretg - http://www.saghul.net

SPA 3102

Configurar la FXO:

En la seccin PSTN-To-VoIP-Gateway Setup ponemos:


PSTN-To-VoIP Gateway Enable: Yes PSTN Caller Auth Method: None PSTN Ring Thru Line 1: no PSTN CID For VoIP CID: yes PSTN Caller Default DP: 2

En la seccin FXO timer values, ponemos PSTN Answer Delay: 2, o el nmero que queramos, esto es el tiempo que se esperar antes de descolgar.

Sal Ibarra Corretg - http://www.saghul.net

SPA 3102

Configurar la FXS:

Pestaa Voice > Line 1. En la seccin Proxy and Registration, en el campo Proxy ponemos la direccin IP de nuestro Asterisk. En la seccin Subscriber Information, en el campo User ID ponemos el nombre de la cuenta SIP que hemos creado en Asterisk y en el campo Password la contrasea.

Sal Ibarra Corretg - http://www.saghul.net

Demo

Sal Ibarra Corretg - http://www.saghul.net

Anexo A: Softphones

Sal Ibarra Corretg - http://www.saghul.net

X-Lite

Protocolo SIP Soporte STUN g711a/u, gsm, ilbc, speex Windows, GNU/Linux, MacOSX

Sal Ibarra Corretg - http://www.saghul.net

Zoiper (antes Idefisk)

Protocolo SIP e IAX2 Soporte STUN g711a/u, gsm, ilbc, speex, g729 (version BIZ) Windows, GNU/Linux, MacOSX

Sal Ibarra Corretg - http://www.saghul.net

Cubix

Protocolo SIP e IAX2 Soporte STUN g711a/u, gsm, ilbc, speex, g729 Windows

Sal Ibarra Corretg - http://www.saghul.net

DIAX

Protocolo IAX2 g711a/u, gsm, ilbc, speex Windows

Sal Ibarra Corretg - http://www.saghul.net

KIAX

Protocolo IAX2 g711u, gsm, speex Windows, Linux, *BSD

Sal Ibarra Corretg - http://www.saghul.net

Twinkle

Protocolo SIP g711a/u, gsm, speex, g726 GNU/Linux (Qt)

Sal Ibarra Corretg - http://www.saghul.net

Ekiga

Protocolo SIP e IAX2. g711a/u, gsm, speex, g726. GNU/Linux.

Sal Ibarra Corretg - http://www.saghul.net

Anexo B: Links de inters

Sal Ibarra Corretg - http://www.saghul.net

Links
http://www.asterisk.org/(webodicialdeAsterisk) http://www.saghul.net/blog/documentos/(materialdelacharlaycursode20h) http://www.voipinfo.org/(todosobreVoIP) http://planet.vozip.com/(planetsobreVoIP) http://www.asteriskguru.com/(tutoriales,etc...) http://www.asterisk.org/doxygen/(documentacindedevelopers) http://www.asteriskes.org/(wikideusuarioshispanihablantes) http://groups.google.com/group/asteriskes/(listadecorreoAsteriskES) http://www.vozip.com(tiendadeVoIP)

Sal Ibarra Corretg - http://www.saghul.net

Anexo C: Castellanizar Asterisk

Sal Ibarra Corretg - http://www.saghul.net

Castellanizar Asterisk

Incluir la lnea language=es en los ficheros de configuracin. (sip.conf, iax.conf, extensions.conf, voicemail.conf, ...) Editar el fichero indications.conf, poniendo country=es. Ficheros de sonido en castellano:

http://www.voipnovatos.es/voces/ Descargamos en formato gsm, alaw, g729, ... Editar arbol de directorios (todo cuelga de es) Copiar a /var/lib/asterisk/sounds/es/

Sal Ibarra Corretg - http://www.saghul.net

Licencia

Sal Ibarra Corretg - http://www.saghul.net

Licencia

http://creativecommons.org/licenses/bync/2.5/es/

Sal Ibarra Corretg - http://www.saghul.net

GRACIAS A TODOS!!

Sal Ibarra Corretg - http://www.saghul.net

También podría gustarte