Está en la página 1de 214

El futuro de la telefona y

la VoIP ha llegado

Sal Ibarra Corretg

e-Verano 2007

Antes de empezar

Conocimientos previos recomendados:

Manejo bsico de la consola de GNU/Linux.

Inters

Ganas de aprender

Qu sabes de Asterisk?

Lo has utilizado?

Que intenciones de uso tienes?

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

e-Verano 2007

Asterisk: Introduccin e Historia

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

e-Verano 2007

Qu es Asterisk?

Software

Cumple todas las funcionalidades de una


centralita tradicional y ms.

Open Source.

Asterisk is an OpenSource Multiprotocol


PBX

Distintos tipos de uso

Para uso domstico.

Uso empresarial (ABE)

Operadores de telefona IP.

etc...

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

e-Verano 2007

Historia

Inicialmente desarrollado por Mark


Spencer (creador de GAIM).
Tena una empresa (Linux Support
Services Inc.) y necesitaba una centralita.
Decidi hacerla l mismo.
Se junt con Jim Nixon, originalmente
soportaba las tarjetas de Zapata
Telephony
Liber el cdigo bajo licencia GPL.

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

e-Verano 2007

Historia (2)

Viendo la evolucin de Asterisk, la


empresa cambi de nombre a Digium.
Actualmente Mark no es el CEO, es el
CTO.
Recientemente adquirieron Sokol &
Associates, empresa creadora del
AstriCon y de la formacin de Asterisk.

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

e-Verano 2007

Versiones de Asterisk

Principalmente hay 2 versiones

La versin Open Source.

Asterisk Business Edition: edicin


comercial.

Se basa en la Open Source, pero se eliminan


todos aquellos elementos susceptibles de
causar problemas.

Fuertemente probada.

Al comprarla incluye soporte durante un ao.

Licencias.

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

e-Verano 2007

Ramas de Asterisk

Actualmente conviven 2 ramas de Asterisk: la


1.2 y la 1.4.
En Agosto de 2007, la rama 1.2 pasar al
estado de mantenimiento de seguridad, y
solo se corregirn bugs relativos a la seguridad.
El curso esta basado en la ltima versin
estable de la rama 1.4
Asterisk 1.6: mucho esfuerzo en cuanto a su
escalabilidad. Se espera que sea la versin que
posicione en la cima Asterisk.

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

e-Verano 2007

Distintos usos de Asterisk

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

e-Verano 2007

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

e-Verano 2007

Asterisk como PBX normal

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

e-Verano 2007

Una PBX VoIP

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

e-Verano 2007

Complemento/ampliacin de
una PBX tradicional

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

e-Verano 2007

Gateway VoIP - PSTN

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

e-Verano 2007

Recursos para Asterisk

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

e-Verano 2007

Para iniciarse

Este curso! :P
http://www.voip-info.org (Todo sobre
Asterisk y VoIP)
Libro: Asterisk: The Future of
Telephony-> libre!!
San Google! :P

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

e-Verano 2007

Asterisk fcil-version

Distribuciones con Asterisk:

AsteriskNow: Basada en rPath Linux, incluye


Asterisk-GUI.

TrixBox (antes Asterisk@Home): Basado en


CentOS, incluye FreePBX (en futuras
versiones Asterisk-GUI).

GUIs para Asterisk:

Asterisk-GUI: Desarrollada por Digium.


Asterisk Appliance.

FreePBX: Desarrollada por terceros.

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

e-Verano 2007

Asterisk fcil-version (2)

Console roolz!!
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

Asterisk-GUI

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

e-Verano 2007

FreePBX

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

e-Verano 2007

Terminologa Bsica

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

e-Verano 2007

Telefona

PSTN: Public Switched Telephony Network.

FXS: Foreign eXchange Station.

Lo que hay en nuestra pared.

Alimenta dispositivos.

Utiliza sealizacin FXO.

FXO: Foreign eXchange Office.

El conector de nuestro telfono donde entra


la lnea.

Recibe alimentacin.

Utiliza sealizacin FXS.

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

e-Verano 2007

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

e-Verano 2007

Arquitectura de Asterisk

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

e-Verano 2007

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

e-Verano 2007

Arquitectura de Asterisk (2)


Canal SIP

Canal IAX2

Canal ZAP

Canales

CSV

Dial

MySQL

Voicemail

CDR

Recursos

PBX Core

Aplicaciones y funciones

AGI

.gsm

G.729

config

.wav

G.711

Formatos

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

Codecs
e-Verano 2007

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

e-Verano 2007

Codecs de audio (2)


Codec & Bit Rate
(Kbps)

Bandwidth
Ethernet (Kbps)

G.711 (64 Kbps)

87.2 Kbps

G.729 (8 Kbps)

31.2 Kbps

G.723.1 (6.3 Kbps)

21.9 Kbps

G.723.1 (5.3 Kbps)

20.8 Kbps

G.726 (32 Kbps)

55.2 Kbps

G.726 (24 Kbps)

47.2 Kbps

G.728 (16 Kbps)

31.5 Kbps

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

e-Verano 2007

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 utiulizarse


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

e-Verano 2007

Codecs de vdeo

Asterisk soporta los siguientes codecs de vdeo


en modo passthrough:

H.261

H.263

H.264

Solo son soportados en modo passthrough, por


lo que no es posible hacer transcoding.
Disponen de su formato asociado, por lo que se
pueden usar para IVRs visuales o video
voicemail.

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

e-Verano 2007

Formatos

Asterisk soporta multitud de formatos: wav,


mp3, gsm, h.264, etc ...
Los necesitamos para reproducir ficheros, p.e.
en un IVR, Playback, Voicemail, ...

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

e-Verano 2007

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

e-Verano 2007

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

e-Verano 2007

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.

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

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

e-Verano 2007

Instalando Asterisk

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

e-Verano 2007

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

e-Verano 2007

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

e-Verano 2007

Compilando Asterisk

Primero descargamos los ficheros necesarios:

#mkdirasterisk
#cdasterisk
#wgetftp://ftp.digium.com/pub/zaptel/zaptel1.4.4.tar.gz
#wgetftp://ftp.digium.com/pub/libpri/libpri1.4.1.tar.gz
#wgetftp://ftp.digium.com/pub/asterisk/asterisk1.4.7.1.tar.gz
#wgetftp://ftp.digium.com/pub/asterisk/asteriskaddons1.4.2.tar.gz

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

e-Verano 2007

Compilando Asterisk (2)

Descomprimimos los ficheros y comenzamos a


compilar:

#tarzxvfzaptel1.4.4.tar.gz

#tarzxvflibpri1.4.1.tar.gz

#cdzaptel1.4.4

#cdlibpri1.4.1.tar.gz

#./configure

#make

#makemenuselect

#makeinstall

#make
#makeinstall

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

e-Verano 2007

Compilando Asterisk (3)


#tarzxvfasterisk1.4.7.1.tar.gz
#cdasterisk1.4.7.1
#./configure
#makemenuselect
#make
#makeinstall

#tarzxvfasteriskaddons1.4.2.tar.gz
#cdasteriskaddons1.4.2.tar.gz
#./configure
#makemenuselect
#make
#makeinstall

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

e-Verano 2007

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

e-Verano 2007

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

e-Verano 2007

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

e-Verano 2007

El CLI

El CLI (Command Line Interpreter) es la


consola de Asterisk.
Nos permite interactuar con Asterisk.
Auto-completa los comandos pulsando
TAB.
Mltiples comandos nos resultan tiles
para ver lo que esta pasando
*CLI>sip show channels
*CLI>core show application Dial

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

e-Verano 2007

Reload/Restart

Ambos sirven para reiniciar Asterisk,


pero...
Reload:

No todos los mdulos se reconfiguran


con reload.

No corta las llamadas en curso.

Restart:

Se cortan las llamadas en curso.

Reconfigura todos los mdulos.

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

e-Verano 2007

Configuracin de Asterisk

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

e-Verano 2007

Ejercicio 1

Este primer ejercicio se configurarn 2 extensiones y un


sencillo dialplan para poder realizar llamadas entre ellos.
Receta:

Crear entradas en el fichero sip.conf

Crear un dialplan sencillo: extensions.conf

Configurar el SoftPhone X-Lite

Configurar el hardphone

Hacer un test de eco, un playback de demo y llamadas


entre ellos.

Hacer un enlace con Digium:


exten =>
1234,1,Dial(IAX2/guest@misery.digium.com/s@default)

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

e-Verano 2007

Ejercicio 1: sip.conf
[general]
bindport=5060
bindaddr=0.0.0.0
context=default
realm=asterisk-saghul
disallow=all
allow=alaw
language=es
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

Ejercicio 1: sip.conf (2)


[softphone]
type=friend
secret=1234
host=dynamic
[hardphone]
type=friend
secret=1234
host=dynamic
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

Ejercicio 1: extensions.conf
[general]
language=es
[globals]
[default]
exten => 1234,1,Answer()
exten => 1234,n,Playback(beep)
exten => 1234,n,Echo()
exten => 12345,1,Answer()
exten => 12345,n,Playback(demo-congrats)
exten => 12345,n,Hangup
exten => 200,1,Dial(SIP/softphone,30)
exten => 201,1,Dial(SIP/hardphone,30)
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

Ejercicio 1: X-Lite

*CLI>

-- Registered SIP '200' at 192.168.1.25 port 5061 expires 1800

-- Saved useragent "X-Lite release 1105d" for peer 200


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

e-Verano 2007

Ejercicio 1: Fin

Probad a hacer llamadas.

Probad el test de eco.

Todo OK?

Y si llamamos a un nmero que no existe?

Eres libre de investigar!

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

e-Verano 2007

Ms Informacin

Los ficheros de ejemplo.

http://www.asterisk.org/doxygen/1.4/

http://www.voip-info.org

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

e-Verano 2007

El Dialplan: El corazn de Asterisk

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

e-Verano 2007

El Dialplan

Como una tabla de enrutado.


Cada nmero que marca una extensin va al dialplan,
y ah decidimos que hacer.
Se organiza por contextos, extensiones y prioridades.

exten => extensin, prioridad, aplicacin

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

e-Verano 2007

El Dialplan (2)

La extensin puede ser cualquier cosa, no solo


valen nmeros:
exten => saul,1,Dial(SIP/saghul)
Se utilizan patrones de marcado para las extensiones
(no vamos a meter todos los nmeros del mundo!)

_: Comienzo del patrn.

X: Cualquier dgito del 0 al 9.

Z: Cualquier dgito del 1 al 9.

N: Cualquier dgito del 2 al 9.

[12-4]: Cualquier dgito entre los corchetes, 1,2,3,4.

.(punto): Cualquier cosa.

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

e-Verano 2007

El Dialplan (3)

En el ejercicio 1 no hemos utilizado patrones:


exten => 200,1,Dial(SIP/softphone)
Ejemplos de patrones:

Llamadas nacionales (empiezan por 8 o 9):


_[89]XXXXXXXX

Llamadas a mviles (empiezan por 6):


_6XXXXXXXX

Llamadas Internacionales:
_00X.

Llamadas a nmeros especiales SIN nmeros de pago (806,


803, 906, 903)
_[89]0[0-2457-9]XXXXXX

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

e-Verano 2007

El Dialplan (4)

Las prioridades sirven para decidir el orden de las acciones al


entrar en el dialplan.
Pueden utilizarse nmeros:
exten => 1234,1,Answer()
exten => 1234,2,Playback(demo-congrats)
O la prioridad n, que va sumando 1 automticamente:
exten => 1234,1,Answer()
exten => 1234,n,Playback(demo-congrats)
Si utilizamos nmeros es fcil saltar:
exten => 123,1,Goto(1234,1)
Si usamos la prioridad n podemos hacer marcas en el dialplan, para
luego poder saltar a ellas:
exten => 1234,n(mi-kosa),...
Y podemos hacer:
exten => 123,1,Goto(1234,mi-kosa)

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

e-Verano 2007

El Dialplan (5)

Las extensiones se agrupan en contextos.


Cada dispositivo SIP, IAX o entrada de ZAP se define para
un contexto.
Un dispositivo solo puede llamar a los nmeros que tiene
definidos en el contexto en el que esta.
En el ejemplo 1, solo podamos marcar los nmeros
definidos en el contexto default.
Un contexto puede incluir a otro:
[micontexto]
include => default
Ahora aunque mi dispositivo este definido en el contexto
micontexto tiene acceso a todo el contexto default.

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

e-Verano 2007

El Dialplan (6)

Hay extensiones especiales, que no son para que nadie


marque:

s: Extensin start. Cuando entramos en un contexto


SIN extensin. Macros, IVRs, entrantes zaptel.

h: Extensin hangup. Se llega a esta extensin al


finalizar la llamada.

i: Extensin invlida. Opciones incorrectas en IVRs.

T: Timeout absoluto en Dial.

t: Timeout en IVRs

fax: Deteccin de fax en canales ZAP.

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

e-Verano 2007

Ejercicio 2

Este ejercicio consiste en mejorar nuestro dialplan, aadiendo


nuevas funciones y creando varios contextos:
Receta:

Crear un contexto internas donde se indica como llamar a


las extensiones internas.

Crear un contexto servicios con los servicios de eco y


demo.

Crear el contexto telf-internos que incluya los 2 contextos


anteriores y hacer que los dispositivos SIP utilicen este
contexto.

Incluir el contexto internas en el contexto default, para


que si permitieramos llamadas entrantes, solo pudieran
llamar a los telfonos, pero no usar los servicios.

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

e-Verano 2007

La aplicacin Dial

La aplicacin Dial permite realizar una llamada a un


dispositivo. Su formato ms sencillo es:
Dial(Tecnologa/dispositivo,tiemout,opciones)
Donde opciones puede ser:

t: Permitir que el usuario llamado transfiera la


llamada.

T: Permitir que el llamante transfiera la llamada.

r: Generar un tono de ring artificial.

w: Permite al usuario llamado grabar la llamada.

W: Permite que el llamante grabe la llamada.

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

e-Verano 2007

La aplicacin Dial (2)

Tras un Dial correcto (se contesta la llamada), se


termina la ejecucin de acciones en el dialplan y se
pasa a la extensin h (si existe):
exten => 1234,1,Dial(SIP/saghul)
exten => 1234,n,NoOp(Algo ha ido mal...)

La variable DIALSTATUS contiene informacin acerca


del ltimo Dial realizado. Puede tomar los siguientes
valores, entre otros: BUSY, NOANSWER,
CHANUNAVAIL, ...
Nos puede servir para hacer distintas cosas
dependiendo del estado de la ltima llamada.

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

e-Verano 2007

La aplicacin Dial (3)


Ms informacin sobre Dial:

core show application dial (en el CLI de Asterisk)

http://www.voip-info.org/wiki-Asterisk+cmd+Dial

http://www.voip-info.org/wiki/view/Asterisk+variable+DIALSTATUS

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

e-Verano 2007

La aplicacin Goto

Permite realizar saltos dentro del dialplan.

Se pueden realizar saltos en base a:

Prioridad o etiqueta.

Extensin y prioridad (o etiqueta).

Contexto, extensin y prioridad (o etiqueta).

Por ejemplo:
exten => 1234,1,Goto(servicios,1234,1)

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

e-Verano 2007

Ejercicio 2 (2)

Pistas:

El Dial carga la variable DIALSTATUS.

El Goto hace saltos.

Necesitamos saltar dependiendo del estado de la


ltima llamada.

Observaciones:

Los nmeros de extensin sern de la forma 2XX

Los servicios sern de la forma 4XX

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

e-Verano 2007

Ejercicio 2 (solucin)
[default]
include => internas

extensions.conf

[servicios]
exten => 400,1,Answer()
exten => 400,n,Playback(beep)
exten => 400,n,Echo()
exten => 401,1,Answer()
exten => 401,n,Playback(demo-congrats)
exten => 401,n,Hangup
[internas]
exten => 200,1,Dial(SIP/softphone,45,Tt)
exten => 200,n,Goto(200-${DIALSTATUS},1)
exten => 200-BUSY,1,Busy(5)
exten => _200-.,1,Congestion(5)
exten => 201,1,Dial(SIP/hardphone,45,Tt)
exten => 201,n,Goto(201-${DIALSTATUS},1)
exten => 201-BUSY,1,Busy(5)
exten => _201-.,1,Congestion(5)
[telf-internos]
include => internas
include => servicios
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

Ejercicio 2 (solucin) (2)


[general]
context=default

sip.conf

[softphone]
type=friend
secret=1234
context=telf-internos
host=dynamic
[hardphone]
type=friend
secret=1234
context=telf-internos
host=dynamic
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

Aplicaciones

Ya hemos visto algunas: Dial, Goto, ...


Se ejecutan directamente desde el
dialplan.
Para una lista completa de las aplicaciones
disponibles:
*CLI>core show applications

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

e-Verano 2007

Variables

Al igual que la variable DIALSTATUS, hay muchas variables en


el entorno de Asterisk:

EXTEN: Contiene el nmero marcado.

CONTEXT: Contiene el contexto actual.

Una lista completa de las variables:


http://www.voip-info.org/wiki-Asterisk+variables
Las variables se pueden recortar:

${variable:desplazamiento:longitud} por ejemplo:

${variable}=saghul -> ${variable:1} => aghul


${variable:0:2}=sa

Se soportan expresiones bsicas, encerrndolas entre


corchetes:
exten => 1234,1,Set(kosa=$[6*5])

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

e-Verano 2007

Funciones

Se utilizan en el dialplan, pero dentro de las aplicaciones,


sirven para trabajar con datos:

LEN: Devuelve la longitud de una cadena


Noop(LEN(kosa))
//devuelve 4

CALLERID: Fija o lee el valor del callerid:


Set(numero=CALLERID(number))

Para obtener una lista completa de funciones podemos


ejecutar:
*CLI>core show functions

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

e-Verano 2007

Transferencias y Call Parking

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

e-Verano 2007

Transferencias

Para configurar las teclas a utilizar en las


transferencias, editar el fichero
/etc/asterisk/features.conf

blindxfer => *1

//transferencia ciega

atxfer => *2

//transferencia atendida

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

e-Verano 2007

Call Parking

Podemos configurar un parking para las llamadas.


Transferimos una llamada (ciegamente) a la extensin de
parking, y escucharemos una alocucin dicindonos donde
est aparcada la llamada.
Mientras la llamada esta aparcada, el usuario escuchar
msica.
Si llamamos (desde cualquier telfono) a la extensin que nos
han anunciado, recuperamos la llamada.
[general]
parkext =>700
parkpos => 701-720
context => parkedcalls
parkingtime => 240

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

e-Verano 2007

Dialpan: Macros e IVRs

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

e-Verano 2007

Macros

Son contextos con un comportamiento distinto.

Admiten parmetros.

Empiezan siempre con la extensin s.

Son como subprogramas, se utilizan para no repetir cdigo en el


dialplan.
Ejemplo de macro que muestra en el CLI el parmetro que se le
pasa:

[macro-prueba]
exten => s,1,Answer()
exten => s,n,Playback(demo-congrats)
exten => s,n,Noop(${ARG1})
exten => s,n,Hangup

Para llamar a la macro:


exten => 1234,1,Macro(prueba,${variable})

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

e-Verano 2007

Ejercicio 3

Implementar la funcionalidad de los saltos


descrita en el ejercicio 2 utilizando una
macro en lugar de repetir el cdigo.
Ya de paso, si esta ocupado le
mandaremos al buzn dando un mensaje
de ocupado y si no responde le
mandaremos al buzn dando un mensaje
de no disponible.
Si hay algn error (ni BUSY ni NOANSWER)
le damos tonos de ocupado.

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

e-Verano 2007

Ejercicio 3 (pistas)

http://www.voip-info.org/tiki-index.php?page=Asterisk+cmd+VoiceMail

Mirar la aplicacin Playtones.

Acordaros del pattern matching.

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

e-Verano 2007

Ejercicio 3 (solucin)
[macro-prueba]
exten => s,1,Dial(${ARG1},30,Tt)
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-BUSY,1,Voicemail(${MACRO_EXTEN}|b)
exten => s-BUSY,n,Hangup
exten => s-NOANSWER,1,Voicemail(${MACRO_EXTEN}|u)
exten => s-NOANSWER,n,Hangup
exten => _s-.,1,Answer()
exten => _s-.,n,Playtones(busy)
exten => _s-.,n,Busy(5)

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

e-Verano 2007

IVRs

Un IVR (Interactive Voice Response) es un men


con el que el usuario puede interactuar mediante
pulsaciones DTMF.
Comienza con la extensin s.
Se comprueba la hora para decidir la siguiente
accin.
Se reproduce un mensaje de bienvenida y se
esperan las pulsaciones del usuario.
Se controlan las extensiones t e i, por si el
usuario no pulsa nada en el tiempo fijado o
realiza una pulsacin incorrecta.

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

e-Verano 2007

IVRs (2)

Para que no se entre en un bucle infinito, se


suelen fijar 2 tipos de retardo: tiempo inter-digito
y el tiempo de respuesta.
Set(TIMEOUT(digit)=3)
Set(TIMEOUT(response)=9)

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

e-Verano 2007

GotoIfTime

Esta aplicacin realiza un salto condicional,


dependiendo de la hora.
Resulta muy til en IVRs, para determinar si n os
encontramos en horario de oficina o no, por
ejemplo.
Sintaxis:
GotoIfTime(hora|dias_semana|dias_mes|ao?si_cierto:si_falso)

Ejemplos:
GotoIfTime(09:00-19:30|mon-fri|*|*?7:8)
GotoIfTime(09:00-19:30|mon-fri|*|*?dentro_horario)

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

e-Verano 2007

Background

Esta aplicacin es muy similar a Playback, pero


puede ser interrumpida si el usuario marca un
dgito.
Muchas veces nos sabemos el IVR de la oficina de
memoria y no queremos escucharlo entero. xD
Sintaxis
Background(nombre-del-fichero)

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

e-Verano 2007

WaitExten

Espera a que el usuario introduzca un nmero


marcndolo en su telfono.
En un IVR tenemos que esperar a que el usuario
introduzca la opcin deseada!
Sintaxis:
WaitExten(10)

//espera 10 segundos.

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

e-Verano 2007

IVRs: Ejercicio

Un IVR es algo que puede ser bastante complejo.

Abarca muchos conceptos.

Antes de realizar un IVR completo, necesitamos


algunos conceptos ms:

Sonidos en Asterisk.

Colas y agentes.

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

e-Verano 2007

Sonidos en Asterisk

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

e-Verano 2007

Localizacin

Para ajustar la localizacin de Asterisk a nuestro


idioma debemos realizar las siguientes
modificaciones:

Fijar country a es en el fichero


indications.conf

Poner language=es en la seccin general


de todos los ficheros (sip.conf, extensions.conf)

Aadir lo siguiente al fichero asterisk.conf:


[options]
languageprefix = yes

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

e-Verano 2007

Sonidos personalizados

Si queremos grabar nuestros propios sonidos,


para utilizarlos en el IVR, por ejemplo, podemos
grabarlos con cualquier aplicacin y convertirlos
al formato utilizado.
Pero Asterisk dispone de la aplicacin Record,
que nos permite grabar un fichero en el formato
que queramos.

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

e-Verano 2007

Record

Permite grabar un fichero de sonido.


Sintaxis:
Record(nombre.formato)
Podemos utilizar %d en el nombre del fichero, as
se utilizar un ndice auto-incremental, para no
sobreescribir grabaciones. El nombre del fichero
queda guardado en la variable
${RECORDED_FILE}
Ejemplo:
Record(sonido-asterisk%d.alaw)

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

e-Verano 2007

Ejercicio 4

Incluir un nuevo servicio para la grabacin de


mensajes personalizados y grabar unos cuantos
mensajes para el IVR.

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

e-Verano 2007

Ejercicio 4 (solucin)
[servicios]
exten => 402,1,Answer()
exten => 402,n,Wait(2)
exten => 402,n,Playback(beep)
exten => 402,n,Record(asterisk-sonido%d.alaw)
exten => 402,n,Wait(2)
exten => 402,n,Playback(beep)
exten => 402,n,Playback(${RECORDED_FILE})
exten => 402,n,Hangup

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

e-Verano 2007

Colas y Agentes

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

e-Verano 2007

Colas

Las colas nos permiten manejar de una manera


cmoda y eficiente las llamadas entrantes.
Las llamadas se distribuyen entre los agentes
disponibles (que hayan iniciado sesin)
Consisten bsicamente en miembros que
contestan las llamadas.

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

e-Verano 2007

Configuracin de colas
[general]
language=es
persistentmembers = yes
autofill = yes
[ventas]
musiconhold = default
strategy = ringall

queues.conf

//si reiniciamos...
//varias conexiones a la vez

//ringall-roundrobin-leastrecent
//fewestcalls-random-rrmemory

timeout = 15
retry = 5
//tiempo para reintentar
wrapuptime = 0
//tiempo para volver a llamarle
maxlen = 0
announce-holdtime = no
periodic-announce = queue-periodic-announce
periodic-announce-frequency=20
member => SIP/201
member => Agent/@1
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

Aplicacin Queue

Muy similar a la aplicacin Dial.


Toma parmetros parecidos, pero en lugar del
dispositivo se especifica el nombre de la cola.
Ejemplo:

exten => 1234,n,Queue(ventas|t|||45|)

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

e-Verano 2007

Agentes

Los agentes son extensiones virtuales.


En realidad son extensiones normales que
automticamente o tras un proceso de
autenticacin se convierten en agentes y pasan a
atender las llamadas de una o varias colas.

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

e-Verano 2007

Configuracin de agentes
[agents]
autologoff= 15
wrapuptime = 0
musiconhold = default

agents.conf

//tiempo para volver a llamarle

group = 1
agent => 3001,1234,Comercial 1
agent => 3002,1234,Comercial 2

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

e-Verano 2007

Login de Agentes

Cualquier extensin puede ser agente.


Basta con que inicie sesin con un nmero de
agente y contrasea vlidos y automticamente
comenzar a recibir llamadas.
En lugar de utilizarse agentes, utilizaremos
miembros dinmicos.
Ejemplo:

exten => 1234,1,AddQueueMember(ventas)

exten => 1235,1,RemoveQueueMember(ventas)

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

e-Verano 2007

Msica en espera

Mientras los usuarios esperan a ser atendidos


escuchan msica.

Se configura con el fichero musiconhold.conf

Es conveniente utilizar formato nativo.

mp3 carga mucho la CPU!!

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

e-Verano 2007

Msica en espera (2)


[default]
mode=files
directory=/var/lib/asterisk/moh-native
random=yes

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

e-Verano 2007

Buzones de Voz

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

e-Verano 2007

Buzones de voz

Muy tiles, son una mejora sustancial frente a las


PBX tradicionales.

Nmero ilimitado de buzones.

Posibilidad de enviar los mensajes por e-mail ...

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

e-Verano 2007

Configuracin de voicemail
[general]
format=wav
maxmsg=100
maxmessage=180
skipms=3000
maxsilence=10
maxlogins=3

voicemail.conf

//mximo nmero de mensajes


//al rebobinar

[default]
200 => 1234,Pepe Perez
201 => 1234,Antonio Monje

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

e-Verano 2007

Aplicaciones

Voicemail:

Sirve para enviar la llamada a un buzn.

Los modificadores u y b permiten modificar la


alocucin que escuchar el usuario.

VoicemailMain:

IVR para la configuracin del buzn de voz.

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

e-Verano 2007

Dialplan Avanzado

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

e-Verano 2007

Dialplan Avanzado

La base de datos interna de Asterisk: AstDB

Macros:

Do Not Disturb.

Call Forward.

IVR:

Un IVR de oficina.

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

e-Verano 2007

AstDB

Asterisk incorpora una BD tipo Berkley DB v2.

En ella el propio Asterisk guarda diversos valores:

Registros SIP, IAX.

Informacin sobre colas.

Nosotros tambin podemos guardar informacin


en ella y consultarla desde el dialplan.
Se organiza en familias, y dentro de una familia
puedes tener diversas claves, y para cada clave
un solo valor.

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

e-Verano 2007

AstDB (2)

Ejemplo desde el CLI:


*CLI>databaseputmifamiliamiclavemivalor
Updateddatabasesuccessfully
*CLI>databaseshowmifamilia
/mifamilia/miclave:mivalor
*CLI>databaseputmifamiliamiclavemivalor2
Updateddatabasesuccessfully
*CLI>databaseshowmifamilia
/mifamilia/miclave:mivalor2

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

e-Verano 2007

AstDB (3)

Desde el dialplan:

Set(var=${DB(familia/clave)})

Set(DB(familia/clave)=${var})

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

e-Verano 2007

Ejercicio 5

Desarrollar una macro que implemente DND (Do Not


Disturb)
Si la extensin a la que llamamos tiene el DND activado
reproducimos un mensaje de extensin no disponible.

Si no lo tiene activado, le llamamos.

Si no contesta o esta ocupado, le mandamos al buzn.

Pistas:

Funcin DB_EXISTS.

Aplicacin GotoIf.

Variable MACRO_EXTEN.

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

e-Verano 2007

Ejercicio 5 (solucin)
[macro-llamar]
exten => s,1,GotoIf($[${DB_EXISTS(DND/${MACRO_EXTEN})} = 0]?s,llamar)
exten => s,n,Playback(vm-extension)
exten => s,n,Playback(vm-isunavail)
exten => s,n,Hangup
exten => s,n(llamar),Dial(${ARG1},45,Tt)
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-BUSY,1,Voicemail(${MACRO_EXTEN}|b)
exten => s-BUSY,n,Hangup
exten => s-NOANSWER,1,Voicemail(${MACRO_EXTEN}|u)
exten => s-NOANSWER,n,Hangup
exten => _s-.,1,Answer()
exten => _s-.,n,Playtones(busy)
exten => _s-.,n,Busy(5)

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

e-Verano 2007

Ejercicio 6

Ampliar la macro anterior para que implemente CF (Call


Forward)
Primero se comprueba el DND, y luego el CF.
El desvo puede realizarse a cualquier nmero que los
telfonos internos puedan marcar (contexto telf-internos)
Pistas:

Funcin DB_EXISTS.

Variable DB_RESULT.

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

e-Verano 2007

Ejercicio 6 (solucin)
[macro-llamar]
exten => s,1,GotoIf($[${DB_EXISTS(DND/${MACRO_EXTEN})} = 0]?s,comp-cf)
exten => s,n,Playback(vm-extension)
exten => s,n,Playback(vm-isunavail)
exten => s,n,Hangup
exten => s,n(comp-cf),GotoIf($[${DB_EXISTS(CF/${MACRO_EXTEN})} = 0]?s,llamar)
exten => s,n,Goto(telf-internos,${DB_RESULT},1)
exten => s,n(llamar),Dial(${ARG1},45,Tt)
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-BUSY,1,Voicemail(${MACRO_EXTEN}|b)
exten => s-BUSY,n,Hangup
exten => s-NOANSWER,1,Voicemail(${MACRO_EXTEN}|u)
exten => s-NOANSWER,n,Hangup
exten => _s-.,1,Answer()
exten => _s-.,n,Playtones(busy)
exten => _s-.,n,Busy(5)

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

e-Verano 2007

Ejercicio 7

Crear un IVR tipo oficina para vuestra centralita.

Caractersticas:

Horarios.

Colas y miembros dinmicos.

Mensaje de bienvenida personalizado.

Buzones de voz.

Control de extensiones i y t.

Directorio de empresa.

Implementar 3 colas: operadora, comercial e i+d.

Pulse 1 para departamento comercial.

Pulse 2 para departamento i+d.

Sino espere y ser atendido por una operadora ...

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

e-Verano 2007

Aplicacin Directory

Aplicacin de directorio de empresa.


Se solicita al usuario que introduzca por teclado
las 3 primeras letras del nombre del empleado.
A continuacin se leen las opciones encontradas.
Ejemplo:
exten => 1234,1,Directory(default|internas|ef)

default: El contexto de voicemail.

internas: El contexto donde se marcar.

ef: Opciones para que lea el nombre (en lugar


del apellido) y tambin la extensin.

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

e-Verano 2007

Ejercicio 7 (solucin)
[ivr]
exten => s,1,GotoIfTime(09:00-19:30|mon-fri|*|*?s,dentro)
;;fuera de horario
exten => s,n,Playback(fuera-de-horario)
exten => s,n,Voicemail(200|u)
exten => s,n,Hangup
;;dentro del horario
exten => s,n(dentro),Set(TIMEOUT(digit)=3)
exten => s,n,Set(TIMEOUT(response)=9)
exten => s,n,Answer
exten => s,n,Background(dentro-de-horario)
exten => s,n,WaitExten(2)
exten => s,n(cola),Queue(operadora|t|||45|)
exten => s,n,Hangup
exten => i,1,Goto(s,cola)
exten => t,1,Goto(s,1)
exten => 1,1,Queue(comercial|t|||45|)
exten => 1,n,Hangup
exten => 2,1,Queue(imasd|t|||45|)
exten => 2,n,Hangup
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

VoIP y Asterisk

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

e-Verano 2007

VoIP y Asterisk

Ya hemos comentado que Asterisk es una PBX


Multiprotocolo Open Source.
Protocolos que Asterisk maneja:

SIP

IAX2

MGCP

SCCP

H.323

Vamos a ver con ms detalle la VoIP en general, el


protocolo SIP, IAX2 y los canales analgicos/digitales.

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

e-Verano 2007

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

e-Verano 2007

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

e-Verano 2007

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 RECIVE 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

e-Verano 2007

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.

Autenticacin:

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.

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

e-Verano 2007

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

e-Verano 2007

El protocolo SIP

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

e-Verano 2007

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

e-Verano 2007

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

e-Verano 2007

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

e-Verano 2007

El protocolo SIP (4)


Proxy Server:

Aplicacin intermedia que acta tanto como


servidor y cliente, generando mensajes SIP a
nombre del cliente que gener el mensaje
original.
Los mensajes pueden ser respondidos o
encaminados a otros servidores.
Interpreta, re-escribe o traduce los mensajes
antes de encaminarlos.
Dos tipos de Proxy Server:

Outbound Proxy

Inbound Proxy

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

e-Verano 2007

El protocolo SIP (5)


Inbound Proxy:

El Inbound Proxy permite independizar al usuario


del dispositivo que utiliza y de su localizacin:

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

e-Verano 2007

El protocolo SIP (6)


Outbound Proxy:

El proxy saliente simplifica la administracin de los


usuarios de un dominio, aplica polticas, tarifica, etc ...
Un mismo servidor puede funcionar como proxy
entrante y saliente de un dominio

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

e-Verano 2007

El protocolo SIP (7)


Proxy SIP
Destino
fulano@foo.com

Origen
INVITE sip:fulano@foo.com
100 Trying

INVITE sip:fulano@foo.com
100 Trying
180 Ringing
180 Ringing
200 OK
200 OK
ACK
Flujo RTP
BYE
200 OK
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

El protocolo SIP (8)


Registrar Server:

Es un servidor que acepta mensajes de tipo REGISTER.


De esa forma, se conoce la localizacin (IP + Puerto) de
cada usuario (posibles mltiples localizaciones). No en
Asterisk :(
Normalmente: mismo servidor que el SIP Proxy.

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

e-Verano 2007

El protocolo SIP (9)


Movilidad:

SIP permite implementar dos tipos de movilidad


diferentes:

La movilidad personal, el usuario puede ser


alcanzado en un dispositivo cualquiera,
registrndose en el SIP Registrar server.

La movilidad propia al protocolo IP (VPN).

El registro permite mantener las localizaciones actuales


del usuario de manera dinmica.
Basado en la localizacin actual, el proxy server
encaminar las llamadas al destino.

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

e-Verano 2007

El protocolo SIP (10)


Direcciones SIP:

Para llamadas entre telfonos IP o softphones.

Registros SRV en servidores DNS.

Similar a las direcciones de correo: sip:fulanito@foo.com

El cliente (telfono SIP, softphone, PBX) se conecta a la centralita


o punto destino responsable del dominio/IP llamado.

la

to
ni

a
ar

Internet
am

1. Llamar a fulanito@foo.com

Origen

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

fu

fo

m
co
.
o

Destino
sip:fulanito@foo.com

l
.L

PBX
foo.com
e-Verano 2007

El protocolo SIP (11)


Registros SRV en servidores DNS:
m

._
p
i
s

_
V
R
o
S
fo
.
S
N
sip
D
:
in
sta
c
e
i
et
pu
P
s
1.
Re
.
2

Origen

3.

Lla

ma

ra

ful

an

ito

.co
o
.fo
p
d

m
.co

Servidor DNS

Internet
5. Comunicacin de datos RTP

o
fo

@f

oo
.c

ito
n
a

om

ar

l
fu

om
c
.

Destino
fulanito@foo.com

am

l
.L

4
PBX
sip.foo.com
(Paso opcional)
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

SIP vs. NAT

El autntico enemigo de SIP es el NAT.


El supuesto agotamiento de los rangos de
direcciones IP utilizables en Internet ha obligado a
utilizar direcciones IP privadas dentro de las redes
de las empresas y usuarios domsticos.
Un equipo IP para ser alcanzado en Internet debe
utilizar una IP pblica para sus comunicaciones. Es
necesario por tanto enmascarar la red interna en
una o varias IPs pblicas (Source NAT).
El proceso de NAT no es nada sencillo: varios tipos
de NAT, varios tipos de soluciones, infinidad de
problemas.

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

e-Verano 2007

SIP vs. NAT (2)


Escenario

Proceso NAT:
conversin
IP privada IP
pblica

Red local
IP's privadas:
192.168.0.0/16
172.16.0.0/12
10.0.0.0/8

Problema en salida:
encapsulacin IP
y puerto de RTP
a nivel de aplicacin

Internet
Router NAT

Problema en entrada:
mapeo de puertos
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

SIP vs. NAT (3)

Problema difcil de solucionar.

Soluciones en el servidor:

NAT Helpers.

Keep aplives.

Media Proxys.

Soluciones en el cliente:

Keep alives.

STUN.

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

e-Verano 2007

STUN

Simple Traversal of UDP through NAT.


Permite a clientes detrs de NAT averiguar su IP
pblica, tipo de NAT y puerto externo.
NO soluciona el problema de NAT SIMTRICO!

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

e-Verano 2007

Asterisk chan_sip

Asterisk NO es un SIP Proxy.


Si estn activadas las transferencias, hay que
hacer transcoding, ... el audio pasa a travs de
Asterisk.

No implementa el RFC 3261 al 100%.

chan_sipv3???

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

e-Verano 2007

Asterisk chan_sip (2)


[general]
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
language=es
canreinvite=yes
context=default
realm=asterisk-saghul
;pedantic=yes
disallow=all
allow=alaw

[telefono]
type=friend
context=internas
disallow=all
allow=alaw
dtmfmode=rfc2833
secret=1234
callerid="Saghul" <666>
host=dynamic
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

chan_sip y NAT
extenip=123.123.123.123
localnet=192.168.1.0/24
nat=no|yes|route|never
qualify=no|yes|numero

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

e-Verano 2007

Enlaces SIP en Asterisk

A parte de para registrar telfonos podemos utilizar SIP


para enlazar Asterisk con cualquier PBX, gateway,
proxy, ... que hable SIP.
Aunque para los enlaces Inter-Asterisk es mucho mejor
IAX2, se pueden enlazar 2 Asterisk por SIP.

Configuracin de un peer/user/friend.

Register

register => usuario:password@host

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

e-Verano 2007

Ejercicio 8

Realiza un enlace por SIP con la PBX de tu compaero.

Utiliza cuentas de friend.

Haz un contexto para que las extensiones de una PBX


puedan llamar a las de la otra.
Inventa un prefijo para que al marcarlo la llamada sea
enviada a la otra centralita.

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

e-Verano 2007

Ejercicio 8 (solucin)
En la centralita A:
[pbxB]
type=friend
username=pbxA
fromuser=pbxA
secret=1234
context=entrantes-sip
host=123.123.123.123
exten => _666X.,1,Dial(SIP/${EXTEN:3}@pbxB,45)
En la centralita B:
[pbxA]
type=friend
username=pbxB
fromuser=pbxB
secret=1234
context=entrantes-sip
host=123.123.123.123
exten => _666X.,1,Dial(SIP/${EXTEN:3}@pbxA,45)
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

El protocolo IAX2

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

e-Verano 2007

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

e-Verano 2007

IAX2 (2)

IAX2 trunking:

Encriptacin:

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 ??

Autenticacin

MD5

Texto en claro (plaintext)

RSA

Necesita una fuente de tiempo: Zaptel (ztdummy)

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

e-Verano 2007

Ejercicio 9

Realiza un enlace por IAX2 con la PBX de tu


compaero.
Utiliza cuentas de friend.
Haz un contexto para que las extensiones de una PBX
puedan llamar a las de la otra.
Inventa un prefijo para que al marcarlo la llamada sea
enviada a la otra centralita.

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

e-Verano 2007

Ejercicio 9 (solucin)
En la centralita A:
[pbxB]
type=friend
username=pbxA
secret=1234
context=entrantes-iax
host=123.123.123.123
exten => _666X.,1,Dial(IAX2/pbxA@pbxB/${EXTEN:3},45)
En la centralita B:
[pbxA]
type=friend
username=pbxB
secret=1234
context=entrantes-iax
host=123.123.123.123
exten => _666X.,1,Dial(IAX2/pbxB@pbxA/${EXTEN:3},45)

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

e-Verano 2007

Canales analgicos/digitales

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

e-Verano 2007

Telefona Tradicional

Para operar con lineas analgicas, se


necesitan tarjetas con interfaces FXO

Para operar con telfonos analgicos o


centralitas clsicas, se requieren
interfaces FXS

Ejemplo: Digium TDM01B

Ejemplo: Digium TDM10B

En ambos casos, el driver a utilizar es


zaptel, la configuracin se almacena en
/etc/zaptel.conf

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

e-Verano 2007

Telefona Tradicional (2)

En lineas digitales (RDSI), en Europa existen dos


tipos:

BRI : Acceso bsico, proporciona 2 canales de voz.

PRI: Acceso primario, proporciona 30 canales de


Voz (E1).

Asterisk soporta perfectamente ambos tipos de


lineas digitales, con hardware especfico:

Para primarios, Digium proporciona tarjetas de hasta


4 puertos, siendo zaptel el driver a utilizar.

Para accesos bsicos, Digium dispone de un


hardware para 4 RDSI.

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

e-Verano 2007

Lneas Analgicas

Para operar con las tarjetas con interfaces FXS / FXO,


Asterisk utiliza el subsistema Zaptel: Zapata
Telephony.
Es necesario descargar e instalar el paquete.
Una vez instalado el sistema zaptel, es necesario
configurarlo en /etc/zaptel.conf

Definir zonas (para frecuencias de tonos)

Definir sealizacin de los canales: FXS / FXO

Se puede verificar la configuracin correcta con el


comando: ztcfg -v
La configuracin de los canales Zaptel se realiza en el
fichero /etc/asterisk/zapata.conf

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

e-Verano 2007

Tarjetas Analgicas

TDM11B

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

e-Verano 2007

Configuracin TDM
/etc/zaptel.conf

/etc/asterisk/zapata.conf

loadzone=es
defaultzone=es
fxoks=1
fxsks=2

[channels]
language=es
hidecallerid=no
callwaiting=yes
echocancel=yes
echocancelwhenbridged=no
echotraining=yes
transfer=yes
usecallerid=yes
callerid=asreceived
rxgain=0.0
txgain=0.0
busydetect=no
busycount=5
answeronpolarityswitch=yes
hanguponpolarityswitch=yes
signalling=fxs_ks
context=entrada-zap
group=1
channel=2
group=2
signalling=fxo_ks
context=telf-internos
channel=1

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

e-Verano 2007

Lneas Digitales

Tambin utilizan el subsistema Zaptel.

La b410p de Digium de distinta manera.

Los ficheros a configurar son los mismos.


Las BRI utilizan mISDN en lugar de Zaptel. (Junghans
no - BriStuff)

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

e-Verano 2007

Tarjetas PRI

TE120P

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

e-Verano 2007

Configuracin PRI
/etc/zaptel.conf

/etc/asterisk/zapata.conf

loadzone=es
defaultzone=es
span=1,1,0,ccs,hdb3,crc4
bchan=1-15
dchan=16
bchan=17-31

[channels]
calwaiting=yes
transfer=yes
echocancel=yes
echocancelwhenbridged=no
language=es
switchtype=euroisdn
signalling=pri_cpe
usercallerid=yes
callerid=asreceived
rxgain=0.0
txgain=0.0
group=1
context=944123123
channel=1-15,17-31

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

e-Verano 2007

Tarjetas BRI

B410P

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

e-Verano 2007

Configuracin BRI

Para instalar una tarjeta B410P, hay que compilar Zaptel, mISDN y
mIDSNUser.
Al compilar Zaptel, en lugar de hacer make, ejecutamos:

make b410p

y luego como siempre: make install

Compilamos mISDN:

wget http://www.misdn.org/downloads/mISDN.tar.gz

make

make install

Compilamos mISDNUser

wget http://www.misdn.org/downloads/mISDNuser.tar.gz

make

make install

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

e-Verano 2007

Configuracin BRI (2)

Tras compilar Zaptel, mISDN y mISDNUser, hay que recompilar Asterisk.

Comprobar que esta habilitado chan_misdn

Ejecutamos: /etc/init.d/misdn-init scan

Ejecutamos: /etc/init.d/misdn-init config y se genera el fichero /etc/misdninit.conf

Retocamos el fichero /etc/asterisk/misdn.conf

Ejecutamos /etc/init.d/misdn-init start

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

e-Verano 2007

Configuracin BRI (3)


/etc/misdn-init.conf

/etc/asterisk/misdn.conf

card=1,0x4
te_ptp=1,2,3
nt_ptmp=4
poll=128
dsp_options=0
debug=0xf

[general]
misdn_init=/etc/misdn-init.conf
debug=0
ntdebugflags=0
ntdebugfile=/var/log/misdn-nt.log
bridging=no
stop_tone_after_first_digit=yes
append_digits2exten=yes
dynamic_crypt=no
crypt_prefix=**
crypt_keys=test,muh
[default]
context=default
musicclass=default
senddtmf=yes
far_alerting=yes
allowed_bearers=all
nationalprefix=
internationalprefix=00
rxgain=0
txgain=0
te_choose_channel=no
need_more_infos=no

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

method=standard
dialplan=0
localdialplan=0
cpndialplan=0
early_bconnect=yes
incoming_early_audio=no
nodialtone=no
immediate=yes
callgroup=1
pickupgroup=1
presentation=1
screen=1
echocancel=yes
[telefonica]
context=default
ports=1,2,3
msns=*
[centralita]
context=outgoing
ports=4
msns=*

e-Verano 2007

Informes de llamadas: CDRs

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

e-Verano 2007

CDRs

En centralitas, proveedores de servicios, etc. es importante tener


un control de las llamadas.
Asterisk puede generar CDRs (Call Detail Record) en distintos
formatos

CSV

MySQL

SQLite

...

Nos dan todos los detalles de las llamadas.

Billing.

Para utilizar el CDR en MySQL es necesario compilar asteriskaddons. (instalar paquete libmysqlcient15-dev)

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

e-Verano 2007

CDRs (2)

Por defecto el CDR se genera en CSV en /var/log/asterisk/


Posibilidad para desarrollar aplicaciones de estadstica para
CallCenters, ...

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

e-Verano 2007

Ejercicio 10

Crear la estructura de tablas necesaria y poner en funcionamiento


el sistema de CDRs en base de datos MySQL.
Receta:

Si no lo esta, compilar asterisk-addons.

Configurar el fichero cdr_mysql.conf para que apunte a nuestra


base de datos.

Crear la estructura de la base de datos.

Cargar el mdulo editando el fichero modules.conf


load => cdr_addon_mysql.so

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

e-Verano 2007

Aspectos avanzados de Asterisk

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

e-Verano 2007

AEL2

AEL (Asterisk Extension Language) es una forma diferente de


escribir el dialplan.
Ms orientado a programadores:

switch

while/for

...

Utiliza el mdulo pbx_ael.so (pbx_config.so carga el dialplan


normal)
Internamente Asterisk trabaja con el dialplan clasico, parsea y
convierte el AEL.
Muy til, y mucho ms legible.
Ms informacin:
http://www.voip-info.org/wiki/view/Asterisk+AEL2

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

e-Verano 2007

AEL2 (2)

Ejemplo:
contextprueba{
1234=>{
Dial(SIP/saghul,45);
switch(${DIALSTATUS}){
caseBUSY:
Voicemail(b200);
break;
caseNOANSWER:
Voicemail(u200);
break;
default:
Noop(Algorarohapasado);
Hangup;
}
}
}

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

e-Verano 2007

AGI

AGI (Asterisk Gateway Interface) nos permite ejecutar en Asterisk


software de terceros escrito en casi cualquier lenguaje
Permite extender al infinito las posibilidades de Asterisk,
juntando su potencia, con las posibilidades que ofrece un lenguaje
de programacin.
Muchos lenguajes soportados: Python, PHP, Perl, Bash, Java, ...
Conviene utilizar un lenguaje que no resulte demasiado lento,
para no demorar demasiado la ejecucin.
Opinin personal:

PHP es un buen lenguaje para AGI.

Se ejecuta rpido.

No es difcil programar en PHP.

La librera phpagi nos hace la vida ms fcil.


http://phpagi.sourceforge.net/

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

e-Verano 2007

AGI (2)

Ejemplo de AGI con phpagi:


#!/usr/bin/php
<?php
require_once(phpagi.php);
$myagi=newAGI();
$myagi>set_variable(VAR,hooola);
$myagi>exec_dial(SIP,saghul,45);
?>

En el dialplan pondramos:
exten => 1234,1,AGI(prueba.php)
exten => 1234,n,Noop(${VAR})

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

//nos saldra hooola

e-Verano 2007

AMI

Qu es Asterisk AMI?
Asterisk AMI permite que programas cliente se conecten a Asterisk
mediante TCP/IP y sean capaces de ejecutar comandos y leer eventos. Por
cada cosa que Asterisk realiza se generan eventos que pueden ser ledos
mediante una sesin de manager, y el usuario puede tratarlos a su gusto.
Adems, AMI permite la ejecucin de comandos, lo que proporcina la
posibilidad de alterar el comportamiento de Asterisk desde un programa
hecho a medida.

Funcionamiento:
Para trabajar con AMI es necesario tener un usuario definido en el fichero
manager.conf. A partir de aqu hay que establecer una comunicacin
TCP/IP con el servidor de Asterisk en el puerto 5038, y una vez conectado
y autentificado, se puede comenzar a leer los eventos o ejecutar
comandos.

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

e-Verano 2007

AMI (2)

AJAM?
De la mano de Asterisk 1.4 viene AJAM (Asyncronous Javascript Asterisk
Manager), un nuevo manager, que permite conectar con Asterisk por
medio de HTTP. Para poder trabajar con AJAM es necesario configurar los
ficheros manager.conf y httpd.conf. Adivina como funciona el nuevo GUI
de Asterisk.. premio!

Ejemplos de funcionamiento:
http://IP_de_Asterisk:8088/asterisk/manager?action=login&username=no
mbre_de_usuario&secret=contrasea
Esto abrir una sesin de Asterisk Manager. Si ahora ejecutas:
http://IP_de_Asterisk:8088/asterisk/rawman?action=status
Vers la salida del comando.

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

e-Verano 2007

AMI (3)

Ms informacin:
http://www.voip-info.org/wiki-Asterisk+manager+API
http://www.voip-info.org/wiki/view/Aynchronous+Javascript+Asterisk+Manager+%28AJAM%29

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

e-Verano 2007

ARA

Asterisk permite ser configurado (algunos ficheros) en una Base


de Datos, mediante Asterisk Realtime Architecture.
Soporta MySQL, y es posible migrar a Base de Datos lo siguiente:

Configuracin de dispositivos SIP e IAX.

Configuracin de buzones de voz.

Configuracin de colas.

Las estructuras de la bases de datos estn en


http://www.voip.info.org
El fichero a configurar es extconfig.conf
El fichero res_mysql.conf contiene la configuracin de la base de
datos.

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

e-Verano 2007

ARA (2)

ARA dispone de 2 tipos de Realtime: esttico y dinmico:

Esttico: La configuracin esta almacenada en la BD, pero


Asterisk la carga al arrancar como si fuera un fichero. Si se
realiza algn cambio, es necesario hacer un reload.

Dinmico: La configuracin esta almacenada en la BD y


Asterisk realiza una consulta a esa BD cada vez que necesita
un dato. No es necesario hacer reload si se han realizado
cambios. Mucha carga para el servidor...

Todos los ficheros no soportan Realtime Dinmico.

SIP, IAX y los buzones de voz en Realtime Dinmico.

Colas en Realtime Dinmico ???

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

e-Verano 2007

ARA (3)

Ejemplo de configuracin (extconfig.conf):

[settings]
;;RealTime Dynamic
;sipusers => mysql,asterisk,dispositivos_sip
;sippeers => mysql,asterisk,dispositivos_sip
;iaxusers => mysql,asterisk,dispositivos_iax
;iaxpeers => mysql,asterisk,dispositivos_iax
;voicemail => mysql,asterisk,buzones
;;RealTime Static
;sip.conf => mysql,asterisk,sip_conf
;extensions.conf => mysql,asterisk,extensions_conf
;iax.conf => mysql,asterisk,iax_conf
;queues.conf => mysql,asterisk,queues_conf
;voicemail.conf => mysql,asterisk,voicemail_conf

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

e-Verano 2007

Asterisk-GUI

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

e-Verano 2007

Asterisk-GUI

Interfaz grfica para Asterisk creada por Digium.

Se lanz tras el lanzamiento del Asterisk Appliance.

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

e-Verano 2007

Asterisk-GUI (2)

Esta en desarrollo... todava no es muy estable.

Para instalarla, la descargamos del repositorio SVN de Digium:


#svn co http://svn.digium.com/svn/asterisk-gui/trunk asterisk-gui
#cd asterisk-gui
#./configure
#make
#make install

Hay que configurar 2 ficheros:

manager.conf

http.conf

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

e-Verano 2007

Asterisk-GUI (3)

Configuracin de manager.conf

[general]
displaysystemname = yes
enabled = yes
webenabled = yes
port = 5038
bindaddr = 0.0.0.0
[saghul]
secret = 1234
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config

Configuracin de http.conf

[general]
enabled=yes
enablestatic=yes
bindaddr=0.0.0.0
bindport=8088
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

Asterisk-GUI (4)

Una vez Asterisk-GUI esta compilado, podemos comprobar si todo


esta correcto ejecutando (en el directorio asterisk-gui):
make checkconfig

Si todo hay ido bien, se nos mostrar un mensaje de que ya


podemos acceder a finalizar la instalacin, entrando en la
direccin:
http://ip_de_asterisk:8088/asterisk/static/config/setup/install.html

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

e-Verano 2007

Asterisk-GUI (5)

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

e-Verano 2007

Asterisk-GUI (6)

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

e-Verano 2007

Asterisk-GUI (7)

Cuando se termine la configuracin inicial, el usuario ser


redireccionado a:
http://192.168.1.123:8088/asterisk/static/config/cfgbasic.html

Desde esa ventana es posible configurar Asterisk de manera


bastante intuitiva.

Muestra mucha informacin: grficos, logs, CDR ???

Editor de ficheros y acceso al CLI!

An le queda por mejorar, pero ser una herramienta muy til...

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

e-Verano 2007

Asterisk-GUI (8)

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

e-Verano 2007

Anexo A: Softphones

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

e-Verano 2007

X-Lite

Protocolo SIP

Soporte STUN

g711a/u, gsm, ilbc, speex

Windows, GNU/Linux,
MacOSX

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

e-Verano 2007

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

e-Verano 2007

Cubix

Protocolo SIP e IAX2

Soporte STUN

g711a/u, gsm, ilbc, speex,


g729
Windows

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

e-Verano 2007

DIAX

Protocolo IAX2

g711a/u, gsm, ilbc, speex

Windows

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

e-Verano 2007

KIAX

Protocolo IAX2

g711u, gsm, speex

Windows, Linux, *BSD

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

e-Verano 2007

Twinkle

Protocolo SIP

g711a/u, gsm, speex, g726

GNU/Linux (Qt)

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

e-Verano 2007

Ekiga

Protocolo SIP e IAX2.

g711a/u, gsm, speex, g726.

GNU/Linux.

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

e-Verano 2007

Anexo B: Links de inters

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

e-Verano 2007

Links
http://www.asterisk.org/
http://www.voip-info.org/
http://planetasterisk.org/
http://planet.voz-ip.com/
http://www.asteriskguru.com/
http://www.asterisk.org/doxygen/
http://www.asterisk-es.org/
http://www.sineapps.com/
http://asteriskcounter.sinologic.net/

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

e-Verano 2007

Anexo C: Configuracin de
terminales

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

e-Verano 2007

Thomson ST2030

Pulsar la tecla de men.


Pulsar el botn central, que
dice admin e introducir la
contrasea: 784518.
Comprobar la direccin IP y
entrar a ella con el
navegador poniendo
/admin.html al final
Con en navegador abierto,
reiniciar el telfono para que
se activen todas las
opciones.

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

e-Verano 2007

Thomson ST2030 (2)

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

e-Verano 2007

Thomson ST2020

Comprobar la direccin IP en
la pantalla y entrar a ella
con el navegador, poniendo
/admin.html al final.
El usuario y la contrasea
son los mismos que en el
ST2030.

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

e-Verano 2007

Thomson ST2020 (2)

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

e-Verano 2007

Linksys SPA-9xx

Comprobar la direccin IP:

Tecla men -> 9.

Acceder va web.

Pinchar en admin login.

Pinchar en advanced.

Pestaa Ext1.

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

e-Verano 2007

Linksys SPA-9xx (2)

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

e-Verano 2007

Anexo D: Hardware VoIP

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

e-Verano 2007

Gama Alta

Polycom

Cisco Systems

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

e-Verano 2007

Gama Media
Thomson

Linksys

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

e-Verano 2007

Gama Baja

Grandstream

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

e-Verano 2007

WiFi
Linksys:
WIP300

UT-Starcom:
F1000 y F3000

Zyxel:
Prestige 2000W
Sal Ibarra Corretg - http://www.saghul.net

e-Verano 2007

ATAs

Soundwin
Grandstream

Linksys

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

e-Verano 2007

PBX in-a-box

Digium:
Asterisk Applicance

Linksys:
SPA-9000

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

Fonality:
Trixbox Appliance

e-Verano 2007

Licencia

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

e-Verano 2007

Licencia

http://creativecommons.org/licenses/by-nc/2.5/es/

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

e-Verano 2007

GRACIAS A TODOS!!

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

e-Verano 2007

También podría gustarte