Académique Documents
Professionnel Documents
Culture Documents
preparando el sistema operativo
checamos si necesitamos actualizar nuestro sistema y si algunas dependencias
estan instaladas
[root@ylebian ~]# yum checkupdate
[root@ylebian ~]# yum C list ncurses ncursesdevel openssl zlib
zlibdevel curl
Actulizamos nuestro sistema
[root@ylebian ~]# yum update
instalar paquetes necesarios
[root@ylebian ~]# yum install make gcc gccc++ kerneldevel
kernelheaders ncurses zlib bison bisondevel ncursesdevel
zlibdevel openssldevel gnutlsdevel gccc++ libxml2devel curl
curldevel libtermcapdevel newtdevel unixODBCdevel libtool
speexdevel liboggdevel gaim gaimdevel mysql* rpm*
Curl – permite que Asterisk interactúe con Internet.
Sendmail voicemail a email y fax a email.
OpenSSL y sus librerías de desarrollo para soportar RSA y MD5
Descargando Asterisk
Descargamos los siguienetes paquetes tarball y los guardamos en el
directorio /usr/src teniendo en cuenta que debemos estar logeados como root para
poder escribir en este directorio.
libpri1.4.10.2.tar.gz
asteriskaddons1.6.2.0.tar.gz
asterisk1.6.2.6.tar.gz
dahdilinuxcomplete2.2.1+2.2.1.tar.gz
Instalacion paquetes asterisk
Listo, ahora sí, nos posicionamos en la carpeta donde bajamos los paquetes (en
mi caso /usr/src/), listamos el contenido del directorio para ver lo que tenemos y
descomprimimos, así:
[root@ylebian ~]# cd /usr/src/
[root@ylebian src]# ls
[root@ylebian src]# tar xzvf asterisk1.6.2.6.tar.gz ; tar xzvf
asteriskaddons1.6.2.0.tar.gz ; tar xzvf libpri1.4.10.2.tar.gz
; tar xzvf dahdilinuxcomplete2.2.1.1+2.2.1.1.tar.gz
Nuevamente listamos el contenido del directorio y podemos ver que se han creado
los directorios de los archivos extraidos en color azul.
El orden en que se instalaran los paquetes sera el siguiente libpri dahdi
asterisk y asteriskaddons. Ingresamos al directorio libpri1.4.10.2
salimos del directorio e ingresamos a dahdi
[root@ylebian libpri-1.4.10.2]# cd ..
[root@ylebian src]# cd dahdi-linux-complete-2.2.1.1+2.2.1.1
[root@ylebian dahdi-linux-complete-2.2.1.1+2.2.1.1]# make distclean
[root@ylebian dahdi-linux-complete-2.2.1.1+2.2.1.1]# make all
[root@ylebian dahdi-linux-complete-2.2.1.1+2.2.1.1]# make install
Al final si todo a salido bien deberia obtener algo asi por ultimo le damos un
make config para que dahdi arranque con el sistema.
[root@ylebian dahdi-linux-complete-2.2.1.1+2.2.1.1]# make config
make all: generar programas, bibliotecas, documentación, etc (lo mismo que
make)
make clean: borrar del árbol de construcción de los archivos construidos por
make all
make distclean: además borra ./configure creado.
Para mas información de make visita gnu.org
Salimos del directorio en ingresamos a asterisk
[root@ylebian dahdilinuxcomplete2.2.1.1+2.2.1.1]# cd ..
[root@ylebian src]# cd asterisk1.6.2.6
[root@ylebian asterisk1.6.2.6]# make distclean
Seguidamente ejecutamos ./configure y al final deberiamos ver lo siguiente
[root@ylebian asterisk1.6.2.6]# ./configure
[root@ylebian asterisk1.6.2.6]# make menuselect
Con el comando make menuselect veremos un menu en que pordremos
elegir los modulos y extras que desemos instalar en asterisk.
Estando ya dentro del menu en PBX Modules desabilitamos pbx_ael con el
fin de evitar futuros errores con extesion de asterisk.
Core Sound Packages y abilitamos los condec que desemos utilizar en
asterisk en mi caso seleccione Esgsm y EsG.729.
Music On Hold File Packages (musica en espera) seleccionamos de nuevo
gsm y G.729 y en Extras Sound Packages abilitamos engsm.
Finalmente Save & Exit para guardar los cambios.
Modulo PBX_AEL
AEL (Alternate Extension Language) es un leguage de programacion creado
para las extension en asterisk que puede ser utilizado para crear un dialplan
aunque todabia es un modulo de prueba de la version 1.6.x.
El analizador de AEL (pbx_ael.so) es completamente independiente del
módulo que analiza extensions.conf (pbx_config.so). Para utilizar AEL, lo
único que tiene que hacer es la pbx_ael.so módulo debe ser cargado por
Asterisk. Esto se hará de forma automática si se utiliza autoload = yes
en /etc/asterisk/modules.conf. Cuando se carga el módulo, se busca
'extensions.ael' en /etc/asterisk/. Tanto extensions.conf y extensions.ael
puede ser utilizado en conjunción con los demás si eso es lo que se desea.
Algunos usuarios pueden querer mantener extensions.conf para las
características que se configuran en la sección "general" de extensions.conf.
Para mas información visita http://www.voipinfo.org/wiki/view/Asterisk+AEL
Una vez guardados los cambios pasamos a darle un make y make install
[root@ylebian asterisk1.6.2.6]# make
[root@ylebian asterisk1.6.2.6]# make install
podemos observar que durante el proceso de instalacion descarga los codec
extras que seleccionamos en el menuselect.
Al final tendremos lo siguiente que nos pide un make sample para instalar los
archivos ejemplos de configuracion de asterisk y make progdocs para instalar
la documentación ademas de un mesaje de error pues no fue instaldo ael.
Para terminar con el paquete asterisk
[root@ylebian asterisk1.6.2.6]# make samples ; make config
Solo nos queda asteriskaddons
[root@ylebian asterisk1.6.2.6]# cd ..
[root@ylebian src]# cd asteriskaddons1.6.2.0
[root@ylebian asteriskaddons1.6.2.0]# ./configure
[root@ylebian asteriskaddons1.6.2.0]# make menuselect
En este punto lo dejamos tal como esta se instalar el paquete con todos sus
modulos guardamos y salimos
Por ultimo
[root@ylebian asteriskaddons1.6.2.0]# make
[root@ylebian asteriskaddons1.6.2.0]# make install
[root@ylebian asteriskaddons1.6.2.0]# make samples
Reiniciamos
[root@ylebian asteriskaddons1.6.2.0]# reboot
Verificando el estado de los servicios instalados
Para ver si dahdi esta fucionando
[root@ylebian asterisk]# lsmod |grep dahdi
Para verificar asterisk utilizamos el siguiente comando deberia arrojarnos lo
siguiente
[root@ylebian asterisk]# /etc/init.d/asterisk status
Se está ejecutando asterisk (pid 2730)...
You have new mail in /var/spool/mail/root
Ingresamos al Cli (Command line) de asterisk
[root@ylebian asterisk]# asterisk r
Y tambien pordiramos darle el nivel ve verboce de esta forma asterisk vvvvr
para ver lo que esta pasando con asterisk en mas detalle.
Detener e iniciar asterisk
Algunos de los comandos mas importances en el CLI de asterisk
ylebian*CLI> core stop gracefully Cerrar asterisk sin recibir mas llamandas
ylebian*CLI> core stop now Cerrar asterisk de una
ylebian*CLI> core stop when convenient Cerrar asterisk cuando no haya
volumen de llamadas
ylebian*CLI> help Visulizar los comandos y posibilidades de asterisk en el
Cli
ylebian*CLI> core show applications Muestra las aplicaciones con las que
esta funcionando o estan registradas en el dialplan
ylebian*CLI> core show functions Informa sobre las funciones registradas
en el dialplan
– help
– core show application dial
– core show functions
– core show function LEN Devuelve la longitud de los argumentos
dados
– core show translations
– soft hangup DAHDI/1
– reload app_voicemail.so
– pri debug span 1
– extensions reload
– logger rotate
– database deltree users
– iax2 debug
– meetme list 5606
– # /usr/sbin/asterisk h Lista las opciones.
– r Reconecta al demonio corriendo en el
– sistema.
– c Inicia en modo consola en vez de demonio.
– v Setea el nivel de verbosity.
– d Setea el nivel de debug.
– rx “restart now” ejecuta un comando.
Primeros pasos Asterisk como una pbx sencilla
Antes de empezar a editar los archivos de configuracion debemos realizar
una copia de seguridad de los archivos que vamos a editar y lo haremos de
la siguiente manera; Como instalamos los datos de ejemplo encontraremos
todos estos archivos de configuracion en /etc/asterisk/, primero crearemos
una carpeta llamada asterisk.b en el directorio /etc/ y luego copiamos todos
los archivos de configuracion a este directorio.
Ya tenemos la copia de seguridad de los archivos de configuracion, el primer
archivo que editaremos sera el sip.conf en este archivo se crean las cuentas para
los usuarios de asterisk y agunas generalinadades de la pbx acontinuacion
mostrare algunas de la lineas mas importantes y su explicacion.
Generalinadades
context=default ;Contexto por defecto para las llamadas entrantes
udpbindaddr=0.0.0.0 ;asterisk escucha en todas las redes.
bindport=5060 ;puerto por donde escucha asterisk.
register => 2345:password@sip_proxy/1234 ;nos da la posibilidad de registrarnos
con otro servidor Voip.
language es ;lenguage por defecto
realm=mydomain.tld ;parametro para la autenticacion de texto
srvlookup=yes ;permite la busqueda de dns srv
Antes de crear los usuarios veremos los parametros para crearlos y su explicacion
[102] ;# de las extencion
username=102 ;usuario
type=friend ;tipo de usuario user:hace llamadas peer:resive llamadas friend:
resive y hace
secret=102 ;contrasella
callerind="dogadel" <102> ;id del ususario nombre del ususario
context=default ; funcionalidades que va a tener este usuario en el dialplan
host=dynamic ;tipo de ip
nat=no ; definir si estamos atravez de nad
externip=x.x.x.x ;direccion ip externa para el nat
disallow=all ;desabilita todos los codecs
allow=ullaw ; se hablita el codec deseado
mailbox=200@voicemail ; voicemail
callgroup=1 ;grupo de llamadas
pickupgroup=1 ; puede responder llamadas del grupo 1
canreinvite=yes ;en yes la comunicacion entre dos ectenciones no tiene q pasar
por asterisk
dtmfmode=info|inband|rfc2833 ;modo en el q se transmiten los tonos
deny=ip ; denegar direcciones ip
permit=ip/mask ; permite direcciones ip
videosupport=yes ; soporte para video
qualify=yes|no|tº en mlseg ;latencia
fromuser=9552252 ;
fromdomain=kyrios.cl
Ahora si editaremos el sip.conf en la parte de generalinandes buscamos o creamos
las siguientes lineas en el archivo de configuracion, el archivo sip.conf contiene
muchas lineas comentadas con “;” en las cuales se explican los parametros de
configuracion que en ocaciones tambien biene comentados por eso debemos
buscar las siguientes lineas en la caso de no encontrarlas deberemos crearlas.
[root@ylebian ~]# cd /etc/asterisk
[root@ylebian asterisk]# nano sip.conf
[general]
context=default
udpbindaddr=0.0.0.0
bindport=5060
language es
srvlookup=yes
vamos al final del archivo sip.conf y creamos 3 cuetas 100, 101 y 102 de la
siguieten forma.
[102]
username=102
type=friend
secret=102
callerid="user2" <102>
host=dynamic
nat=yes
disallow=all
allow=ullaw
context=internal
mailbox=200@voicemail
callgroup=1
pickupgroup=1
Ahora vamos al Cli de asterisk y ejecutaresmos los siguientes comandos para que
tome los cambios que hemos realizado y ver las cuentas y su estado.
ylebian*CLI> sip reload
ylebian*CLI> sip show peers
ylebian*CLI> sip show users
Cada vez que realicemos un cambion en los archivos de configuracion debemos
reiniciar asterisk o como en este caso solo la configuracion del modulo que fue
modificado.
Creacion del dialplan
Ya tenemos la cuetas sip ahora debemos crear el dialplan que es itinerario que
sigue una llamada desde que entra o sale del sistema hasta que llega a su punto
final. Se trata en líneas generales del comportamiento lógico de las llamadas.
Este archivo de configuracion tambien tiene parametros generales entre los mas
importantes estan los siguientes los cuales deberemos crear buscar o editar como
hicimos con el sip.conf.
Al igual que el sip.conf el extensions tambien tiene una pararte para generalidades
[root@ylebian asterisk]# nano extensions.conf
[general]
static=yes ;opción sólo afecta a la operación del comando
;save dialplan
writeprotect=no ;Si WriteProtect = no y static = yes, entonces
;usted puede ahorrar el dialplan actual
;con la CLI comando "save dialplan".
autofallthrough=yes ;Nuevo en 1.2. Desde el extensions.conf
;muestra: "Si autofallthrough se establece,
;entonces, si una extensión se queda sin cosas
;que hacer, se dará por terminada la llamada
;con BUSY CONGESTION o HANGUP dependiendo mejor
;estimación de Asterisk (altamente
;recomendado).
clearglobalvars=no ;Clearglobalvars Si no se establece, a
;continuación, las variables globales a través
;de recargas se mantendrá, e incluso si elimina
;de las extensiones . conf o uno de sus
;principales archivos incluidos, permanecerá
;establece en el valor anterior.
priorityjumping=yes ;salto de prioridad tiene que ver con las
;aplicaciones y sus prioridades
Sean omitido algunos de los comentarios y agregado otros con el fin de explicar su
funcion los comentarios no tiene importancia a la ora de modificar el extensions,
del archivo de configuracion original.
Lo siguiente que vamos a configurar en el extensions.conf sera el plan de llamado
sera relizara una explicacion breve de las ordenes que se ejecutan en el
extensions.conf siendo estas ordenes muy parecidas a un lenguaje de
programacion.
Primero que todo ira el contexto que le hemos configurado a nuestras cuentas sip,
llamado “internal” esto es lo que nos permite es crear un plan de llamado para las
cuentas que hemos configurado con dicho contesto.
[root@ylebian asterisk]# nano extensions.conf
Agregamos las siguienetes lineas al final del archivo.
[internal]
exten => _xxx,1,Dial(SIP/${EXTEN},15,tT)
exten => _xxx,2,Voicemail(${EXTEN}@voicemail)
exten => _xxx,3,Playback(vm_goodbye)
exten => _xxx,4,Hangup
;buzon
exten => *98,1,Answer
exten => *98,2,Wait(1)
exten => *98,3,VoiceMailMain(${CALLERID}@voicemail)
exten => *98,4,Hangup
_xxx= esto nos indica el numero de digitos que tendra nuestras cuentas
1= en lo primero que se hacer es ejecutar la aplicacion dial
Dial= lo que hace es marcar
SIP= tipo de canal al que se va marcar
/${EXTEN}= sobre quien se va hacer la llamada ademas con esto nos traemos el
valor que ingreso el usuario y se envia la llamada a este usuario atravez del canal
sip
15= tiempo en segundos de espera para que el usuario conteste
tT= que tanto el origen como el destino pueda transferir esta llamada
Voicemail= si no se responde la llamada se valla al correo de voz
@voicemail= es el contexto que se a configurado en las cuentas sip para correo de
vos para que la llamda se dirija a este contexto y se guarde en este buzon.
Playback=la para el final de la llamada ejecute la aplicacion playback que lo que
hacer es reproducir un sonido de adios estos archivos de sonido se encuentra
en /var/lib/asterisk/sounds/es/.
Hangup= para terminar la llamada.
Ahora explicaremos la parte de la extencion creada para el correo de voz (buzon).
Por defecto asterisk tiene configurada la extencion *98 para el correo de voz por
eso se creo la extencion de esa forma.
Answer= lo primero que realiza es responder
Wait= lo segundo es que espere 1 segundo (esta linea se puede obiar)
VoiceMailMain= lo trecero es ejecutar esta aplicacion que nos permite revisar el
correo
(${CALLERID}@voicemail)= toma como identificador el callerid y el contexto
voicemail que aun no se a creado pero los haremos mas adelante.
Guardamos y retornamos al Cli de asterisk; reiniciamos el dialplan y visualizamos
el contexto internal.
ylebian*CLI> dialplan reload
ylebian*CLI> dialplan show internal
Configuracion de voicemail
El archivo voicemail.conf tiene casi la misma estructura que los que hemos
configurado asta ahora, vamos asta el final del archivo de configuracion creamos
las siguientes lineas.
[root@ylebian asterisk]# nano voicemail.conf
Creamos el contexto voicemail con el cual hemos configurado las cuentas sip y las
extenciones (sip.con y extensions.conf).
[voicemail]
100 => 100,Dogadel,dogadel@localhost
101 => 101,user1, user1@localhost
102 => 102,user2, user2@localhost
De esta forma se configura primero numero de extencion, password, callerid y
correo interno, guardamos entramos al Cli reiniciamos voicemail para que tome los
cambios realizados.
ylebian*CLI> module reload app_voicemail.so
Configuracion de la cuentas sip en softphone xlite y ekiga
Lo primero que debemos hacer es descargar xlite para GNU/Linux del siguiente
enlace, Resolver las dependencias y ejecutarlo.
Le damos clic en el menu, System settings, despues Sip Proxy, seguidamente
default y aqui ingresamos los datos de nuestro serividor asteriskla direccion ip
usuario sip y demas tal como se muestra en la image. Hay tener algo muy
importante encuenta si se va ejecutar un softphone en el mismo serividor asterisk
verificar que trabaje un puerto diferente al 5060 de asterisk. Una vez terminando
esto cerramos le menu y nuestra cuenta deberia estar registrada.
Ingresamos al Cli de asterisk y ejecutamos lo siguiente para verificar que nuestra
cuenta esta registrada.
ylebian*CLI> sip show peers
Softphone Ekiga
Ekiga es un cliente sip como xlite que biene instalado por defecto en la mayoria de
sistemas GNU/LInux y es totalmente libre se configura de forma similar al xlite.
Al ejecutar ekiga por primera vez nos saldra un asistente de configuracion para el
sonido y para crear una cuenta en ekiga esto ultimo lo pordemos obiar para pasar
directamete a configurar nuestra cuenta de asterisk. Vamos a editar cuentas
Nuevamente en cuentas, añadir una cuenta sip y agremaos las datos de nuestra
cuenta como lo hicimos con xlite.
Ahora que ya hemos configurado nuestros softphone Podremos empezar a relaizar
llamadas entre los usuarios que hemos credos marcando las extenciones de los
usuarios (100, 101, 102), dejar mensajes de voz a los usuarios que esten ausentes
y revisar estos mensajes llamando al correo de voz (*98) en cual deberemos seguir
los pasos que se nos indique para poder escuchar nuestros mensajes de voz.
Agregando nuevas extenciones
Crearemos algunas extenciones para reproducir algunos archivos de sonido para ir
agregando nuevas funcionalidades a nuestro dialplan, en el archivo extensions.conf
agregamos un nuevo contexto llamado factures como se muestra en la imagen.
Ademas de esto tambien hemos agregado un include al contexto internal para que
incluya features y asi podamos llamar a esta extencion desde de la cuentas que
estan configuradas con el contexto internal.
Esta funciones de features lo que realizaran sera simplemente reproducir un
mensaje hola mundo.
Menu IVR
Crearemos un menu IVR (Interactive Voice Response o Respuesta de Voz
Interactiva) Consiste en un sistema telefónico que es capaz de recibir una llamada
e interactuar con el humano a través de grabaciones de voz y el reconocimiento de
respuestas simples. Es un sistema automatizado de respuesta interactiva,
orientado a entregar y/o capturar información a través del teléfono, permitiendo el
acceso a servicios de información u otras operaciones.
Agregamos un nuevo contexto al final de nuestro archivo extensions.conf llamado
demomenu y agregamos las siguientes lineas.
[demomenu]
exten => s,1,Answer()
exten => s,n,Wait(0.5)
exten => s,n,Background(press1)
exten => s,n,Background(or)
exten => s,n,Background(press2)
exten => s,n,WaitExten(3)
exten => 1,1,Playback(youentered)
exten => 1,n,Playback(digits/1)
exten => 1,n,Goto(s,1)
exten => 2,1,Playback(youentered)
exten => 2,n,Playback(digits/2)
exten => 2,n,Goto(s,1)
exten => i,1,Playback(invalid)
exten => i,n,Goto(s,1)
exten => h,1,NoOp(el usuario colgo!)
exten => t,1,Playback(toolow)
exten => t,n,Hangup()
Ademas debemos agregar la siguiente linea con la extencion del IVR al contexto
factures.
exten => _502,1,Goto(demomenu,s,1)
Ahora podremos
Goto se utiliza para saltarse a cualquier lugar del dialplan
El uso de background y waitexten para que el usuario ingrese digitos
IVR mejorado modifique el ivr para que quede de la siguiente manera.
[demomenu]
exten => s,1,Answer()
exten => s,n,Wait(1)
exten => s,n,Background(press1)
exten => s,n,Background(or)
exten => s,n,Background(press2)
exten => s,n,WaitExten(3)
exten => _[12],1,Playback(youentered)
exten => _[12],n,Playback(digits/${EXTEN)
exten => _[12],n,Goto(s,1)
exten => i,1,Playback(pbxinvalid)
exten => i,n,Goto(s,1)
exten => h,1,NoOp(el usuario colgo!)
exten => t,1,Playback(toolow)
exten => t,n,Hangup()
Se realizaron algunos cambios con el fin de disminur el codigo y ser mas eficientes
Añadiendo mas exteciones y funcionalidades
ingresamos nuevamente al extensions.conf y en el contexto features agregamos la
siguiente:
;Cree una conferencia MeentMe
exten => 510,1,Answer()
exten => 510,n,Waint(0.5)
exten => 510,n,MeetMe(100)
Con lo anterios hemos configurado una extencion para conferencias a la que
podran llamar los usuarios que ya hemos configurado.
;Escuche musica en espera
exten => 511,1,Answer()
exten => 511,n,Waint(0.5)
exten => 511,n,MusicOnHold()
;Acceda al directorio de la compañia
exten => 512,1,Answer()
exten => 512,n,Waint(0.5)
exten => 512,n,Directory()
para transferir llamadas pulsamos #
visual dial asterisk