Vous êtes sur la page 1sur 34

INSTALANDO ASTERISK EN CENTOS 5

preparando el sistema operativo 
checamos si necesitamos actualizar nuestro sistema y si algunas dependencias 
estan instaladas

[root@ylebian ~]# yum check­update
[root@ylebian ~]# yum ­C list ncurses ncurses­devel openssl zlib 
zlib­devel curl

Actulizamos nuestro sistema

[root@ylebian ~]# yum update

instalar paquetes necesarios  

[root@ylebian ~]# yum install make gcc  gcc­c++ kernel­devel 
kernel­headers ncurses zlib    bison  bison­devel ncurses­devel 
zlib­devel openssl­devel  gnutls­devel  gcc­c++ libxml2­devel curl 
curl­devel libtermcap­devel newt­devel unixODBC­devel libtool 
speex­devel libogg­devel gaim gaim­devel 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.

libpri­1.4.10.2.tar.gz
asterisk­addons­1.6.2.0.tar.gz
asterisk­1.6.2.6.tar.gz
dahdi­linux­complete­2.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 asterisk­1.6.2.6.tar.gz ;  tar ­xzvf 
asterisk­addons­1.6.2.0.tar.gz ;  tar ­xzvf libpri­1.4.10.2.tar.gz 
; tar ­xzvf dahdi­linux­complete­2.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 asterisk­addons. Ingresamos al directorio libpri­1.4.10.2 

[root@ylebian src]# cd libpri-1.4.10.2


[root@ylebian libpri-1.4.10.2]# make clean
[root@ylebian libpri-1.4.10.2]# make install

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 dahdi­linux­complete­2.2.1.1+2.2.1.1]# cd .. 
[root@ylebian src]# cd asterisk­1.6.2.6 
[root@ylebian asterisk­1.6.2.6]# make distclean 

Seguidamente ejecutamos ./configure y al final deberiamos ver lo siguiente
[root@ylebian asterisk­1.6.2.6]# ./configure 
[root@ylebian asterisk­1.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 Es­gsm y Es­G.729.
Music On Hold File Packages (musica en espera) seleccionamos de nuevo 
gsm y G.729 y en Extras Sound Packages abilitamos en­gsm.
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.voip­info.org/wiki/view/Asterisk+AEL
Una vez guardados los cambios pasamos a darle un make y make install
[root@ylebian asterisk­1.6.2.6]# make 
[root@ylebian asterisk­1.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 asterisk­1.6.2.6]#  make samples ; make config 

 
Solo nos queda asterisk­addons
[root@ylebian asterisk­1.6.2.6]# cd .. 
[root@ylebian src]# cd asterisk­addons­1.6.2.0 
[root@ylebian asterisk­addons­1.6.2.0]# ./configure 

[root@ylebian asterisk­addons­1.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 asterisk­addons­1.6.2.0]# make 
[root@ylebian asterisk­addons­1.6.2.0]# make install 
[root@ylebian asterisk­addons­1.6.2.0]# make samples 
Reiniciamos
[root@ylebian asterisk­addons­1.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 x­lite y ekiga

Lo primero que debemos hacer es descargar x­lite 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 x­lite que biene instalado por defecto en la mayoria de 
sistemas GNU/LInux y es totalmente libre se configura de forma similar al x­lite.
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 x­lite.
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 
demo­menu y agregamos las siguientes lineas.

[demo­menu] 

exten => s,1,Answer() 
exten => s,n,Wait(0.5) 
exten => s,n,Background(press­1) 
exten => s,n,Background(or) 
exten => s,n,Background(press­2) 
exten => s,n,WaitExten(3) 

exten => 1,1,Playback(you­entered) 
exten => 1,n,Playback(digits/1) 
exten => 1,n,Goto(s,1) 

exten => 2,1,Playback(you­entered) 
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(too­low) 
exten => t,n,Hangup() 

Ademas debemos agregar la siguiente linea con la extencion del IVR al contexto 
factures.
exten => _502,1,Goto(demo­menu,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.

[demo­menu] 

exten => s,1,Answer() 
exten => s,n,Wait(1) 
exten => s,n,Background(press­1) 
exten => s,n,Background(or) 
exten => s,n,Background(press­2) 
exten => s,n,WaitExten(3) 

exten => _[1­2],1,Playback(you­entered) 
exten => _[1­2],n,Playback(digits/${EXTEN) 
exten => _[1­2],n,Goto(s,1) 

exten => i,1,Playback(pbx­invalid) 
exten => i,n,Goto(s,1) 

exten => h,1,NoOp(el usuario colgo!) 

exten => t,1,Playback(too­low) 
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

Vous aimerez peut-être aussi