Instalar Asterisk 11 y FreePBX 2.11 en Debian Wheezy

31 Ago

Proceso de Instalación de Asterisk 11 con sistema web de Administración con FreePBX 2.11 sobre Debian 7.

Vamos a descargar todo el código fuente en /usr/src:

null   
cd /usr/src
wget http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
wget http://mirror.freepbx.org/freepbx-2.11.0.tar.gz

Procederemos a crear un directorio llamado tars,

null   
mkdir tars
for i in $(ls *.tar.gz)
do
  tar xf $i && mv $i tars
done

para luego ir descomprimiendo los paquetes de código fuente y colocar los comprimidos en dicho directorio en caso de que sean necesarios después. Procedemos a instalar los prerequisitos de Asterisk:

null   
./asterisk-11.5.1/contrib/scripts/install_prereq install

Ahora instalemos los paquetes, empecemos con speex:

null   
cd /usr/src/speex-1.2rc1
./configure
make
make install

El script configure verifica que se satisfacen las dependencias para speex, al no encontrarse ningún error, compilamos con make e instalamos con make install. Procedemos ahora con la instalación de Dahdi, aunque no tengamos tarjetas, es necesario instalar Dahdi para poder realizar conferencias con Meetme:

null   
cd /usr/src/dahdi-linux-complete-2.7.0.1+2.7.0.1
make
make install
make config

Con el comando make compilamos Dahdi, con make install lo instalamos en el sistema y conmake config se crean las reglas para que arranque como un servicio del sistema cada vez que se inicia la máquina. Si tenemos tarjetas para configurar primarios, debemos instalar Libpri, de lo contrario podemos saltarnos este paso:

null   
cd /usr/src/libpri-1.4.14
make
make install

Ahora vamos a instalar Asterisk, crearemos un usuario llamado asterisk que además de estar a cargo del servicio de telefonía, también correrá el servicio web:

null   
cd /usr/src/asterisk-11.5.1
adduser asterisk --disabled-password --no-create-home --gecos "Usuario Asterisk"
./configure
make menuselect # ...

Hemos abierto el menú de selección de módulos, en Add-ons agregamos el módulo cdr_mysql y en Applications agregamos app_meetme. Guardamos y salimos y procedemos a instalar:

null   
chown asterisk. -R .
su -c "make" asterisk
make install
make samples
make config

El comando su nos permite compilar Asterisk como si lo estuviera ejecutando el usuario asterisk, después de instalar copiamos los archivos de configuración de ejemplo con el comando make samples pues debido a que necesitamos instalar FreePBX es necesario que Asterisk se esté ejecutando, se necesitan archivos de configuración, finalmente creamos los scripts para que Asterisk se ejecute como servicio al iniciar la máquina. Vamos a colocar como dueño de todos los archivos Asterisk al usuario asterisk:

null   
chown asterisk. /var/run/asterisk
chown asterisk. -R /etc/asterisk
chown asterisk. -R /var/{lib,log,spool}/asterisk
chown asterisk. -R /usr/lib/asterisk

Instalaremos a continuación las dependencias para instalar FreePBX:

null   
apt-get -y install apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql \
php-pear php-db php5-gd curl sox libncurses5-dev mpg123 sqlite3 automake autoconf

La instalación anterior nos pide una contraseña para el usuario root que corresponde al servicio de MySQL, debemos tenerla en cuenta para unos pasos posteriores. Necesitamos realizar algunos cambios en la configuración del servidor web con Apache para que corra con el usuario asterisk:

null   
sed -i 's/www-data/asterisk/g' /etc/apache2/envvars
chown asterisk. -R /var/www
chown asterisk. -R /var/lock/apache2
service apache2 restart

En los cambios anteriores, en primer lugar, cambiamos el usuario y el grupo de Apache, www-data, por asterisk, asignamos algunos archivos de Apache al usuario asterisk para que no hayan problemas al correr el servicio y editando archivos, finalmente reiniciamos el servicio. Ahora vamos a terminar de configurar algunas dependencias para FreePBX:

null   
mysqladmin -p create asterisk
mysqladmin -p create asteriskcdrdb

Acabamos de crear las Bases de Datos sobre MySQL para la configuración de FreePBX y para el CDR, ahora vamos a importar el esquema de tablas para la Base de Datos asteriskcdrdb, para la Base de Datos asterisk podemos crear el esquema desde la instalación de FreePBX:

null   
cd /usr/src/freepbx-2.11.0
mysql -u root -p asteriskcdrdb < SQL/cdr_mysql_table.sql

El último comando nos pide una contraseña que corresponde al usuario root de MySQL, es la que hemos ingresado en el momento de la instalación de dicho servicio. Con la misma contraseña nos conectaremos a la consola de MySQL:

null   
mysql -u root -p

Después de conectados daremos todos los permisos a un usuario sobre las Bases de Datos que venimos trabajando:

null   
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'amp109';
FLUSH PRIVILEGES;

La contraseña del usuario asteriskuser corresponde a ‘amp109’, estos son los valores por defecto así que se recomienda cambiarlos; ya podemos salir de la consola de MySQL.

Al regresar al directorio del código fuente de FreePBX, vamos a ejecutar:

null   
./install_amp --installdb

El sistema nos empieza a hacer preguntas sobre las configuraciones previas que hemos hecho:

null   
Enter your USERNAME to connect to the 'asterisk' database:
 [asteriskuser] 
Enter your PASSWORD to connect to the 'asterisk' database:
 [amp109] 
Enter the hostname of the 'asterisk' database:
 [localhost] 
Enter a USERNAME to connect to the Asterisk Manager interface:
 [admin] 
Enter a PASSWORD to connect to the Asterisk Manager interface:
 [amp111] 
Enter the path to use for your AMP web root:
 [/var/www/html] 
/var/www

El primer valor pregunta por el usuario con permisos sobre las Bases de Datos, el segundo por su contraseña, como hemos ingresado los valores por defecto, podemos presionar la tecla ENTER y continuar, si nuestro valor fuera diferente, bastaría escribirlo. Para el usuario y la contraseña del Asterisk Manager Interface hemos dejado los valores por defecto, aquí podemos colocarlos a nuestro gusto. El directorio web bajo Debian es /var/www, por ello hemos reemplazado el valor por defecto.

null   
Enter the IP ADDRESS or hostname used to access the AMP web-admin:
 [192.168.1.1] 192.168.1.2
Use simple Extensions [extensions] admin or separate Devices and Users [deviceanduser]?
 [extensions] 
Enter directory in which to store AMP executable scripts:
 [/var/lib/asterisk/bin] 
Enter directory in which to store super-user scripts:
 [/usr/local/sbin]

A continuación se nos pregunta la dirección IP, después de dicho valor, los otros valores están bien por defecto, luego de estas preguntas el sistema empezará a instalar y podremos redirigir nuestro navegador a la dirección IP para acceder a FreePBX.

Al ir al navegador, la primera pantalla que obtenemos es:

Los tres primeros campos son obligatorios y deben ser llenados con las credenciales que tendrá el administrador de FreePBX. Al finalizar este paso nos encontramos con la interfaz por defecto:

Desde aquí se nos pedirán las credenciales de acceso al dar clic en FreePBX Administration, al ingresar dichas credenciales correctamente, veremos la interfaz de administración de FreePBX:

Se debe dar clic en el botón rojo con el texto Apply Config. Esto genera algunos archivos para Asterisk, pero puede aparecernos el siguiente error:

Dichos archivos deben ser borrados, por ello procedemos asi:

null   
cd /etc/asterisk
rm logger.conf cel.conf cel_odbc.conf iax.conf sip.conf extensions.conf sip_notify.conf features.conf

Los archivos pueden variar e incluso al instalar otros módulos puede ser necesario borrar otros diferentes pues el error puede volver a aparecer. Necesitamos realizar cualquier cambio para que nos aparezca la barra roja y aplicar cambios para que FreePBX ponga los archivos en su lugar, una buena opción es ir y actualizar los módulos instalados.

Podemos reiniciar para verificar que el servidor sube correctamente y estaría listo.

performance labs steroids

Acerca del autor

Christian Gutierrez ha escrito 22 publicaciones en este blog.

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why. – Anonymous Developer

9 Comentarios a “Instalar Asterisk 11 y FreePBX 2.11 en Debian Wheezy”