FreePBX en Raspberry Pi 3

De Wiket
Salta a la navegació Salta a la cerca

Guia de instalacion paso a paso

Inicia sesión o cambia de usuario a Root:
Importante: Se requiere usar el usuario Root, de usar Sudo, no funcionaría. Es necesario que se ejecute el siguiente comando para que no haya fallas durante el proceso.

sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
service sshd restart

También es una opción entrar con otro usuario y cambiar luego a Root, en ese caso el comando de arriba no haría falta.

Actualiza tu sistema

apt-get update && apt-get upgrade -y 

Instala los paquetes y dependencias

apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server\
 mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php5-gd curl sox\
 libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3\
 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev\
 libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev\
 libspandsp-dev sudo libmyodbc subversion
 

Durante el proceso de instalación se te preguntará varias veces sobre la password de MySQL. Se puede dejar en blanco ya que mas adelante crearemos una password segura. Si creas una password ahora, es posible que tengas problemas en la instalación. No crees una password a no ser que seas habilidoso en seguridad de un MySQL server.

Reiniciamos la máquina

reboot

Instalamos las dependencias

Despues de reiniciar nos aseguramos de que estamos usando el último kernel de linux.

Instalamos prerequisitos de pear

pear install Console_Getopt

Instalamos las dependencias para Google Voice (Si se requiere). Ignora esta parte de no necesitar Google Voice.

Instalar iksemel

cd /usr/src
wget https://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
tar xf iksemel-1.4.tar.gz
cd iksemel-*
./configure
make
make install
ldconfig

Instalar y configurar Asterisk

Descargar los ficheros fuente de Asterisk

cd /usr/src
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-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz
wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2

Compilar e instalar DAHDI

Si no tienes hardware PSTN conectado a esta máquina, no es necesario instalar.

cd /usr/src
tar xvfz dahdi-linux-complete-current.tar.gz
rm -f dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*
make all
make install
make config
cd /usr/src
tar xvfz libpri-current.tar.gz
rm -f libpri-current.tar.gz
cd libpri-*
make
make install

Compilar e instalar pjproject

cd /usr/src
tar -xjvf pjproject-2.4.tar.bz2
rm -f pjproject-2.4.tar.bz2
cd pjproject-2.4
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr
make dep
make
make install

Compilar e instalar jansson

cd /usr/src
tar vxfz jansson.tar.gz
rm -f jansson.tar.gz
cd jansson-*
autoreconf -i
./configure
make
make install

Compilar e instalar Asterisk

cd /usr/src
tar xvfz asterisk-13-current.tar.gz
rm -f asterisk-13-current.tar.gz
cd asterisk-*
contrib/scripts/get_mp3_source.sh
contrib/scripts/install_prereq install
./configure
make menuselect

Serás redirigido al menú de elección de que módulos vas a querer en Asterisk. La mayoría ya estan activados por defecto, pero si necesitas usar MP3 (ej. Musica de espera), vas a necesitar activar la opcion 'format_mp3' en la primera página.

Tras seleccionar 'Save & Exit' entonces puedes continuar.

make
make install
make config
ldconfig
update-rc.d -f asterisk remove

Instalar los archivos de audio de Asterisk

El 'make install' de arriba, instala archivos de sonido de baja calidad por defecto. Esto viene bien para un sistema de bajo potencial/coste, (Cómo una Rasberry Pi), Pero en un gran servidor, es preferible instalar archivos de sonido de más calidad. El código a continuación muestra como instalar los archivos de sonido 'wav' (8khz) y el audio G722 (High Definition 'Wideband').

cd /var/lib/asterisk/sounds
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-wav-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz
tar xvf asterisk-core-sounds-en-wav-current.tar.gz
rm -f asterisk-core-sounds-en-wav-current.tar.gz
tar xfz asterisk-extra-sounds-en-wav-current.tar.gz
rm -f asterisk-extra-sounds-en-wav-current.tar.gz

Descarga del audio Wideband

wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-g722-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz
tar xfz asterisk-extra-sounds-en-g722-current.tar.gz
rm -f asterisk-extra-sounds-en-g722-current.tar.gz
tar xfz asterisk-core-sounds-en-g722-current.tar.gz
rm -f asterisk-core-sounds-en-g722-current.tar.gz

Instalar y configurar FreePBX

Crear el usuario de Asterisk y establecer los permisos básicos

useradd -m asterisk
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /usr/lib/asterisk
rm -rf /var/www/html

Unos pequeños ajustes a nuestro Apache

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
service apache2 restart

Configure ODBC

Edita el fichero /etc/odbcinst.ini y agrega lo siguiente.Ten en cuenta que la guía toma de referencia la isntalación en una nueva máquina, y que el fichero está vacío. Si no es una máquina completamente nueva, por favor, verifica manualmente los contenidos del fichero, no sólo copies y pegues la configuración. El 'EOF' no va en el fichero, simplemente es para que el comando 'cat' sepa que has terminado.

cat >> /etc/odbcinst.ini << EOF
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
 
EOF

Deberías verificar esas rutas, si no estás en una máquina x86_64. Puedes usar el comando `find / -name libmyodbc.so` para verificar su localización Edita o crea /etc/odbc.ini y agrega la siguiente sección. Teniendo en cuenta que el comando asume que estas instalando una nueva máquina, y el fichero esta vacío. Por favor, verifica el contenido del fichero si no se da el caso.

cat >> /etc/odbc.ini << EOF
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3
  
EOF

Descarga e instala FreePBX

cd /usr/src
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
tar vxfz freepbx-13.0-latest.tgz
rm -f freepbx-13.0-latest.tgz
cd freepbx
./start_asterisk start
./install -n

¡Felicidades, ya lo tienes!