Diferencia entre revisiones de «FreePBX»
| (No se muestra una edición intermedia del mismo usuario) | |||
| Línea 60: | Línea 60: | ||
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. | 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 | Editamos el fichero /etc/selinux/config | ||
| − | #> vi /etc/selinux/config | + | |
| + | "#"> vi /etc/selinux/config | ||
| + | |||
Debemos de setear la variable SELINUX = disabled | Debemos de setear la variable SELINUX = disabled | ||
Reiniciamos la máquina | Reiniciamos la máquina | ||
| − | #> init 6 | + | |
| + | "#"> init 6 | ||
| + | |||
Servicio NTP | Servicio NTP | ||
Instalamos el servicio [[NTP]] Network Time Protocol | Instalamos el servicio [[NTP]] Network Time Protocol | ||
| − | #> yum install ntp | + | |
| + | "#"> yum install ntp | ||
| + | |||
Lo configuramos para que inicie el servicio en el arranque | Lo configuramos para que inicie el servicio en el arranque | ||
| − | #> chkconfig ntpd on | + | |
| + | "#"> chkconfig ntpd on | ||
| + | |||
Arrancamos el servicio | Arrancamos el servicio | ||
| − | #> /etc/init.d/ntpd start | + | |
| + | "#"> /etc/init.d/ntpd start | ||
| + | |||
Actualizamos fecha y hora del sistema (hora.roa.es es optativo y). | Actualizamos fecha y hora del sistema (hora.roa.es es optativo y). | ||
| − | #> ntpdate -b -s hora.roa.es | + | |
| + | "#"> ntpdate -b -s hora.roa.es | ||
| + | |||
Descarga de software Asterisk con funciones VoIP | Descarga de software Asterisk con funciones VoIP | ||
| + | |||
Creamos un directorio especifico para almacenar el software descargado. | Creamos un directorio especifico para almacenar el software descargado. | ||
| − | #> cd /usr/src/ | + | |
| − | #> mkdir asterisk | + | "#"> cd /usr/src/ |
| − | #> cd asterisk/ | + | |
| + | "#"> mkdir asterisk | ||
| + | |||
| + | "#"> cd asterisk/ | ||
| + | |||
Descargamos los paquetes a compilar para la instalación de 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://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz/download |
| − | #> 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://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-1.8.11-current.tar.gz |
| − | #> wget http://mirror.freepbx.org/freepbx-2.10.0.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== | ==Instalación dependencias de Asterisk== | ||
| − | #> yum install gcc gcc-c++ make libxml2-devel ncurses-devel openssl-devel curl-devel subversion | + | "#"> 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== | + | "#"> yum install kernel-devel.x86_64 |
| − | #> tar -xvf lame-3.99.5.tar.gz | + | |
| − | #> cd lame-3.99.5 | + | ==Compilación e instalación de LAME== |
| − | #> ./configure | + | |
| − | #> make && make install | + | "#"> tar -xvf lame-3.99.5.tar.gz |
| + | |||
| + | "#"> cd lame-3.99.5 | ||
| + | |||
| + | "#"> ./configure | ||
| + | |||
| + | "#"> make && make install | ||
| + | |||
==Compilación e instalación de LIBPRI== | ==Compilación e instalación de LIBPRI== | ||
| − | #> tar -xvf libpri-1.4-current.tar.gz | + | |
| − | #> cd libpri-1.4.13/ | + | "#"> tar -xvf libpri-1.4-current.tar.gz |
| − | #> make && make install | + | |
| + | "#"> cd libpri-1.4.13/ | ||
| + | |||
| + | "#"> make && make install | ||
| + | |||
==Compilación e instalación de DAHDI== | ==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/ | + | "#"> tar -xvf dahdi-linux-complete-current.tar.gz |
| − | #> make && make install | + | |
| − | #> make config | + | "#"> cd dahdi-linux-complete-2.6.1+2.6.1/ |
| + | |||
| + | "#"> make && make install | ||
| + | |||
| + | "#"> make config | ||
| + | |||
==Compilación e instalación de Asterisk== | ==Compilación e instalación de Asterisk== | ||
| − | #> tar -xvf certified-asterisk-1.8.11-current.tar.gz | + | |
| − | #> cd certified-asterisk-1.8.11-cert8/ | + | "#"> tar -xvf certified-asterisk-1.8.11-current.tar.gz |
| − | #> cd contrib/scripts/ | + | |
| − | #> ./get_mp3_source.sh | + | "#"> cd certified-asterisk-1.8.11-cert8/ |
| − | #> ./configure | + | |
| − | #> make menuselect | + | "#"> cd contrib/scripts/ |
| − | #> make | + | |
| − | #> make install | + | "#"> ./get_mp3_source.sh |
| − | #> make samples | + | |
| − | #> make config | + | "#"> ./configure |
| + | |||
| + | "#"> make menuselect | ||
| + | |||
| + | "#"> make | ||
| + | |||
| + | "#"> make install | ||
| + | |||
| + | "#"> make samples | ||
| + | |||
| + | "#"> make config | ||
| + | |||
Damos los permisos adecuados a los directorios implicados | Damos los permisos adecuados a los directorios implicados | ||
| − | #> groupadd asterisk | + | |
| − | #> useradd -c "Usuario Asterisk" -d /var/lib/asterisk/ -g asterisk asterisk | + | "#"> groupadd asterisk |
| − | #> chown -R asterisk:asterisk /etc/asterisk | + | |
| − | #> chown -R asterisk:asterisk /var/run/asterisk/ | + | "#"> useradd -c "Usuario Asterisk" -d /var/lib/asterisk/ -g asterisk asterisk |
| − | #> chown -R asterisk:asterisk /usr/lib/asterisk/ | + | |
| − | #> chown -R asterisk:asterisk /var/spool/asterisk/ | + | "#"> chown -R asterisk:asterisk /etc/asterisk |
| − | #> chown asterisk:asterisk /usr/sbin/asterisk | + | |
| − | #> chown asterisk:asterisk /var/lib/php/session | + | "#"> 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== | ==FreePBX== | ||
| − | #> yum install httpd | + | |
| + | "#"> yum install httpd | ||
| + | |||
A continuación, indicaremos que el servicio web apache se ejecute con usuario asterisk y grupo asterisk. | 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. | 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 | + | |
| + | "#"> vi +242 /etc/httpd/conf/httpd.conf | ||
| + | |||
==Instalación de soporte PHP== | ==Instalación de soporte PHP== | ||
| − | #> yum install php.x86_64 | + | |
| − | #> yum install php-pear.noarch php-mysql.x86_64 php-gd.x86_64 | + | "#"> 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 | Instalación de servidor de base de datos MySQL | ||
| − | #> yum install mysql.x86_64 mysql-server.x86_64 mysql-devel.x86_64 | + | |
| + | "#"> yum install mysql.x86_64 mysql-server.x86_64 mysql-devel.x86_64 | ||
| + | |||
==Instalación de otras dependencias: == | ==Instalación de otras dependencias: == | ||
| − | #> yum install perl-CPAN.x86_64 | + | |
| − | #> yum install audiofile-devel.x86_64 | + | "#"> yum install perl-CPAN.x86_64 |
| − | #> yum install sox.x86_64 | + | |
| − | #> yum install libtiff.x86_64 libtiff-devel.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. | Asignamos una contraseña al usuario root de MySQL. | ||
| − | #> mysqladmin -u root password 'xxx' | + | |
| − | #> mysql -uroot -p'xxx' | + | "#"> 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. | 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 asterisk; | ||
| Línea 146: | Línea 222: | ||
cli-mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* 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 | 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 | + | |
| + | "#"> 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. | Una vez finalizado este proceso, estamos preparados para instalar freePBX. | ||
| − | #> ./install_amp | + | |
| + | "#"> ./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] | 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 | * Usuario con permisos en base de datos asterisk: asterisk | ||
| Línea 161: | Línea 241: | ||
Durante la instalación de la interfaz VoIP FreePBX, se obtuvieron dos errores que me gustaría recalcar a continuación: | Durante la instalación de la interfaz VoIP FreePBX, se obtuvieron dos errores que me gustaría recalcar a continuación: | ||
Mensaje de error: “Checking for PEAR DB..FAILED” | Mensaje de error: “Checking for PEAR DB..FAILED” | ||
| − | Solución: #> pear install db | + | Solución: "#"> pear install db |
| + | |||
Mensaje de error:“Checking user..PHP Fatal error: Call to undifined function posix_getpwuid() in..” | Mensaje de error:“Checking user..PHP Fatal error: Call to undifined function posix_getpwuid() in..” | ||
| − | Solución: | + | 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. | 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. | ||
última versión al 07:13 18 may 2014
| ||||||||||||||||||||||||
Sumario
- 1 Introducción a FreePBX
- 2 Estructura
- 3 Compilación e instalación de Asterisk y FreePBX
- 4 Software utilizado
- 5 Asterisk
- 6 Instalación dependencias de Asterisk
- 7 Compilación e instalación de LAME
- 8 Compilación e instalación de LIBPRI
- 9 Compilación e instalación de DAHDI
- 10 Compilación e instalación de Asterisk
- 11 FreePBX
- 12 Instalación de soporte PHP
- 13 Instalación de otras dependencias:
- 14 Fuente
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.
Estructura
Se 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
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/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
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
Durante la instalación de la interfaz VoIP FreePBX, se obtuvieron dos errores que me gustaría recalcar a continuación:
Mensaje de error: “Checking for PEAR DB..FAILED”
Solución: "#"> pear install db
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.