presentacion asterisk 2011 modifccasas
DESCRIPTION
asdfghjklTRANSCRIPT
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 aplicación de código abierto de una central telefónica (PBX).
Asterisk tiene licencia GNU/GPL.
Su creador es Mark Spencer .
Asterisk también 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 automático de llamadas)
Cuando Comenzó: En el año 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 más !
QUE ES ASTERISK?
Asterisk es una aplicacion “servidor”
que permite que terminales “clientes”
se conecten a el.
PROTOCOLOS
CODECS DE AUDIO
AIX2SIP
SKINNYMGCPH.323
G.729GSM
ILBC/SpeechG.722/G.723
G.711a/G.711u
Despues de haberse conectado,
los clientes pueden transmitir voz en
tiempo real con la utilizacion
de protocolos y codecs
soportados por asterisk.
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.
Cada vez hay mas empresas dedicadas a la creacion de softwarecon Asterisk
Surge ASTRICON (convención internacional de usuarios de Asterisk.)
QUE ES DIGIUM?
Es el principal desarrollador de Asterisk y de su mantenimiento
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, añadir 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 propósito.
– Libertad de modificar el programa (acceso al código fuente).
– Libertad de redistribuir copias.
EL PROYECTO ZAPATA ZAPTEL
Que significa: Revolución en la tecnología de telefonía sobre PC, asociado a la revolución de Emiliano Zapata
Para que sirve: Para conectarse con la PSTN o permitir el uso de teléfonos tradicionales analógicos.
Quien lo creó: Jim Dixon. Primera tarjeta IDSN abierta.
Ahora de llama: DAHDI
DIGIUM ASTERISK
HARDWARE DEVICE INTERFACE
PRODUCTOS BASADOS EN ASTERISK
Las compañías 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 corazón de Asterisk
Carga los módulos dinámicamente
Provee sincronismo
Lee la configuración 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
Asterisk es modular/usr/lib/asterisk/modulesLos módulos proveen funcionalidades adicionalesEl administrador decide que módulos cargar en el momento de la instalación.
Pueden contener:RecursosAplicacionesComandos cli
/etc/asterisk/modules.conf
ARQUITECTURA DE ASTERISK MODULOS
ARQUITECTURA DE ASTERISK APLICACIONES
Se usan para conectar las llamadas de entrada con las de salida u otros usuarios de Asterisk:
Se cargan dinámicamente en el core.
Pueden aceptar/requerir parámetros
Pueden leer y establecer variables
Algunas usan archivos de configuración en /etc/asterisk
ARQUITECTURA DE ASTERISK APLICACIONES
Reproducir sonidos (palyback, background)
Aceptar interacción 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)
Se cargan estáticamente en el core.
Algunos recursos son:
MHO
Call recording
Call Park
Call PIckup
ARQUITECTURA DE ASTERISK RECURSOS
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
Es una línea telefónica en forma de circuito de voz digital. Que puede ser:
Una señal telefónica en un sistema POST.
Ejemplo:
Chan_zap o chan_dahdi
Es una combinación de CODECS y protocolos de señalización (GSM con SIP, Ulaw con IAX)
Ejemplo:
Chan_sip, chan_iax
Canales internos de Asterisk:
Ejemplo: chan_agent, chan_local
ARQUITECTURA DE ASTERISK CANALES
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
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
Codec fundamental en la PSTN
8 bits * 8000/segundo = 64 kpbs
Los demás codecs son derivados de G711
Mínima carga para la CPU
Máxima carga para la red
ARQUITECTURA DE ASTERISK CODECS G711
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 G729a
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 CODECS GSM
Manejan la lectura y escritura de diferentes formatos de archivos.
Usados para grabación y reproducción
Algunos de los formatos que soporta Asterisk:
Wav
Gsm
Vox
ARQUITECTURA DE ASTERISK FORMATOS
ARQUITECTURA DE ASTERISK PROTOCOLOS
Se requieren para establecer las conexiones entre teléfonos,
Determinar el punto de destino y asuntos de señalización como tono, tiempo de timbre, identificador de llamadas, entre otros.
Los protocolos más conocidos que soporta Asterisk son:
SIP (Sesion Initiated Protocol)
H323
IAX V1 y V2 Ideal para trunking y NAT
PROTOCOLO SIP
SESSION INITIATION PROTOCOL (SIP)
Protocolo de IETF para Voz IP, texto sesiones y multimedia.
No fue diseñado principalemte para telefonía.
Sip solo es una forma de lograr que dos extremos se conecten, acuerden una forma de comunicación y lo hagan.
Se encarga del medio de transporte de los datos por RTP y SDP.
PROTOCOLO SIP
Señalización en puerto UDP 5060
Transporte de medios via RTP
- Usa un número aleatorio de puerto UDP
- Asterisk por defecto usa los puertos 10001 – 20000
No se lleva bien con NAT
Muy bien soportado:
- la mayoría de teléfonos 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
Características principales:
- Media y señalización por el mismo flujo de datos.
- trunking
. cifrado
PROTOCOLO IAX VENTAJAS
NAT:
-Al enviar tanto señalización 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 señalización para negociar las posibilidades de la comunicación:
- 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 INSTALACIÓN●Al iniciar desde el CD 1 o el
DVD de instalación se observan las siguientes opciones:
●Pulse <enter> para continuar en la instalación en modo gráfico (instalador Anaconda). En caso de que no funcione se puede intentar
la instalación en modo texto, no descrita en este manual.
INSTALACION
VERIFICACIÓN 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 la pantalla de bienvenida.
INSTALACION
SELECCIÓN DE IDIOMA DE
INSTALACIÓN●Seleccione de la
lista el idioma del instalador y pulse siguiente
INSTALACION
SELECCIÓN DE IDIOMA DE TECLADO
●Seleccione de la lista el teclado adecuado a su lenguaje y distribución. Se recomienda US international para teclados en inglés. Pulse siguiente
INSTALACION
PARTICIONAMIENTO DEL DISCO DURO
●Se selecciona la opción Remover particiones en dispositivos seleccionados y crear disposición, de modo que el instalador borrará cualquier partición existente y configurará las particiones y LVM's necesarios por defecto. Se pulsa siguiente
INSTALACION
COMPROBACIÓN 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 botón Modificar
INSTALACION
CONFIGURACIÓN ETH0●de la ventana Edit interface
elegimos Manual configuration e introducimos la dirección IP con su prefijo y desactivamos enable IPv6 support. Pulsamos Aceptar.
INSTALACION
CONFIGURACIÓN COMPLEMENTARIA ETH0
●Activamos la opción 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 según nuestra zona geográfica mas próxima. Desactivamos la opción el reloj del sistema usa UTC y pulsamos siguiente.
INSTALACION
CONFIGURACIÓN CONTRASEÑA DE
ROOT●En esta ventana
definimos la contraseña para el usuario root. El sistema validará que ambos campos coincidan. Pulse siguiente.
INSTALACION
CATEGORÍAS DE PAQUETES
●En esta ventana activamos la opción Personalizar ahora de modo que elegimos en el momento los paquetes a instalar.
●Se desactivan los escritorios o Desktop y activamos la opción Server. Pulse siguiente.
INSTALACION
SELECCIÓN DE PAQUETES
●Dentro de los paquetes necesarios , además de los predeterminados, seleccionamos los siguientes para poder más 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
SELECCIÓN 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
SELECCIÓN 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 blue-hcidump y vnc; se recomienda también quitar el soporte de red mediante discado.
INSTALACION
INSTALACION
INSTALACION
INSTALACION
COMIENZO DEL PROCESO DE INSTALACIÓN
●Una vez terminamos de introducir las opciones de instalación estamos listos para iniciar el proceso, pulse siguiente.
INSTALACION
INSTALACIÓN●El instalador ejecutará las
opciones elegidas durante el asistente (esta paso durará algunos minutos...) Hasta que el sistema indica que la instalación ha sido completada. Extraiga el medio de instalación y pulse reiniciar.
INSTALACION
INSTALACION
INSTALACION
CONFIGURACIÓN INICIAL●Al iniciar aparece una ventana en
texto del agente de configuración. Entramos a la configuración del cortafuegos.
INSTALACION
FIREWALL●Es importante dejar en nivel
de seguridad en Deshabilitado, (usando las teclas de dirección y con la barra espaciadora). También es importante dejar en Deshabilitado El servicio SElinux. Pulse Aceptar.
INSTALACION
SERVICIOS●En la configuración de servicios,
desactivamos (de nuevo con la barra espaciadora) los siguientes:
●- cups (Sistema de impresión común de Unix)
●- avahi (Configuración Automática de Redes IP locales)
●- bluetooth (conexión inalambrica de corto alcance)
INSTALACION
Importante activar los siguientes servicios.●sendmail (Agente de transporte de correo)●mysqld (Base de datos MySQL)●sshd (Conexión 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 versión y si cuenta con conexión a internet, es necesario utilizar el siguiente comando.
●# yum -y update
INSTALACION
●Es posible que al reiniciar haya cambiado la versión de su kernel.
●Para comprobar la versión 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:
bisonbison-develncursesncurses-develzlibzlib-devel
opensslopenssl-develgnutls-develgccgcc-c++make
Numero máximo de conexiones concurrentes
Porcentaje de tráfico que requiere el DSP (procesador digital de señal) g.729, GSM etc.
Conferencias soportadas? Que tan activas??
Cancelación de eco por software o por hardware?
Scripts externos invocados por asterisk?
Otras aplicaciones en la misma máquina??
CONSIDERACIONES DE DESEMPEÑO
REQUERIMIENTOS DE HARDWARE
HARDWARE PARA CONECTARSE A LA PSTN
TARJETAS
DE INTERFAZ ANALOGATDM
DE INTERFAZ DIGITAL
Módulos FX0 (rojos)Permite conectar líneas Externas.
Primario E130 conversaciones por cada primario.
Modulo FXS (verdes)Permite conectar teléfonos analógicos.
2 primarios 60 conversaciones simultaneas.
HARDWARE PARA CONECTARSE A LA PSTN
GATEWAY
Módulos FXS Módulos FXO
Permite conectar teléfonos Analógicos y líneas análogas
convencionales
TARJETAS DE RED
Líneas IP
Permite administrar y configurar funcionalidades de la PBX:
Los tipos son:●Configuración Maestra●Configuración Canales●Dial Plan●Comandos Dial Plan●Sin categoría
ARCHIVOS DE CONFIGURACION
Configuración 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 número
- dundi.conf : permite buscar y compartir planes de marcación entre servidores IP-PBX
- festival.conf : text to speesh
- indications.conf : Definición de tonos según el país.
- meetme.conf : conferencia
- musiconhold.conf : musica en espera
- queues.conf : manejo de colas
- voicemail.conf : manejo de correo de voz
ARCHIVOS DE CONFIGURACION
Cada conversación implica 2 llamdas desde el punto de vista de Asterisk: una de teléfono origen a Asterisk y otra de Asterisk al teléfono destino
Secuencia (SIP/sipuser1 -> SIP/sipuser2)
El teléfono origen es descolgado y el usuario marca la extensión 6002, se establece/negocia el codec a usar.
Ahora el teléfono tiene una llamada activa en el canal SIP
El canal SIP pasa el destino solicitado (6002) al núcleo de pbx.
FLUJO DE LLAMADA
●El canal SIP pasa el destino solicitado (6002) al núcleo de pbx.●Asterisk busca la extensión en el dial plan de marcación●La configuración de la extensión invoca la aplicación Dial con destino
SIP/sipuser2●La aplicación 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 palicación Dial hace bridge y Asterisk hace transcoding (si es necesario)●Ahora los 2 usuarios pueden hablar●La aplicación Dial termina cuando alguno de los 2 cuelga, la llamada es
transferida, etc.
FLUJO DE LLAMADA
DIAL PLAN
Provee la lógica 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 típica extensión telefónica.
●Es un conjunto de acciones
●No se deben atar a un punto terminal físico
●Se pueden usar nombres o números
●Sintaxis:
Exten => nombre,prioridad,aplicacion
PRIORIDADES
●Dentro de cada extensión, cada acción tiene una determinada prioridad numérica.
●Cada evento sucede en un orden numérico
Exten => 123,1 ----haga algo
Exten => 123,2 ----haga algo más
Exten => 123,3 ----haga algo diferente
●Existe una prioridad principal llamada n, esta incrementa automáticamente 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
binfport=5060
disallow=all
allow=ulaw
allow=gsm
[sipuser1]
type=friend
host=dynamic
secret=12345
Type= friend|peer|userhost=dynamic|hostname|ip
CLI>sip reloadCLI>sip show peersCLI> 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 dinámica o el registro no conoce la IP, se debe enviar periódicamente register al servidor.
●Se hace adicionando la sentencia de register en los archivos sip.conf o iax.conf●En sip.conf par saltarse la autenticación se le agrega el parámetro: insecury=very
PEERS
●No usan context, reciben llamadas desde la PBX para enviar las llamadas a los pares (peers) se para la aplicación Dial.
●Si un peer remoto se está registrando en la PBX se digita host=dinamic.
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 máxima latencia antes de considerar al peer inalcanzable (milisegundos).
PEERS
●Mailboxes tienen un parámetro que le permite acceder a un buzón 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 configuración 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
context=default
signalling=fxo_ks
channel=> 1
group=2
context=default
signalling=fxs_ks
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 números pueden encapsularse dentro de paréntesis cuadrados
[0-5] hace match con los números desde el 0 hasta el 5
[0-4,6,8] hace match con los números desde 0 a 4 y el 6 y 8.
PATTERN MATCHING (EJERCICIO)
Realice los patrones para los siguientes rangos numéricos:
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 números 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 carácter 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 patrón si se usa “_.”
exten => _.,1,NoOp(${EXTEN})
CUIDADO!!!!!!!!!!!!!!!!!!!!!!!!!!●Hace match incluyendo extensiones especiales “i”, “t”, “h”
●Causa loops
Variable ${EXTEN}
Contiene el número de la extensión que fue digitada
Por ejemplo si se tiene un patrón _XXX,1,SayDigits(${EXTEN})
La aplicación SayDigits leerá los números que se han digitado.
A veces se requiere manipular esta variable extrayendo cierto número de dígitos del frente del número de la extensión.
Para hacer esto se usa la sintaxis
${EXTEN:x} x es el número de dígitos
${EXTEN} = 93331212
${EXTEN:1}= 3331212
Variable ${EXTEN}
Si el valor de x es negativo, el valor de retorno será la cantidad de dígitos 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 marcación.
●Se llaman con una sola letra.●s viene de start
Cuando una llamada entra y no se especifica a donde ir, envía a ésta extensión
●i viene de invalido
Cuando la persona quien llama introduce un dígito que no haga match en los contextos se dispara éste contexto.
Extensiones especiales
●t viene de timeout
Cuando quien llama se demora antes de introducir la respuesta la llamada se envia a la extensión 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 envía la llamada a la extensión.
Extensiones especiales
●h viene de hangup
Cuando la llamada se cuelga se dispara ésta extensión.●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 parámetro operator=yes definido para cada voicemail de usuario.
APLICACIONES
●Cada prioridad en el dial plan llama a una aplicación específica●Las aplicaciones
contestan una línea timbrando
Reproducen sonidos
Obtienen información
APLICACIONES
ANSWER()
●Contesta una extensión que está timbrando●Exten => 123,1,Answer()●No siempre se coloca.
APLICACIONES
PLAYBACK()
●Esta aplicación reproduce un archivo de voz●Ignora la entrada de tonos DTMF●El parámetro es el nombre del archivo●Exten => 123,2,Playback(hello-world)●Los formatos que reproduce son gsm, vox. Wav●Por defecto éstos archivos están en /var/lib/asterisk/sounds
APLICACIONES
HANGUP()
●Cuelga el canal activo●Evita estados indeseados en el plan de numeración.●Es buena costumbre utilizarla●En líneas análogas 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 información a través 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 reproducción de
un archivo de voz ●Asterisk envia la llamada a la extension traducida de los tonos recibidos●La llamada se envía 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 máximo tiempo después de que se ha reproducido el menú y no se ha recibido ninguna respuesta (segundos)
●Digit timeout
Máximo tiempo entre dígitos●Absolute timeout
Como indicar la máxima duración de la llamada.
APLICACIONES
WaitExten()
●Sirve para dar más tiempo a la persona que marca una opción.●Se usa después del Background●El parámetro es el número de segundos●Puede ser un número decimal
Exten => 123,n,WaitExten(1.5)
APLICACIONES
VOICEMAIL
Asterisk maneja dos aplicaciones:●VoiceMail(): permite dejar un mensaje en un buzón especificado●VoiceMailMain(): después de pedir autenticación de usuario, permite
revisar buzón, grabar sonidos y personalizar el correo de voz.●Se definen en Voicemail.conf
APLICACIONES
VoiceMail()
Toma dos argumentos:●El número del buzón 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:●Número del buzón: Si no se especifica pregunta por el●Opciones:
s - No pide contraseña.
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, [email protected],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 grabación se digita la tecla número.
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 parámetros
●Prioridad dentro de la misma extensión●Extensión y prioridad dentro del mismo contexto●contexto extensión y prioridad●Exten => 123,n,Goto(contexto,extension,prioridad)
JUMPS Y LOOPS EJERCICIO
Realizar un IVR que:●reproduzca un menú, lea un dígito y lo reproduzca si es menor a 5 ●- si es mayor que 5 y menor que 9, de un mensaje de inválido ●- 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 condición 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 través 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 creación 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 están escritos.●Los contextos son transitivos, lo que significa que si hay más 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 través del siguiente ejemplo se explica como implementar ésta característica:
Problema:●Se deben tener dos categorías 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 más fácil de sostener.●La sintaxis de una variable es: ${VARIABLE}●Las variables son sensibles a mayúsculas y minúsculas. (casa != Casa)●Las variables que tiene Asterisk por defecto son siempre en mayúscula.
APLICACIONES
MeetMe()●Esta es la aplicación 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 música.●Toma como argumento el tipo de música que se quiere escuchar.●Se define en musiconhold.conf●Los archivos mp3 se pueden reproducircon la ayuda de mpg123 o se puede
reproducir música nativamente en ulaw.
APLICACIONES
Transfer()
●Permite transferir una llamada de un punto a otro.●Esta aplicación 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 supervisión, 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 línea permanece en Hold.
APLICACIONES
Transfer()
●Para permitir la transferencia en la aplicación 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 implementa estas funcionalidades bajo los códigos:●#1 -> blind transfer●*2 -> attended transfer
APLICACIONES
Park()
●Permite dejar una llamada en un “parking lot”●Util si se desea tener una llamada en hold y halarla desde otra extensión.●La extensión 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 extensión 700.●La PBX indicará el número del lote donde se parqueó la llamada.●Para retomar la llamada se marca el número 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 extensión, ésta hará exactamente lo
mismo (es como una función de programación)●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 extensión “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 extensión 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
●CONMUTACION DE CIRCUITOS
●Se hace necesaria la multiplexación 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 (más circuítos y de operadores distintos)●Diseñado solo para voz●Es regulado por cada país●La disponibilidad de un canal es de 99.5%
●CONMUTACION DE CIRCUITOS
TELEFONIA ANALOGA
Bucle analógico desde la oficina central de switching hasta el equipo del abonado.
Tipos de líneas 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 desconexión 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.
●CONMUTACION DE CIRCUITOS
POTS (Plain Old Telephony Service)
Discado por pulsos: Señala los digitos que se están discando abriendo y cerrando rápidamente el bucle.
Supervisión de atendido: señala los estados de onhook (colgado) y offhook (descolgado) a otros dispositivos.
Dual-Tone Multi-Frecuency (DTMF): Señala los dígitos que están siendo discados por medio de combinaciones de tonos.
●CONMUTACION DE CIRCUITOS
Señalización
DTMF
FXS
●Foreing eXchange Station●Produce tona de marcado●Se coencta al teléfono●Usa señalización FXO●Los puertos FXS deben suministrar voltaje a los
teléfonos que se conecten.
FXS
●Foreing eXchange Station●Produce tona de marcado●Se coencta al teléfono●Usa señalización FXO●Los puertos FXS deben suministrar voltaje a
los teléfonos 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 dañados, ya que los dos extremos suministran voltaje.
●Los modulos FXS son VERDES
FXS - FXO
DE INTERFAZ ANALOGATDM
Módulos FX0 (rojos)Permite conectar líneas Externas.
Modulo FXS (verdes)Permite conectar teléfonos analógicos.
FXO
●Foreing eXchange Office●Recibe tono de marcado●Conecta al proveedor●Usa señalización FXS●Los modulos FXO son rojos/naranja
GROUNDSTART, LOOPSTART. KEWLSTART
Groundstart(gs)●Instalaciones antiguas●Usado para reducir una condición 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 común 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 marcación a la central, creando un
corto circuito en la línea temporalmente, en otras palabras creando un loop.
●Casi todos los fax, modems y teléfonos de USA usan este tipo de señalización
GROUNDSTART, LOOPSTART. KEWLSTART
Kewlstart(ks)●Similar a Loopstart, pero con supervisión de
desconexión remota.●Esta desconexión es una señal que se envia cuando el
punto lejano (far end) cuaelga el canal.●Sin supervisión la conexión no se cierra.●Es el tipo de señalización preferida en líneas
análogas.●También 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 configuración básica.
●Debe ser invocado después de cargar los drivers
●es corrido desde /etc/init.d/dahdi
●zttool es una herramienta para monitorear y hacer diagnostico básico de canales DAHDI.
●Es una línea telefónica 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.●Conexión de cuatro hilos: un par para recepción, un par para
transmisión.●E1: 31 canales: 2,048 Mbps●T1: 24 canales: 1544 Mbps
●CONMUTACION DE CIRCUITOS
TELEFONIA DIGITA. QUE ES UNA TRONCAL?
●Usa el canal o timeslot 16 para señalización: lleva información de establecimiento y control de las llamadas.
●Proporciona corrección y detección de errores via CRC4.●Usado con señalización MFC-R2●30 canales simultaneos a 64 Kbps●Asterisk no soporta r2, para esto se necesitaría:●Gateways externos e1-MPC/r2 a SIP●Tarjetas Digium y los parches de Moises Silva y algunas librerias
externas: Spandsp, Libunicall, Libupertone, libmfcr2.
●CONMUTACION DE CIRCUITOS
E1
●BRI: (Basic Rate Interface) 144 kbps●2 canales de 64 kbps●1 canal de señalización
●PRI: (PRIMARY RATE INTERFACE)●23 canales de 64 kbps cada uno.●1 canal de señalización●Popular en USA●En Europa según la ITU son 30 canales de 64 Kbps.
●CONMUTACION DE CIRCUITOS
ISDN
●Rápido establecimiento de llamada.
●Caller id saliente configurable.
●Servicio de identificador de llamadas.
●CONMUTACION DE CIRCUITOS
BENEFICIOS DEL ISDN
●Excelente calidad de sonido.●La señal y el ruido se pueden identificar.●La señal no se amplifica sino que se regenera por lo cual no sufre
de degradación.●Circuitos de alta capacidad, que resultan más económicos que 24
o 30 líneas analógicas.
●CONMUTACION DE CIRCUITOS
BENEFICIOS DE LA TELEFONIA DIGITAL
●Diseñado sobre un modelo de comunicaciones punto a punto ya antiguo
●Dependencias dedicadas que son muy costosas.●Redes estáticas, los cambios son costosos y problemáticos.
PROBLEMAS DE LA CONMUTACION DE CIRCUITOS
●Muy confiable.●Excelente calidad de sonido.●Mínima latencia.●Redundancia en caso de fallas de nodos.●Infraestructura dedicada.●Si la red está implementada correctamente, voz y datos no
molestan.
VENTAJAS DE LA CONMUTACION DE CIRCUITOS
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 CIRCUITOS
●CONMUTACION DE CIRCUITOS
●Se desarma el stream (flujo) de datos de audio continuo, en trozos (chunks).
●Se encapsulan en trozos dentro de otros protocolos.●Luego se envían a través de las redes y se espera que lleguen al
destino en el tiempo y forma esperada.
●CONMUTACION DE CIRCUITOS
CONMUTACION DE PAQUETES
●Tiempo que tarda una pieza de información en viajar a través de la red.
●El tiempo máximo aceptable es de 400ms (ideal 200ms)●Entre menos latencia mejor.●La latencia se puede medir por medio de un ping.
●CONMUTACION DE CIRCUITOS
LATENCIA
●Ocurre cuando los paquetes no llegan a intervalos regulares.●También cuando llegan desordenados.●Una gran cantidad de Jitter, hace que una conversación sea
prácticamente imposible.
●CONMUTACION DE CIRCUITOS
JITTER o VARIACION DE LATENCIA
●Ocurre cuando los paquetes no llegan a intervalos regulares.●También cuando llegan desordenados.●Una gran cantidad de Jitter, hace que una conversación sea
prácticamente imposible.●CAUSAS:●Conexiones de red congestionadas.●Redes sin calidad de servicio QoS o mala administración de
tráfico.●Equipos no adecuados.●Crecimiento no planeado.
●CONMUTACION DE CIRCUITOS
JITTER o VARIACION DE LATENCIA
BENEFICIOS:
- Económicas
- Redes flexibles y dinámicas.
- Soporta múltiples 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.
CONMUTACION DE PAQUETES
●Muy confiable.●Excelente calidad de sonido.●Mínima latencia.●Redundancia en caso de fallas de nodos.●Infraestructura dedicada.●Si la red está implementada correctamente, voz y datos no
molestan.
●CONMUTACION DE CIRCUITOS
VENTAJAS DE LA CONMUTACION ED PAQUETES
●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: Estándares abiertos e
internacionales. Inter-operabilidad, disminución de precios entre operadores y fabricantes de hardware dedicado a VoIP.
●Calidad similar a la telefonía tradicional y en casos mejor gracias a los codecs.
●La fiabilidad de servicio es similar a la de la telefonía tradicional.
●CONMUTACION DE CIRCUITOS
VOZ SOBRE IP
●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 aplicación 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 línea escuchando música o silencios entre llamadas.
2. Suene su teléfono al recibir una llamada desde el proceso del ACD.
DEFINICIONES (COLAS Y ACD)
Para configurar un ACD en asterisk:
●Se definen una o más colas ●Asignamos miembros para manejar las llamadas entrantes en
dichas colas.●Asignamos una estrategia (algoritmo usado para distribuir las
llamadas)●Construimos una extensión o macro en el dialplan para evitar las
llamadas a la cola usando la aplicación Queue.●Configuramos agentes para que se logueen y tomen llamadas de
la misma.
QUE SON AGENTES??
●Los miembros de una cola se pueden definir como estáticos o dinámicos.
●Una cola puede usar de ambos●Las colas se definen en el archivo queues.conf●A los miembros dinámicos los llamamos agentes.●Miembros estáticos: member => SIP/101●Miembros dinámicos: member => Agent/2000
MIEMBROS Y AGENTES
●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.
ESTRATEGIAS 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 // Especifica el tiempo en segundos en el cual vamos a llamar a un miembro antes de abandonarlo y llamar al próximo. Si se carga o
dicho teléfono 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
CONFIGURACION DE COLAS
●Con el uso de agentes podemos controlar dinámicamente 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 teléfono escuchando música 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 extensión especificada en el login.
COLAS DE LLAMADAS CON 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
CONFIGURACION DE 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()
LOGUEANDO AGENTES
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
CLI
SOLUCION
●/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
REVISION DE LOGS
— 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′
Ejemplo:
●Logs●Revisión de tarjetas●Polaridad●Revisión de red(conectividad)●IP publicas y privadas●Terminal IP(Telefonos y softphone)●Archivos de configuración●Compatibilidad●Codecs●Protocolos●Puertos
Herramientas de ayuda para solucionar problemas
Asterisk Embebido