En el capítulo de hoy vamos a instalar Asterisk en una Debian 7 Wheezy. Para ello tenemos dos formas, en función de si queremos utilizar los repositorios de Debian o preferimos compilar la última versión de Asterisk a partir de su código fuente. Yo os recomiendo esta última.
Instalar Asterisk: The Easy Way
En los repositorios de Debian tenemos la versión Asterisk 1.8 disponible. Instalarla es tan fácil como hacer lo siguiente:
# apt-get install asterisk
La versión 1.8 es suficiente para empezar a cacharrear, pero es bastante antigua. Para un uso real recomiendo instalar la última versión disponible, normalmente con más funcionalidades y menos bugs, a partir del código fuente. También necesitaremos compilar si queremos hacerlo funcionar en plataforma ARM (RaspBerry Pi, PandaBoard, etc). La versión estable más reciente en este momento es Asterisk 11.5.
Instalar Asterisk: The Hard Way
Como no nos dejamos asustar tan fácilmente, vamos a instalar Asterisk a partir de sus fuentes para poder trabajar con la última versión. Para aquellos que estén acostumbrados a hacer instalaciones por esta vía sólo habrá un par de puntos a los que deban prestar atención.
Primero vamos a instalar las herramientas de desarrollo para poder compilar:
# apt-get install build-essential checkinstall
También necesitaremos instalar algunos requisitos de Asterisk:
# apt-get install ncurses-dev libxml2-dev libsqlite3-dev libssl-dev uuid-dev
Bajamos y descomprimimos el código fuente de Asterisk 11 en su versión más reciente:
$ wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz $ tar zxvf asterisk-11-current.tar.gz $ cd asterisk-11.x.x
Configuramos y revisamos que todos los módulos necesarios para SIP estén preparados:
$ ./configure $ make menuselect
En el menú de configuración deberemos comprobar que los siguientes módulos aparezcan seleccionados (marcados con un asterisco [*]):
- Channel Drivers / chan_sip
- Resource Modules / res_crypto
- Resource Modules / res_rtp_asterisk
Si alguno no está seleccionado es porque no hemos cumplido con los requisitos necesarios. En ese caso, en la parte inferior se indica cuál es el componente que requiere, y deberemos instalarlo mediante APT. Normalmente se necesitan los paquetes de desarrollo, es decir, si el componente nos dice que necesita de «uuid», tendremos que instalar el paquete «uuid-dev». Una vez instaladas las dependencias, deberemos volver a hacer ./configure.
Además de lo anterior, vamos a seleccionar también la colección de sonidos en español:
- Core Sound Packages / CORE-SOUNDS-ES-GSM
Una vez que todo esté bien, compilamos, instalamos, añadimos los scripts de arranque para /etc/init.d, y la configuración de logrotate:
$ make # make install # make config # make install-logrotate
Y por último, podemos instalar una configuración completa de Asterisk que nos servirá como ejemplo para ir viendo la sintaxis:
# make samples
La configuración de Asterisk se instala en /etc/asterisk/, y los dos archivos sobre los que vamos a trabajar en futuras entregas son:
- sip.conf
- extensions.conf
Ya podemos arrancar Asterisk:
# /etc/init.d/asterisk start
En el siguiente capítulo: creación de dos extensiones internas para hacer llamadas entre ellas por SIP. ¡No te lo pierdas!
Índice del Curso Asterisk:
- Curso Asterisk (I): Introducción
- Curso Asterisk (II): Instalación
- Curso Asterisk (III): Extensiones Internas
- Curso Asterisk (IV): El Dialplan
- Curso Asterisk (V): Interconexión con proveedores VoIP
- Curso Asterisk (VI): Lidiando con el NAT
- Curso Asterisk (VII): Seguridad
- Curso Asterisk (VIII): Plantilla mínima de configuración
No se por que pero en la parte de make menuselect me falla
root@debian:/home/joyman/asterisk-11.7.0# make menuselect
make: Atención: El archivo `Makefile’ tiene una hora de modificación 2,4e+08 en el futuro
****
**** The configure script must be executed before running ‘make’.
**** Please run «./configure».
****
make: *** No hay ninguna regla para construir el objetivo `makeopts’, necesario para `menuselect/makeopts’. Alto.
Asegúrate de haber hecho primero el «./configure» y de que haya ido bien, sin errores. Si quieres empezar de cero puedes limpiar todo con «make distclean».
me ha pasado lo mismo que a joyman, he notado que en las indicaciones que vos colocas aparece $ menuselect.. pero despues de hacer ./configure a mi me queda # .. eso es un error?
Comprueba que tengas correctamente establecida la hora de sistema. Acabo de compilar Asterisk 11 en una Xubuntu siguiendo al pie de la letra las instrucciones y no he recibido error alguno. El error indicado sugiere un problema de fechas.
Sobre tu segunda pregunta, el símbolo «$» y «#» al principio de cada línea representan la cuenta de usuario desde la que debes escribir cada comando, pero no debe escribir tú los símbolos. «$» significa que puedes ejecutar el comando con tu cuenta de usuario, y «#» que debes ejecutarlo como root. Es una notación habitual.
Cuando indico «$ ./configure» quiero decir que debes ejecutar «./configure» desde tu cuenta de usuario estándar. Cuando indico «# make install» quiero decir que debes ejecutar «make install» como root, normalmente habiendo hecho previamente «sudo su», o bien ejecutando la línea como «sudo make install» desde tu cuenta estándar.
Un saludo.
El problema de compilación que tienen joyman y rodrigo se debe a la fecha y hora del sistema, ya que deben tener una fecha anterior a la última fecha que modificaron el makefile. solo configuren la hora actual y listo.
Saludos.
como instalo las dependencias que me hacen falta
Channel Drivers / chan_sip
Resource Modules / res_crypto
Resource Modules / res_rtp_asterisk
Excelente Aporte …….!
Para verificar las dependencias entras a «channel drivers» y verificas que tenga el asterisco chan_sip, luego volves para atras, entras a «Resource modules» y verificas que tenga el asterisco res_crypto y asi con Resource Modules / res_rtp_asterisk.
Saludos. me costo pero le encontre la vuelta.