Instalación de asterisk paso a paso

Posted by Jose | Posted in *LINUX* | Posted on 04-12-2009

19



He decidido crear este articulo debido a los confusos tutoriales que abundan en la red la red acerca de la instalación  del software PBX asterisk.

La idea de este articulo es hacer algo practico y con pasos detallados, así tendremos mejor orientación al momento de realizar la instalación

1- Que es asterisk?

Es un software que porta funcionalidad de central telefónica (PBX) a un pc, permitiendo la comunicación entre varios suscriptores o extensiones, bien sea como teléfonos físicos o teléfonos por software.

2- Para que me puede servir asterisk?

Puedes implementar asterisk en casa u oficina,  haciendo un sistema de intercomunicación local y exterior por medio de la conexión a la central de una linea telefónica común o por medio de una pasarela de voz ip

3- Que obtendremos luego de la instalación?

Un sistema asterisk instalado en tu distribución GNU/linux, con panel de administración vía web, amigable al usuario para hacer todas las tareas de administración. Asterisk nativamente no es amigable a un usuario o instalador principiante, ya que este se configura mediante largos archivos de configuración, además de estar en ingles.


Esta interfaz WEB modifica estos archivos directamente en vez de nosotros hacerlo a mano, de una manera mas fácil y rápida de comprender..

4 -Que necesito para ejecutar Asterisk?

Un PC con distribución GNU/linux, para el caso de este articulo se basara en distribuciones basadas en Debian (ubuntu, mint etc)

COMENZANDO CON LA INSTALACIÓN

Vamos a descargar y a instalar asterisk en base a sus fuentes, para luego configurarlo y compilarlo. Para esto necesitamos dotar a nuestro sistema con ciertos paquetes necesarios para llevar a cabo la instalación. Para esto necesitamos abrir una consola o terminal y hacer login como root o superusuario, esto lo podemos hacer mediante la orden:

miguel@miequipo ~ $ sudo su
miguel@catserver ~ $

Luego de quedar identificado como superusuario procedemos a descargar e instalar los paquetes necesarios para la preinstalar de asterisk. Ejecutamos la siguiente orden:

root@miequipo ~ $ aptitude install build-essential g++ linux-headers-$(uname -r) libncurses-dev libnewt-dev libssl-dev zlib1g
miguel@catserver ~ $

Luego ver el proceso de descarga e instalación de los paquetes, debemos obtener los programas necesarios para construir la central Voip. Estos programas son: Asterisk (la central como tal) y asterisk-gui (la herramienta de administración via web)
Estos programas se descargan directamente de la pagina de digium (empresa patrocinadora de asterisk) en la dirección http://downloads.digium.com/pub/telephony
abrimos el navegador web y nos dirigimos a esa dirección, luego entramos en el directorio «asterisk»
«actualmente existen dos ramas de asterisk, 1.6.x y 1.4.x» en este tutorial utilice la rama 1.4.21.2 debido que ha dado menos problemas en las nuevas instalaciones.

Ya en nuestro navegador web con el directorio asterisk abierto localizamos la versión a instalar, para efectos de este articulo asterisk-1.4.27.1.tar.gz, hacemos clic derecho sobre el enlace y copiamos la dirección del enlace



Luego vamos a la consola en la que estamos identificados como superusuario y nos dirimimos al directorio /usr/src con el comando «cd /usr/src» En linux las fuentes deben descargarse y extraerse en este directorio

luego escribimos wget y a continuación pegamos el enlace que tomamos de la pagina de digium, quedando así

«ASEGURATE DE ESTAR SITUADO EN EL DIRECTORIO /USR/SRC/, LO PUEDES HACER MEDIANTE LA ORDEN «pwd» «

root@miequipo /usr/src $ wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.4.27.1.tar.gz
miguel@catserver ~ $

El comando «wget» funciona para descargar archivos mediante el protocolo http, y la descarga la guarda en el directorio que estemos situados, en este caso /usr/src/

Posteriormente se realizara la conexión y se visualizara la barra de progreso de descarga en la consola. Luego de haber descargado el archivo, necesitamos descomprimirlo, esto hace mediante la orden «tar xvzf» y luego el nombre del archivo descargado (asterisk-1.4.27.1.tar.gz) quedando así:

root@miequipo /usr/src $ tar xvzf asterisk-1.4.27.1.tar.gz



Luego de este paso ya tendremos el directorio asterisk-1.4.27.1, entramos a el con el comando «cd asterisk-1.4.27.1«. Luego de estar en dicho directorio, si queremos, podríamos listar su contenido mediante la orden «ls» y asi visualizar el árbol de archivos y subdirectorios presentes.
El próximo paso, luego de estar situado en el directorio /usr/src/asterisk-1.4.27.1 es ejecutar la orden «./configure» la cual configura el proceso de compilación.

root@miequipo /usr/src/asterisk-1.4.27.1 $ ./configure

Luego de terminar el proceso, continuamos ahora con la orden «make» la cual realiza el proceso de compilación. Este proceso puede durar de 2 a 10 minutos dependiendo de la rapidez del equipo.

root@miequipo /usr/src/asterisk-1.4.27.1 $ make

Posteriormente luego de haberse compilado asterisk, solo hace falta copiar los archivos compilados a su lugar correspondiente en el disco duro, esto se hace mediante la orden «make install»

root@miequipo /usr/src/asterisk-1.4.27.1 $ make install

TOMEN EN CUENTA QUE NO HE COLOCADO LA SALIDA DE CADA ORDEN PARA AHORRAR ESPACIO, PERO DEBEN ESTAR ATENTOS SI SE PRESENTA ALGÚN ERROR Y SE INTERRUMPE ALGUNO DE LOS PASOS

Al ejecutar el comando «make install«, podemos asegurarnos de que la instalación se realizo con éxito al aparecer este mensaje al final del proceso

Mensaje de aviso de instalacion exitosa

Mensaje de aviso de instalación exitosa

Luego debemos ejecutar el comando «make samples», así asterisk creara todos los archivos de configuración con comentarios de ayuda en los mismos, en el directorio /etc/asterisk
Para iniciar asterisk, solo hace falta teclear en consola (seguimos como root) asterisk, podemos comprobar que realmente se esta ejecutando con la orden: «ps aux | grep asterisk»
La salida de este comando muestra todos los procesos en ejecución del sistema, además filtramos la salida con el comando «grep» para que solo nos muestre las lineas con resultado que contengan la palabra asterisk.

Ya tenemos nuestro asterisk instalando y funcionando, ahora nos hace falta instalar la administración vía web llamada asterisk-gui. Para esto seguiremos los siguientes pasos:
En consola nos movemos nuevamente al directorio /usr/src/ con la orden «cd /usr/src», vamos al navegador web y entramos en la siguiente dirección http://downloads.asterisk.org/pub/telephony/asterisk-gui/releases/
Allí copiamos el enlace de descarga al fichero asterisk-gui-2.0.2.tar.gz y en lo pegamos junto al comando wget, tal cual como hicimos con la primera descarga

root@miequipo /usr/src $ wget http://downloads.asterisk.org/pub/telephony/asterisk-gui/releases/asterisk-gui-2.0.2.tar.gz

Extraemos el contenido del fichero descargado:

root@miequipo /usr/src $ tar xvzf asterisk-gui-2.0.2.tar.gz

ahora entramos en el directorio que se creo con la orden asterisk-gui-2.0.2:

root@miequipo /usr/src $ cd asterisk-gui-2.0.2



Ahora necesitamos, configurar, compilar e instalar, para esto ejecutamos las ordenes en el mismo orden que lo hicimos con la instalación anterior

root@miequipo /usr/src/asterisk-gui-2.0.2 $ ./configure

Compilamos con «make»

root@miequipo /usr/src/asterisk-gui-2.0.2 $ make

Instalación:

root@miequipo /usr/src/asterisk-gui-2.0.2 $ make install

Luego de estos pasos asterisk-gui ya esta instalado, pero necesitamos activar ciertas cosas antes de poder utilizarlo
Asterisk-gui se comunica con asterisk mediante AMI (asterisk manager interface) y tiene la ventaja que no necesita ningún servidor web aparte como apache etc.
Nos dirigimos al directorio /etc/asterisk con el comando ya utilizado «cd» ahi editamos el archivo de configuración de AMI el cual se llama manager.conf. la edicion del archivo se hace mediante el editor de texto de tu preferencia, siempre recordando que hace falta ejecutarlo como root para poder modificar el archivo, de lo contrario nos dará un error al intentar salvar el mismo
En mi caso lo edito con un editor de texto (VIM) mediante consola.
El archivo en cuestion ya tiene algunas lineas definidas y muchas otras lineas de ayuda, las cuales dan explicación de cada parámetro del archivo de configuración. Si una linea comienza con «;» quiere decir que esa linea no tiene efecto para asterisk, al eliminar el punto y coma activamos el parámetro seguido
Las lineas basica que debe contener el archivo manager.conf son las siguientes:

;PRINCIPIO
[general]
displaysystemname = yes
enabled = yes
webenabled = yes
port = 5038
bindaddr = 127.0.0.1

[administrador]
secret = 123456
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config
;FIN

RECUERDA QUE SI UNA LINEA DICE:
;enabled = yes NO TIENE EFECTO, ya que comienza con un punto y coma, es decir asterisk no interpreta lineas que comiencen con ;

Ahora, en este archivo básicamente lo que hicimos fue habilitar el asterisk AMI, definimos el puerto que utiliza y le indicamos desde que dirección se tendrá acceso a AMI, en este caso desde la misma maquina 127.0.0.1 (localhost). En casos mas avanzados podríamos instalar en asterisk-gui en un servidor mientras que la instalación raiz de asteris este en otro servidor distinto .
Las ultimas lineas definen el usuario que vamos a utilizar para entrar en la administración web de asterisk, al que le definimos el nombre de «administrador» y le asignamos contraseña de «123456». además definimos los roles de usuario que en este caso tiene control total

Luego activamos el servidor HTTP de asterisk, esto lo hacemos editando el archivo http.conf ubicado en /etc/asterisk
Las lineas necesarias son:

[general]
enabled = yes
enablestatic = yes
bindaddr = 0.0.0.0
bindport = 8088
prefix = asterisk

Luego de editar estos archivos y salvar los cambios, es necesario reiniciar asterisk para que los cambios tomen efecto, esto lo hacemos finalizando la ejecucion de asterisk que tenemos levantada con el comando

root@miequipo /etc/asterisk $ killall asterisk

y luego volver a arrancarlo con las orden:

root@miequipo /etc/asterisk $ asterisk

Con la orden netstat -atupn | grep asterisk podemos visualizar que conexiones de red tiene establecida el proceso asterisk, a continuación puede apreciarse que aparecen los puertos 5038 (AMI) y 8088 (asterisk-gui)


Puertos utilizados por asterisk

Puertos utilizados por asterisk

Luego de haber hecho estos pasos podemos comprobar que la configuración es correcta, situándonos en el directorio de las fuentes de asterisk-gui /src/src/asterisk-gui-2.0.2/ y ejecutando la orden.

root@miequipo /usr/src/asterisk-gui-2.0.2 $ make checkconfig

Esto nos da como resultado usa serie de comprobaciones y si todo resulta bien nos muestra la dirección en la que podemos entrar en nuestra administración web.

http://localhost:8088/asterisk/static/config/cgfbasic.html

resultados de prueba con make checkconfig

resultados de prueba con make checkconfig

Solo nos queda entrar en dicha dirección, y hacer login para ver las distintas opciones de administración y configuración

login asterisk-gui

login asterisk-gui

panel principal asterisk-gui

panel principal asterisk-gui

A partir de este momento para hacer pruebas con nuestra PBX, tenemos que crear un plan de marcado (dialplan) generico y luego crear las extensiones con su respectiva contraseña


En asterisk es posible utilizar hardware de telefonía, como tarjetas PCI para poder conectar directamente teléfonos análogos, la configuración de este hardware conlleva la instalación de módulos apartes que no son tratados en este articulo (como muchas cosas que pudieron quedar fuera) pero perfectamente pueden consultar acerca de tópicos no tratados en el articulo, ya que la finalidad de este articulo es ayudar un poco en la instalación base.

De mas esta decirles que pueden plantear sus dudas e inquietudes en la zona de comentarios.

Comentarios (19)

BEST EARNINGS FOR ALL FROM $9313 per day: https://q1-get-6-bitcoin-162.blogspot.de?x=26

Excelente tutorial, saludos.-

He seguido el manual paso a paso, incluso buscando las versiones que aquí se ponen (asterisk 1.4, etc.), y al entrar al panel de administración, me pide usuario/clave 2 veces, y da un fallo de conexión; se queda la pagina en blanco y pone que no se puede mostrar la pagina solicitada

Que rama de asterisk utilizas? hay unos cambios leves entre versiones

muy bueno el tutorial muchas gracias oye quisiera saber como conectar asterisk con la red pstn t lo agradeceria mucho si me avisa en mi correo

Una vez me sucedió y ese momento encontré que el error estaba presente en la rama 1.6 en combinación con algunas versiones de Asterisk-gui.
Instala la rama 1.4 para evitarlo y cuéntanos como te fue

Hola , bueno , instale asterisk y asterisk gui logro logearme en el asterisk gui pero al moemnto de entar al panel sale una venta de alerta diciendo loading… updating Extensions.conf …. esa ventana sale constatemnte q puedo hacer :S

Gracias de antemano

Hola jose, ya solucione el problema que tenia con asterisk.
gracias.

bunas tardes

no logro encontrar el asterisk en el directorio que dices por favor revisa.

este es el url: http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.4.27.1.tar.gz pero no esta.

por favor respondame brevemente

Hola jose mira que hice lo que me dices pero sigue igual, cuando voy al login me sale una ventana con el siguiente mensaje:
Alert !
The GUI does not have necessary privileges.
Please check the manager permissions for the user !

ya hice lo del manager.conf, te voy a enviar lo que tengo en el manager.conf

;
; AMI – The Asterisk Manager Interface
;
; Third party application call management support and PBX event supervision
;
; This configuration file is read every time someone logs in
;
; Use the «manager list commands» at the CLI to list available manager commands
; and their authorization levels.
;
; «manager show command » will show a help text.
;
; —————————- SECURITY NOTE ——————————-
; Note that you should not enable the AMI on a public IP address. If needed,
; block this TCP port with iptables (or another FW software) and reach it
; with IPsec, SSH, or SSL vpn tunnel. You can also make the manager
; interface available over http if Asterisk’s http server is enabled in
; http.conf and if both «enabled» and «webenabled» are set to yes in
; this file. Both default to no. httptimeout provides the maximum
; timeout in seconds before a web based session is discarded. The
; default is 60 seconds.
;
[general]
displaysystemname = yes
enabled = yes
webenabled = yes
port = 5038

;httptimeout = 60
; a) httptimeout sets the Max-Age of the http cookie
; b) httptimeout is the amount of time the webserver waits
; on a action=waitevent request (actually its httptimeout-10)
; c) httptimeout is also the amount of time the webserver keeps
; a http session alive after completing a successful action

bindaddr = 127.0.0.1
;displayconnects = yes
;
; Add a Unix epoch timestamp to events (not action responses)
;
;timestampevents = yes

[administrador]
secret = 123456
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config

;deny=0.0.0.0/0.0.0.0
;permit=127.0.0.1/255.255.255.0
;
; If the device connected via this user accepts input slowly,
; the timeout for writes to it can be increased to keep it
; from being disconnected (value is in milliseconds)
;
; writetimeout = 100
;
;Authorization for various classes
;read=system,call,log,verbose,command,agent,user,config,originate,read,write
;write=system,call,log,verbose,command,agent,user,config,originate,read,write

Saludos, revisa en archivo manager.conf ubicado en el directorio /etc/asterisk el cual debe contener estas lineas:
——————————————————————————–
;PRINCIPIO
[general]
displaysystemname = yes
enabled = yes
webenabled = yes
port = 5038
bindaddr = 127.0.0.1

[administrador]
secret = 123456
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config
;FIN
——————————————————————————–
El error debe estar en las dos ultimas lineas citadas, en las cuales se proporciona los permisos de lectura (read) y escritura (write) al usuario «administrador».
cabe destacar que en este ejemplo le estamos otorgando libertad total para hacer modificaciones a este usuario vía web. Puede ser útil también crear usuarios que puedan monitorear por esta vía sin hacer cambios a asterisk
Revisa y coméntanos como te fue!!

cuando ingreso el username y password en la gui me sale el siguiente erro:

The GUI does not have necessary privileges.
Please check the manager permissions for the user !

como puedo solucionar esto

gracias.

Excelente manual, de 10, muchas gracias y que siga esa comundad libre!

perfecto perfecto perfecto perfecto perfecto

funciona, es el primero que me funciona ta facil 10pts para este turo

GRACIAS!!!!!

Ya me toy bajando el Ubuntu… Según varios foros es la mejor opcion para iniciarse en Linux, porsia, tambien bajo una version de Windows Xp de esas Mod que ha recibido muy buenas criticas… Windows Last One v5.1

Primero que nada al parecer no realizaste la instalación de los paquetes básicos que preceden la instalación del asterisk, esto se encuentra al comienzo del articulo y la orden es: aptitude install build-essential g++ linux-headers-$(uname -r) libncurses-dev libnewt-dev libssl-dev zlib1g
Segundo: Si lo que quieres es solo instalar el «make» la instalación de paquetes por consola en distribuciones basadas en debian se hace mediante las ordenes aptitude o apt (via consola). basta con ejecutar «aptitude install make» o «apt-get install make» (con permisos de super usuario o root). cualquier a de las dos ordenes que utilices te resultara igual y luego vuelve a ejecutar «./configure»

en el paso donde se pone ./configure, me sale un error que dice que instale el GNU make.
COmo logro instalarlo

SI se presenta alguna duda o problema, no dudes en comentar

Ei, Voy a probar este tuto,pero tiene MUY buena pinta, muchas gracias! agrego a favoritos! 😉

Deja un comentario!