Instalacion de asterisk centos

  • 9,106 views
Uploaded on

freddy beltran

freddy beltran

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
9,106
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
464
Comments
1
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. INSTALANDO ASTERISK EN CENTOS 5preparando 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 curlActulizamos nuestro sistema[root@ylebian ~]# yum updateinstalar 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 
  • 2. 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.gzasterisk­addons­1.6.2.0.tar.gzasterisk­1.6.2.6.tar.gzdahdi­linux­complete­2.2.1+2.2.1.tar.gz
  • 3. Instalacion paquetes asterisk Listo, ahora sí, nos posicionamos en la carpeta donde bajamos los paquetes (en 
  • 4. 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.
  • 5. 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 installsalimos 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
  • 6. [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 installAl 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
  • 7. 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 
  • 8. [root@ylebian asterisk­1.6.2.6]# make menuselectCon el comando make menuselect veremos un menu en que pordremos elegir los modulos y extras que desemos instalar en asterisk.
  • 9. 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. 
  • 10. Modulo PBX_AELAEL (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
  • 11. 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.
  • 12. 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.
  • 13. 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 
  • 14. 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 
  • 15. [root@ylebian asterisk­addons­1.6.2.0]# make samples 
  • 16. Reiniciamos[root@ylebian asterisk­addons­1.6.2.0]# reboot Verificando el estado de los servicios instaladosPara ver si dahdi esta fucionando[root@ylebian asterisk]# lsmod |grep dahdiPara 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
  • 17. 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 
  • 18. Algunos de los comandos mas importances en el CLI de asterisk ylebian*CLI> core stop gracefully     Cerrar asterisk sin recibir mas llamandasylebian*CLI> core stop now              Cerrar asterisk de unaylebian*CLI> core stop when convenient  Cerrar asterisk cuando no haya volumen de llamadasylebian*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 argumentosdados   – core show translations   – soft hangup DAHDI/1
  • 19.    – 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.
  • 20. 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.Generalinadadescontext=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 defectorealm=mydomain.tld  ;parametro para la autenticacion de textosrvlookup=yes  ;permite la busqueda de dns srvAntes de crear los usuarios veremos los parametros para crearlos y su explicacion[102]     ;# de las extencionusername=102    ;usuariotype=friend    ;tipo de usuario user:hace llamadas  peer:resive llamadas  friend: resive y hacesecret=102    ;contrasellacallerind="dogadel" <102>    ;id del ususario nombre del ususariocontext=default  ; funcionalidades que va a tener este usuario en el dialplanhost=dynamic  ;tipo de ip 
  • 21. nat=no    ; definir si estamos atravez de nadexternip=x.x.x.x   ;direccion ip externa para el natdisallow=all    ;desabilita todos los codecsallow=ullaw     ; se hablita el codec deseadomailbox=200@voicemail ; voicemail callgroup=1   ;grupo de llamadaspickupgroup=1     ; puede responder llamadas del grupo 1canreinvite=yes   ;en yes la comunicacion entre dos ectenciones no tiene q pasar por asteriskdtmfmode=info|inband|rfc2833  ;modo en el q se transmiten los tonosdeny=ip     ; denegar direcciones ippermit=ip/mask     ; permite direcciones ipvideosupport=yes      ; soporte para videoqualify=yes|no|tº en mlseg     ;latenciafromuser=9552252     ; fromdomain=kyrios.clAhora 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.0bindport=5060language essrvlookup=yes
  • 22.  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 
  • 23. 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 peersylebian*CLI> sip show users
  • 24. 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 dialplanwriteprotect=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.
  • 25. 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 ;buzonexten => *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 cuentas1= en lo primero que se hacer es ejecutar la aplicacion dialDial= lo que hace es marcarSIP= 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 sip15= tiempo en segundos de espera para que el usuario contestetT= que tanto el origen como el destino pueda transferir esta llamadaVoicemail= 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.
  • 26. 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 responderWait= 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 
  • 27. 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@localhost101 => 101,user1, user1@localhost102 => 102,user2, user2@localhostDe 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 
  • 28.  Configuracion de la cuentas sip en softphone x­lite y ekigaLo 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.
  • 29. ylebian*CLI> sip show peers Softphone EkigaEkiga 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.
  • 30. 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 extencionesCrearemos 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.
  • 31. Esta funciones de features lo que realizaran sera simplemente reproducir un mensaje hola mundo.Menu IVRCrearemos 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) 
  • 32. 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 podremosGoto se utiliza para saltarse a cualquier lugar del dialplanEl uso de background y waitexten para que el usuario ingrese digitosIVR 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
  • 33. Añadiendo mas exteciones y funcionalidadesingresamos nuevamente al extensions.conf  y en el contexto features agregamos la siguiente:;Cree una conferencia MeentMeexten => 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 esperaexten => 511,1,Answer()exten => 511,n,Waint(0.5)exten => 511,n,MusicOnHold();Acceda al directorio de la compañiaexten => 512,1,Answer()exten => 512,n,Waint(0.5)exten => 512,n,Directory()para transferir llamadas pulsamos # visual dial asterisk