VoIP: FreePBX interfaz grafica de usuario para Asterisk

Introducción a FreePBX

FreePBX es una interfaz web de usuario que facilita la interoperabilidad del usuario con el sistema VoIP Asterisk. Abstrae en ciertas ocasiones de tareas de cierta complejidad y por tanto resulta muy útil para usuarios o administradores que no estén muy familiarizados con Asterisk. Corre bajo licencia GPL.

FreePBX Asterisk VoipSe estructura se divide modularmente y dispone de las siguientes funcionalidades del mundo VoIP. Cabe destacar:

  • Módulo de lenguajes para la Internacionalización del sistema.
  • Módulo de colas de llamadas.
  • Condiciones de tiempo.
  • Grupos de ringado.
  • Colas de llamadas.
  • Enrutamiento entrante.
  • Reglas de enrutamiento saliente. Soporte SIP, IAX, DAHDI, ZAPTEL.
  • Lista Negra.
  • Módulo de locuciones.
  • Módulo de Parking.
  • Buzones de voz VoIP.
  • FOP Flash Operator Panel.
  • CDR Call Detail Records.
  • IVR: Interactive Voice Response

Compilación e instalación de Asterisk y FreePBX

A continuación se describe el procedimiento realizado para la instalación de Asterisk y FreePBX. Trabajaremos sobre un sistema operativo CentOS release 6.3, por tanto no todas las instrucciones que aparecen son análogas para el resto de distribuciones GNU/Linux, aunque podéis haceros una idea de los paquetes y dependencias VoIP instaladas.

Software utilizado:

  • Lame 3.99.5 -> Codificador MP3
  • Libpri 1.4.14 -> Librerías soporte ISDN
  • Dahdi 2.6.1 (Linux + tools) ->  Soporte para tarjetas de comunicaciones.
  • Asterisk 1.8.11 -> Software PBX con todas las funcionalidades de centralita.
  • FreePBX 2.10.0 -> Interfaz gráfica de usuario para Asterisk.

Asterisk

Configuraciones previas a la instalación:

Desactivar Selinux

En sistemas como CentOS, por defecto habilitan el servicio selinux, una especie de firewall. Asterisk recomienda desactivar el servicio para evitar problemas derivados del mismo.

Editamos el fichero /etc/selinux/config

#> vi /etc/selinux/config

selinux_asterisk_freepbx_voip

Debemos de setear la variable SELINUX = disabled

Reiniciamos la máquina

#> init 6

Servicio NTP

Instalamos el servicio NTP Network Time Protocol

#> yum install ntp

Lo configuramos para que inicie el servicio en el arranque

#> chkconfig ntpd on

Arrancamos el servicio

#> /etc/init.d/ntpd start

Actualizamos fecha y hora del sistema (hora.roa.es es optativo y).

#> ntpdate -b -s hora.roa.es

Descarga de software Asterisk con funciones VoIP

Creamos un directorio especifico para almacenar el software descargado.

#> cd /usr/src/
#> mkdir asterisk
#> cd asterisk/

Descargamos los paquetes a compilar para la instalación de Asterisk.

#> wget http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz/download
#> wget http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-1.8.11-current.tar.gz
#> wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
#> wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
#> wget http://mirror.freepbx.org/freepbx-2.10.0.tar.gz

Instalación dependencias de Asterisk

#> yum install gcc gcc-c++ make libxml2-devel ncurses-devel openssl-devel curl-devel subversion
#> yum install kernel-devel.x86_64

Compilación e instalación de LAME

#> tar -xvf lame-3.99.5.tar.gz
#> cd lame-3.99.5
#> ./configure
#> make && make install

Compilación e instalación de LIBPRI

#> tar -xvf libpri-1.4-current.tar.gz
#> cd libpri-1.4.13/
#> make && make install

Compilación e instalación de DAHDI

#> tar -xvf dahdi-linux-complete-current.tar.gz
#> cd dahdi-linux-complete-2.6.1+2.6.1/
#> make && make install
#> make config

Compilación e instalación de Asterisk

#> tar -xvf certified-asterisk-1.8.11-current.tar.gz
#> cd certified-asterisk-1.8.11-cert8/
#> cd contrib/scripts/
#> ./get_mp3_source.sh
#> ./configure
#> make menuselect
#> make
#> make install
#> make samples
#> make config

Damos los permisos adecuados a los directorios implicados

#> groupadd asterisk
#> useradd -c "Usuario Asterisk" -d /var/lib/asterisk/ -g asterisk asterisk
#> chown -R asterisk:asterisk /etc/asterisk
#> chown -R asterisk:asterisk /var/run/asterisk/
#> chown -R asterisk:asterisk /usr/lib/asterisk/
#> chown -R asterisk:asterisk /var/spool/asterisk/
#> chown asterisk:asterisk /usr/sbin/asterisk
#> chown asterisk:asterisk /var/lib/php/session

FreePBX

#> yum install httpd

A continuación, indicaremos que el servicio web apache se ejecute con usuario asterisk y grupo asterisk.

En la línea 242 del fichero /etc/httpd/conf/httpd.conf, debemos modificar la directiva User y Group que por defecto aparecen con el usuario y grupo apache.

#> vi +242 /etc/httpd/conf/httpd.conf

httpd_asterisk_freepbx_voip

Instalación de soporte PHP

#> yum install php.x86_64
#> yum install php-pear.noarch php-mysql.x86_64 php-gd.x86_64

Instalación de servidor de base de datos MySQL

#> yum install mysql.x86_64 mysql-server.x86_64 mysql-devel.x86_64

Instalación de otras dependencias:

#> yum install perl-CPAN.x86_64
#> yum install audiofile-devel.x86_64
#> yum install sox.x86_64
#> yum install libtiff.x86_64 libtiff-devel.x86_64

Asignamos una contraseña al usuario root de MySQL.

#> mysqladmin -u root password 'xxx'
#> mysql -uroot -p'xxx'

Desde la consola de administración de MySQL, crearemos las dos bases de datos donde albergarán toda la estructura de tablas asociadas a FreePBX.

cli-mysql> CREATE DATABASE asterisk;
cli-mysql> CREATE DATABASE asteriskcdrdb;

Creamos usuario asterisk y otorgamos los permisos pertinentes en ambos esquemas.

cli-mysql> GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY ‘xxx’
cli-mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asterisk@localhost IDENTIFIED BY ‘xxx’

A continuación ejecutamos los scripts sql predefinidos en el directorio ./SQL de tu directorio FreePBX

#> mysql -u asterisk -p xxx asteriskcdrdb asteriskcdrdb < ./SQL/cdr_mysql_table.sql #> mysql -u asterisk -p xxx asterisk < ./SQL/newinstall.sql

Una vez finalizado este proceso, estamos preparados para instalar freePBX.

#> ./install_amp

Durante la instalación, pedirá que introduzcas los siguientes parámetros de configuración. Si omitimos el valor, tomará el de por defecto [entre corchetes]

  • Usuario con permisos en base de datos asterisk: asterisk
  • Contraseña con permisos en base de datos asterisk: xxx
  • Usuario para conectar a la AMI de Asterisk: admin
  • Contraseña del usuario para conectar a la AMI de Asterisk: amp111
  • IP o hostname usada para acceder a la parte web VoIP de FreePBX: localhost
  • Extensiones simple o usuarios y dispositivos separados: extensions
  • Directorio de ejecutables: /var/lib/asterisk/bin

amportal_asterisk_freepbx_voip

Durante la instalación de la interfaz VoIP FreePBX, se obtuvieron dos errores que me gustaría recalcar a continuación:

  1. Mensaje de error: “Checking for PEAR DB..FAILED”
    Solución: #> pear install db
  2. Mensaje de error:“Checking user..PHP Fatal error: Call to undifined function posix_getpwuid() in..”
    Solución: #> yum install php-process (esta dependencia no viene detallada en la ayuda de FreePBX)

Una vez finalizado todo el proceso, ya estamos en disponibilidad de acceder al panel de administración web y comenzar con la configuración de los módulos deseados.

freepbx_asterisk_voip

En próximos temas, entraremos más en detalle en la estructura VoIP de FreePBX y la customización de los diferentes módulos.

4 comentarios en VoIP: FreePBX interfaz grafica de usuario para Asterisk

Deja un comentario