Professional Documents
Culture Documents
MODULO 1
Agosto 2010 Santiago, Repblica Dominicana
Instructor: Antonio Perpian
Fundacin Cdigo Libre Dominicano
Page 1
MODULO 1
Componentes de VOIP
MODULO 2
AGI y AMI.
Page 2
Nombre
Estudios
Conocimientos de:
Networking
Telefonia/VOIP
Linux
Adicional?
Page 3
Page 4
Page 5
Page 6
Un poco de Historia
Telefona Tradicional
Page 8
Page 9
La Interconexion de centrales
Page 10
Page 11
Page 12
Principios de VOIP
IMS.
Discusin:
Page 13
Es Telefona Digital???
Digitalizacin de la voz.
Paquetizacin de la voz.
Adems:
Page 14
Algo de Actualidad
VOIP sobre una red privada: REDES debe controlar toda la fiabilidad
similar a la de una TELCO.
Page 15
Algo de Actualidad
Page 16
Problemas de VOIP
Control y Paquetizacin
Latencia
Jitter
Page 17
Agentes Implicados
Page 18
Agentes Implicados
Page 19
Elementos Implicados
Telfono IP: apariencia comn, tiene por lo menos 1 conector RJ45 para
conectarse a una red IP. NO provee conexin RJ11. Tambin se incluyen
telfonos WIFI. El conector RJ45 provee 10/100/1000Mbps
LINKSYS WIP300
Page 20
Elementos Implicados
Verifiquen sus Telfonos IP
Que marca son?
Son Dual Lan?
Dual Lan: disponen de dos conectores RJ45 e implementan funciones de
switch, de esta forma no es necesario tirar otro cableado para los nuevos
dispositivos IP.
Cableado estructurado, crecimiento horizontal?
Page 21
Elementos Implicados
Linksys PAP2T-NA
Page 22
Elementos Implicados
Page 23
Elementos Implicados
Page 24
Elementos Implicados
Digium TDM2400P
Page 25
Elementos Implicados
Page 26
Que es un protocolo?
Page 27
Protocolos de VOIP
H.323
IAX2
SIP
MGCP
Skinny/SCCP
UNISTIM
Page 28
Protocolos de VOIP
Protocolo H.323
Es un estndar del ITU (International Telecommunications
Union) que provee especificaciones para ordenadores,
sistemas y servicios multimedia por redes que no proveen
calidad de servicio.
Negociacin de codecs
Control de secuencia
Page 29
Protocolos de VOIP
Protocolo H.323: Ventajas
Page 30
Protocolos de VOIP
IAX (Inter Asterisk eXchange)
Es un protocolo abierto, originalmente diseado por Digium
para comunicarse con otros servidores.
Es un protocolo de transporte que utiliza el puerto UDP 4569
tanto para sealizacin como para los flujos de RTP (real
time transfer protocol)
Es el nico que tiene la capacidad de trunkar mltiples
sesiones en un solo flujo de datos, esto ayuda a reducir la
latencia, la necesidad de procesamiento y el ancho de banda
requerido
Permite escalar mas fcilmente una gran cantidad de
canales de voz entre dos puntos finales
Page 31
Protocolos de VOIP
El futuro de IAX
Page 32
Protocolos de VOIP
IAX: Consideraciones de Seguridad
Page 33
Protocolos de VOIP
Protocolo SIP
SIP: Session Initiation Protocol, protocolo del IETF para
VozIP, texto y sesiones multimedia.
Page 34
Protocolos de VOIP
Protocolo SIP
Capacidades de SIP:
'User Agent'.
Page 35
Protocolos de VOIP
Protocolo SIP: Esquema de funcionamiento
Dos Canales:
Page 36
Page 37
Codecs de VOIP
Los cdecs se utilizan para transforma la seal de voz analgica en una
versin digital.
Los Softphones, Hardphones, PBX-IP ... soportan una serie de cdecs
cada uno. Cuando hablan entre si negocian un cdec comn.
Lo bsico: PCM
Page 38
Codecs de VOIP
Si la voz esta entre los 300 y 4.000 Hz una frecuencia de 8.000 muestras
por segundo reconstruir perfectamente la seal.
Page 39
Codecs de VOIP
Page 40
GSM
13 kbps
iLBC
15 kbps
G.711
64 kbps
G.723
5.3/6.3 kbps
G.726
16/24/32/40 kbps
G.729
8 kbps
Speex
Telefona Convencional:
Redes telefnicas
Page 41
Telefona IP
Page 42
Es interoperable.
Su infraestructura no est
manejada por una sola empresa.
Page 43
Su crecimiento es ilimitado;
escalable.
Aprovecha el crecimiento de la
banda ancha y las tecnologas
WiMAX, Wireless.
necesarios
como
futuros
Page 45
Page 46
[username@localhost.localdomain username]$
[root@localhost.localdomain root]#
Page 47
Linux Shell
Page 48
Iniciando Linux
Inicie Linux!!
Por qu FEDORA?
Page 49
La Red en Linux
Page 50
La Red en Linux
Page 51
/etc/modprobe.d/dist.conf
Comandos de Red
Page 52
Comandos de Red
Page 53
Control de Procesos
ps -aux : Despliega todos los procesos del sistema, con nombre y tiempo
de inicio kill : Es utilizado para mandar seales a los procesos en Linux.
kill -HUP <pid> : Seala al proceso con numero <pid>, que vuelva a leer
sus archivos de configuracin
kill -INT <pid> : Seala al proceso con numero <pid>, que sera
interrumpido
kill -TERM <pid> : Seala al proceso con numero <pid>,que debe de
terminar, a diferencia de -KILL , esta opcin da la oportunidad al proceso
de terminar.
kill -STOP <pid> : Seala al proceso con numero <pid>, que pare
momentneamente
kill -CONT <pid> : Seala al proceso con numero <pid>, que continu,
este comando se utiliza para reanudar un proceso que le fue aplicado
-STOP
Page 54
Mas Comandos
Page 55
La Red en Linux
Discusin:
Page 56
YUM
Page 57
Preparando el Laboratorio
Verifique la carpeta /usr/src/ Para que podra ser usada?? Que hay en
esa carpeta??
Page 58
Introduccin a Asterisk
Da #3
Page 59
Algo de historia
Page 60
Aparecen caractersticas de
valor agregado como buzn
de voz, conferencias,
llamada en espera, msica
en espera.
protocolos.
Page 61
con
aplicaciones,
basado
Asterisk y su Funcionalidad
Page 63
Asterisk
Page 64
Aplicaciones
Gestin
Asterisk
ASTERISK
ZAPTEL/DAHDI
Kernel 2.4 / 2.6
Mdulos
GNU/Linux
Asterisk Arquitectura
Multiconferencia, IVR, Buzn de Voz, Directorio, aplicaciones
personalizadas, ...
Traductor
de Codecs
Lanzador de
Aplicaciones
Ncleo de
Centralita
Temporizador y
Gestor de
Entradas/Salidas
Cargador de
Mdulos
GSM
G723
G711
MP3
ADPCMA
LINEAR
A PI de Traduccin de Codecs
GSMsf
G723sf
WAV
MP3
Asterisk Arquitectura
+ Integracin de casi todas las formas de comunicacin
+ API de canales: Sirve para controlar todas las llamadas del sistema, sean Voz IP,
analgicas cualquier otra tecnologa pudiendo desarrollar nuevos canales
Page 67
Asterisk Caracteristicas
De Llamada:
Sistema de Men en Pantalla
Receptor de Alarmas
Adicin de Mensajes
Autentificacin
Listas Negras
Transferencia Ciega
Monitorizacin de Llamadas
Aparcamiento de Llamada
Sistemas de Colas
Grabacin de llamadas
Recuperacin de Llamadas
Escucha de Llamadas
Transferencia de Llamadas
Llamada en Espera
Identificacin de LLamada
Page 68
Tarjetas prepago
Multiconferencia
Almacenamiento / Recuperacin en BBDD
Integracin con BBDD
Llamada por Nombre
Sistema de Acceso directo entrante
Timbre personalizable
No molestar
E911
ENUM
Recepcin y Envo de FAx
Lgica de extensiones Flexible
Listado de directorio Interactivo
Respuesta de Voz Interactiva(IVR)
Agentes de llamada Locales y Remotos
Macros
Msica en Espera
Msica en Espera en transferencia
Sistema de MP3 configurable
Control de Volumen
Marcador Predictivo
Privacidad
Protocolo de establecimiento abierto
(OSP)
Conversin de protocolo
Captura de Llamadas
Extensiones mviles
Enrutamiento por Indetificador de
llamada
Mensajera SMS
Sistema TextToSpeach
Deteccin de Voz
Llamada a tres
Fecha y Hora
Traduccin de Codec
Trunking
Pasarelas VozIP
Asterisk Caracteristicas
CTI(Integracin de Telefona con el
Ordenador):
AGI (Asterisk Gateway Interface)
Monitor de Llamadas Grfico
Sistema de Colas para llamadas
salientes
Marcador Predictivo
Interfaz de Gestin va TCP/IP
Escalabilidad:
TDMoE (Time Division Multiplex over Ethernet)
Latencia Cero
Page 69
Asterisk Caracteristicas
Codecs de
Audio:
ADPCM
G.711 (A-Law & -Law)
G.723.1 (sin intervenir en la comunicacin)
G.726
G.729 (bajo licencia)
GSM
iLBC
Linear
LPC-10
Speex
Protocolos:
IAX (Inter-Asterisk Exchange)
H.323
SIP (Session Initiation Protocol)
MGCP (Media Gateway Control Protocol
SCCP (Cisco Skinny)
Page 70
DMS100
EuroISDN
Lucent 5E
National ISDN2
NFAS
Full supported:
Non-Fully Supported:
Unistim (Nortel)
Page 71
Page 72
Page 73
GNU/Linux 2.x
MacOSX 10.x
Open Solaris
BSD
Page 74
Puertos FXS: Estos interfaces que integra el Asterisk es utlizado para que
se puedan conectar extensiones analgicas al Sistema. Para establecer
estar conexiones se pueden utilizar las tarjetas TDM400P de Digium o bien
tarjetas TE110P o TE410P conectadas con Bancos de Canales. Conectar
terminales analogicas.
Page 75
X100P
(1 FXO)
RTPC
TDM400P
(4 FXO)
Banco de Canales
(modo FXO)
Page 76
TE110P
(30 FXO)
ASTERISK
TDM400P
(4 FXS)
TE110P
(30 FXS)
Banco de Canales
(modo FXS)
Adems del tipo de sealizacin, los interfaces RDSI pueden funcionar en modo
NT(Network Termination) o TE(Terminal Equipment).
Modo TE: En Este modo, Asterisk puede conectarse con interfaces RDSI (BRI o
PRI) o con Centrales Digitales Tradicionales que tengan conexin RDSI de foma
esclava.
Modo NT: En este modo el Asterisk puede conectarse con Centrales Digitales
Tradicionales que tengan conexin RDSI de forma Maestro o con extensiones
Digitales.
Page 77
Terminales
RDSI
ASTERISK
RED RDSI
RDSI-PRI
Modo TE
RDSI-BRI
Modo TE
RDSI-BRI
Modo NT
RDSI-BRI
Modo NT
RDSI-BRI
Modo TE
PBX con
extensiones RDSI
Page 78
RDSI-PRI
Modo NT
Page 79
Asterisk mantiene una tabla con sus clientes SIP (algo como una tabla de
enrutamiento online), tambin como es agente entrega esta informacin a
otros Asterisk o a algn SIP Proxy Server.
La autenticacin se hace:
Page 80
Page 81
RTB
RTB
Terminal IP
Pasarela RTB
Terminal IP
Terminal Trad.
Servidor de MultiConferencia
Terminal IP
Servidor de Buzn de Voz
Soft Switch
Banco de Canales
Page 82
Pasarela RTB
Cliente / Servidor Voz IP
Aplicaciones de Telefona:
+Multiconferencia
+IVR
+Buzn de Voz
+Msica en Espera
+...
Terminal IP
Terminal Trad.
Instalando Asterisk
Da #4
Page 83
Page 84
Preparando el sistema
Page 85
Preparando el sistema
uname -r
Page 86
Paquetes de Asterisk
Page 87
DAHDI
Page 88
Descargando Asterisk
wget -c http://downloads.digium.com/pub/asterisk/asterisk-1.6current.tar.gz
wget -c http://downloads.digium.com/pub/asterisk/asteriskaddons-1.6-current.tar.gz
wget -c http://downloads.digium.com/pub/telephony/dahditools/dahdi-tools-current.tar.gz
wget -c http://downloads.digium.com/pub/telephony/dahdilinux/dahdi-linux-current.tar.gz
wget -c http://downloads.digium.com/pub/libpri/libpri-1.6current.tar.gz
Page 89
./configure
Page 90
make menuselect
Y para instalarlo:
make
make install
make samples
Page 91
cd ../asterisk-1.6.22
make
make clean
make install
./configure
make menuconfig (opt)
cd dahdi-tools-current
make install
./configure
make samples
make
make config
make install
make config
cd ../asterisk-addons-1.6.7
make clean
cd ../libpri-1.6.7 (opt)
./configure
make
make install
make install
make samples
Page 92
DAHDI la instalacin
Page 93
make distclean
make clean
Binario Asterisk:
Mdulos de Asterisk:
ls /var/lib/asterisk/sounds
ls /usr/lib/asterisk/modules
Voces pregrabadas:
ls /usr/sbin/asterisk
ls /var/lib/asterisk/sounds/es
ls /etc/asterisk/ *.conf
Page 94
Directorios de Asterisk
/usr/share/asterisk Directorio donde se guardan las claves RSA, los archivos para
reproducir de musica en espera , los script AGI. en una instalacion desde paquetera
para distribuciones Debian y Ubuntu.
Page 95
Page 96
Asterisk CLI
asterisk r
quit
Page 97
Page 98
Dialplan
Extensiones
Aplicaciones
Contextos
Page 99
Extension
Page 100
Aplicacin
Page 101
Contexto
ej: [entrantes]
Page 102
Dialplan: Arquitectura
Page 103
;Clave de jose
Page 104
Page 105
Conteste el telefono!!
unicall.conf: canales R2
Page 106
Carga de Configuraciones
La configuracin se carga al iniciar Asterisk, por lo que para aplicar
cualquier cambio ser necesario recargarla. Para ello basta con ejecutar el
comando reload en el CLI:
CLI> reload
Dialplan:
Page 107
SIP.conf
La sintaxis es la siguiente:
[general]
variable1=valor1
variable2=valor2
....
register => usuario : password @ servidorregistrar
register => ....
Page 108
SIP.conf Registrar
Page 109
context: contexto por defecto donde entrarn las llamadas entrantes por
SIP.
Page 110
SIP.conf
[nombre] ; contexto
type = friend / peer / user
variable1 = valor
variable2 = valor
Page 111
Page 112
SIP.conf Ejemplo
[pepe] ; usuario
type=friend ; IN/OUT
secret=pepin ; clave
context=internos ; rela dial plan
callerid="pepe perez" <1001>
host=dynamic ; IP del device
nat=yes ; soporte NAT device
canreinvite=no
;disallow=all
;allow=gsm
;allow=ulaw
;allow=alaw
mailbox=1001@default
Page 113
[juan]
type=friend
secret=juanin
callerid="juan perez" <1002>
context=internos
host=dynamic
nat=yes
canreinvite=no
;disallow=all
;allow=gsm
;allow=ulaw
;allow=alaw
mailbox=1002@default
Page 114
IAX.conf
[juan]
type=friend
secret=miclave
qualify=yes
port=4569
transfer=no
host=dynamic
context=interno
callerid=device <1234>
Page 115
IAX.conf
Para pasar un canal IAX a modo trunk, incluir en la definicin del archivo
iax.conf:
trunk=yes
Page 116
Page 117
Page 118
Una extensin es una instruccin que ser seguida por Asterisk, luego de
ser disparada por una llamada entrante o bien por dgitos discados en un
canal, definida en el marco de un contexto.
Ejemplo:
exten => 123,1,Answer()
Ejemplo:
exten => 123,1,Answer()
exten => 123,2,Hangup()
Page 120
Prioridades en Extensions.conf
Ejemplo:
exten => 123,1,Answer()
exten => 123,n,hago algo
exten => 123,n,Hangup()
Prioridades en Extensions.conf
Page 122
Algunos ejemplos:
Page 123
extensions.conf
Page 124
Sintaxis en extensions.conf
Page 125
Contextos y Extensiones
${ }
Page 126
${VARIABLE}
Set()
$[OPERACION]
Page 127
Hemos aprendido:
Page 128
1.1. Configurar en el servidor Asterisk dos canales SIP identificados por los
nombres de los participantes, que tengan tanto la opcin de recibir como efectuar
llamadas. Realizar la configuracin va IP dinmica. Recordar hacer la recarga de
la configuracin cada vez que se efectuen cambios sobre la misma.
1.2. Verificar via la CLI que ambos canales se encuentran configurados tanto
como clientes como proveedores.
Utilizar los comandos: sip show peers y sip show users.
1.3. Configurar el dialplan del servidor Asterisk de maneral tal que al discar los
nmeros <F><C>01 y <F><C>02 haga las llamadas va los canales configurados
en el punto 1.1., respectivamente. Utilizar el contexto [internos].
1.4. Configurar cada softphone de manera tal que se registre en el servidor
Asterisk. Cada usuario deber configurar su propia cuenta (creada en el punto
1.1.) en su softphone. Utilizar nombres descriptivos para identificar fcilmente en
qu PBX est configurado el usuario. Por ejemplo, "<Usuario> en PBX <F><C>".
Page 130
1.8. Verificar va la CLI que las llamadas estn siendo llevadas a cabo.
Utilizar: sip show channels / show channels
1.9. Repetir todos los puntos del 1.1. al 1.8. pero ahora utilizando la PBX
restante. De esta manera, cada participante terminar con dos cuentas en
su softphone, una para cada PBX.
Page 131
Page 132
Contestar la llamada.
Reproducir un archivo.
Colgar la llamada.
Page 133
Page 134
Page 135
[300]
type=friend
host=dynamic
secret=003
disallow=all
allow=alaw
callerid=Jose Cordova<300>
Page 136
disallow=all
disallow=all
allow=ulaw
allow=g729
allow=alaw
allow=gsm
allow=h264
allow=ilbc
allow=speex
allow=h263
Page 137
Page 138
Dialplan interactivo
Page 139
IVR Bsico
[interno]
exten => 101,1,Answer( ) ; contesta la llamada
exten => 101,2,Background(enter-ext-of-person) ; espera digitos y pasa a
la extension en el mismo contexto
exten => 1,1,Playback(digits/1) ; reproduce el dgito 1
exten => 2,1, Playback(digits/2) ; reproduce el dgito 2
Page 140
IVR Basico
[interno]
exten => 4000,1,Answer( )
exten => 4000,2,Background(enter-ext-of-person)
exten => 1,1,Playback(digits/1)
exten => 1,2,Goto(4000,1) ; vuelve al inicio de la extension 4000
exten => 2,1, Playback(digits/2)
exten => 2,2,Goto(4000,1)
Page 141
Timeout de digitos
Timeout de respuesta
Page 142
[interno]
exten => 4000,1,Answer( )
exten => 4000,2,Background(enter-ext-of-person)
exten => 1,1,Playback(digits/1)
exten => 1,2,Goto(4000,1)
exten => 2,1, Playback(digits/2)
exten => 2,2,Goto(4000,1)
exten => i,1,Playback(pbx-invalid) ; llega en caso de digito invalido
exten => i,2,Goto(4000,1)
exten => t,1,Playback(vm-goodbye) ; llega en caso de no recibir
digitos luego de un tiempo (10 seg)
exten => t,2,Hangup()
Page 143
Saltos y Bucles
Page 144
Uso de GOTO
Page 145
Page 146
La aplicacin Dial
Page 147
La aplicacin Dial
Page 148
Usando Dial
Page 149
Page 150
Dial: Recapitulando
[interno]
exten => 4000,1,Answer( )
exten => 4000,2,Background(enter-ext-of-person)
exten => 4001,1,Dial(Sip/juan,10)
exten => 4001,2,Playback(vm-nobodyavail)
exten => 4001,3,Hangup()
exten => 4001,102,Playback(tt-allbusy)
exten => 4001,103,Hangup()
Page 151
Dial: Recapitulando
Page 152
Page 153
Manejo de Variables
Page 154
Manejo de Variables
Asignacin de variables:
Set(Variable=valor)
Global(Variable=valor)
Manejo de cadenas:
Longitud: ${LEN(Variable)}
Concatenacin: ${Variable1}${Variable2}
Page 155
[globals]
JUAN=Sip/juan
PEDRO=Iax2/4010
Page 156
[globals]
JUAN=Sip/juan
PEDRO=Iax2/4010
[interno]
exten => 4000,1,Answer( )
exten => 4000,2,Background(enter-ext-of-person)
exten => 4001,1,Dial(${JUAN},10)
variable JUAN
; hace referencia a la
Page 158
Variables Predefinidas
NoOp ( ${VARIABLE} )
Page 159
Variable ${EXTEN}
Page 160
Coincidencia de Patrones
Permite definir una sola extensin que permita lograr igualar una serie de
posibles valores.
Page 161
_[01] 0 o 1
_[3-7] 3,4,5,6 o 7
Page 162
[globals]
JUAN=Sip/juan
PEDRO=Iax2/4010
TRUNKDESALIDA=Zap/1Dahdi/1
[llamadas-locales]
exten => _9NXXXXXX,1,Dial(${TRUNKDESALIDA}/${EXTEN}:1)
exten => _9NXXXXXX,2,Congestion()
exten => _9NXXXXXX,102,Congestion()
[llamadas-larga-distancia]
exten => _901XXXXXXXXXX,1,Dial(${TRUNKDESALIDA}/${EXTEN}:1)
exten => _901XXXXXXXXXX,2,Congestion()
exten => _901XXXXXXXXXX,102,Congestion()
Page 163
Include
Page 164
[internos]
include => llamadas-locales
include => llamadas-larga-distancia
Page 165
Operadores aritmticos: +, -, *, /, %
[...] , Ejemplo:
exten => 4003,1,Set(COUNT=3)
exten => 4003,2,Set(NEWCOUNT=$[${COUNT} + 1])
exten => 4003,3,SayNumber(${NEWCOUNT})
Page 166
Condicionales
Aplicacin GotoIf()
GotoIf(expresion1?destino1:destino2)
Page 167
Uso de Condicionales
Page 168
Uso de Condicionales
Page 169
While y EndWhile
Page 170
While() y EndWhile()
Page 171
Page 172
Correo de Voz
Page 173
La aplicacin Voicemail
Page 174
Configuracion de Voicemail
Voicemail.conf
[default]
Extensions.conf
Page 175
Ejemplo de Voicemail
[stations]
Exten => _NXX,1,Dial(SIP/${EXTEN},20)
Exten => _NXX,n,Voicemail(${EXTEN},u)
[voicemail]
Exten => 700,1,1VoicemailMain(${CALLERID(num)})
El codigo anterior se ha definido en el extensions.conf, Alguien puede
explicarlo?
Page 176
La aplicacin Record
Hace unos dias surgi esta duda en el curso y siempre es mas facil grabar
con esta aplicacin que usar otra y buscar convertir el archivo y copiarlo
para Asterisk.
Pruebe:
Page 177
Sala de Conferencias
Administrar conferencias.
Meetme.conf
[rooms]
Page 178
Sala de Conferencias
extensions.conf
Page 179
Por otra parte, si queremos definir una extensin 0 en el grupo vip: FC10.
1.1. Definir dos canales SIP (o IAX2) adicionales, llamados [jefe] y [vicejefe].
1.2. Crear un contexto [vips] y definir una extensin para cada uno de los canales,
FC10 y FC11, en este contexto.
1.3. Permitir que las extensiones FC10 y FC11 se puedan llamar entre s y adems
puedan llamar a las extensiones del grupo internos, va la utilizacin de includes. A
su vez, las extensiones pertenecientes a internos no deben poder realizar llamadas
a las del grupo vips.
Page 180
Page 181
Page 182
Page 183
Capacitacion en VOIP
Page 185
Capacitacion en VOIP
Page 186
Manejo de AstDB.
Lenguaje AEL.
Capacitacion en VOIP
Seguridad en VOIP
Dimensionamiento de Red
Page 187
Capacitacion en VOIP
VLANs.
Tuneles VPN.
Page 188
TrixBOX
Elastix
FreePBX
AsteriskNOW