Anda di halaman 1dari 192

ASTERISK IP PBX

CONTENIDO
QUE ES ASTERISK?
ASTERISK ACTUALMENTE.
QUE OFRECE ASTERISK
QUE ES DIGIUM
COMO ES LICENCIADO ASTERISK
EL PROYECTO ZAPATA
PRODUCTOS BASADOS EN ASTERISK
ESCENARIOS PARA ASTERISK

CONTENIDO
ARQUITECTURA DE ASTERISK?
COMPONENTES PRINCIPALES
CORE
APLICACIONES
RECURSOS
CLI
CODECS
FORMATOS
PROTOCOLOS
CDR
CANALES

QUE ES ASTERISK?
Es una aplicacin de cdigo abierto de una
central telefnica (PBX).
Asterisk tiene licencia GNU/GPL.
Su creador es Mark Spencer .
Asterisk tambin funciona en BSD, MacOSX, Solaris y
Microsoft Windows aunque la plataforma que mejor lo
soporta es Linux.

QUE ES ASTERISK?

Que es: Software Libre para manejo de un PBX con


funcionalidad de ACD (Distribuidor automtico de llamadas)
Cuando Comenz: En el ao 1999
Donde: Linux Support Services (Ahora
Digium) - USA

QUE ES ASTERISK?

Es software. Exclusivamente software y es libre.


Se ejecuta en un PC estandar (arquitectura
x86,x86_64, ppc)
Soporta todas las funcionalidades de las centralitas
tradicionales y muchas ms !

QUE ES ASTERISK?
Asterisk es una aplicacion servidor

PROTOCOLOS

que permite que terminales clientes

AIX2
SIP
SKINNY
MGCP
H.323

se conecten a el.
Despues de haberse conectado,
los clientes pueden transmitir voz en
tiempo real con la utilizacion
de protocolos y codecs
soportados por asterisk.

CODECS DE AUDIO

G.729
GSM
ILBC/Speech
G.722/G.723
G.711a/G.711u

QUE ES ASTERISK?

IAX2

SIP

ASTERISK ACTUALMENTE
Asterisk se convierte en principal producto de VoIP en el
mundo.
Soporta casi todo tipo de protocolos y codecs
utilizados en la VoIP.

Surgen telefonos y terminales IP


compatibles con SIP.

ASTERISK ACTUALMENTE
Asterisk lanza el protocolo IAX Lo cual
facilita la configuracion de extensiones
remotas.

Surge ASTRICON (convencin


internacional de usuarios de
Asterisk.)
Cada vez hay mas empresas dedicadas a la creacion
de software
con Asterisk

QUE ES DIGIUM?
Es el principal
mantenimiento

desarrollador

de Asterisk

de

su

Desarrollador y fabricante de Hardware de PBX IP


Ofrece soporte para Asterisk y para Hardware
http://www.digium.com
Existen otros fabricantes de Hardware soportado por
asterisk como:
- Sangoma
- Voicetronix
- OpenVOx

COMO ES LICENCIADO
ASTERISK?

Asterisk tiene licencia GPL


Mark Spencer junto con otros programadores ha
contribuido a corregir errores, aadir novedades
y funcionalidades.
Asterisk Business Edition
OEM (Original Equipment Manufacturer)

QUE ES GPL?

Que significa: General Public License


Que es: Licencia para Software Libre
En que consiste:
Libertad de ejecutar el programa, con cualquier propsito.
Libertad de modificar el programa (acceso al cdigo fuente).
Libertad de redistribuir copias.

EL PROYECTO ZAPATA
ZAPTEL
Que significa: Revolucin en la tecnologa de telefona sobre PC,
asociado a la revolucin de Emiliano Zapata
Para que sirve: Para conectarse con la PSTN o permitir el uso de
telfonos tradicionales analgicos.
Quien lo cre: Jim Dixon. Primera tarjeta IDSN abierta.
Ahora de llama: DAHDI
DIGIUM ASTERISK
HARDWARE DEVICE INTERFACE

PRODUCTOS BASADOS EN
ASTERISK

Las compaas de telecomunicaciones de todo el mundo empiezan a utilizar


Asterisk como sistema nativo de VoIP junto con SER Sip Express Router en
lugar de otras marcas que ofrecen PBX propietarios como Alcatel, Cisco,
Avaya o Nortel.

ARQUITECTURA DE
ASTERISK CORE

ARQUITECTURA DE
ASTERISK CORE

Es el corazn de Asterisk
Carga los mdulos dinmicamente
Provee sincronismo
Lee la configuracin del sistema

ARQUITECTURA DE
ASTERISK CORE

Ejecuta las aplicaciones


Procesa los requerimientos del Dial Plan
Crea las instancias de los canales
Convierte entre formatos, codecs y protocolos

ARQUITECTURA DE
ASTERISK MODULOS
Asterisk es modular
/usr/lib/asterisk/modules
Los
mdulos
adicionales

proveen

funcionalidades

El administrador decide que mdulos cargar


en el momento de la instalacin.
Pueden contener:
Recursos
Aplicaciones
Comandos cli
/etc/asterisk/modules.conf

ARQUITECTURA DE
ASTERISK
APLICACIONES
Se usan para conectar las llamadas de entrada
con las de salida u otros usuarios de Asterisk:
Se cargan dinmicamente en el core.
Pueden aceptar/requerir parmetros
Pueden leer y establecer variables
Algunas usan
/etc/asterisk

archivos

de

configuracin

en

ARQUITECTURA DE
ASTERISK
APLICACIONES
Reproducir sonidos (palyback, background)
Aceptar interaccin con el teclado (read)
Contestar una llamada (Answer)
Colgar la llamada (Hangup)
Saltos condicionales (GotoIf)
Generar llamadas nuevas (Dial)
Hacer conferrencia (MeetMe)
Grabar la conversacion / llamada (MixMonitor)
Grabar un sonido (Record)
Autenticar usuarios (Authenticate)

ARQUITECTURA DE
ASTERISK RECURSOS

Se cargan estticamente en el core.


Algunos recursos son:
MHO
Call recording
Call Park
Call PIckup

ARQUITECTURA DE
ASTERISK CLI

Interfaz humana con Asterisk


Permite:
Consultar el estado del sistema

Recargar y reiniciar el sistema

Actualizar configuraciones

Mostrar ayuda en comandos y aplicaciones

ARQUITECTURA DE
ASTERISK CANALES
Es una lnea telefnica en forma de circuito de voz digital.
Que puede ser:
Una seal telefnica en un sistema POST.
Ejemplo:
Chan_zap o chan_dahdi
Es una combinacin de CODECS y
sealizacin (GSM con SIP, Ulaw con IAX)
Ejemplo:
Chan_sip, chan_iax
Canales internos de Asterisk:
Ejemplo: chan_agent, chan_local

protocolos

de

ARQUITECTURA DE
ASTERISK CDR

Call Detail Record


El resgistro se soporta en varios tipos de formatos
cdr_csv.so, cdr_addon_mysql entre otros.
/etc/asterisk/cdr*.conf

ARQUITECTURA DE
ASTERISK CODECS
Son utilizados para colocar tantas llamadas como
sea posible en una red de datos. Lo cual se hace
codificando la voz para que utilice menos ancho de
banda.
Los codecs que usa Asterisk son:
G.711 ulaw (usado en USA) (64 kbps)

G.711 alaw (usado en Europa y Brasil) (64 kbps)

G.729 Necesita una licencia (8 kbps)

GSM (12 13 kbps )

ARQUITECTURA DE
ASTERISK CODECS

ARQUITECTURA DE
ASTERISK CODECS G711

Codec fundamental en la PSTN


8 bits * 8000/segundo = 64 kpbs
Los dems codecs son derivados de G711
Mnima carga para la CPU
Mxima carga para la red

ARQUITECTURA DE
ASTERISK CODECS G729a

Muy bajo ancho de banda requerido


Mejor calidad de sonido
Se debe pagar el licenciamiento
Muy exigente en el uso de CPU
Muy liviano para la red (8Kbps)

ARQUITECTURA DE
ASTERISK CODECS GSM

Muy usado (preferido) en Asterisk


Muy buena calidad de sonido
Libre uso
Exigente en uso de CPU
Liviano para la red (13 kbps)

ARQUITECTURA DE
ASTERISK FORMATOS
Manejan la lectura y escritura de diferentes formatos
de archivos.
Usados para grabacin y reproduccin
Algunos de los formatos que soporta Asterisk:
Wav
Gsm
Vox

ARQUITECTURA DE
ASTERISK PROTOCOLOS
Se requieren para establecer las conexiones entre
telfonos,
Determinar el punto de destino y asuntos de
sealizacin como tono, tiempo de timbre,
identificador de llamadas, entre otros.
Los protocolos
Asterisk son:

ms

conocidos

que

SIP (Sesion Initiated Protocol)


H323
IAX V1 y V2 Ideal para trunking y NAT

soporta

PROTOCOLO SIP

SESSION INITIATION PROTOCOL (SIP)


Protocolo de IETF para Voz IP, texto sesiones y multimedia.
No fue diseado principalemte para telefona.
Sip solo es una forma de lograr que dos extremos se
conecten, acuerden una forma de comunicacin y lo hagan.
Se encarga del medio de transporte de los datos por RTP y
SDP.

PROTOCOLO SIP
Sealizacin en puerto UDP 5060
Transporte de medios via RTP
- Usa un nmero aleatorio de puerto UDP
- Asterisk por defecto usa los puertos 10001
20000
No se lleva bien con NAT
Muy bien soportado:
- la mayora de telfonos y ATA's hablan SIP
- Muchos ITSP's usa SIP.

PROTOCOLO IAX
INTER ASTERISK EXCHANGE
Creado y estandarizado por Asterisk
Utiliza el puerto 4569 UDP
Caractersticas principales:
- Media y sealizacin por el mismo flujo de datos.
- trunking
. cifrado

PROTOCOLO IAX
VENTAJAS
NAT:
-Al enviar tanto sealizacin como streamming por
el mismo flujo de datos (flujo UDP), se evitan los
problemas derivados del NAT.
- No es necesario abrir rangos de puertos para
RTP.
TRUNKING:
- Es posible enviar varias conversaciones por el
mimo flujo, lo cual supone un importante ahorro
de ancho de banda (overhead de las capas IP y
transporte UDP)

PROTOCOLO H323
Es
un
estandar
del
ITU
(international
Telecomunications
Union)
que
provee
especificaciones para ordenadores, sistemas y
servicios multimedia por redes que no proveen
calidad de servicio.
Existe control y sealizacin para negociar las
posibilidades de la comunicacin:
- Negociacion de codecs
- Verificacion de la posibilidad de establecer
canales 'media'
- Control de secuencia
Para el streaming, se basa como SIP en RTP(RTCP

PROTOCOLO H323
VENTAJAS
Implemeta QoS de forma interna.
Control de conferencias, recursos.
Soporta conferencias de forma nativa de video y
datos.
SIP se usa mas actualmente que H323
SIP es derivado de H323

INSTALACION DE CENTOS Y ASTERISK

INSTALACION

INICIO DE
INSTALACIN
Al iniciar desde el CD 1 o
el DVD de instalacin se
observan
las
siguientes
opciones:
Pulse
<enter>
para
continuar en la instalacin
en modo grfico (instalador
Anaconda). En caso de que
no funcione se puede
intentar la instalacin en
modo texto, no descrita en
este manual.

INSTALACION

VERIFICACIN DE
MEDIOS
Seleccione
OK
si
desea comprobar su DVD
o CDs por errores, de lo
contrario seleccione Skip.
Si ya ha comprobado sus
CD/DVD en el pasado no
es necesario volverlos a
comprobar.

INSTALACION

PANTALLA DE
BIENVENIDA
Esta
es
pantalla
bienvenida.

la
de

INSTALACION

SELECCIN DE
IDIOMA DE
INSTALACIN
Seleccione
de
la lista el idioma
del instalador y
pulse siguiente

INSTALACION

SELECCIN DE
IDIOMA DE
TECLADO
Seleccione de la
lista
el
teclado
adecuado
a
su
lenguaje
y
distribucin.
Se
recomienda
US
international
para
teclados en ingls.
Pulse siguiente

INSTALACION
PARTICIONAMIENTO DEL
DISCO DURO

Se
selecciona
la
opcin
Remover
particiones
en
dispositivos
seleccionados y crear
disposicin, de modo que
el
instalador
borrar
cualquier
particin
existente y configurar
las particiones y LVM's
necesarios por defecto.
Se pulsa siguiente

INSTALACION

COMPROBACIN DE
PARTICIONAMIENTO

El instalador le
advertir
antes
de borrar todas
las
particiones
existentes,
en
caso
de
que
existan, pulse S

INSTALACION

CONFIGURACI
N DE RED

En
esta
pantalla
se
observa
el
dispositivo de red
en
este
caso
eth0, se pulsa el
botn Modificar

INSTALACION

CONFIGURACIN ETH0
de la ventana Edit interface
elegimos Manual configuration
e introducimos la direccin IP
con su prefijo y desactivamos
enable IPv6 support. Pulsamos
Aceptar.

INSTALACION

CONFIGURACIN
COMPLEMENTARIA
ETH0
Activamos la opcin
de configurar el nombre
de host a Manualmente,
y llenamos las casillas
correspondientes
(Nombre de host, Puerta
de enlace, DNS primario,
DNS
secundario).Pulse
siguiente.

INSTALACION

CONFIGURACI
N ZONA HORARIA
Seleccionamos de
la lista o dando clic
en el mapa segn
nuestra
zona
geogrfica
mas
prxima.
Desactivamos
la
opcin el reloj del
sistema usa UTC y
pulsamos siguiente.

INSTALACION

CONFIGURACI
N CONTRASEA
DE ROOT
En esta ventana
definimos
la
contrasea para el
usuario
root.
El
sistema validar que
ambos
campos
coincidan.
Pulse
siguiente.

INSTALACION

CATEGORAS DE
PAQUETES
En esta ventana
activamos la opcin
Personalizar ahora de
modo que elegimos en el
momento los paquetes a
instalar.
Se desactivan los
escritorios o Desktop y
activamos la opcin
Server. Pulse siguiente.

INSTALACION

SELECCIN DE PAQUETES
Dentro de los paquetes necesarios , adems de los
predeterminados, seleccionamos los siguientes para poder
ms adelante compilar, instalar, configurar y ejecutar
asterisk, entre otros aspectos:
Aplicaciones
- Internet basada en texto Lynx
(paquetes opcionales)
Desarrollo - Bibliotecas de desarrollo (dejar activada)
Desarrollo - Herramientas de desarrollo (dejar activada)
Desarrollo
- Herramientas de desarrollo - gccobjc
(paquetes opcionales)

INSTALACION

SELECCIN DE PAQUETES
Servidores - Servidor web (dejar activada)

Servidores Base de datos my sql

Servidores - Servidor Web - php-pgsql - php-mysql

Sistema Base - Herramientas del sistema (dejar activada)

Sistema Base - Herramientas del sistema - IPtraf (paquetes


opcionales)

INSTALACION

SELECCIN DE PAQUETES
Sistema Base - Herramientas del sistema - Mrtg (paquetes
opcionales)

Sistema Base - Herramientas del sistema - net-smtp-utils


(paquetes opcionales)

Sistema Base - Herramientas del sistema - systat (paquetes


opcionales)

INSTALACION

Se recomienda de las herramientas


del sistema quitar bluez-gnome bluehcidump y vnc; se recomienda tambin
quitar el soporte de red mediante
discado.

INSTALACION

INSTALACION

INSTALACION

INSTALACION

COMIENZO DEL
PROCESO DE
INSTALACIN
Una
vez terminamos
de introducir las opciones
de instalacin estamos
listos para iniciar el
proceso, pulse siguiente.

INSTALACION

INSTALACIN
El instalador ejecutar
las opciones elegidas
durante el asistente (esta
paso
durar
algunos
minutos...) Hasta que el
sistema indica que la
instalacin
ha
sido
completada. Extraiga el
medio de instalacin y
pulse reiniciar.

INSTALACION

INSTALACION

INSTALACION

CONFIGURACIN INICIAL
Al iniciar aparece una
ventana en texto del agente de
configuracin. Entramos a la
configuracin del cortafuegos.

INSTALACION

FIREWALL
Es importante dejar en
nivel de seguridad en
Deshabilitado, (usando
las teclas de direccin y
con la barra
espaciadora). Tambin es
importante dejar en
Deshabilitado El servicio
SElinux. Pulse Aceptar.

INSTALACION

SERVICIOS
En
la configuracin de
servicios, desactivamos (de
nuevo
con
la
barra
espaciadora) los siguientes:
cups
(Sistema
de
impresin comn de Unix)
avahi
(Configuracin
Automtica
de
Redes
IP
locales)
bluetooth
(conexin
inalambrica de corto alcance)

INSTALACION

Importante activar los siguientes


servicios.
sendmail
(Agente de transporte de
correo)
mysqld (Base de datos MySQL)
sshd (Conexin a consola segura)
httpd (Servidor HTTP Apache)
nfs (Sistema de Archivos de Red)

INSTALACION

Pulse ok y luego Salir. El sistema lo


llevar a la consola. En cualquier
momento puede volver a configurar
esta pantalla con el comando
# setup

INSTALACION

Si desea actualizar los paquetes a


la ltima versin y si cuenta con
conexin a internet, es necesario
utilizar el siguiente comando.

# yum -y update

INSTALACION

Es posible que al reiniciar haya cambiado


la versin de su kernel.
Para comprobar la versin de su sistema
utilice los comandos informativos:
# cat /etc/issue
# uname -a
Es necesario actualizar (en caso de
necesitarlo) antes de instalar asterisk para no
tener que recompilar zaptel mas adelante.

INSTALACION

Importante antes verificar que los


siguientes paquetes queden
instalados:
bison
bison-devel
ncurses
ncurses-devel
zlib
zlib-devel

openssl
openssl-devel
gnutls-devel
gcc
gcc-c++
make

CONSIDERACIONES DE
DESEMPEO
Numero mximo de conexiones concurrentes
Porcentaje de trfico que requiere el DSP (procesador
digital de seal) g.729, GSM etc.
Conferencias soportadas? Que tan activas??
Cancelacin de eco por software o por hardware?
Scripts externos invocados por asterisk?
Otras aplicaciones en la misma mquina??

REQUERIMIENTOS DE
HARDWARE

HARDWARE PARA
CONECTARSE A LA PSTN

TARJETAS
DE INTERFAZ ANALOGA
TDM
Mdulos FX0 (rojos)
Permite conectar lneas
Externas.
Modulo FXS (verdes)
Permite conectar telfonos
analgicos.

DE INTERFAZ DIGITAL

Primario E1
30 conversaciones por
cada primario.
2 primarios
60
conversaciones
simultaneas.

HARDWARE PARA
CONECTARSE A LA PSTN

GATEWAY

TARJETAS DE RED

Mdulos FXS
Mdulos FXO
Permite conectar telfonos
Analgicos y lneas anlogas
convencionales

Lneas IP

ARCHIVOS DE
CONFIGURACION

Permite administrar y configurar funcionalidades de la


PBX:
Los tipos son:
Configuracin Maestra

Configuracin Canales

Dial Plan

Comandos Dial Plan

Sin categora

ARCHIVOS DE
CONFIGURACION

Configuracin canales:
agents.conf
iax.conf
sip.conf
zapata.conf
chan_dahdi.conf

ARCHIVOS DE
CONFIGURACION

Dial Plan:

Extensions.conf
Extensions.ael : Lenguaje de asterisk
parking.conf viene renombrado como features.conf

ARCHIVOS DE
CONFIGURACION
Comandos Dial Plan
- Alarmreceiver.conf
- enum.conf : ser contactado en cualquier parte del mundo
con el mismo nmero
- dundi.conf : permite buscar y compartir planes de
marcacin entre servidores IP-PBX
- festival.conf : text to speesh
- indications.conf : Definicin de tonos segn el pas.
- meetme.conf : conferencia
- musiconhold.conf : musica en espera
- queues.conf : manejo de colas
- voicemail.conf : manejo de correo de voz

FLUJO DE LLAMADA

Cada conversacin implica 2 llamdas desde el punto de


vista de Asterisk: una de telfono origen a Asterisk y otra de
Asterisk al telfono destino
Secuencia (SIP/sipuser1 -> SIP/sipuser2)
El telfono origen es descolgado y el usuario marca la
extensin 6002, se establece/negocia el codec a usar.
Ahora el telfono tiene una llamada activa en el canal SIP
El canal SIP pasa el destino solicitado (6002) al ncleo de
pbx.

FLUJO DE LLAMADA
El canal SIP pasa el destino solicitado (6002) al ncleo de pbx.

Asterisk busca la extensin en el dial plan de marcacin

La configuracin de la extensin invoca la aplicacin Dial con


destino SIP/sipuser2

La aplicacin Dial solicita a Asterisk crear una nueva llamada


SIP a el usuario sipuser2

Nuevamente se negocia/establece el codec, puerto para la


nueva llamada.

Hasta ahora asterisk tiene 2 llamadas independientes

La palicacin Dial hace bridge y Asterisk hace transcoding (si es


necesario)

Ahora los 2 usuarios pueden hablar

La aplicacin Dial termina cuando alguno de los 2 cuelga, la


llamada es transferida, etc.

DIAL PLAN

Provee la lgica del sistema


Es un listado de instrucciones
- Que hacer cuando entra una llamada
- Que hacer cuando sale una llamada
- Que hacer cuando se digitan teclas

ESTRUCTURA Y SINTAXIS DEL DIAL PLAN

Contextos

Extensiones

Prioridades

Aplicaciones

CONTEXTOS

Son la base organizacional dentro del dial plan

Proveen seguridad

Sintaxis [nombre-contexto]

EXTENSIONES

No es solo la tpica extensin telefnica.

Es un conjunto de acciones

No se deben atar a un punto terminal fsico

Se pueden usar nombres o nmeros

Sintaxis:

Exten => nombre,prioridad,aplicacion

PRIORIDADES

Dentro de cada extensin, cada accin tiene una


determinada prioridad numrica.

Cada evento sucede en un orden numrico

Exten => 123,1 ----haga algo


Exten => 123,2 ----haga algo ms
Exten => 123,3 ----haga algo diferente
Existe una prioridad principal llamada n, esta incrementa
automticamente la prioridad en 1.

Exten => 123,1, haga esto


Exten => 123,n, haga algo diferente

DEFINICION DE
EXTENSIONES SIP
Los canales/usuarios SIP se definen en el archivo sip.conf con
entradas como:

[general]
context=default Type= friend|peer|user
binfport=5060 host=dynamic|hostname|ip
disallow=all
allow=ulaw
allow=gsm
[sipuser1]
type=friend
host=dynamic
secret=12345

CLI>sip reload
CLI>sip show peers
CLI> sip show users

USER PEERS FRIENDS

Son los tres dispositivos externos que soporta asterisk:

USERS:

Solo permite sacar llamadas


PEERS:

Solo permite recibir llamadas


FRIEND:

Permite sacar y recibir llamadas.

USERS
[500]
type=user
host=dynamic
context=default
allow=all
secret=500
qualify=yes
Si la Ip es dinmica o el registro no conoce la IP, se debe enviar
peridicamente register al servidor.

Se hace adicionando la sentencia de register en los archivos sip.conf o


iax.conf

En sip.conf par saltarse la autenticacin se le agrega el parmetro:


insecury=very

PEERS

No usan context, reciben llamadas desde la PBX para enviar las


llamadas a los pares (peers) se para la aplicacin Dial.

Si un peer remoto se est registrando


host=dinamic.

en la PBX se digita

Los peers tienen username.


username=peername
Manejan el qualify, el cual constantemente dice si un peer esta activo
o no.

Se hizo para mantener los puertos abiertos cuando hay un firewall de


por medio.
Es una herramienta de debug.
Puede tener el valor de yes o la mxima latencia antes de considerar
al peer inalcanzable (milisegundos).

PEERS

Mailboxes tienen un parmetro que le permite acceder a un buzn


asignado.

Ejemplo:
[mypeer]
type=peer
username=carem
secret=mysecret
host=192.168.123.1
qualify=2000
mailbox=1101@default

DEFINICION DE
EXTENSIONES zap
Los canales ZAP necesitan de la configuracin de 2 archivos:
/etc/dahdi/system.conf:
fxoks=1,2 (para puertos FXS)
fxsks=3,4 (para puertos FXO)
/etc/asterisk/chan_dahdi.conf:
[channels]
context=default
group=1

group=2

context=default

context=default

signalling=fxo_ks

signalling=fxs_ks

channel=> 1

channel=> 2

ASOCIACION
EXTENSION/CANAL FXS
/etc/asterisk/extensions.conf
[interno]
exten=>6003,1,Dial(DAHDI/1,20)
exten=>6004,1,Dial(DAHDI/2,20)
/etc/init.d/asterisk stop
/etc/init.d/dahdi stop
/etc/init.d/dahdi start
/etc/init.d/asterisk start
CLI>zap show status
CLI>zap show channels

ASOCIACION
EXTENSION/CANAL FXO

/etc/asterisk/extensions.conf
[local]
exten=> _9XXXXXXX,1,Dial(DAHDI/g1/${EXTEN:1},20)
[largadistancia]
exten=> _90[975]XXXXXXX,1,Dial(DAHDI/g2/${EXTEN:1},20)
CLI>extensions reload
CLI>show dialplan local

PATTERN MATCHING

Los patrones siempre empiezan con underscore _

X = 0-9
Z = 1-9
N = 2-9
Match desde 000 hasta 999

_XXX,NoOP(${CALLERID})
Los rangos de nmeros pueden encapsularse dentro de
parntesis cuadrados

[0-5] hace match con los nmeros desde el 0 hasta el 5


[0-4,6,8] hace match con los nmeros desde 0 a 4 y el 6 y 8.

PATTERN MATCHING (EJERCICIO)

Realice los patrones para los siguientes rangos numricos:


1. 300 hasta 399 (1 pto)
2. 110 hasta 139 (1.5 pto)
3. de 550 hasta 559 y de 580 hasta 589 (2.5 pto)
4. Cualquier operador celular en Colombia, los nmeros de
abonado comienzan en 2.
Tigo: 300-302 (1.5 pto)
Comcel: 310-314 (1.5.pto)
Movistar: 316-317 (1.5 pto)

PATTERN MATCHING (wildcard)

El Wildcard nos permitir hacer match con cualquier longitud de


cadena

El carcter del wildcard es un punto .

Si se requiere hacer match con una cadena que comience con


500 hasta 599 de cualquier longitud
exten => _5XX.,1,NoOp(${EXTEN})
Se puede hacer mach con cualquier patrn si se usa _.

exten => _.,1,NoOp(${EXTEN})


CUIDADO!!!!!!!!!!!!!!!!!!!!!!!!!!
Hace match incluyendo extensiones especiales i, t, h

Causa loops

Variable ${EXTEN}

Contiene el nmero de la extensin que fue digitada


Por ejemplo si se tiene un patrn _XXX,1,SayDigits(${EXTEN})
La aplicacin SayDigits leer los nmeros que se han digitado.
A veces se requiere manipular esta variable extrayendo cierto
nmero de dgitos del frente del nmero de la extensin.
Para hacer esto se usa la sintaxis
${EXTEN:x} x es el nmero de dgitos
${EXTEN} = 93331212
${EXTEN:1}= 3331212

Variable ${EXTEN}

Si el valor de x es negativo, el valor de retorno ser la cantidad de


dgitos contados desde el final de la cadena digitada
Ejemplo:
exten => _XXX,1,SayDigits({$EXTEN:-1})
se digit 12345 y se reproducir 5.

Extensiones especiales

Asterisk maneja un conjunto de extensiones especiales,


para situaciones especiales como errores en la marcacin.

Se llaman con una sola letra.

viene de start

Cuando una llamada entra y no se especifica a donde ir,


enva a sta extensin
i

viene de invalido

Cuando la persona quien llama introduce un dgito que


no haga match en los contextos se dispara ste contexto.

Extensiones especiales

viene de timeout

Cuando quien llama se demora antes de introducir la


respuesta la llamada se envia a la extensin t.
Las aplicaciones que lo disparan son Background y
Waitexten
T viene de absolute timeout

Cuando el tiempo que ha corrido desde que se contesto,


la llamada es superior al establecido, se enva la llamada a
la extensin.

Extensiones especiales

viene de hangup

Cuando la llamada se cuelga se dispara sta extensin.


O viene de operador

Cuando se est en voicemail y se digita 0 la PBX salta a


sta extension.
Para configurarlo se debe setear el parmetro
operator=yes definido para cada voicemail de usuario.

APLICACIONES

Cada prioridad en el dial plan llama a una aplicacin


especfica

Las aplicaciones

contestan una lnea timbrando


Reproducen sonidos
Obtienen informacin

APLICACIONES

ANSWER()
Contesta una extensin que est timbrando

Exten => 123,1,Answer()

No siempre se coloca.

APLICACIONES

PLAYBACK()
Esta aplicacin reproduce un archivo de voz

Ignora la entrada de tonos DTMF

El parmetro es el nombre del archivo

Exten => 123,2,Playback(hello-world)

Los formatos que reproduce son gsm, vox. Wav

Por
defecto
stos
/var/lib/asterisk/sounds

archivos

estn

en

APLICACIONES

HANGUP()
Cuelga el canal activo

Evita estados indeseados en el plan de numeracin.

Es buena costumbre utilizarla

En lneas anlogas siempre se utiliza.

UNIENDO PIEZAS

Exten => 123,1,Answer()

Exten => 123,n,Playback(hello-world)

Exten => 123,n,Hangup

APLICACIONES

DIAL PLAN INTERACTIVO


El usuario introduce informacin a travs de su teclado.

Los tonos son DTMF

Asterisk interpreta los tonos y toma decisiones con base


en ellos

APLICACIONES

BACKGROUND()
Similar al Playback, pero acepta tonos dtmf, detiene la
reproduccin de un archivo de voz

Asterisk envia la llamada a la extension traducida de los


tonos recibidos

La llamada se enva apenas encuentre un unambiguos


match

exten => 123,1,Answer()


exten => 123,n,Background(menu)
exten => 1,1,Playback(digits/1)
exten => 2,1,Playback(digits/2)

UNAMBIGUOS MATCH

exten => s,1,Answer()


exten => s,n,Background(menu)
exten => 1,1,NoOP(1)
exten => 11,1,NoOP(11)
exten => 111,1,NoOP(111)
exten => 1111,1,NoOP(1111)

BCKGROUND Y TIMEOUT

Pueden ocurrir 2 tipos de timeout:

Response timeout

Es el mximo tiempo despus de que se ha reproducido


el men y no se ha recibido ninguna respuesta (segundos)
Digit timeout

Mximo tiempo entre dgitos


Absolute timeout

Como indicar la mxima duracin de la llamada.

APLICACIONES

WaitExten()
Sirve para dar ms tiempo a la persona que marca una
opcin.

Se usa despus del Background

El parmetro es el nmero de segundos

Puede ser un nmero decimal

Exten => 123,n,WaitExten(1.5)

APLICACIONES

VOICEMAIL
Asterisk maneja dos aplicaciones:
VoiceMail(): permite dejar un mensaje en un buzn
especificado

VoiceMailMain(): despus de pedir autenticacin de


usuario, permite revisar buzn, grabar sonidos y
personalizar el correo de voz.

Se definen en Voicemail.conf

APLICACIONES

VoiceMail()
Toma dos argumentos:
El nmero del buzn de voz

Las opciones:

- u escucha el mensaje de no disponible


- b escucha el mensaje ocupado

Ejemplo:
exten => 123,n,VoiceMail(101,b)

APLICACIONES

VoiceMailMain()
Puede llamarse sin argumentos.
Tiene dos argumentos:
Nmero del buzn: Si no se especifica pregunta por el

Opciones:

- No pide contrasea.

a(#) - No reproduce el sonido de seleccionar carpetas


sino que se va directamente a la carpeta INBOX.

APLICACIONES

SINTAXIS DE LOS BUZONES (voicemail.conf)


Mailbox, password, correo, pager, opciones

El pager depende del operador

Algunas de las opciones son:

Attach, servermail, saycid


Ejemplo:
123=432,pedro perez, pperez@millenium.com,attach=no!maxmesg=10

APLICACIONES

Record()
Permite grabar sus propios prompts
Sintaxis Asterisk 1.4
exten => 123,n,Record(mi-menu.wav)
Para terminar la grabacin se digita la tecla nmero.

APLICACIONES

Record Ejemplo:
exten => 205,1,Answer()
exten => 205,2,Wait(2)
exten => 205,3,Record(asterisk-rec%d.ulaw)
exten => 205,4,Wait(2)
exten => 205,5,Playback(${RECORD_FILE})
exten => 205,6,Wait(2)
exten => 205,Hangup()

JUMPS Y LOOPS

GoTo()

- Permite saltar de un punto a otro en el dial plan


- Maneja hasta tres parmetros
Prioridad dentro de la misma extensin

Extensin y prioridad dentro del mismo contexto

contexto extensin y prioridad

Exten => 123,n,Goto(contexto,extension,prioridad)

JUMPS Y LOOPS
EJERCICIO

Realizar un IVR que:


reproduzca un men, lea un dgito y lo reproduzca si es
menor a 5

- si es mayor que 5 y menor que 9, de un mensaje de


invlido

- si marca 9 que repita el men y

- si no contesta de un mensaje y vuelva al men inicial.

JUMPS Y LOOPS
EJERCICIO
GotoIf
Goto condicional

GotoIf(condition?label1[:label2])

Ejemplo:
Va a 3 si la condicin es verdadera, sino va a la siguiente
prioridad:
exten => 2,1,GotoIf($[$CALLERID(num)=3]?3)
exten => 2,2,Hangup
exten => 2,3,Playback(tt-monkeys)
exten => 2,4,Hangup

INCLUDES

Asterisk permite incluir un contexto en otro a travs del


uso de la directiva include.

Esta directiva se usa principalmente como un mecanismo de


control sobre los accesos a funcionalidades, a los que los usuarios
de la PBX tienen acceso.

SINTAXIS

Para incluir un contexto dentro de otro se usa la palabra


reservada include, seguido de la creacin del objeto con el nombre
del contexto a incluir as:

Include => mi_contexto

LOGICA DE INCLUDES

Cuando la llamada entra a un contexto esta trata primero de


hacer match en el contexto local.

Si no hay match empieza a buscar dentro de los contextos


incluidos en el.

El orden de los contextos importa, busca secuencialmente en el


orden en el cual estn escritos.

Los contextos son transitivos, lo que significa que si hay ms


includes, buscara dentro de sus respectivos includes.

LOGICA DE INCLUDES

EJEMPLO:

[start]
include => contexto_1 <-Paso 1
include => contexto_2 <-Paso 4
[contexto_1]
include => contexto_1a <-Paso2
include => contexto_1b <-Paso3
[contexto_2]
include => contexto_2a <-Paso 5
include => contexto_2b <-Paso 6

MANEJO DE PERMISOS

A travs del siguiente ejemplo se explica como implementar


sta caracterstica:

Problema:
Se deben tener dos categoras de llamadas. Una para llamadas
locales para todos los usuarios y la otra para llamadas de larga
distancia nacional para la parte administrativa.

VARIABLES

Variables:
Existen tres tipos de variables:
- globales
- Entorno
- Canal
Permiten que el Dial plan sea ms fcil de sostener.
La sintaxis de una variable es: ${VARIABLE}

Las variables son sensibles a maysculas y minsculas. (casa !


= Casa)

Las variables que tiene Asterisk por defecto son siempre en


mayscula.

APLICACIONES

MeetMe()
Esta es la aplicacin que permite realizar conferencias.

Se requiere una fuente de sincronismo para que se mezclen


efectivamente todos los canales.

El hardware Digium puede proveer fuentes de sincronismo y


alternativamente se puede usar el ztdummy en kernel 2.6

APLICACIONES

MusicOnHold()
Permite a un canal reproducir msica.

Toma como argumento el tipo de msica que se quiere


escuchar.

Se define en musiconhold.conf

Los archivos mp3 se pueden reproducircon la ayuda de


mpg123 o se puede reproducir msica nativamente en
ulaw.

APLICACIONES

Transfer()
Permite transferir una llamada de un punto a otro.

Esta aplicacin realiza una transferencia ciega y


devuelve el resultado en la variable ${TRANSFERSTATUS}
(success, failure, unsopported)

APLICACIONES

Transfer()
La PBX soporta 2 tipos de trasnferencia:

BLIND: (ciega)

Se direcciona al llamante sin supervisin, si no se logra,


quien transfiere no lo sabe.

Attended (atendida)

Permite interrogar a quien se le va a transferir la


llamada si la va a tomar o no, mientras la otra lnea
permanece en Hold.

APLICACIONES

Transfer()
Para permitir la transferencia en la aplicacin Dial se
debe habilitar el tag t o T.

t -> permite que el llamado pueda transferir la llamada

T -> permite que quien llama pueda transferir la


llamada.

La PBX
cdigos:

implementa

#1 -> blind transfer

*2 -> attended transfer

estas funcionalidades

bajo los

APLICACIONES

Park()
Permite dejar una llamada en un parking lot

Util si se desea tener una llamada en hold y halarla desde otra


extensin.

La extensin de parqueo se define en features.conf

Se debe incluir un contexto [parkedcalls] para acceder al lote


de parqueo.

APLICACIONES

Park()
PARQUEANDO LLAMADAS:
Para parquear una llamada se hace una transferencia a la
extensin 700.

La PBX indicar el nmero del lote donde se parque la


llamada.

Para retomar la llamada se marca el nmero de lote indicado


anteriormente.

Desafortunadamente el parking lot es global y no incluye la


posibilidad de tener varios lotes de parqueo.

MACROS

Simplifican el Dial Plan

Cuando se llame la macro para cada extensin, sta har


exactamente lo mismo (es como una funcin de programacin)

Ejemplo:

Exten => 123,1,Macro(std-exten)

Exten => 124,1,Macro(std-exten)

Exten => 125,1,Macro(std-exten)

MACROS

Las macros se parecen mucho a los contextos

Para diferenciarlas se puede ver que al comienzo del nombre


se empieza con la palabra reservada macro.

SIEMPRE emplean la extensin s

[contexto]
exten => 456,1,Macro(simple)
[macro-simple]
exten => s,1,Answer()
exten => s,n,Playback(office iguanas)
exten => s,n,hangup()

MACROS

Las macros pueden recibir argumentos

Macro(simple,red,green,blue)

Estos se referencian ${ARG1},${ARG2}...

La extensin que llama la macro

se almacena en ${MACRO_EXTEN}, el
contexto en ${MACRO_CONTEXT} y la
prioridad en ${MACRO_PRIORUTY}

MACROS

[macro-test]
exten => s,1,Wait(1)
exten => s,n,(SIP/${ARG1},30)
exten => s,n,VoiceMail(${ARG2}@default,u)
[otro-contexto]
exten => 123,1,Macro(test,Frank,123)

MACROS

Macro estado y soporte de voicemail


[macro-sip-exten-vm]
exten => s,1,NoOp(marcando SIP/${ARG1},30) por 30 segundos
exten => s,n,Dial(SIP/$ARG1},30)
exten => s,n,Set(MAILBOX=${SIPPEER(${ARG1}:mailbox)})
exten => s,n,Goto(s-${DIALSATUS},1)
exten => s-NOANSWER,1,VoiceMail(${MAILBOX},u)
exten => s-NOANSWER,n,Goto(default,s,1)
exten => s-BUSY,1,VoiceMail(${MAILBOX},b)
exten => s-BUSY,n,Goto(default,s,1)
exten => s-,1,Goto(s-NOANSWER,1)

CONMUTACION DE
CIRCUITOS

TELEFONIA ANALOGA
Se hace necesaria la multiplexacin de las troncales
entre las centrales.

Se entrega un canal de manera temporal a un


usuario.

No se puede hacer un mallado total.

Recursos ocupados durante toda la llamada

La distancia si importa
operadores distintos)

(ms

circutos

Diseado solo para voz

Es regulado por cada pas

La disponibilidad de un canal es de 99.5%

de

POTS (Plain Old Telephony


Service)
Bucle analgico desde la oficina central de switching
hasta el equipo del abonado.
Tipos de lneas POTS:
Loop-Start: solicita el tono de discado al cerrar el
bucle desde el abonado y da el ring al cerrar el bucle
desde la central.
Kewl-Start:
Loop-Start
con
desconexin
supervisada por el extremo lejano. El switch abre
momentaneamente el bucle cuando la otra persona
cuelga en el extremo de la llamada.
Ground-Start: Solicita el tono de discado colocando
a tierra el positivo de la tierra.

Sealizacin
Discado por pulsos: Seala los digitos que se
estn discando abriendo y cerrando rpidamente el
bucle.
Supervisin de atendido: seala los estados de
onhook (colgado) y offhook (descolgado) a otros
dispositivos.
Dual-Tone Multi-Frecuency (DTMF): Seala los
dgitos que estn siendo discados por medio de
combinaciones de tonos.

DTMF

FXS

Foreing eXchange Station


Produce tona de marcado
Se coencta al telfono
Usa sealizacin FXO
Los
puertos FXS deben suministrar
voltaje a los telfonos que se conecten.

FXS

Foreing eXchange Station


Produce tona de marcado
Se coencta al telfono
Usa sealizacin FXO
Los puertos FXS deben suministrar
voltaje a los telfonos que se
conecten.

FXS

Las tarjetas de puertos FXS incluyen un


conector MOLEX para esta labor.
Debe tenerse cuidado de no conectar
lineas del proveedor, conectadas a
puertos FXS, pues pueden resultar
daados, ya que los dos extremos
suministran voltaje.
Los modulos FXS son VERDES

FXS - FXO

DE INTERFAZ ANALOGA
TDM
Mdulos FX0 (rojos)
Permite conectar lneas
Externas.
Modulo FXS (verdes)
Permite conectar telfonos
analgicos.

FXO

Foreing eXchange Office


Recibe tono de marcado
Conecta al proveedor
Usa sealizacin FXS
Los modulos FXO son rojos/naranja

GROUNDSTART, LOOPSTART.
KEWLSTART
Groundstart(gs)
Instalaciones antiguas

Usado para reducir una condicin que se da cuando los dos


extremos marcan al otro de forma simultanea. (glare)

La forma de pedir tono de marcado es colocar uno de los


extremos en tierra temporalmente.

No es comn para nuevas instalaciones, pero existen muchas


que lo tienen.

GROUNDSTART, LOOPSTART.
KEWLSTART
Loopstart(ls)
Usado en USA

El tono de marcado es solicitado creando


un corto circuito.

Se pide tono de marcacin a la central,


creando un corto circuito en la lnea
temporalmente, en otras palabras creando
un loop.

Casi todos los fax, modems y telfonos de


USA usan este tipo de sealizacin

GROUNDSTART, LOOPSTART.
KEWLSTART
Kewlstart(ks)
Similar a Loopstart, pero con supervisin
de desconexin remota.

Esta desconexin es una seal que se


envia cuando el punto lejano (far end)
cuaelga el canal.

Sin supervisin la conexin no se cierra.

Es el tipo de sealizacin preferida en


lneas anlogas.

Tambin se llama OSI o CPC.

ARCHIVOS DE CONFIGURACION

/etc/dahdi/system.conf
fxoks=1
ztcfg
/etc/asterisk/chandahdi.conf
[trunkgroups]
[channels]
language=es
usecallerid=yes
hidecallerid=no
callwaiting=yes
callwaiitngcallerid=yes
trasnfer=yes
cancallforward=yes
echocancel=yes
echocancelwhenbridge=no

GRUPOS DE CANALES

Los canales se pueden agrupar con la sentencia group en el


archivo chandahdi.conf.
Esto se puede usar para hacer que asterisk busque canales
disponibles cuando se deba hacer una llamada que no necesite
un canal especifico.

Exten => 123,1,Dial(DAHDI/g2/${EXTEN})

ZTCFG Y ZTTOOL

Ztcfg configura los canales y revisa su configuracin bsica.

Debe ser invocado despus de cargar los drivers

es corrido desde /etc/init.d/dahdi

zttool es una herramienta para monitorear y hacer diagnostico


bsico de canales DAHDI.

TELEFONIA DIGITA. QUE


ES
UNA TRONCAL?
Es una lnea telefnica conectada

entre

dos

sistemas de switcheo.
Es compartida entre los usuarios.

No todos los usuarios requieren una troncal

Una oficina de 75 personas, requiere solo un


primario.

Las troncales se organizan en conjuntos llamados


trunkgroups.

Conexin de cuatro hilos: un par para recepcin, un


par para transmisin.

E1: 31 canales: 2,048 Mbps

T1: 24 canales: 1544 Mbps

E1
Usa el canal o timeslot 16 para sealizacin: lleva
informacin de establecimiento y control de las
llamadas.

Proporciona correccin y deteccin de errores via


CRC4.

Usado con sealizacin MFC-R2

30 canales simultaneos a 64 Kbps

Asterisk no soporta r2, para esto se necesitara:

Gateways externos e1-MPC/r2 a SIP

Tarjetas Digium y los parches de Moises Silva y


algunas librerias externas: Spandsp, Libunicall,
Libupertone, libmfcr2.

ISDN
BRI: (Basic Rate Interface) 144 kbps

2 canales de 64 kbps

1 canal de sealizacin

PRI: (PRIMARY RATE INTERFACE)

23 canales de 64 kbps cada uno.

1 canal de sealizacin

Popular en USA

En Europa segn la ITU son 30 canales de 64 Kbps.

BENEFICIOS DEL ISDN

Rpido establecimiento de llamada.

Caller id saliente configurable.

Servicio de identificador de llamadas.

BENEFICIOS DE LA
TELEFONIA DIGITAL

Excelente calidad de sonido.

La seal y el ruido se pueden identificar.

La seal no se amplifica sino que se regenera por lo


cual no sufre de degradacin.

Circuitos de alta capacidad, que resultan ms


econmicos que 24 o 30 lneas analgicas.

PROBLEMAS DE LA CONMUTACION DE
CIRCUITOS

Diseado sobre un modelo de comunicaciones


punto a punto ya antiguo

Dependencias dedicadas que son muy costosas.

Redes estticas,
problemticos.

los

cambios

son

costosos

VENTAJAS DE LA CONMUTACION DE
CIRCUITOS

Muy confiable.

Excelente calidad de sonido.

Mnima latencia.

Redundancia en caso de fallas de nodos.

Infraestructura dedicada.

Si la red est implementada correctamente, voz y


datos no molestan.

CONFIGURACION

/etc/dahdi/system.conf
loadzone = us
defaultzone = us
span=1,1,0,ccs,hdb3,crc4
#fxoks=1-31
bchan=1-15,17-31
dchan=16

CONFIGURACION
/etc/dahdi/system.conf
[trunkgroups]
[channels]
context=from-pstn
switchtype=euroisdn
signalling=pri_cpe
rxwink=300
usercallerid=yes
hidecallerid=no
callwaiting=yes
usercallingpres=yes
callwaitingcallerid=yes

CONFIGURACION

/etc/dahdi/system.conf
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridge=yes

CONFIGURACION

/etc/dahdi/system.conf
rxgain=0.0
txgain=0.0
group=1
callgroup=1
pickupgroup=1
inmediate=no
channel=>1-15,17-31

VOZ SOBRE IP,


CONMUTACION DE
PAQUETES

CONMUTACION DE

CONMUTACION DE
PAQUETES

Se desarma el stream (flujo) de datos de audio


continuo, en trozos (chunks).

Se encapsulan en trozos dentro de otros protocolos.

Luego se envan a travs de las redes y se espera


que lleguen al destino en el tiempo y forma esperada.

LATENCIA

Tiempo que tarda una pieza de informacin en


viajar a travs de la red.

El tiempo mximo aceptable es de 400ms (ideal


200ms)

Entre menos latencia mejor.

La latencia se puede medir por medio de un ping.

JITTER o VARIACION DE
LATENCIA

Ocurre cuando los paquetes no llegan a intervalos


regulares.

Tambin cuando llegan desordenados.

Una gran cantidad de Jitter, hace


conversacin sea prcticamente imposible.

que

una

JITTER o VARIACION DE
LATENCIA
Ocurre cuando los paquetes no llegan a intervalos
regulares.

Tambin cuando llegan desordenados.

Una gran cantidad de Jitter, hace


conversacin sea prcticamente imposible.

que

una

mala

CAUSAS:

Conexiones de red congestionadas.

Redes sin calidad de


administracin de trfico.

Equipos no adecuados.

Crecimiento no planeado.

servicio

QoS

CONMUTACION DE
PAQUETES
BENEFICIOS:
- Econmicas
- Redes flexibles y dinmicas.
- Soporta mltiples aplicaciones a la vez
PROBLEMAS:
- Datos y voz poseen diferentes requerimientos, datos:
Alto, Voz: Relativamente bajo.
- No existe control de las redes de extremo a extremo si se
usa internet como medio de transporte de datos.
- Lo datos pueden pasar por encima de los paquetes de voz.

VENTAJAS DE LA CONMUTACION ED
PAQUETES

Muy confiable.

Excelente calidad de sonido.

Mnima latencia.

Redundancia en caso de fallas de nodos.

Infraestructura dedicada.

Si la red est implementada correctamente, voz y


datos no molestan.

VOZ SOBRE IP
Utilizar redes de datos que utilicen el protocolo IP
para realizar llamadas de voz.

En particular es hacer llamadas por internet.

Por fin se puede hablar de: Estndares abiertos e


internacionales. Inter-operabilidad, disminucin de
precios entre operadores y fabricantes de hardware
dedicado a VoIP.

Calidad similar a la telefona tradicional y en casos


mejor gracias a los codecs.

La fiabilidad de servicio es similar a la de la


telefona tradicional.

DEFINICIONES (COLAS Y ACD)

Si tenemos una o mas llamadas entrantes que


operadores disponibles en el sistema para atenderlas,
podemos definir colas en el sistema para colocar a las
personas que llaman en espera, esperando que un operador
atienda la llamada.

Cuando un operador est disponible para tomar la


llamada, la persona que ha esperado mas tiempo en la cola
se conectar al operador.

Podemos usar las colas para distribuir llamadas a un


grupo de personas de diferentes formas.

Este proceso se llama ACD (Automatic call Distributor)

DEFINICIONES (COLAS Y ACD)

En general es un operador humano que maneja las


llamadas procesadas por el sistema ACD.

En Asterisk, son miembros especiales de las colas que se


loguean (via una aplicacin del dialplan) para acreditar su
presencia y el deseo de aceptar llamadas.

Los agentes son administrados usando el canal Agent (un


proxy que monitorea su estado)

Se puede configurar un agente para que:

1. permanezca en la lnea escuchando msica o silencios


entre llamadas.
2. Suene su telfono al recibir una llamada desde el
proceso del ACD.

QUE SON AGENTES??

Para configurar un ACD en asterisk:


Se definen una o ms colas

Asignamos miembros para manejar las llamadas


entrantes en dichas colas.

Asignamos una estrategia (algoritmo usado para


distribuir las llamadas)

Construimos una extensin o macro en el dialplan


para evitar las llamadas a la cola usando la aplicacin
Queue.

Configuramos agentes para que se logueen y tomen


llamadas de la misma.

MIEMBROS Y AGENTES

Los miembros de una cola se pueden definir como


estticos o dinmicos.

Una cola puede usar de ambos

Las colas se definen en el archivo queues.conf

A los miembros dinmicos los llamamos agentes.

Miembros estticos: member => SIP/101

Miembros dinmicos: member => Agent/2000

ESTRATEGIAS DE COLAS

Las colas poseen la habilidad de usar diferentes


algoritmos para determinar a cual de sus miembros
llamar la siguiente vez.

Las estrategias que soporta asterisk son:

Ringall: suenan todos a la vez


Roudrobin: Busqueda circular ascendente
Leastrecent: quien recibio hace mas tiempo una
llamada.
Fewescalls: Miembro con menor cantidad de
llamadas.
Random: miembros al azar.

CONFIGURACION DE COLAS
/etc/asterisk/queues.conf
[cola]
;
musiconhold = default // Musica en espera.
strategy = rrmemory

// Estrategia de timbrado

announce = anuncio

// Lo que escucha el agente cuando le ingresa una llamada

timeout = 5
dicho

// Especifica el tiempo en segundos en el cual vamos a llamar a un


miembro antes de abandonarlo y llamar al prximo. Si se carga o
telfono sonara.

Retry = 1

// Tiempo para reintentar

maxlen = 20

// cantidad de personas que pueden estar en la cola

wrapuptime = 0

// Especifica la cantidad de tiempo en segundos que va a tener cada


miembro como descanso entre llamados.

member => Agent/47100


member => Agent/47101
member => Agent/47102

COLAS DE LLAMADAS CON AGENTES

Con el uso de agentes podemos controlar dinmicamente la lista de destinos


disponibles permitiendo que un agente se loguee en la cola.

Permitimos estos eventos usando las aplicaciones AgentLogin() o AgentCallBack()

Cuando un agente se loguea, ste se encuentra disponible en todas las colas de


las cuales es miembro.

Conectando agentes con las colas:

AgentLogin() - el agente se loguea y espera en el telfono escuchando msica


hasta que una llamada le sea dirigida.

El agente puede rechazar la llamada oprimiendo *

AgentCallBackLogin() El agente se loguea y corta hasta que una llamada le sea


redirigida.

El sistema llama al agente cuando una llamada le es asignada.

La llamada entrante es enviada a la extensin especificada en el login.

CONFIGURACION DE AGENTES

/etc/asterisk/agents.conf

[general]
persistentagents=no
;
[agents]
;
Wrapuptime=0 /tiempo para volver a llamarle
musiconhold => default
agent => 1000,1000,Agente 1000
agent => 1010,1010,Agente 1010
agent => 2000,2000,Agente 2000

LOGUEANDO AGENTES

/etc/asterisk/extensions.conf

[mis_agentes]
exten => _77XXX,1,Answer()
exten => _77XXX,n,Wait(0.5)
exten => _77XXX,n,AgentLogin(${EXTEN:3})
exten => _77XXX,n,Hangup()

[mis_agentes]
exten => _77XXX,1,Answer()
exten => _77XXX,n,Wait(0.5)
exten => _77XXX,n,AgentCallBackLogin(${EXTEN:3},,${CALLERID}@mis_agentes)
exten => _77XXX,n,Hangup()

CLI
Asterisk -r
CLI> stop now
CLI> stop gracefully
CLI> stop when convenient
CLI> help
CLI> show applications
CLI> show applications dial
CLI> show version
CLI> show uptime
CLI> show channels
CLI> show channels verbose

SOLUCION

REVISION DE LOGS
/var/log/asterisk/full
/var/log/messages.
CLI>
Comando:
asterisk -vvvcn | tee /var/log/asterisk/log

Ejm:
[Jun 26 20:57:40] WARNING[4128]:
chan_zap.c:11115 process_zap: Ignoring
answeronpolarityswtich

Ejemplo:
Starting simple switch on Zap/14-1
[Oct 15 16:33:29] NOTICE[9370]: chan_zap.c:6361 ss_thread: Got event
18 (Ring Begin)
[Oct 15 16:33:31] NOTICE[9370]: chan_zap.c:6361 ss_thread: Got event 2
(Ring/Answered)
Executing [s@entrada:1] Dial(Zap/14-1, Zap/3|15|tTr) in new stack
Called 3
Zap/3-1 is ringing
Zap/3-1 is ringing
Zap/3-1 answered Zap/14-1
Hungup Zap/3-1
== Spawn extension (entrada, s, 1) exited non-zero on Zap/14-1
Hungup Zap/14-1
Starting simple switch on Zap/14-1
[Oct 15 16:34:03] WARNING[9376]: chan_zap.c:6501 ss_thread: CallerID
returned with error on channel Zap/14-1
Executing [s@entrada:1] Dial(Zap/14-1, Zap/3|15|tTr) in new stack
Called 3xit
Zap/3-1 is ringing
Zap/3-1 is ringing
Zap/3-1 answered Zap/14-1
Hungup Zap/3-1
== Spawn extension (entrada, s, 1) exited non-zero on Zap/14-1
Hungup Zap/14-1

Herramientas de ayuda
para solucionar problemas
Logs
Revisin de tarjetas
Polaridad
Revisin de red(conectividad)
IP publicas y privadas
Terminal IP(Telefonos y
softphone)
Archivos de configuracin
Compatibilidad
Codecs
Protocolos
Puertos

Asterisk Embebido

Anda mungkin juga menyukai