martes, 5 de junio de 2012

Instalación de FreePBX en servidor Debian

FreePBX és una Interfaz Grafica de Usuario (GUI en inglés) con la que podremos configurar facilmente un servidor con Asterisk.

Primero de todo debemos tener instalado Asterisk en el servidor (podeis ver como se instala en otra publicación).

Una vez instalado Asterisk procedemos a hacer lo siguiente:
Primero le diremos a Asterisk que queremos crear un usuario para que pueda administrar-lo, así que entraremos en un directorio de configuracion de asterisk y haremos lo siguiente:

$cd /etc/asterisk/

En principio podriamos añadir el usuario al final del fichero manager.conf, pero viendo-lo por dentro me he fijado que importa todos los ficheros de configuración de /etc/asterisk/manager.d/*.conf, por lo tanto creamos un fichero nuevo (yo uso el editor vim, usad el que os plazca)

$sudo vim /etc/asterisk/manager.d/user.conf

y le añadimos lo siguiente:

[nombre_de_usuario]
secret=contraseña_para_usuario
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read=system,call,log,verbose,command,agent,user
write=system,call,log,verbose,command,agent,user

Nos descargaremos las fuentes de la pagina oficial de freePBX (en este caso las dejo en /usr/src/)

$cd /usr/src
$sudo wget http://mirror.freepbx.org/freepbx-2.9.0.tar.gz

Una vez descargado vamos a descomprimir el paquete:

$sudo tar zxvf freepbx-2.9.0.tar.gz freepbx-2.9.0/

Esto nos habrá creado una carpeta, entramos en ésta y antes de nada deberiamos preparar un poco el entorno.
Primero deberiamos crear dos bases de datos en nuestro servidor MySQL (recomendaria que en vez de usar el usuari o root de la base de datos MySQL se creara un usuario especifico para Asterisk que solo tubiera permisos para tocar las bases de datos que vamos a realizar; en esta guia uso a root):

$mysql -u root -p

Introducimos el password de root y una vez en la consola de MySQL ejecutamos dos acciones:

create database asterisk;
create database asteriskcdrdb;
exit;

Ahora las completamos con dos codigos que estan en la carpeta SQL del directorio en el que hemos descomprimido el freepbx:

$mysql -u root -p asterisk < SQL/newinstall.sql

$mysql -u root -p asterisk < SQL/cdr_mysql_table.sql

ejecutamos los dos scripts:

$cd /freepbx-2.9.0
$sudo ./start_asterisk start
$sudo ./install_amp

En mi caso me dice que ya tenia Asterisk en ejecución pero que necesito tener PEAR DB así que instalo un par de paquetes para poder hacer el ./install_amp:

$sudo apt-get install php-pear php-db

Ahora si que me permite realizar la instalación así que repetimos:

$sudo ./install_amp

ahora os pedirá bastante información, vigilad que sea la hayas puesto en los pasos anteriores:

Enter your USERNAME to connect to the ‘asterisk’ database: root
Enter your PASSWORD to connect to the ‘asterisk’ database: < type MySQL’s root password >
Enter the hostname of the ‘asterisk’ database: < aprieta intro o escrive ‘localhost’ >
Enter a USERNAME to connect to the Asterisk Manager interface: < aqui ponemos el usuario que hemos puesto en el fichero /etc/asterisk/manager.d/user.conf >
Enter a PASSWORD to connect to the Asterisk Manager interface: < aqui ponemos el password que hemos puesto en el fichero /etc/asterisk/manager.d/user.conf >
Enter the path to use for your AMP web root: /var/www
Enter the IP ADDRESS or hostname used to access the AMP web-admin: < Indicad la IP del servidor que esta corriendo Asterisk, en mi caso es la misma maquina, pues pongo su IP >
Enter a PASSWORD to perform call transfers with the Flash Operator Panel: < dejamos el password por defecto passw0rd dandole al intro >
Use simple Extensions [extensions] admin or separate Devices and Users [deviceanduser]? < Aqui especificamos si cada extension que creamos corresponderá a un usuario en concreto 'extensions' o si por lo contrario se assignaran dinamicamente al conectar-se (por defecto si le dais a intro os pondrá 'extensions') >
Enter directory in which to store AMP executable scripts: < confirmar el directorio por defecto /var/lib/asterisk/bin dandole al intro >
Enter directory in which to store super-user scripts: < confirmar el directorio por defecto /usr/local/sbin dandole al intro >

Si al instalar aparece el error

Cannot redeclare __parse_dialrulesfile

repetid la instalación con el comando

$sudo ./install_amp

No me ha ocurrido pero indican que es un error conocido (al menos en una version antigua).

Lo que si que me ha ocurrido es que haya tenido que cancelar la instalacion, y al volver a instalar no me permita hacer nada porque el fichero de configuración está a medias, lo que he echo en ese caso es eliminar el fichero /etc/amportal.conf
puede que ahora si que os deje volver a instalar.

Ahora podremos entrar a la pagina web que nos ha creado freePBX.
Podria ser que el usuario www-data (el usuario por defecto de Apache) no tenga permisos para consultar los ficheros del grupo Asterisk, por lo que no podrés acceder correctamente a la pagina web. Así que dar los permisos oportunos, en mi caso:

$sudo adduser www-data asterisk

Y reiniciamos Apache

$sudo /etc/init.d/apache restart

Ahora debería cargar todo perfectamente.
Una vez dentro nos aparecen tres opciones, entraremos en FreePBX Administration, que nos pedirá un usuario y contraseña:

admin
admin

Una vez dentro vereis un cartelito naranja indicando que hay cambios en la configuración, así que si lo apretais se aplicarán.

Ahora deberiamos cambiar el nombre y contraseña del usuario admin, para esto ir a Setup -> Administrators, seleccionar a la derecha el usuario admin y poner el nombre i contraseña deseado. Luego picar abajo en Submit Changes.

No hay comentarios:

Publicar un comentario