Академический Документы
Профессиональный Документы
Культура Документы
con Asterisk
Administrador
Avanzado
ElicerTats
AndrsFuentes
Versin 1.1
CAPTULO 1
ASTERISK: PRIMEROS PASOS
1.1 INSTALACIN DE LINUX Y COMANDOS BSICOS
Prctica 1.1.1: Instalacin del sistema operativo GNU/Linux.
El objetivo de la prctica es adquirir los conocimientos suficientes para reparar un servidor para el
funcionamiento de Asterisk como servidor de comunicaciones.
Instruccines:
1.
2.
3.
4.
Puede observar que el sistema arranca desde el CD, y aparece en el monitor una pantalla con tres
opciones.
5.
6.
Aparece una opcin para revisar los medios (CD /DVD) de instalacin. Si Ud. Est seguro de que estos
medios funcionan adecuadamente, puede prescindir (Skip) de la verificacin.
7.
8.
9.
Desktops
X Window System
Applications
Editors
Servers
Network Servers
Development
X Software Development
System
Administration Tools
System Tools
18. Clic en Next para que de inicio la instalacin del sistema operativo. Este proceso tomar alrededor de
30 minutos, dependiendo de las caractersticas tcnicas de los equipos.
19. En el momento en que aparece la pantalla de instalacin completa retire el CD/DVD del CD ROM y de
clic en Reboot, para reiniciar el sistema.
20. Ahora es necesario completar algunos pasos post-instalacin, de Clic en Next.
21. En la pantalla de Bienvenida (Welcome) presione Next.
22. Acepte el Acuerdo de Licencia GPL y clic en Next.
23. Coloque la hora y fecha adecuadas del sistema y clic en Next.
24. Agregue un usuario y contrasea en referencia a su nombre
25. Haga la prueba de sonido, clic en Next.
26. En la ltima pantalla, clic en Finish. El sistema arranca nuevamente y la instalacion ha finalizado.
Si desea ms informacin, puede consultar el siguiente link:
http://www.alcancelibre.org/staticpages/index.php/procedimiento-instalar-centos6
Prctica 1.1.2: Trabajo con la consola de linux, comandos bsicos.
Con esta prctica el alumno sera capaz de manejar adecuadamente la consola o terminal de linux, poder
moverse entre directorios, crear ficheros y carpetas, copiar, mover o borrar estos ltimos. De esta
manera se proveer al alumno la habilidad suficiente para desenvolverse en la terminal.
Abrir una terminal o consola de linux. Mediante la guia del instructor aplicar y observar el funcionamiento
cp
/home/asterisk/palabras.txt
/home
copia
el
archivo
palabras.txt
Mueve
el
archivo
palabras.txt
mv
/home/asterisk/palabras.txt
/home
"/home/asterisk/palabras.txt" al directorio"/home"
"rm" - Se utiliza para eliminar archivos.
Ejemplo : rm /home/asterisk/palabras.txt - Elimina el archivo palabras.txt que se encuentra en
"touch" - Se utiliza para cambiar el acceso al archivo y modificar el la hora de acceso, tambien para
crear un archivo.
Ejemplo : touch /home/asterisk/palabras.txt - Creara el archivo palabras.txt si este no existe. Sino,
cambiara la hora del ultimo acceso al archivo
"more"
se
utiliza
para
mostrar
de
pantallas
la
informacion.
http://aprendamos-linux.blogspot.com/2007/04/comando-bsicos-consola-linux.html
Ejemplo : chmod 755 /home/asterisk/palabras.txt - Este cambio da todos los permisos menos el de
edicion al archivo palabras.txt
"chown" - Se utiliza para cambiar el propietario y grupo de un fichero.
Ejemplo : chown usuario:grupo /home/asterisk/palabras.txt
"clear" - Se utiliza para limpiar la pantalla
Prctica 1.1.3: Manejo del editor vim
Para la configuracin de asterisk es necesario manipular ficheros de texto. Por tal motivo se requiere que
el alumno conosca el manejo de un editor como el vim (o vi), el cual es uno de los editores mas populares
de sistemas operativos Linux o Unix.
Los modos del vim2:
vim dispone de varios modos en su interfaz. De tal manera dependiendo del modo en el que nos
encontremos una misma tecla puede hacer cosas diferentes. Por ejemplo, en el modo INSERTAR la p
escribir una p en el documento, mientras que en el modo de comandos p (Paste) pega lo que hayamos
copiado.
Los modos ms usados son los siguientes:
Modo ejecucin:
Se trabaja en este modo presionando las teclas [ESC]+[:]. En este modo se puede ejecutar comandos
avanzados en vim.
Modo edicin:
Es el modo de edicin. Para entrar en este modo basta con escribir una [i] desde el modo comando y a
partir de ese momento todo lo que se escriba con el teclado se escribir en el documento, como si de un
editor convencional se tratase.
Para volver al modo comandos slo es necesario presionar la tecla [ESC].
Modo comandos:
Se llega a este modo cuando se presiona la tecla [ESC]. En este modo se puede ejecutar comandos
presionando combinaciones de teclas.
Trabajando con vim:
1.
Abra un terminal virtual. Asegrese de encontrarse en su directorio home. Cree un archivo llamado
vitest usando vim. Escriba el siguiente texto y el alfabeto marino en el archivo vitest. Agregar el
alfabeto es una manera fcil de llenar un par de pantallas de informacin necesaria para un uso
posterior. Esta es una sesin de entrenamiento para el uso de vim.
uno
dos
tres
alfa
bravo
charlie
delta
eco
http://blog.vud1.com/?p=230
2.
fox
golf
hotel
indian
july
kilo
Regrese al modo comando. Guarde y salga del archivo. Note que tan pronto presione los dos puntos
(:), estos aparecen bajo la ltima lnea de su rea de entrada. Una vez que el bfer est vaco y el
archivo cerrado, Ud ve un mensaje con el nmero de lneas y caracteres en el archivo.
Abra de nuevo el archivo vitest. Note que la ltima lnea en la pantalla muestra el nombre del archivo
y el nmero de caracteres.
4.
Utilizando las teclas <h>, <j>, <k> y <l>, practique movindose a travs del archivo.
5.
Usando los comandos vim apropiados para moverse a travs del texto:
6.
<Ctrl-f>
<Ctrl-b>
:1 <enter>
:5 <enter>
Cambie el archivo vitest de manera que despus de cada letra del alfabeto, un primer nombre comn
sea agregado y que inicie con esa letra. Asegrese de usar distintos mtodos para conmutar del
modo de comandos al modo de edicin (insert). El archivo debera verse ms o menos as:
A alfa Ani
B bravo Ben
C charlie Carlos
En el modo comando, situarse en una linea en concreto y probar los comandos copiar (yy), pegar (p)
o cortar(dd). En copiar o pegar se puede anteponer un nmero que indica la cantidad de lineas con
las que el comando respectivo trabajar.
Los primeros conmutadores eran operadores telefnicos que enlazaban fsicamente la lnea
origen y la lnea destino.
Conceptos bsicos:
Conmutacin de circuitos.
Cuando se amplifica una seal analgica se amplifica tambin el ruido que lleve incorporado.
Telefona Digital:
Sealizacin:
Sealizacin Usuario a Red:
SONET es normalmente desarrollado en OC-3, OC-12, and OC-48, que son 155.52 Mbps, 622.08
Mbps, and 2.488 Gbps, respectivamente.
Mtodos de Acceso:
BRI (Basic Rate Interface)
Consiste de dos canales B (bearer) de 64 Kbps controlados por un canal D (data) de 16 Kbps.
E1: 30 canales B y un D para sealizacin (64 Kbps ) 2.048 Mbps. Existe un ltimo canal que sirve
para sincronizacin.
En nuestro pas, cuando se necesitan hasta 30 lneas telefnicas es muy comn solicitar un E1 a
las operadoras telefnicas.
La voz se convierte en bits de informacin que pueden ser encriptados para garantizar seguridad.
Desventajas
Por la naturaleza de los enlaces de Internet se tiene una menor confiabilidad que la PSTN.
En ocasiones se necesita equipos que den prioridad al trfico de voz por ser en tiempo real,
sobretodo en conexiones inalmbricas.
10
1.4 ASTERISK
Asterisk es un software PBX que usa el concepto de software libre (GPL). Digium, empresa que promueve
Asterisk, invierte en ambos aspectos: el desarrollo de cdigo fuente y en hardware de telefona de bajo
costo que funciona con Asterisk. Asterisk corre en plataformas Linux y otras plataformas Unix con o sin
hardware conectando a la red pblica de telefona (PSTN Public Switched Telephone Network). Asterisk
permite conectividad en tiempo real entre las redes PSTN y redes VoIP.
Asterisk incluye muchos recursos que solo eran encontrados en sistemas de mensajeria unificada
propietarios y costosos, se mencionan los ms comunes:
Buzn de voz
Grabacin de llamadas
Desvo de llamadas
Trasferencia de llamadas
Salas de Conferencias
Msica en espera
Integracin con interfaces de telefona tradicional a travs de tarjetas o gateways FXO, FXS, o
digitales (E1, T1, BRI entre otros)
IVR
Lo ms interesante de asterisk es su compatibilidad con mltiples protocolos VoIP como: SIP (Session
Initiation Protocol), H.323, IAX2 (Inter Asterisk eXchange), MGCP (Media Gateway Control Protocol), SCCP
(Skinny Client Control Protocol), entre otros. con la PSTN (HARDWARE)
Versiones de Asterisk:
Existen dos tipos de versiones en asterisk: versiones estandar y versiones LTS (Long Term Support).
Las versiones estandar son mantenidas por un corto periodo de tiempo: 1 ao de soporte completo y 1
ao adicional en el cual se proveen actualizaciones de seguridad
Las versiones LTS tienen un soporte completo por un perodo de 4 aos ms 1 ao adicional para
actualizaciones de seguridad.
En la siguiente tabla se observa el estado actual de las versiones de Asterisk:
Versin Tipo
1.2.X
1.4.X
LTS
Fecha de
Actualizaciones End Of
liberacin de seguridad
Life EOL
2005-11-21 2007-08-07
2010-11-21
2006-12-23 2011-04-21
2012-04-21
11
1.6.0.X
2010-10-01
1.6.1.X
2011-04-27
1.6.2.X
2012-04-21
1.8.X
LTS
2010-10-21 2014-10-21
2015-10-21
10.X
2013-12-15
Escenarios de uso:
PBX IP PURA:
Una PBX completa que cumple todas las expectativas de una empresa.
INTEGRADO CON PBX HEREDADA:
En este escenario asterisk trabaja con una PBX que esta previamente instalada. Normalmente es menos
costoso que actualizar toda la PBX a IP.
12
Asterisk posee funcionalidad de un media gateway, es decir, puede convertir las seales analgicas o
digitales de una PBX tradicional o de los telfonos de los usuarios en voz sobre IP y transmitir por la red
corporativa de datos o internet. La convergencia propicia la reduccin del nmero de circuitos o enlaces y
un mejor aprovechamiento de los recursos. Mediante este modelo se puede conectar por ejemplo oficinas
en distintos paises o regiones, eliminando los altos costos en llamadas internacionales.
SERVIDOR DE APLICACIONES:
Adems de las funciones embebidas que asterisk incorpora, se puede hacer uso de herramientas
adicionales como AGI o AMI para proveer soluciones a medida (aplicaciones informticas) mediante
lenguajes de programacin y bases de datos, satisfaciendo ciertas necesidades especficas del cliente.
Esto convierte a Asterisk en un completo servidor de comunicaciones.
13
MEDIA GATEWAY:
Un media gateway permite convertir entre protocolos de telefona tradicional y telefona IP. Aprovechando
de esta manera toda la infraestructura de telefona que se pueda tener y permitiendo la convergencia e
integracin entre diferentes tecnologias de comunicaciones.
CONTACT CENTER:
Este escenario es bastante comn en escenarios de negocio de ventas por telfono o atencin al cliente.
Asterisk puede servir un sistema de colas en el cual un cliente llama y espera a ser atendido por un
agente. De esta manera se pueden crear soluciones ERP (Enterprise resource planning) integrados a
Asterisk. Otras aplicaciones comunes en este escenario son marcacin de campaas, marcacin
automtica, medicin de calidad de servicio entre otros.
14
eXchange
Station
(FXS):
Emite
sealizacin
(voltaje),
permite
conectar
telfonos,
15
Telfonos IP:
Marcas: Grandstream, Astra, Polycom, etc.
Presentacin: Destinados a distintos tipos de usuario, admiten protocolo SIP, IAX2, H.323.
16
Descargar e instalar el repositorio epel para centos, la versin adecuada del repositorio puede
encuntrarse en http://fedoraproject.org/wiki/EPEL
#yuminstallhttp://epel.gtdinternet.com/6/i386/epelrelease67.noarch.rpm
2.
#yumsearchasterisk
3.
#yuminstallasteriskasterisksoundscoreesgsmasteriskvoicemailplain
4.
#serviceasteriskstart
5.
#asteriskr
17
Si se dispone del hardware adecuado, primero conectarlo a los puertos PCI/PCIe disponibles en el
computador.
2.
#cd/usr/src
3.
Descargar las fuentes de dahdi desde www.asterisk.org, adems de herramientas adicionales como
libpri (en el caso de que se est configurando E1's)
#wgethttp://downloads.asterisk.org/pub/telephony/libpri/releases/libpri1.4.12.tar.gz
#wgethttp://downloads.asterisk.org/pub/telephony/dahdilinuxcomplete/releases/dahdilinux
complete2.6.1+2.6.1.tar.gz
4.
#tarxvfzlibpri1.4.12.tar.gz
#cdlibpri1.4.12
#makeall
#makeinstall
Dahdi-linux-complete: Drivers de hardware y herramientas de configuracin para Dahdi.
#tarxvfzdahdilinuxcomplete2.6.1+2.6.1.tar.gz
#cddahdilinuxcomplete2.6.1+2.6.1
#makeall
#makeinstall
#makeconfig
5.
Cargar el modulo dahdi_dummy para que asterisk lo use como fuente de timing:
#echodahdi_dummy>>/etc/dahdi/modules.conf
6.
#servicedahdistart
En una prctica posterior se realizar la configuracin de canales dahdi as como una revisin de las
opciones de configuracin de esta herramienta.
#cd/usr/src/
2.
#wgethttp://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk1.8.14.0.tar.gz
3.
#tarxvfzasterisk1.8.14.0.tar.gz
#cdasterisk1.8.14.0
#./configure
#makemenuselect
#make
18
#makeinstall
#makeconfig
#makesamples
4.
#serviceasteriskstart
5.
#asteriskr
6.
7.
Para tener mayor informacin sobre los eventos que cursan por Asterisk, se puede iniciar la conexin
al CLI con el argumento v. El nmero de v's inidicar el nivel de invormacin que se quiere
mostrar, ejemplo:
#asteriskrvvvv
19
#asteriskr
1.
Observar la versin, licencia y garantia de asterisk. Adems ver la ayuda de los comandos disponibles
en el CLI:
asterisk*CLI>coreshowversion
asterisk*CLI>coreshowlicence
asterisk*CLI>coreshowwarranty
asterisk*CLI>coreshowhelp
2.
asterisk*CLI>corerestartnow
asterisk*CLI>corerestartwhenconvenient
asterisk*CLI>corerestartgracefully
asterisk*CLI>corestopnow
asterisk*CLI>corestopwhenconvenient
asterisk*CLI>corestopgracefully
asterisk*CLI>corereload
asterisk*CLI>modulereload
asterisk*CLI>coreabortshutdown
3.
#cd/etc/asterisk
4.
Ingresar en el directorio en donde se almacenan los mdulos de Asterisk, los cuales sirven para
aadir o quitar funcionalidades al sistema:
#cd/usr/lib/asterisk/modules
5.
#cd/var/lib/asterisk
#cdagibin
#cd../firmware
#cd../images
#cd../keys
#cd../moh
#cd../sounds
6.
Ingresar en el directorio de spools y en sus subdirectorios, el cual almacena los mensajes grabados en
el buzn de voz, las conferencias grabadas, etc.
#cd/var/spool/asterisk/outgoing
#cd../voicemail
#cd../tmp
7.
#cd/var/log/asterisk
20
Descripcin
Bit rate
(kb/s)
Sampling
rate (kHz)
Notas
Tiene dos versiones u-law (US,
Japan) y a-law (Europa) para
muestrear la seal
G.711
64
G.722
64
16
G.722.1
Codificacin a 24 y 32 kbit/s
para sistemas con baja perdida
de paquetes
24/32
16
G.723.1
5.6/6.3
G.726
16/24/32/40
G.729
GSM 06.10
13
Speex5
8, 16, 32
SILK
De 6 a 40
kbit/s
Como se observa en la tabla, los codecs g729 y g723.1 son de bajo consumo de banda pero para usarlos
hay que pagar licencias. Sin embargo estn disponibles en la red binarios de dichos codecs compilados
por intel, ya que esta ha adquirido licencias para su uso. La web es la siguiente:
http://asterisk.hosting.lv
1.
Para instalar estos codecs, ingresar a la pagina web del link indicado, en dicha pgina se descarga el
binario adecuado de acuerdo al tipo de procesador del servidor y versin de Asterisk instalada. Por
ejemplo, para un procesador de 64 bits y versin de Asterisk 1.8 los binarios a descargar seran:
codec_g723-ast18-gcc4-glibc-x86_64-pentium4.so
codec_g729-ast18-gcc4-glibc-x86_64-pentium4.so
2.
3.
asterisk*CLI>coreshowtranslation
3
4
5
http://bytecoders.net/content/elegir-un-c%C3%B3dec-de-audio-para-asterisk.html
http://www.voipforo.com/codec/codecs.php
http://www.speex.org/
21
Localizar un usuario
Este protocolo ha sido definido por la IETF (The Internet Engineering Task Force) en el documento RFC
(Request for Comments) 3261. En ese documento se explica como deben funcionar programas y/o
dispositivos que quieran implementar el protocolo SIP. Desde un punto de vista del funcionamiento, los
mensajes que se envan son una mezcla entre el protocolo HTTP (Hypertext Transfer Protocol) y el
protocolo SMTP (Simple Mail Transfer Protocol)6.
Para aclarar mejor los conceptos asociados al protocolo SIP visitar el siguiente link:
http://www.sinologic.net/2008-04/aclarando-conceptos-sip-y-voip/
Mtodos/solicitudes y respuestas SIP7:
Dentro del protocolo SIP existen los mtodos, que representan las distintas solicitudes que un dispositivo
puede enviar a otro. As mismo existen las correspondientes respuestas a dichas solicitudes. Se detallan a
continuacin:
Solicitudes SIP:
Hay seis tipos de mtodos / solicitudes:
INVITE
ACK
BYE
CANCEL
REGISTER
OPTIONS
6
7
22
Respuestas SIP:
Las solicitudes SIP son respondidas con respuestas SIP, de las cuales hay 6 clases:
1xx
2xx
respuestas de xito
3xx
respuestas de redireccin
4xx
errores de solicitud
5xx
errores de servidor
6xx
errores globales
Registro SIP:
El registro consiste en que un usuario informe a la red donde puede recibir invitaciones de
comunicaciones por parte de otros usuarios, lo que permite que dicho usuario pudiera recibir un mensaje
en su casa y si luego se trasladaba al trabajo y se registra de nuevo, el mensaje lo recibiera en el
trabajo y no en su casa. El protocolo SIP permite el registro de terminales telefnicos.
La informacin que se brinda al momento del registro entre otras es:
nombre de usuario
direccin ip
Una parte general donde se define la configuracin global del protocolo SIP. Al momento de
configurar una extensin o una troncal, si no se definen algunos parmetros, estos sern tomados
desde la parte general del archivo. Un ejemplo son los codecs audio.
Un bloque central donde se configura el registro a los proveedores VoIP y/o otros servidores
Asterisk .
Una parte final donde se configuran las extensiones internas, las troncales y las conexiones a
otros servidores Asterisk.
Las opciones de la seccin general son (se colocan las que son consideradas de mayor importancia):
8
23
Parmetro
Descripcin
[general]
context=default
udpbindaddr=0.0.0.0:5060
;tcpbindaddr=0.0.0.0:5060
tcpenable=no
Desde la versin 1.6 es posible configurar Asterisk para que permita la sealizacin
SIP sobre el protocolo TCP.
transport=udp
Desde la version 1.8 este parmetro indica que protocolo de transporte se usar en
las llamadas, valores: udp,tcp
useragent=asterisk-#PC
realm=#PC.asterisk.test
srvlookup=yes
Permite hacer bsquedas de registros DNS SRV basadas en los nombres de dominio
para llamadas SIP salientes del tipo: SIP/usuario@dominio. Asterisk hace esta
bsqueda limitndose al primer valor encontrado.
disallow=all
allow=ulaw,gsm,alaw,g729
directmedia=no
Se permite el flujo media directo (audio mediante el protocolo RTP) entre los
terminales. El flujo directo solo es posible cuando los terminales no se encuentran
detrs de un NAT . Valores: yes, no
dtmfmode=rfc2833
Protocolo para el envo de los DTMF (Dual-Tone Multi- Frequency). Son los tonos que
se generan cuando se presionan las teclas del telfono. Valor: rfc2833 Otro valor
bastante comn es inband. Con inband los tonos se envan en el flujo audio (protocolo
RTP). Inband no funciona con el codec audio G729 .
language=es
qualify=yes
qualifyfreq=60
allowtransfer=yes
En casi todos los telfonos SIP, a lo largo de una llamada, es posible presionar un
botn para transferirla a otra extensin. Este parmetro define si Asterisk aceptar
este tipo de solicitudes.
allowguest=no
alwaysauthreject=yes
rtptimeout=60
Si en una llamada establecida no hay flujo audio por 60 segundos la llamada ser
terminada .
rtpholdtimeout=240
Si en una llamada en espera no hay flujo audio por 240 segundos, la llamada ser
terminada .
allowsubscribe=yes
callcounter=yes
Cuenta el numero de canales utilizados por una extensin. Este parmetro junto a las
funciones GROUP y GROUP_COUNT permite limitar el numero de llamadas
24
Descripcin
register =>
Con esta linea empieza el segundo bloque del archivo sip.conf y se utiliza para registrarse a
servidores externos; normalmente proveedores SIP u otros servidores Asterisk. El parmetro
se deja comentado y a seguir se presentan algunos ejemplos:
- register => fulano:sesamo@sip.provider1.com
Para el registro con el proveedor el username ser fulano, la contrasea sesamo y el dominio
sip.provider1.com. Si el proveedor usa un puerto que no es el 5060 hay que especificarlo al
final de la lnea de esta forma:
- register => fulano:sesamo@sip.provider1.com:5061
En los dos casos las llamadas entrantes llegaran a la extensin s y al contexto que se define
en la configuracin de la extensin. Si queremos que las llamadas entre a una extensin
definida, tenemos que aadir al final de la linea el numero. Este numero puede ser arbitrario
siempre y cuando los proveedores SIP no especifiquen diversamente:
- register => fulano:contrasea@sip.provider1.com/1234
registertimeout=20
Asterisk pierde el registro, este parmetro representa el numero de segundos que Asterisk
esperar antes de volver a intentar registrarse.
registerattemps
mwi =>
Finalmente se tiene las opcione especficas para los canales (se colocan las que son consideradas de
mayor importancia):
Parmetro
Descripcin
[nombre]
Nombre del canal SIP con el cual un terminal ser identificado. No es necesariamente el
nmero que se usar para contactar a dicho canal.
type=friend
host=dynamic
secret=
;mailbox=
context=telefonos
callerid=Fulano <201>
;callgroup
;pickgroup
Estos dos parmetros definen una de las funcionalidades avanzadas de Asterisk, es decir
la posibilidad de capturar la llamada de una telfono que est timbrando, desde otro
telfono.
accountcoce=201
Para mayor profundidad y referencia en cuanto a la configuracin del fichero sip.conf, referirse al
siguiente link:
http://www.voip-info.org/wiki/view/Asterisk+config+sip.conf
25
Abrir el fichero /etc/asterisk/sip.conf y segn los parametros explicados en la tabla anterior, colocar lo
siguiente:
[general]
context=default
udpbindaddr=0.0.0.0:5060
realm=instructor.asterisk.test
tcpenable=no
transport=udp
srvlookup=yes
useragent=instructor
disallow=all
allow=ulaw,gsm,g729
directmedia=no
dtmfmode=rfc2833
language=es
qualify=yes
;insecure=invite,port
allowtransfer=yes
allowguest=no
qualifyfreq=60
alwaysauthreject=yes
rtptimeout=60
rtpholdtimeout=240
allowsubscribe=yes
callcounter=yes
[telefono201]
type=friend
secret=*4st3r1skT
callerid=Recepcion#PC<201>
context=telefonos
host=dynamic
disallow=all
allow=ulaw,gsm
;mailbox=201@default
[telefono251]
type=friend
secret=*4st3r1skS
callerid=Alumno#PC<251>
context=softphones
host=dynamic
disallow=all
allow=ulaw,gsm
;mailbox=251@default
2.
asterisk*CLI>sipreload
3.
Ahora se debe configurar los telfonos IP con los datos de las cuentas SIP creadas. Esto depende de
terminal. Entonces los terminales se registran y se puede observar su estado con el siguiente
comando:
26
asterisk*CLI>sipshowpeers
4.
Cuando se deben configurar muchas extensiones, se pueden crear templates (plantillas) donde se
definen todos los parmetros compartidos por todas las extensiones. Luego por cada una de ellas, se
configuran solamente los parmetros que la diferencian de las dems. Para crear un template la
primera linea debe tener esta sintaxis:
[nombreplantilla](!)
[hardphonesoficina](!)
type=friend
secret=*4st3r1skT
context=telefonos
host=dynamic
disallow=all
allow=ulaw,gsm
[softphonesoficina](!)
type=friend
secret=*4st3r1skS
context=softphones
host=dynamic
disallow=all
allow=ulaw,gsm
5.
[telefono201](hardphonesoficina)
callerid=Recepcion#PC<201>
;mailbox=201@default
[telefono202](hardphonesoficina)
callerid=Secretaria#PC<202>
;mailbox=202@default
[telefono203](hardphonesoficina)
callerid=Gerencia#PC<203>
;mailbox=203@default
[telefono251](softphonesoficina)
callerid=Alumno#PC<251>
;mailbox=251@default
[telefono252](softphonesoficina)
callerid=Ventas#PC<252>
;mailbox=252@default
[telefono253](softphonesoficina)
callerid=ATC#PC<253>
;mailbox=253@default
6.
asterisk*CLI>sipreload
asterisk*CLI>sipshowpeers
27
http://www.voipforo.com/IAX/IAXvsSIP.php
28
Parmetro
Descripcin
[general]
Esta etiqueta define el inicio de la parte general de la configuracin del protocolo IAX2
bindport=4569
El puerto UDP usado por este protocolo. Este parmetro va configurado antes del
bindaddr.
bindaddr=0.0.0.0
delayreject=yes
Mejora la seguridad contra brute force password attacks retrasando el envo de los
rechazos de autentificacin.
bandwith=high
Con este parmetro se define el ancho de banda disponible para las llamadas y en base
a este se escogern los codecs audio a utilizar entre los configurados. Este parmetro
acepta como valores: low, medium, high
minregexpire=60
maxregexpire=60
encryption=yes
forceencryption=no
;trunkmaxsize=128000
Define el tamao mximo de los datos (bytes) que pueden pasar por una troncal IAX2
cuando se configura el parmetro trunk=yes. Con 128000 bytes pasarn por la troncal
800 llamadas con codec alaw y paquetes audio de 20ms
trunkmtu=1240
Cuando el trafico que pasa por una troncal IAX2 es bastante alto, si los paquetes UDP los
fragmenta el sistema operativo Linux, hay la posibilidad que se verifique una mala
calidad del audio. Configurando este parmetro con el valor 1240, significa que ser el
mismo Asterisk el que se encargar de fragmentar los paquetes audio ms grandes de
1240 byte, mejorando la calidad del audio en las conversaciones
autokill=ues
Si no se recibe un ACK despus de una NEW enviado dentro de 2000ms, para evitar que
el servidor Asterisk se estanque, se anula la solicitud
En septiembre del 2009 hubo una actualizacin del protocolo IAX2 para mejorar la
calltokenoptional=0.0.0. seguridad. Este parmetro con el que sigue hace referencia a esa nueva
0/0.0.0.0
implementacin. Como la mayora de los telfonos IAX no la soportan se indica que es
opcional para todas las direcciones IP. 0.0.0.0/0.0.0.0
requirecalltoken=auto
Para los canales, son vlidos los parametros de configuracin vistos en sip.conf.
Prctica 1.10.1 Configuracin del fichero iax.conf
Editar el fichero iax.conf, poner los parmetros indicados para la seccin general y crear un canal iax.
Recuerde que tambin se puede aplicar el concepto de plantillas usado en el sip.conf
[general]
bindport=4569
bindaddr=0.0.0.0
delayreject=yes
srvlookup=yes
language=es
bandwidth=high
disallow=all
allow=ulaw,gsm,g729
minregexpire=60
maxregexpire=60
encryption=yes
forceencryption=no
;trunkmaxsize=128000
trunkmtu=1240
autokill=yes
calltokenoptional=0.0.0.0/0.0.0.0
requirecalltoken=auto
Asterisk: Administracin avanzada
29
[telefono301]
type=friend
host=dynamic
secret=*4st3r1skI
context=softphones
;mailbox=301@default
qualify=yes
callerid=VentasExterno<301>
requirecalltoken=auto
Recargar la configuracin de asterisk y observar los canales iax creados:
asterisk*CLI>iax2reload
asterisk*CLI>iax2showpeers
30
Esta prctica es una continuacin de la prctica 1.6.2 en donde se instal dahdi. Lo que sigue es la
configuracin de los canales asociados a la tarjeta instalada en el servidor. Revisar que dahdi
reconoci e inicio nuestro hardware:
#dahdi_hardwarev
2.
#dahdi_gencof
3.
Editar el fichero de configuracin chan_dahdi.conf. Se deben configurar tanto canales FXO como FXS
si se posee, como ejemplo se presenta lo siguiente:
[channels]
usecallerid=yes
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
busydetect=yes
faxdetect=both
language=es
group=0
context=default
;;PUERTOFXO
signalling=fxs_ks
group=0
context=entradapstn
channel=>1
;;PUERTOFXS
signalling=fxo_ks
callerid="Recepcion"<1001>
mailbox=1001@default
group=1
context=telefonos
channel=>2
31
CAPTULO 2
DIALPLAN
2.1 INTRODUCCIN AL DIALPLAN
El Dialplan es el ncleo de Asterisk ya que en este se configura toda la lgica, y se determina como se
van a atender las llamadas salientes y entrantes. En lenguaje natural, un ejemplo muy sencillo de un
Dialplan podra ser el siguiente, cuando un usuario marca un nmero:
La parte globals donde se definen las variables globales que se van a utilizar en la central.
Una ultima parte donde queda toda las configuracin de las llamadas.
Descripcin
[general]
static=yes
Si static es yes y writeprotect es no, para guardar los cambios hechos desde la consola
de asterisk tendremos que escribir el comando dialplan reload.
writeprotect=no;
autofallthrough=yes
Si es yes cuando alguna llamada, por algn motivo se sale del plan se terminar.
priorityjumping=yes
[globals]
En esta seccin se definen las variables globales que se van a poder utilizar en el resto
de los contextos. Por ejemplo:
CONSOLE=Console/dsp ;indica que cuando hagamos referencia a la variable CONSOLE
estamos llamando a /Console/dsp
Las variables suelen ponerse siempre en mayusculas para diferenciarlas posteriormente.
Contextos
Los contextos son colecciones de extensiones agrupadas bajo un criterio comn. Se pueden usar para
implementar algunas caractersticas como:
Seguridad y autenticacin: Permitir llamadas a ciertos destinos solo de telfonos especficos (por
ejemplo llamadas internacionales solo desde gerencia). Inclusive se puede solicitar contrasea
para realizar llamadas a algunos nmeros.
32
Contestador automtico: Recibir a los llamantes y pedirles que ingresen cierta extensin.
Menus multinivel: Menus para categoras dentro de una empresa como contabilidad, ventas,
gerencia, etc.
Privacidad: Crear listas negras de nmeros que no pueden contactar una extensin/extensiones.
Cada contexto se pone con un nombre entre corchetes []. Todas las lineas de un determinado contexto
tienen el mismo formato:
exten => extension,prioridad,Comando(parametros)
La extensin hace referencia al numero marcado desde una terminal telefnica.
La prioridad se refiere al orden en que se ejecutan las instrucciones. Primero se ejecuta la de prioridad 1,
luego la 2 y sucesivamente. Asterisk procesa las lneas secuencialmente, comenzando del nmero ms
bajo al ms alto. Se puede colocar la prioridad n (next), con lo cual asterisk incrementar la prioridad en 1
en cada linea de ejecucin.
El comando hace referencia a la accin a ejecutar.
Extension
En asterisk se define como un conjunto de comandos que se ejecutan para realizar una determinada
tarea que provee un servicio. Desde el punto de vista de la programacin, una extensin sera el nombre
de un script que se ejecuta para proveer una funcin especfica. La extensin puede ser alfanumrica.
En las figura siguiente, se puede observar como cuando se cursa una llamada, esta pertenece a un
Dialplan, dentro de esta pertenecer a un contexto, y aqu a una extensin que como se dijo es un
conjunto de comandos que sern ejecutadas en orden.
Cuando se hace una llamada desde un telfono, asterisk busca a que contexto pertenece dicho canal (en
sip.conf o iax.conf) y lo enlaza con el contexto especificado en el dialplan, ejecutando la extensin
asociada a ese contexto que fue marcada desde el telfono. Como ejemplo observar el grfico inferior:
33
asterisk*CLI>dialplanreload
Reproducir sonido de bienvenida:
exten=>500,1,Playback(democongrats)
exten=>500,2,Hangup()
Comprobacin de latencia y eco:
exten=>501,1,Playback(demoechotest)
same=>2,Echo()
same=>3;Playback(demoechodone)
same=>4,Hangup()
Reproducir la fecha actual:
exten=>502,1,Answer()
same=>n,SayUnixTime(,,ABdY\'digits/at\'kM)
same=>n,Hangup()
Extension start:
exten=>503,1,Goto(pruebas2,s,1)
Crear ahora el contexto pruebas2 y poner en l lo siguiente:
exten=>s,1,Answer()
same=>1,WaitExten(15)
same=>n,BackGround(democongrats)
same=>n,Hangup()
Grabacin de audio y reproduccin del mismo:
exten=>_504,1,Answer()
same=>n,Wait(2)
same=>n,Record(/tmp/prompt${EXTEN:2}:wav)
same=>n,Wait(2)
same=>n,Playback(/tmp/prompt${EXTEN:2})
same=>n,Wait(2)
same=>n,Hangup()
Prctica 2.1.2 Llamadas entre terminales:
Se probar ahora el realizar llamadas entre los terminales SIP, DAHDI e IAX que se han configurado. Crear
el contexto interno y escribir la siguiente configuracin:
1.
exten=>201,1,Answer()
same=>n,Dial(SIP/201,20,r)
same=>n,Hangup()
exten=>202,1,Answer()
same=>n,Dial(SIP/201,20,r)
same=>n,Hangup()
34
exten=>251,1,Answer()
same=>n,Dial(SIP/251,20,r)
same=>n,Hangup()
2.
exten=>301,1,Answer()
same=>n,Dial(IAX2/301,20,r)
same=>n,Hangup()
3.
exten=>1001,1,Answer()
same=>n,Dial(DAHDI/1,20,r)
same=>n,Hangup()
exten=>1002,1,Answer()
same=>n,Dial(DAHDI/2,20,r)
same=>n,Hangup()
35
Prctica 2.2.1 Cambiar el contexto de las llamadas entre canales sip, especificando las
extensiones con patrones de numeracin para la prctica 2.1.2
extensin invlida; usada cuando al pedir el ingreso de una extensin, sta no existe dentro del
contexto actual.
t:
timeout extensin; usada cuando al pedir el ingreso de una extensin, se supera el tiempo de
2.4 VARIABLES
Asterisk puede usar variables globales, compartidas o variables de canal como argumentos para los
comandos dentro del dialplan. Estas son referenciadas dentro del dialplan usando la siguiente sintaxis:
${NOMBRE:offset:longitud}
Si se usan los indicadores offset y logitud la variable resultante es un substring de la variable original, que
comienza en la posicin indicada por el offset y contiene un nmero de caracteres indicado por longitud
contados hacia la derecha. El primer carcter se cuenta en la posicin 0.
${123456789:1}
${123456789:-4}
${123456789:0:3}
${123456789:2:3}
${123456789:-4:3}
36
Concatenacin:
VAR1=abcdef , VAR2=123456
->
${VAR1:-4:3}9z${VAR2:-3}
2.5 FUNCIONES
Las funciones son usadas dentro del dialplan para dinamizarlo. No pueden ser usadas directamente como
las aplicaciones, en vez de esto, las funciones retornan valores como si se tratasen de variables
inteligentes. De hecho al trabajar con funciones se asumen las mismas consideraciones que con las
variables.
Su sintaxis es la siguiente:
NOMBRE_FUNCION(argumentos)
Tambin se puede obtener el valor de una funcin, somo si se tratase de una variable:
${NOMBRE_FUNCION(argumento)}
Adems, se puede encapsular una funcin en otra:
${NOMBRE_FUNCION_1(${NOMBRE_FUNCION_3(argumento)})}
Para conocer un listado de funciones de asterisk y lo que estas realizan, dirigirse hacia:
http://www.voip-info.org/wiki/view/Asterisk+functions
Prctica 2.5.1 Trabajando con funciones:
1. Creacin de un contador utilizando la funcin INC()
[contador]
exten=>601,1,Verbose(Contadorincremental)
;valorinicial
same=>n,Set(CONTADOR=0)
;ahoraseincrementaelvalor
same=>n(increm),Set(CounterVariable=${INC(CONTADOR)})
same=>n,Verbose(Elvalores:${CONTADOR})
same=>n,PlayDigits(${CONTADOR})
same=>n,Wait(1)
same=>n,Goto(increm)
2. Con los conocimientos adquiridos, implementar un contador decremental con la funcion DEC()
37
2.6 APLICACIONES
Las aplicaciones son los obreros del dialplan. Cada aplicacin se encarga de realizar una accin
especfica sobre el canal activo, como por ejemplo reproducir un sonido, recibir un nmero marcado
desde el terminal telefnico, marcar a un canal, colgar la llamada, entre muchas otras tareas.
Dicho de otra manera, una aplicacin ejecuta una tarea que es percibible por el usuario.
Su sntaxis es la siguiente:
NOMBRE_APLICACION(argumentos)
Answer(), Dial() y Hangup() son solo unos pocos ejemplos de aplicaciones del dialplan. Algunas
aplicaciones no requieren de argumentos. Para conocer todas las aplicaciones del dialplan de asterisk,
puede referirse hacia:
http://www.voip-info.org/wiki/view/Asterisk+-+documentation+of+application+commands
Prctica 2.6.1: Creacin de un men de bienvenida
1.
exten=>s,1,Set(TIMEOUT(digit)=5)
same=>n,Set(TIMEOUT(response)=5)
same=>n,Wait(1)
same=>n(menu),Background(pbx/pbx_menu)
same=>n,Waitexten(5)
;
exten=>1,1,Goto(interno,201,1)
exten=>1,n,Hangup()
;
exten=>2,1,Goto(interno,251,1)
exten=>2,n,Hangup()
;
exten=>3,1,Goto(interno,301,1)
exten=>3,n,Hangup()
;
exten=>i,1,Playback(pbx/opcion_i)
exten=>i,n,Goto(ivr_menu,s,menu)
exten=>i,n,Hangup
;
exten=>t,1,Playback(pbx/opcion_t)
exten=>t,n,Goto(interno,201,1)
exten=>t,n,Hangup
2.
Modificar el sip.conf para crear los canales necesarios para la prctica y asignarlos al contexto
adecuado. Adems, crear un contexto (de bienvenida) en el cual se debe colocar una extensin para
saltar al contexto ivr_menu.
38
ordenada para producir un resultado. Una expresin puede por ejemplo comparar valores, modificar una
cadena de caracteres o realizar operaciones matemticas.
Se representan de la siguiente manera:
$[expr1]
Operadores lgicos
Parentesis: (, )
39
1.
[general]
format=wav
serveremail=direccion@queenvia.com
attach=yes
delete=no
maxmsg=100
maxsecs=180
minsecs=2
skipms=3000
maxsilence=10
silencethreshold=128
maxlogins=3
emailsubject=NuevoMensajede${VM_CALLERID}
emailbody=Buenosdas${VM_NAME},\n\nHemosrecibidounmensajeensubuzondevoz
emaildateformat=%A,%B%d,%Yat%r
2.
Con esto tenemos ms que suficiente para componer mensajes para el buzon de voz y enviarlos por
email. Ahora vienen los contextos. Como siempre, si es [default] es el genrico, y luego los contextos
especficos. Ejemplo.
[default]
1234=>5678,BuzondeEjemplo,ejemplo@buzones.com
En primer lugar, el nmero del buzn, luego lo utilizaremos en el Dialplan para la aplicacin
Voicemail as referirnos a este buzn.
En segundo lugar, la contrasea para acceder al buzn. Tendremos que crear una extesin en el
Dialplan para que el usuario pueda acceder a su buzn de forma interna. Esto solo es til si no
marcamos la opcin de borrado de mensajes del buzn al ser enviados por email
3.
En tercer lugar, nombre del buzn que luego utilizaremos en variables como VM_NAME
Crear dentro del contexto adecuado las extensiones y sntaxis adecuada para que cuando se llama a
un canal SIP o IAX, dependiendo del estado del canal se guarde un mensaje de voz al usuario.
10 http://10000horas.com/asterisk/2011/01/30/conquistando-el-dialplan-i-aplicaciones-asterisk-voicemail/
40
exten=>_X!,1,Dial(SIP/${EXTEN},20,rt)
exten=>_X!,n,GotoIf($[$["${DIALSTATUS}"="NOANSWER"]|$["${DIALSTATUS}"=
"BUSY"]]?buzon:terminar)
exten=>_X!,n(buzon),VoiceMail(${EXTEN}@default,ub)
exten=>_X!,n(terminar),HangUp()
4.
Crear otra extensin dentro del contexto adecuado para la revisin de los mensajes de voz para el
usuario11
exten=>*99,1,Answer()
same=>n,VoiceMailMain(${CALLERID(num)}@default)
same=>n,HangUp()
exten=>*98,1,Answer()
same=>n,VoiceMailMain()
same=>n,HangUp()
11 http://voztovoice.org/?q=node/53
41
QUITO (sip.conf):
[general]
insecure=invite,port
;register=>quito:asterisk2012@dir_ip_guayaquil
[guayaquil]
type=peer
context=entrada_trunk
host=dir_ip_guayaquil
disallow=all
allow=g723.1,g729,gsm
2.
GUAYAQUIL (sip.conf):
[general]
insecure=invite,port
;register=>guayaquil:asterisk2012@dir_ip_quito
[quito]
type=peer
context=entrada_trunk
host=dir_ip_quito
disallow=all
allow=g723.1,g729,gsm
12 http://www.voip-info.org/wiki/view/Asterisk+-+dual+servers
42
QUITO: (iax.conf)
[guayaquil]
type=friend
secret=asterisk2012
auth=md5
context=entrada_trunk
host=dir_ip_guayaquil
trunk=yes
allow=g723.1,g729,gsm
qualify=yes
4.
GUAYAQUIL (iax.conf):
[quito]
type=friend
secret=asterisk2012
auth=md5
context=entrada_trunk
host=dir_ip_quito
trunk=yes
allow=g723.1,g729,gsm
qualify=yes
5.
Los terminales en los dos servidores deben tener distinta numeracin, caso contrario, el nmero de
origen (CALLERID deben ser modificado al momento de realizar la llamada.
6.
Crear el contexto adecuado para realizar las llamadas de salida, colocando extensiones con prefijos
para diferenciar el destino. De igual manera crear un contexto de entrada para recibir las llamadas
provenientes desde el servidor remoto.
43
2.9 MACROS
Un macro es similar a una funcin en cualquier lenguaje de programacin, es decir, un segmento de
codigo que puede llamarse o usarse en cualquier parte del programa. Permite simplificar el uso de tareas
repetitivas en el dialplan.
Dentro del dialplan, se define una macro como un contexto ms, de la forma:
[macronombremacro]
En donde la cadena de texto nombremacro indica el nombre que se le dar a la macro. Luego dicho
nombre servir para llamarla dentro del dialplan, de la siguiente manera:
[contexto]
exten=>ext,pri,Macro(nombremacro,arg1,arg2,...,argn)
Los argumentos son valores numricos o texto que se pasan a la macro para que luego esta pueda
trabajar internamente con una serie de variables: ${ARG1}, ${ARG2},..., ${ARGn}; que se asignan en
orden segn el nmero de argumentos enviados a la macro. Ademas tambin se tiene las variables
MACRO_CONTEXT, MACRO_EXTEN y MACRO_PRIORITY, que indican el contexto, la extension y la prioridad
original en la que se llamo al macro.
Prctica 2.9: Para entender mejor el funcionamiento de las macros, se crear una para el
buzn de voz. Modificar el fichero extensions.conf con lo siguiente:
[macrovoicemail]
exten=>s,1,Dial(${ARG1}/${ARG2},10)
same=>n,GotoIf($[$["${DIALSTATUS}"="BUSY"]|$["${DIALSTATUS}"="NOANSWER"]]?
buzon:terminar)
same=>n(buzon),VoiceMail(${ARG1}@${ARG3},bu)
same=>n(terminar),Hangup()
Ahora, en el contexto [interno], llamar a la macro de la siguiente manera:
[interno]
exten=>_[23]XX,1,Macro(buzon,SIP,${EXTEN},acierte)
Los argumentos SIP, ${EXTEN} y acierte, pasaran a guardarse en ${ARG1}, ${ARG2} y ${ARG3}
respectivamente para ser usados por la macro.
44
2.10 ASTDB
1.
Se configurar un contador en una extensinque diga los numeros desde el 0 en adelante hasta que
se corte la llamada.
exten=>603,1,Answer()
same=>n,Set(COUNT=0)
same=>n(say),SayNumber(${COUNT})
same=>n,Set(COUNT=$[${COUNT}+1])
same=>n,GoTo(say)
2.
Al llamar a la extensin 603 se escucharan los nmeros desde el 0 en adelante hasta que se cuelgue.
Si se hace de nuevo la llamada, no empieze desde 0 sino desde donde se haya quedado. Para ello se
usara la base de datos de asterisk, donde se almacena la variable COUNT.
exten=>603,1,Answer()
same=>n,Set(COUNT=${DB(test/count)})
same=>n,GotoIf($[${ISNULL(${COUNT})}]?:say)
same=>n,Set(DB(test/count)=0)
same=>n,Goto(2)
same=>n(say),SayNumber(${COUNT})
same=>n,Set(COUNT=$[${COUNT}+1])
same=>n,Set(DB(test/count)=${COUNT})
same=>n,GoTo(say)
3.
Ahora se comprueaba que si se vuelve a llamar a la extensin 200 va a continuar desde donde se
quedo anteriormente, aun si se reinicia el servicio de Asterisk.
BLACKLIST
4.
Ahora se probara la llamada lista negra, que no es mas que una familia en la base de datos que
permite guardar el numero que se bloqueara para las las llamadas.
asterisk*CLI>databaseputblacklist1001
5.
Aqui lo se hace es guardar el numero 100 en la lista negra. Ahora con la funcin BLACKLIST() se
comprueba si el callerid de la persona que llama es parte de la lista negra:
exten=>201,1,GotoIf($[${BLACKLIST()}]?bloqueado,1)
same=>n,Dial(sip/${EXTEN})
exten=>bloqueado,1,Answer()
same=>n,Playback(vmgoodbye)
same=>n,Hangup()
6.
Como se sabe el CallerId tiene nombre y nmero del llamante, y cualquiera de los dos puede ser
bloqueado en la lista negra. Ahora probar agregando el valor de un nombre:
asterisk*CLI>databaseputblacklistJuan1
Si el telefono que llama tiene un callerid con nombre Juan tambien ser bloqueado.
45
Call parking: Desde un canal mediante una combinacin de teclas, se puede dejar la llamada
parqueada en un canal virtual. Una vez se cierre la presente llamada, se puede tomar desde
otro canal la llamada parqueada y continuar la conversacin. 13
Funciones personalizadas: Se puede programar una tarea especfica en el dialplan para realizar.
Todo esto se configurar en el archivo features.conf, el cual puede contener los siguientes parmetros:
13 http://www.voztovoice.org/?q=node/78
46
47
Editar el fichero features.conf. Ver los siguientes parmetros indicados en las tablas para una correcta
configuracin.
[globals]
DYNAMIC_FEATURES=test1#automon#disconnect#atxfer#parkcall#automixmon
Contexto para las llamadas parqueadas:
[subscribe]
exten=>_70Z,hint,park:${EXTEN}@parkedcalls
exten=>710,hint,park:710@parkedcalls
14 http://voztovoice.org/?q=node/80
48
2.
Y en el contexto interno:
[interno]
include=>parkedcalls
3.
Y finalmente al momento de marcar con la aplicacin dial, colocar opciones adicionales para hacer
uso de las funciones configuradas, las opciones son las siguientes (se presentan con algunos
ejemplos)
exten=>2000,1,Dial(SIP/2000,30,hH)
h: permite al llamado colgar la llamada usando la tecla **
exten=>2000,1,Dial(SIP/2000,30,kK)
k: permite al llamado parquear la llamada digitando la secuencia de teclas definida en
features.conf
K: permite al llamante parquear la llamada digitando la secuencia de teclas definida en
features.conf
exten=>2000,1,Dial(SIP/2000,30,tT)
t: permite al llamado transferir la llamada digitando la secuencia de teclas definida en
features.conf
T: permite al llamante transferir la llamada digitando la secuencia de teclas definida en
features.conf
exten=>2000,1,Dial(SIP/2000,30,wW)
w: permite al llamado empezar la grabacin de la llamada digitando la secuencia de teclas
definida en features.conf. Asterisk, en este caso, crear dos archivos audio, uno por cada
interlocutor.
W: permite al llamante empezar la grabacin de la llamada digitando la secuencia de teclas
definida en features.conf. Asterisk, en este caso, crear dos archivos audio, uno por cada
interlocutor.
exten=>2000,1,Dial(SIP/2000,30,xX)
x: permite al llamado empezar la grabacin de la llamada digitando la secuencia de teclas
definida en features.conf. La diferencia con las opciones w y W es que en este caso los dos
canales (llamante y llamado) se grabaran en un nico archivo audio
X: lo mismo de arriba pero para el llamante.
49
2.12 CONFERENCIA
Una importante caracterstica de asterisk es la posibilidad de crear conferencias audio. En esta parte se
aprender como configurar el archivo meetme.conf y algunos ejemplos de como usar una conferencia.
Pactica 2.12: Creacin de salas de conferencia en asterisk:15
1.
[general]
audiobuffers=32
;Numero de paquetes audio de 20ms que sern guardados en un buffer de memoria cuando pertenecen a
canales que no son DADHI. Esto permite sincronizar el audio de los distintos participantes y evitar
retrasos. Puede ser un valor entre 2 y 32
[rooms]
;
;lasintaxises:conf=>confno[,pin][,adminpin]
;
conf=>3500
conf=>3501,1234
conf=>3502,1234,5678
En el primer ejemplo se define un cuarto de conferencias cuya extensin es 3500 y a todos los usuarios
es permitido entrar. En el segundo la extensin es la 3501 y para entrar los usuarios tendrn que digitar
el PIN 1234. En la tercero la extensin es la 3502. Los usuarios tendrn que usar el PIN 1234 y los
administradores el PIN 5678
2.
Ahora se modifica el dialplan para utilizar las conferencias, aadiendo un nuevo contexto:
[conferencias]
exten=>_350[012],1,Meetme(${EXTEN},scM(default))
same=>n,Hangup
3.
4.
Ahora, se probar las salas de conferencia limitando el nmero de usuarios, para lo cual se har uso
de una macro:
[macromeetme]
exten=>s,1,MeetMeCount(${MACRO_EXTEN},count)
same=>n,Gotoif($[${count}>${confmax}]?llena)
same=>n,MeetMe(${MACRO_EXTEN},scM(default))
15 http://voztovoice.org/?q=node/205
50
same=>n,Hangup
same=>n(llena),Playback(confinvalid)
same=>n,Hangup
5.
exten=>_350[012],1,Set(confmax=5)
same=>n,Macro(meetme)
same=>n,Hangup
51
CAPTULO 3
DIALPLAN AVANZADO
#yuminstallpostgresql91develpostgresql91serverpostgres91pgadmin3_91
Inicializar la base de datos postgres (se hace solo una vez):
#/etc/init.d/postgresql9.1initdb
host
all
all
127.0.0.1/32
trust
host
all
all
192.168.1.0/24
md5
host
asteriskDB
asterisk
127.0.0.1/32
md5
listen_addresses='*'
port=5432
16 http://www.voip.unam.mx/mediawiki/index.php/El_registro_detallado_de_llamadas_de_Asterisk_CDR_-_Integracin_con_PostgresSQL
52
#servicepostgresqlstart
Conectarse al cli de postgres, crear el usuario y la base de datos necesarios:
#supostgres
$createusersDRlPeasterisk
$createdbOasteriskeasteriskDB
$exit
Crear una tabla con los campos necesarios para el CDR, se har uso de un fichero de texto en
el cual est presente la configuracin de la tabla para la BD, que es la siguiente:
/*FICHEROcdr_pgsql.sql*/
CREATETABLEcdr(
calldatetimestampNOTNULL,
clidvarchar(80)NOTNULL,
srcvarchar(80)NOTNULL,
dstvarchar(80)NOTNULL,
dcontextvarchar(80)NOTNULL,
channelvarchar(80)NOTNULL,
dstchannelvarchar(80)NOTNULL,
lastappvarchar(80)NOTNULL,
lastdatavarchar(80)NOTNULL,
durationintNOTNULL,
billsecintNOTNULL,
dispositionvarchar(45)NOTNULL,
amaflagsintNOTNULL,
accountcodevarchar(20)NOTNULL,
uniqueidvarchar(150)NOTNULL,
userfieldvarchar(255)NOTNULL
);
#pgsqlUasteriskdasteriskDBW<cdr_pgsql.sql
Compilar asterisk con el soporte para CDR en postgreSQL, tener precaucin de verificar si el
mdulo se selecciona al momento de realizar el comando make menuselect, caso contrario,
iniciar la compilacin de asterisk mediante el siguiente comando:
53
#./configurewithpostgres=/usr/pgsql9.1
Finalmente
configurar
el
fichero
/etc/asterisk/cdr_pgsql.conf, habilitando el
acceso a la base de datos creada en postgres
para asterisk:
[global]
hostname=localhost
port=5432
dbname=asteriskDB
password=password
user=asterisk
table=cdr
Reiniciar asterisk y conectarse mediante una
herramienta para visualizar los datos, como
pgadmin, colocando los datos de acceso
configurados previamente:
Empezar a realizar llamadas y observar como
se guarda la informacin de cada llamada
realizada. Verificar cada campo y analizar la
informacin que se obtiene desde el CDR.
Revisar la aplicacin NoCDR y la funcin CDR del dialplan.
En el cli de asterisk, revisar los comandos presentes para la administracin de las conferencias.
54
Descripcin
[general]
persistentagents
multiplelogin
Define si est permitido a una extensin conectarse como agente mltiple. Valor no
[agents]
maxlogintries
autologoff
Nmero de segundos que tiene un agente para contestar una llamada entrante. Si no
contesta dentro de ese tiempo, ser desconectado de la cola. Valor 15
autologoffunavail
ackcall
Para atender una llamada un agente tiene que presionar la tecla indicada en el
prximo parmetro. Valor no (no tiene que presionarla) .
acceptdtmf
endcall
enddtmf
wrapuptime
musiconhold
;goodbye=vm-goodbye
locucin que el agente escuchar al terminar una llamada. Si se deja comentado ser
la predefinida (vm-goodbye)
updatecdr
recordagentcalls
recordformat
;savecallsin
custom_beep
55
agent
Existen dos maneras de configurar los agentes, la forma atendida (tambin llamada esttica)
y la forma desatendida (tambin llamada dinmica). Difieren entre ellas en la forma como los
agentes se conectan a la cola y reciben llamadas de esta.
En la manera atendida, el agente mediante el proceso adecuado, se loguea en la cola y est
permanentemente conectado a esta a la espera de llamadas, para tal motivo debe mantener
abierto un canal. En la manera destatenida, el agente indica a la cola en que terminal
(telfono, softphone) puede recibir las llamadas sin embargo no est permanentemente
conectado a esta, por lo tanto es la cola quien se encarga de enviar las llamadas entrantes al
terminal del agente.
Configuracin de Colas: El fichero a editar es /etc/asterisk/queues.conf, se presenta una
tabla18 con las principales opciones de configuracin y su funcin.
Parmetro
Descripcin
[general]
persistentmembers
yes = se guardan los datos de los miembros de la cola activos en la base de datos
interna de Asterisk. Si se reinicia la PBX los miembros sern reasignados a las colas
correspondientes.
autofill
Normalmente una cola funciona de la siguiente manera. Hay unos cuantos usuarios
esperando por ser atendidos por los agentes. Cuando el usuario que est de primero
en la cola viene atendido el segundo se vuelve primero e ser atendido por el primer
agente disponible. Este comportamiento no tiene en cuenta que pueden haber
muchos agentes disponibles y que podran atender los clientes sin esperar que
lleguen a ser los primeros de la cola de espera. Con este parmetro se define otro tipo
de comportamiento. Los clientes sern atendidos de manera paralela hasta que haya
agentes disponibles. De esta forma se reducen considerablemente los tiempos de
espera. Valor yes
monitor-type
El tipo de aplicacin utilizada para grabar las conversaciones de una cola. Puede ser
Mixmonitor o monitor .
updatecdr
Actualiza o no el valor del campo dstchannel del CDR (el registro de las llamadas) con
el nombre del agente.
shared_lastcall
[ventas]
Con esta etiqueta se define la primera cola de espera , para el ejemplo, se llama
ventas.
musiclass
;announce=queue-ventas
Este parmetro permite crear una anuncio para que los agentes que pertenecen a
ms de una cola para que sepan, antes de atender una llamada, de que cola proviene
el cliente. Se deja comentado
strategy
En este parmetro se define la lgica con que se enrutarn las llamadas de una cola a
los agentes:
leastrecent: Asigna la siguiente llamada al agente que ms tiempo lleva sin
atender una llamada.
fewestcalls: Asigna la siguiente llamada al agente que menos llamadas ha
atendido.
random: Asigna la siguiente llamada aleatoriamente a cualquier agente disponible.
ringall: Llama todos los agentes disponibles a la vez hasta que uno conteste.
rrmemory: Distribuye las llamadas por turnos entre los agentes disponibles y
recuerda el ltimo agente al que intent llamar.
linear: Llama los agentes siguiendo el orden definido en este archivo de
configuracin. Si son agentes dinmicos segn el orden con que se han registrado a
la cola .
wrandom: asigna la llamada aleatoriamente usando una mtrica basada en
penalidades.
servicelevel
56
context
Si el cliente en la cola antes de ser atendido presiona una tecla del telfono ser
enviado al contexto definido en este parmetro y a la prioridad correspondiente al
dgito que ha marcado. Valor ventas-exit
timeout
En la cola se pueden configurar dos distintos tipos de tiempos de espera. Uno a nivel
de aplicacin (dialplan) define el tiempo mximo que un cliente podr quedar en la
cola. Pasado ese tiempo sin ser atendido, el cliente saldr de la cola y se ejecutara la
siguiente prioridad presente en el dialplan. El segundo es el tiempo mximo que
timbrar la extensin de un agente antes de considerarlo no disponible y pasar al
siguiente. Este parmetro y los siguientes dos se utilizan para definir que tipo de
tiempo de espera tendr la prioridad. Este primer parmetro define por cuantos
segundos timbrar la extensin del agente. Valor 15
retry
timeoutpriority
weight
El peso de la cola. Ms alto el valor, ms prioridad tendr la cola. Si hay agentes que
atienden ms de una cola, las colas con peso ms alto sern atendidas con prioridad
respecto a las colas con peso ms bajo. Valor 0
wrapuptime
Tiempo de descanso de un agente entre una llamada y otra (en segundos) Valor 15
autopause
maxlen
setinterfacevar
yes = una serie de variables sern creadas justo antes de conectar un miembro de la
cola con un cliente (vase archivo predefinido queues.conf)
setqueueentryvar
yes = otra serie de variables sern creadas justo antes de conectar un miembro de la
cola con un cliente (vase archivo predefinido queues.conf)
setqueuevar
yes = otra serie de variables relacionadas con la cola sern creadas justo antes de
conectar un miembro de la cola con un cliente (vase archivo predefinido
queues.conf)
;membermacro=macro
announce-frequency
min-announce-frequency
Para evitar que cada vez que la posicin y/o el tiempo estimado de espera de un
cliente cambie se le presente un anuncio, este parmetro define un tiempo (en
segundos) que se esperar antes de comunicarle su nueva posicin/tiempo estimado.
Valor 15
;periodic-announcefrequency=60
;random-periodicannounce=no
Los anuncio pueden ser presentado segn un orden aleatorio. Se deja comentado
announce-holdtime
Anunciar junto a la posicin en la cola el tiempo estimado de espera. Puede ser yes,
no, u once (una sola vez)
announce-position
announce-position-limit
announce-round-seconds
Con este parmetro se redondea los minutos y los segundos de espera anunciados al
cliente. Valor 20
;queue-youarenext=queueyouarenext
;periodicannounce=anuncio1,anuncio
2
;monitor-format=gsm|wav|
wav49
formatos audio en que se grabarn las conversaciones de la cola de espera (si se deja
comentado, no se grabaran)
57
monitor-type
joinempty
leavewhenempty
Este parmetro aplica a los clientes que ya estn en la cola de espera y en base a los
valores indicados, si todos los agentes se vuelven no disponibles, el cliente ser
sacado de la cola.
;eventwhencalled = yes
;eventmemberstatus = yes
Estos dos para metros configurados en yes, generan una serie de eventos
relacionados con la cola en el AMI de Asterisk
reportholdtime
ringinuse
memberdelay
timeoutrestart
yes = el tiempo de espera para que una agente conteste una llamada se resetea si el
estado de la extensin es BUSY o CONGESTION
;defaultrule=myrule
[general]
persistentagents=yes
multiplelogin=no
[agents]
maxlogintries=3
autologoff=15
autologoffunavail=yes
ackcall=no
acceptdtmf=#
Asterisk: Administracin avanzada
58
endcall=yes
enddtmf=*
wrapuptime=5000
musiconhold=default
;goodbye=vmgoodbye
updatecdr=yes
;group
recordagentcalls=no
recordformat=wav
;savecallsin=/home/calls
custom_beep=beep
agent=>2000,1234,PepitoPerez
agent=>2001,1235,JuanitoJimenez
agent=>2002,1236,LuchitoLopez
queues.conf
[general]
persistentmembers=yes
autofill=yes
monitortype=mixmonitor
updatecdr=no
240
shared_lastcall=yes
[ventas]
musicclass=default
;announce=queueventas
strategy=random
servicelevel=120
context=ventasexit
timeout=15
retry=4
timeoutpriority=app
weight=0
wrapuptime=2
autofill=yes
autopause=yes
maxlen=50
59
setinterfacevar=yes
setqueueentryvar=yes
setqueuevar=yes
;membermacro=macro
announcefrequency=90
minannouncefrequency=15
;periodicannouncefrequency=60
;randomperiodicannounce=no
announceholdtime=once
announceposition=more
announcepositionlimit=5
announceroundseconds=30
;periodicannounce=queueperiodicannounce
;periodicannounce=anuncio1,anuncio2
;monitorformat=gsm|wav|wav49
monitortype=mixmonitos
joinempty=paused,unavailable,invalid,unknown
leavewhenempty=paused,unavailable,invalid,unknown
;eventwhencalled=yes
;eventmemberstatus=yes
reportholdtime=yes
ringinuse=no
memberdelay=5
timeoutrestart=yes
;defaultrule=myrule
member=>Agent/2000
member=>Agent/2001
member=>Agent/2002
Agentes de manera atendida: Una vez terminado de configurar estos ficheros, se crea un
contexto en el dialplan mediante el cual los agentes pueden ingresar a la cola.
[login]
exten=>777,1,Answer()
same=>n,AgentLogin()
same=>n,HangUp()
Finalmente crear un contexto en el cual recibir las llamadas entrantes que irn a la cola:
60
[colas]
exten=>600,1,Answer()
same=>n,MixMonitor(${UNIQUEID}.gsm,b)
same=>n,Queue(ventas,t,,,30)
same=>n,HangUp()
Agentes de manera desatendida: Con este mtodo, se usarn las aplicaciones
AddQueueMember y RemoveQueueMember que permiten agregar un agente en la cola y
quitarlo respectivamente. Los agentes no necesariamente deben estar presentes en el fichero
agents.conf
[login]
exten=>777,1,Answer()
same=>n,AgentLogin()
same=>n,HangUp()
;Ingresoenlacola
exten=>778,1,Answer()
same=>n,Addqueuemember(ventas,SIP/${CALLERID(num)})
same=>n,Playback(agentloginok)
same=>n,HangUp()
;Salidadelacola
exten=>779,1,Answer()
same=>n,Removequeuemember(ventas,SIP/${CALLERID(num)})
same=>n,Playback(agentloginok)
same=>n,HangUp()
61
El conector ODBC es una capa de software que permite a Asterisk comunicarse con bases de
datos relacionales sin requerir el uso de una aplicacin nica para cada base de datos que se
quiera soportar.
Prctica 3.4.1: Instalacin de un motor de text-to-speech (tts), para reproducir
contenido dinmico leido desde una base de datos.
Se utilizar el programa festival, que es un motor tts libre. Asterisk posee un mdulo y
aplicacin para usar festival, si no es as, asegurarse de instalar festival y recompilar asterisk.
#yuminstallfestival
Instalacin de las voces en espaol:
#yuminstallhispavoces*
Toda la programacin y contenido para sintenizar las voces en espaol se lo tiene gracias a un
proyecto espaol de la Junta de Andalucia. Una vez instaladas las voces, se pueden ubicar
en:
/usr/share/festival/lib/voices/es/
Aqu
estn
presentes
los
directorios:
JuntaDeAndalucia_es_sf_diphone y JuntaDeAndalucia_es_pa_diphone.
Modificar el fichero de configuracin de festival: /usr/share/festival/lib/festival.scm, antes de la
ltima linea colocar lo siguiente:
;(language__spanish)
(set!voice_default'voice_JuntaDeAndalucia_es_sf_diphone)
(define(tts_textasteriskstringmode)
"(tts_textasteriskSTRINGMODE)
62
ApplyttstoSTRING.Thisfunctionisspecificallydesignedforuseinservermodesoasingle
functioncallmaysynthesizethestring.Thisfunctionnamemaybeaddedtotheserversafe
functions."
(let((wholeutt(utt.synth(eval(list'Utterance'Textstring)))))
(utt.wave.resamplewholeutt8000)
(utt.wave.rescalewholeutt5)
(utt.send.wave.clientwholeutt)))
#festival_server
= /usr/lib/psqlodbc.so
Setup
= /usr/lib64/libodbcpsqlS.so
Driver
= /usr/pgsql-9.1/lib/psqlodbc.so
FileUsage
= 1
# odbcinst -q -d
Luego de esto, se debe crear el conector que ser usado por asterisk para integrarse con
PostgreSQL a travs de ODBC, esto se configura en el fichero /etc/odbc.ini, los datos son los
siguientes19:
19http://ofps.oreilly.com/titles/9780596517342/asterisk-DB.html
http://astbook.asteriskdocs.org/en/2nd_Edition/asterisk-book-html-chunk/getting_funky.html
63
[asterisk-connector]
Description
Driver
= PostgreSQL
Database
= asteriskDB
Servername
= 192.168.0.209
UserName
= asterisk
Password
= 4st3r1sk
Port
= 5432
Protocol
= 8.1
ReadOnly
= No
RowVersioning
= No
ShowSystemTables
= No
ShowOidColumn
= No
FakeOidIndex
= No
ConnSettings
Una vez editado el fichero hay que probar que el conector funcione adecuadamente, correr
para ello el siguiente comando:
#echo"select1"|isqlvasteriskconnector
El cual devuelve:
+---------------------------------------+
| Connected!
| sql-statement
| help [tablename]
| quit
+---------------------------------------+
SQL> +------------+
| ?column?
+------------+
| 1
+------------+
SQLRowCount returns 1
1 rows fetched
Llegado a este punto, est listo el conector y la base de datos, lo que sigue es configurar
asterisk correctamente para el uso del connector odbc. Para asegurarse esto, se debe
recompilar asterisk.
Una vez terminado el proceso de recompilacin, hay que editar el fichero
/etc/asterisk/res_odbc.conf, en donde se colocan los datos para que asterisk use el conector
ODBC. El fichero debe contener lo siguiente:
64
[ENV]
[asterisk-connector]
enabled => yes
dsn => asterisk-connector
username => asterisk
password => 4st3r1sk
pooling => no
limit => 1
pre-connect => yes
Recargar asterisk y correr el comando odbc show (en el cli de asterisk) mediante lo cual se
comprueba si se tuvo xito en la conexin hacia la BD mediante ODBC.
Finalmente se debe editar el fichero /etc/asterisk/func_odbc.conf, en este fichero se configurar
'Funciones ODBC' en lenguaje SQL para leer o escribir datos en la BD. Se hace uso de la
funcin del dialplan SQL_ESC, la cual permite pasar datos desde el diaplan a la BD y adems de
las variables: ARGn y VALn, que se usan para leer o escribir a la BD respectivamente.
Configurar func_odbc.conf
65
No olvidar que se debe tener una tabla llena de datos para poder realizar las acciones
mencionadas anteriormente, crear tabla clase y cargar datos a la tabla:
/*clase.sql*/
CREATE TABLE clase (
id serial,
matricula int NOT NULL,
nombre varchar(20) NOT NULL,
nota int NOT NULL,
evaluacion int NOT NULL,
fecha timestamp without time zone NOT NULL,
UNIQUE (matricula)
);
/*valores.sql*/
INSERT INTO clase (matricula,nombre,nota,evaluacion) VALUES
('123450','Fulano Fufu','0','0'),
('123456','Zutano Zapata','0','0'),('234567','Mengano Mata','0','0'),
('345678','Pepito Perez','0','0');
Finalmente editar el dialplan para poder realizar lo pedido. Se har uso de la funcin ODBC_()
para leer/escribir a la BD. Su sntaxis es la siguiente:
Lectura:
Set(VARIABLE=${ODBC_funcionODBC(ARG1,ARG2,...,ARGn)})
En este caso, la funcin ODBC_, busca en el fichero func_odbc.conf el nombre de la funcin
dado por 'funcionODBC'. Se pasan las variables ARG1-ARGn, pueden ser 0 o ms variables, de
acuerdo a lo requerido por la sentencia SQL en func_odbc.conf. Finalmente se ejecuta la
Asterisk: Administracin avanzada
66
Set(ODBC_funcionODBC(ARG1,ARG2,...,ARGm)=VAL1,VAL2,...,VALn)
En este caso, la funcin ODBC_, busca en el fichero func_odbc.conf el nombre de la funcin
dado por 'funcionODBC'. Se pasan las variables ARG1-ARGn, pueden ser 0 o ms variables pero
tambin se pasan los valores VAL1-VALn los cuales indican a la sentencia SQL en
func_odbc.conf que sern usados para una accin de escritura. Finalmente se ejecuta la
consulta y se actualiza la base de datos con los nuevos parmetros.
Ejemplo de dialplan para uso de ODBC:
67
68
69
DeadAGI: Sin soporte a partir de Asterisk 1.8. Un AGI especial que se invoca y usa las
variables del canal despues de haberse colgado
Para conocer Todas las respuestas y comandos que se pueden usar en el AGI, refirase al libro:
Asterisk: The Definitive Guide, 3ra Edicin, Pag, 481,483-485. Leif Madsen, Jim Van Meggelen
& Russel Bryant. Editorial O'reilly.
#!/usr/bin/perl
use Asterisk::AGI;
$AGI = new Asterisk::AGI;
%input = $AGI->ReadParse();
$op1 = $AGI->get_variable('var1');
$op2 = $AGI->get_variable('var2');
$ope = $AGI->get_variable('menu');
for ($ope) {
/1/ and do {$total=$op1+$op2;};
/2/ and do {$total=$op1-$op2;};
/3/ and do {$total=$op1*$op2;};
/4/ and do {$total=$op1**$op2;};
}
20http://www.asterisk.name/writing-agi-scripts-in-perl.html
70
$AGI->set_variable('RESULTADO',$total);
Escribir en el dialplan el contexto y las lneas necesarias para llamar y hacer funcionar el AGI:
Prctica 3.5.2: Instalacin de AGIs para el uso de tts y motor asr de google:
Se descargarn e instalarn un par de AGIs listas, para poder usar los servicios de google en lo
referente a sntesis de voz y reconocimiento del habla. Toda la documentacin, as como los
scripts se encuentran en las siguientes pginas:
http://zaf.github.com/asterisk-speech-recog/
http://zaf.github.com/asterisk-googletts/
Se debe cumplir los requisitos previos: tener instalado perl-libwww flac y mpg123:
Agi(googletts.agi,Texto a decir,[lenguage,tecla_interrupcion])
Lenguage: es, it, us, uk, etc.
ASR:
Agi(speech-recog.agi,[timeout,lenguage,tecla_int,NOBEEP])
71
72
[general]
enabled=yes
webenabled=yes
bindaddr=127.0.0.1
[curso_asterisk]
secret=4st3r1sk
read=system,call,agent,user,config,dtmf,reporting,cdr,dialplan
write=system,call,agent,user,config,command,reporting,originate
Guardar y recargar asterisk, observar los clientes del manager con el comando manager show
users. Finalmente, usar telnet para probar la conexin y enviar algunos comandos:
73
Action: Logoff
Response: Goodbye
Message: Thanks for all the fish.
Connection closed by foreign host.
# cp -r /etc/asterisk /etc/asterisk_bck
Editar el fichero manager.conf, colocar en l lo siguiente:
[general]
enabled=yes
webenabled=yes
port=5038
httptimeout=60
bindaddr=dir_ip_servidor
[admin]
secret=contrasea
read=system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
write=system,call,agent,user,config,command,reporting,originate
Editar tambin el fichero http.conf:
[general]
enabled=yes
enablestatic=yes
bindaddr=dir_ip_servidor
bindport=8088
Recargar Asterisk, y proceder a la instalacin del GUI, se usar asterisk-GUI ya que esta bien
integrado a Asterisk adems es desarrollado por digium. Primero se debe tener subversion en
el sistema:
#svncohttp://svn.asterisk.org/svn/asteriskgui/branches/2.0
#cd2.0
#./configure
21 http://voztovoice.org/?q=node/91
74
#make
#makeinstall
#makecheckconfig
Una vez terminado, desde el navegador se puede acceder a la GUI. El usuario y contrasea son
los que se configuraron en el manager.conf. El link es el siguiente:
http://dir_ip_servidor:8088/asterisk/static/config/cfgbasic.html
Si no funciona, probar con el siguiente link:
http://dir_ip_servidor:8088/static/config/cfgbasic.html
75
BIBLIOGRAFA
76
77