jueves, 30 de junio de 2011

INSTALACIÓN DE FREEPBX

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

Editaremos el sources.list de nuestro apt para que recoja de los repositorios de debían multimedia, ya que necesitamos el paquete lame y no se encuentra en los repositorios oficiales de debían.

sudo vi /etc/apt/sources.list

Y añadimos al final del archivo las dos siguientes lineas:

deb http://oktan.ls.fi.upm.es/debian-multimedia/ stable main
deb-src http://oktan.ls.fi.upm.es/debian-multimedia/ stable main

luego actualizamos

sudo apt-get update

Nos dará error debido a que no hemos instaladola keys del repositorio, para ello instalamos debian-multimedia-keyring pasando del Aviso de autenticaión:

sudo apt-get install debian-multimedia-keyring
sudo apt-get update

sudo apt-get install libxml2-dev apache2 libapache2-mod-php5 php5 php-pear php5-mysql php5-gd bison libncurses5-dev libaudiofile-dev curl sox php-db lame libssl-dev

Editaremos el archivo /etc/php5/apache2/php.ini

sudo vi /etc/php5/apache2/php.ini

y buscaremos la linea

upload_max_filesize = 2M

y la cambiaremos por

upload_max_filesize =40M

Tambien dejaremos a Off en este archivo la opción magic_quotes_gpc

magic_quotes_gpc = Off

Crearemos un grupo y un usuario llamados asterisk con los siguientes comandos:
sudo groupadd asterisk
sudo useradd -c "asterisk PBX" -d /var/lib/asterisk -g asterisk asterisk
Crearemos el directorio /var/run/asterisk:
sudo mkdir /var/run/asterisk
Ahora editaremos la configuración de asterisk para que utilice el directorio que acabamos de crear como directorio de ejecución:
sudo vi /etc/asterisk/asterisk.conf
La linea a cambiar es la que dice

astrundir => /var/run

y la debemos dejar así:

astrundir => /var/run/asterisk
Ahora instalremos unos cuantos paquetes perl necesarios para FreePBX y Asterisk con los siguientes comandos:
sudo perl -MCPAN -e 'install +YAML'
Contesaremos a todo que si hasta que nos deje de nuevo en la consola
sudo perl -MCPAN -e "install IPC::Signal"
sudo perl -MCPAN -e "install Net::Telnet"
sudo perl -MCPAN -e "install Proc::WaitStat"
Ahora crearemos las bases de datos necesarias para que FreePBX vaya llenando las tablas con nuestras configuraciones y luego pase a los archivos de asterisk lo necesario para su funcionamiento, recordad que los passwords que pedirán estos comandos son los que pusimos en la instalación de mysql-server
sudo mysqladmin create asteriskcdrdb -p
sudo mysql --user=root --password=TU_PASSWORD asteriskcdrdb < /usr/src/freepbx-2.9.0/SQL/cdr_mysql_table.sql
sudo mysqladmin create asterisk -p
sudo mysql --user root -p asterisk < /usr/src/freepbx-2.9.0/SQL/newinstall.sql
sudo mysql --user root -p
mysql> GRANT ALL PRIVILEGES on asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'TU_PASSWORD_ASTERISK';

mysql> GRANT ALL PRIVILEGES on asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'TU_PASSWORD_ASTERISK';

mysql> FLUSH PRIVILEGES;

mysql> quit

Perfecto ya tenemos creadas las bases de datos con sus tablas y sus datos, ahora debemos decirle a apache2 que se ejecute como el usuario que creamos llamado asterisk y que pertenezca al grupo llamado tambien asterisk, para ello editaremos el archivo /etc/apache2/envvars y sustituiremos www-data por asterisk.
sudo vi /etc/apache2/envvars
Lo dejaremos así:
# envvars - default environment variables for apache2ctl

# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=asterisk
export APACHE_RUN_GROUP=asterisk
export APACHE_PID_FILE=/var/run/apache2.pid

Reinciamos apache2:
sudo /etc/init.d/apache2 restart
Luego nos aparecerá el siguiente error

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

Para corregir este problema, necesitas editar el archivo httpd.conf
sudo vi /etc/apache2/httpd.conf
Por defecto el archivo httpd.conf esta en vacío, simplemente escribe lo siguiente.

ServerName localhost

Guarda el archivo y cierra el editor, y finalmente reinicias el servidor.

sudo /etc/init.d/apache2 restart


Antes de lanzar la instalación de FreePBX, debemos asegurarnos que asterisk está funcionando:
sudo kill -9 `pidof asterisk`
sudo asterisk
sudo ./install_amp
Nos debe aparecer algo como esto:
Checking for PEAR DB..OK
Checking for PEAR Console::Getopt..OK
Checking user..OK
Checking if Asterisk is running..running with PID: 29968..OK
Checking for /etc/amportal.conf../etc/amportal.conf does not exist, copying default
Creating new /etc/amportal.conf
Enter your USERNAME to connect to the 'asterisk' database:
[asteriskuser]
Enter your PASSWORD to connect to the 'asterisk' database:
[amp109] TU_PASSWORD
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] TU_PASSWORD
Enter the path to use for your AMP web root:
[/var/www/html]
/var/www/freepbx
Created /var/www/freepbx
Enter the IP ADDRESS or hostname used to access the AMP web-admin:
[xx.xx.xx.xx]
Enter a PASSWORD to perform call transfers with the Flash Operator Panel:
[passw0rd] TU_PASSWORD
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]

Created /var/lib/asterisk/bin
Enter directory in which to store super-user scripts:
[/usr/local/sbin]
Si llegado el caso nos aparece este error:
Checking for PEAR DB..FAILED
[FATAL] PEAR must be installed (requires DB.php). Include path: .:/usr/share/php:/usr/share/pear
entonces la solución es ejecutar en la consola
sudo pear install DB
y nuevamente ejecutar sudo ./install_amp
Después reiniciamos amportal

sudo amportal restart
Podemos comprobar visitando la página web de nuestra nueva centralita abriendo un navegador y entrando en la dirección http://xxx.xxx.xxx.xxx/freepbx
Aprovecharemos y actualizaremos FreePBX, entrad en FreePBX Administration de ahí os moveis a Module Admin, pulsad en Check for updates Online, y luego pinchad en Download All y Upgrade All y luego Process, repetir el proceso varias veces veces hasta que no quede nada por actualizar.
Para que podamos sacar llamadas por los canales Dahdi necesitaremos editar el archivo /etc/amportal.conf
sudo vi /etc/amportal.conf
Buscamos la linea comentada que pone
# ZAP2DAHDICOMPAT=true|false
La cual debe quedar asi:
ZAP2DAHDICOMPAT=true
De esta forma FreePBX sabrá configurar Asterisk para que utilize los canales Dahdi con la nueva nomenclatura y no con la antigua.
Reiniciad amportal:
sudo amportal restart­
Para que Asterisk y FreePBX se inicien cuando encendamos el equipo tendremos que realizar lo siguiente:
sudo vi /etc/init.d/inicia_asterisk.sh
Y añadiremos lo siguiente:
#!/bin/bash
/usr/local/sbin/amportal start

Demosle permisos de ejecución:
sudo chmod a+x /etc/init.d/inicia_asterisk.sh
Ahora crearemos un enlace simbólico para que al inicio del sistema llame al script que acabamos de crear:
sudo ln -s /etc/init.d/inicia_asterisk.sh /etc/rc2.d/S92inicia_asterisk
OK ESO ES TODO!!!

No hay comentarios:

Publicar un comentario