Asterisk, mas que una
central telefónica
Andrés Junge M.
Totexa - ATIX
[email protected]
ajunge@totexa.
cl
¿Que es VoIP? ¿Telefonía IP?
“Voice Over Internet
Protocol”
Transmisión de voz
sobre redes IP (Internet,
Intranet)
Usar Internet (o
cualquier red IP) para
hacer telefonía
2
PSTN: Conmutación de
Circuitos
Un par de canales dedicados (circuitos) se establece por la
duración de la trasmisión telefónica.
La señal es conmutada por una central que dirige la llamada a su
destino por un “plan de encaminamiento”, que puede incluir
múltiples centrales y compañías hasta su destino.
Un circuito se establece y permanece abierto para trasmitir
información durante toda la duración de la llamada.
3
VoIP: Conmutación de
Paquetes
VoIP es la trasmisión de una llamada telefónica sobre la
Internet u otra red IP.
La Internet envia paquetes de datos sobre una red via
conmutación de paquetes o “packet switching”.
La conmutación de paquetes es muy eficiente porque
minimiza el tiempo que una conexión es mantenida entre dos
fuentes, bajando la carga de la red.
Una llamada VoIP puede ocurrir en varios escenarios.
Según el caso, para que ocurra se puede necesitar un
computador conectado a una red de banda ancha, un gateway
y un teléfono normal, un teléfono IP o un adaptador.
Los dispositivos deben usar el mismo protocolo de Telefonía
IP para comunicarse.
4
Términos y Conceptos
Gateway
Adaptador(ATA: Analog Telephone
Adaptor)
Teléfono IP (IP Phone)
Softphone
Switch VoIP (iPBX)
Puertos FXO, FXS
5
Ejemplo de Configuración
iPBXiPBX
FXSFXS
Gateway
Gateway
E1E1
Red Pública
Red Pública
Telefónica
Telefónica
Phone
Phone
Internet
Internet
Intranet
Intranet
Gateway
Gateway
FXOFXO
ATAATA
Softphone
Softphone
Red Pública
Red Pública
Telefónica
Telefónica
IP Phone
IP Phone
Phone
Phone
Comunicación de datos
Protocolos sesión
H.323, SIP
Manejan la señalización de la llamada
Por lo general sobre TCP
Protocolos de streaming de audio (y/o
video)
Envía el contenido de la llamada
RTP
Sobre UDP
7
Protocolos de sesión
H.323
SIP
Creado por la industria de
telecomunicaciones
Conjunto de protocolos para diferentes
tareas
No muy “firewall friendly”
Creado por la industria “Internet”
Un solo protocolo para todo
Texto plano - “Human readable”
Considera los firewall – NAT Traversal.
8
Codecs
Permiten compresión
A mayor compresión, peor calidad
Codec
G.711
G.726
G.728
iLBC
GSM
G.729
G.723.1
BR (Kbps)
64
32
16
13.3
13.2
8
6.4
NEBW (Kbps)
87.2
55.2
31.5
N/A
N/A
31.2
21.9
9
Calidad de Servicio
VoIP tiene problemas de confiabilidad y calidad de
sonido debido a limitaciones en el ancho de banda
de Internet y la tecnología de compresión de voz.
Hay problemas de interoperabilidad entre
protocolos de codificación y compresión de la voz.
Los factores que deben controlarse son:
Demoras
Perdida de paquetes
Ancho de Banda
Eco.
10
Demoras
Latencia describe el tiempo requerido para codificar, trasmitir
y decodificar un paquete de voz. Si la latencia de la red se
acerca a 200 milisegundos, la conversación se distorsiona.
En Internet no todos los paquetes siguen necesariamente la
misma ruta, lo que puede ocasionar intervalos excesivos
para algunos. Cuando la latencia es irregular entre paquetes,
se denomina “jitter”.
Para disminuir el efecto del “jitter” los paquetes de juntan en
buffers en el destino, lo que debe hacerse óptimamente para
no producir excesiva latencia efectiva.
11
Pérdida de Paquetes
Los paquetes de voz, como los paquetes de datos sufren pérdidas
por congestión y no pueden ser retransmitidos sin degradar la
calidad. Su pérdida significa periodos de “silencio” en la conversación
telefónica, voz “cortada”.
El “sidetone” de los teléfonos convencionales trasmitido con demoras
-debido a problemas de trasmisión en VoIP- es percibido como eco.
12
Asterisk
Software
Escrito en C, sobre Linux
Licenciado GPL
Desarrollado en forma OpenSource
PBX IP – Central IP
Plataforma de VoIP
VoIP Swiss Army Knife
13
Historia Asterisk
Mark Spencer queria una PBX
para linux-support.net
Todas muy caras y poco flexibles,
hizo una por software. Nace
Asterisk, liberado GPL (~1999).
Jim Dixon de “Zapata Telephony
Project” construía interfaces telefónicas para
PC, se unió a el.
La idea era hacer tarjetas telefónicas baratas
que usaran la CPU del PC para hacer el trabajo
“pesado”.
14
Historia Asterisk (cont.)
Fundan Digium, para vender tarjetas y
consultoría para Asterisk
2004 - sale la version 1.0 de Asterisk
Miles de desarrolladores, usuarios y
empresas en torno a Asterisk
2005 – sale la version 1.2 de Asterisk
2006 – Version 1.4
2007 – Asterisk Appliance
2008 – Version 1.6
15
Funcionalidades
Conmutación de llamadas
Transferencia (asistida y ciega)
ACD (Colas de llamadas)
Estacionamiento de llamadas
Salones de conferencia
Correo de Voz
... y muchas, muchas mas
(programable).
16
Arquitectura Modular
Applications
File Formats
PBX
MeetMe
VoiceMail
AGI
GSM
WAV
MP3
Codecs
G.711
GSM
iLBC
G.729
G.726
Channels
Zap
SIP
IAX
Skinny
H.323
17
Costos de Asterisk
$500K
~$50K
Servidor: Depende del “transcoding” ~
Tarjeta E1: ~$300K
Tarjeta Analogica: Base(4) ~$80K, Mod
Telefono IP: ~$60K => $200K
ATA: ~$50K
Instalación, Configuración, etc... ¿?¿?
www.linkstore.cl
www.linuxmall.cl
18
Configuración “ultra-básica”
Dos anexos IP
(sip)
Hacer llamadas
entre ellos
sip.conf
extensions.conf
19
Configuración “ultra-básica”
sip.conf
[sip1]
secret=sip1
type=friend
context=interno
callerid=Cliente SIP 1 <11>
;canreinvite=yes
dtmfmode=rfc2833
mailbox=11@default
disallow=all
allow=ulaw
allow=alaw
allow=ilbc
[sip2]
secret=sip2
type=friend
context=interno
callerid=Cliente SIP 2 <12>
;canreinvite=yes
dtmfmode=rfc2833
mailbox=12@default
disallow=all
allow=ulaw
allow=alaw
allow=ilbc
20
Configuración “ultra-básica”
extensions.conf
Ghost-I-6
[interno]
exten => 11,1,Dial(SIP/sip1,60)
exten => 11,2,Congestion
exten => 11,3,Hangup
exten => 12,1,Dial(SIP/sip2,60)
exten => 12,2,Congestion
exten => 12,3,Hangup
21
Agregando Funcionalidades
Tranferencia
Desvio de llamadas
Salones de conferencia
Correo de Voz
Colas
22
Agregando Funcionalidades
Transferencia
[interno]
exten => 11,1,Dial(SIP/sip1,60,Tt)
exten => 11,2,Congestion
exten => 11,3,Hangup
exten => 12,1,Dial(SIP/sip2,60,Tt)
exten => 12,2,Congestion
exten => 12,3,Hangup
23
Agregando Funcionalidades
Desvio de Llamadas
[interno]
exten => 11,1,DBget(temp=CFIM/11) ;Desvio Todo evento
exten => 11,2,Dial(Local/${temp}@interno/n)
exten => 11,101,Dial(SIP/sip1)
exten => 11,102,Goto(11,300) ; Si no contesta
exten => 11,202,Goto(11,600) ; Si esta ocupado
exten => 11,300,DBget(temp=CFU/11); Desvio No contesta
exten => 11,301,Dial(Local/${temp}@interno/n)
exten => 11,401,Goto(11,1000)
exten => 11,600,DBget(temp=CFB/11); Desvio Ocupado
exten => 11,601,Dial(Local/${temp}@interno/n)
exten => 11,701,Goto(11,1000)
exten => 11,1000,Congestion
exten => 11,1001,Hangup
24
Agregando Funcionalidades
Desvio de Llamadas (cont.)
[interno]
exten => _*21*X.,1,DBput(CFIM/${CALLERIDNUM}=${EXTEN:4})
exten => _*21*X.,2,Playback(fwdsuccess)
exten => _*21*X.,3,Hangup
exten => *21*,1,DBdel(CFIM/${CALLERIDNUM})
exten => *21*,2,Playback(fwdcancel)
exten => *21*,3,Hangup
25
Agregando Funcionalidades
Salones de Conferencia
extensions.conf
[interno]
exten => 88,1,Meetme(1234)
exten => 89,1,Meetme(2345)
meetme.conf
[rooms]
conf => 1234
conf => 2345, 9938
26
Agregando Funcionalidades
Correo de Voz
extensions.conf
[interno]
exten => 11,1,Dial(SIP/sip1,60)
exten => 11,2,Voicemail(b11)
exten => 11,102,Voicemail(u11)
voicemail.conf
Ghost-II-18
[default]
11 => 1234,Cliente 1,
[email protected]
12 => 1234,Cliente 2
exten => 12,1,Dial(SIP/sip2,60)
exten => 12,2,Voicemail(b12)
exten => 12,102,Voicemail(u12)
exten => 60,1,VoicemailMain
exten => 60,2,Hangup
27
Agregando Funcionalidades
Colas de Llamadas ACD
Ghost-III-21
extensions.conf
[interno]
exten => 70,1,Queue(elinux)
queues.conf
[elinux]
musiconhold = default
strategy = rrmemory
timeout = 10
member => SIP/sip1
28
Abriéndose al mundo
Líneas analógicas tradicionales
Puerto FXO
Canal ZAP
Líneas digitales E1
30 canales logicos en fibra o cobre
2 canales de señalizacion
Seleccion directa de anexos
Grupo de canales ZAP
29
Abriéndose al mundo (cont.)
Gateway externos
Banco de puertos FXO o E1
Grupo de lineas SIP, H.323 o IAX2
Proveedores de VoIP externos
Enlace SIP, H.323 o IAX2 directo
Terminacion de llamadas
Numeracion local
30
Macros
extensions.conf
[macro-anexo]
exten => s,1,Dial(${ARG1},60)
exten => s,2,Voicemail(b${ARG2})
exten => s,102,Voicemail(u${ARG2})
[interno]
exten => 11,1,Macro(anexo,SIP/sip1,11)
exten => 12,1,Macro(anexo,SIP/sip2,12)
31
Programación
AGI (Asterisk Gateway Interface) vs
Dialplan
AGI mas versatil, cualquier cosa
Dialplan mas rapido, solo las funciones
incluidas
Mejor practica?
Dialplan para todo lo que se pueda
Para lo demas AGI
32
Programación AGI
(Archivo)
Ghost-III-22
33
¿Preguntas?
www.asterisk.org
www.digium.com
www.voip-
info.org
34
Comentarios de: Creando una Central Telefonica con Asterisk (0)
No hay comentarios