¿Que es Asterisk?
Asterisk es un programa de código abierto bajo licencia GPL, que permite disponer de funcionalidades de centralita telefónica (PBX) suportando muchos protocolos VoIP como SIP, IAX, H.323, MGCP entre otros que están basados en TCP/IP, se pueden conectar teléfonos que cumplan estos protocolos y asignarles una extensión para realizar llamadas internas, aunque puede soportar teléfonos analógicos usando tarjetas telefónicas FXS o FXO.
Asterisk también soporta hardware especifico para conexión con líneas de teléfono analógicas (FXS y FXO), RDSI, IDN BRI y GSM entre muchos otros.
Como centralita cumple con todas las características de un PBX, como buzón de voz, salas de conferencia, IVR, distribución automática de llamadas, reglas horarias, etc. el administrador de la centralita también puede programar funcionalidades especificas mediante un dialplan en lenguaje de script Asterisk e incluso puede añadir modulos escritos en cualquier lenguaje de programación suportado por Linux, es decir, existen funcionalidades ilimitadas para Asterisk.
¿Cómo instalar Asterisk?
En este post voy a explicar como instalar Asterisk 1.8 en un Linux Debian 7.6, existen 3 opciones para instalar Asterisk en Debian:
- Usando los repositorios oficiales en Debian.
- Usando los repositorios oficiales de Digium para Debian.
- Usando las fuentes de Asterisk para compilar e instalar.
Tal y como indico en el titulo del post vamos a elegir la tercera opción, ya que la finalidad del mismo es comprender que componentes instalamos y los pasos necesarios para que Asterisk funcione.
Antes que nada, necesitamos una instalación limpia de Debian, en este post explico como realizar dicha instalación.
Una vez tenemos el sistema listo, debemos instalar las dependencias necesarias para la compilar y instalar Asterisk, nos elevamos como root y ejecutamos los siguientes comandos:
apt-get update
apt-get install linux-headers-`uname -r` build-essential libxml2-dev libssl-dev libncurses-dev libnewt-dev doxygen subversion libmysqlclient-dev unixodbc-dev libmyodbc
Nos pide si queremos instalar paquetes adicionales, le decimos que si.
Una vez instaladas las dependencias necesarias ya podemos proceder a descargar los binarios para su compilación, todos estos los vamos a descargar en /usr/src/:
cd /usr/src
Una vez en el directorio vamos a descargar las librerías necesarias:
- Dahdi son unas librerías y utilitades que permiten integrar Asterisk con tarjetas de comunicaciones, solo es valido para tarjetas Digium y compatibles, aunque no vayamos a instalar tarjetas en nuestro sistema, Dahdi, es necesario para crear salas de conferencias, por lo que vamos a descargar el paquete Dahdi-linux-complete, que incluye Dahdi Linux (modulos para las tarjetas) y Dahdi-Tools (utilidades de gestión de Dahdi):
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
- Libpri son unas librerías necesarias para conectar Asterisk con líneas primarias (PRI), aunque no lo necesitemos lo vamos a instalar ya que ocupa poco espacio y no consume ningún recurso adicional por si en un futuro necesitamos conectar una tarjeta PRI.
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
A continuación descargamos Asterisk:
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8-current.tar.gz
Una vez descargados todos los ficheros los vamos a descomprimir:
tar -xzvf libpri-1.4-current.tar.gz
tar -xzvf dahdi-linux-complete-current.tar.gz
tar -xzvf asterisk-1.8-current.tar.gz
Y podemos borrar los ficheros descargados:
rm -r *.tar.gz
Compilar e instalar Dahdi
Nos situamosen el directorio de Dahdi:
cd /usr/src/dahdi-linux-complete-*
Compilamos e instalamos:
make
make install
make config
Compilar e instalar Libpri
Nos situamos en el directorio de Libpri:
cd /usr/src/libpri-1.4.*
Compilamos e instalamos:
make
make install
Compilar e instalar Asterisk
Ya tenemos todo listo para empezar a compilar e instalar Asterisk, nos situamos en el directorio de Asterisk:
cd /usr/src/asterisk-1.8*
Configuramos:
./configure
Vamos a seleccionar que componentes de Asterisk necesitamos, como es un Asterisk para pruebas lo vamos a dejar tal y como nos lo muestra de serie, en caso de necesitar algún componente adicional lo podremos configurar desde este menú:
make menuselect
Pulsamos en «Save & Exit» para guardar la configuración.
Podemos compilar y instalar Asterisk:
make
make install
make samples
make progdocs
make config
Ahora ya tenemos instalado Asterisk en nuestro sistema y lo podemos iniciar por primera vez, tanto Asterisk como Dahdi son un servicio más en el sistema, en el caso de Debian deberemos arrancar los componentes por primera vez de forma manual:
service dahdi start
service asterisk start
Una vez arrancados los servicios podemos acceder a la consola o CLI de Asterisk con el siguiente comando:
asterisk -r
Para ver todo lo que ocurre en tiempo real en Asterisk lanzamos el siguiente comando:
core set verbose 999
Para apagar desde el CLI Asterisk podemos ejectuar el siguiente comando, con este comando Asterisk se apagara cuando no se este procesando ninguna llamada, es decir, cuando se libere la centralita para no cortar ninguna llamada:
core stop gracefully
Para salir del CLI escribimos:
exit
En otro articulo voy a contar como configurar Asterisk por primera vez y como instalar AsteriskGUI, una consola de gestión mediante WEB.
- Actualización 8/10/2014: He subido una maquina virtual en formato vmdk con toda la instalación de esta guía ya funcionando. Este vmdk se puede abrir con VirtualBOX (gratis) Quemu (para Linux y gratis), VMware Player (gratis), VMware ESXi y VMware Workstation (el que uso yo).
Se aconseja definir una maquina virtual con:
1 cpu de 2 cores
2GB de RAM
1 interface de red en bridget y disponer de un servidor DHCP
(el disco duro es de 20GB)
usuario: root
contraseña: joanemarti
Para averiguar la IP usar el comando: ifconfig
Enlace de descarga de ASTERISK.vmdk
Belfast dice
excelente! ..
joan dice
He subido una maquina virtual con toda la configuración expuesta en el articulo, espero que os sirva, ante cualquier duda dejadla en los comentarios 😉
Rodolfo Ramírez Acosta dice
Muy buen articulo.
eymar dice
Buenas… baje el archivo vmdk.. y al ejecutarlo se queda la pantalla negra con un cursor titilando en la esquina superioir izquierda… y de alli no pasa
Joan dice
Hola eymar, ¿Me podrias decir en que versión de VMware Workstation u otro software de virtualización usas para ejecutar el vmdk? Quizás no sea compatible, yo lo he realizado en Workstation V10.
eymar dice
Holaa Gracias Por Responder.. El programa que uso es Virtual Box 5.1.. voy a intentar con el q mencionas muchas gracias
JJ dice
hola joan soy nuevo por aqui haber si puedes hecharnos una mano con asterisk para Openwrt.
quiero instalarlo en mi ruter con openwrt
y configurarlo…
espero puedas hacer un pequeño tutorial con la configuracion nesesaria….
gracias de antemano …
Joan dice
Hola JJ, muchas gracias por tu comentario, no dispongo de ningún router compatible con OpenWrt para hacer un manual de ello, aunque en la web oficial de OpenWrt hay una guia para instalar la versión de Asterisk 1.8 complilada para ello (https://wiki.openwrt.org/doc/howto/voip.asterisk#installation) la instalación es muy sencilla basta con un simple comando «opkg install asterisk18» recuerda antes de actualizar tus repositorios con «opkg update» toda la confugración de los ficheros la deberas hacer editandolos directamente (https://wiki.openwrt.org/doc/howto/voip.asterisk#configuration) pues no hay portal de gestión, basicamente deberas configurar el sip.conf para tus troncales y configuracion general y el extensions.conf para ir dando de alta terminales. Te aconsejo que lo hagas con el router recién instalado ya que te va a ocupar mucho espacio de disco. Espero me cuentes tu experiencia con Asterisk en OpenWrt. ¡Saludos!
JJ dice
Gracias … por pronta respuestas
es para una local…
haber que saco en claro….
mis duda te las planteare en este post o si lo crees conveniente crear uno nuevo para diferenciar, por si alguien tiene las mismas inquietudes las pueda consultar…
saludos y nuevamente gracias
Raimundo Baravaglio dice
Entiendo que el post era para una instalación en Debian 7.6 pero en la 9.5 me salen estos errores en estos dos paquetes:
E: El paquete «libmysqlclient-dev» no tiene un candidato para la instalación.
E: El paquete «libmyodbc» no tiene un candidato para la instalación.
No sé si has publicado en otro post alguna actualización relacionada.