
Hoy instalaremos en Debian 9.6 asterisk con freepbx, una vez he instalado la última version de Debian con las opciones de ssh-server continuaremos con los siguientes pasos.
Tirando piedras contra mi propio tejado debo decir que freepbx es muy invasivo y configura a su gusto el destino de sus ficheros.
#apt-get install net-tools
#ifconfig (con este comando veremos el nombre de las interfaces de red, nos servirá para configurar la tarjeta de red manualmente en mi caso se llama eth0 en otros algo tipo enpXsX.)

#nano /etc/network/interfaces ->poner ip

#apt-get install ssh
# apt remove --purge php7*
# apt install curl apt-transport-https net-tools
# curl https://packages.sury.org/php/apt.gpg | apt-key add -
# nano /etc/apt/sources.list.d/suryorgapt.list
La cuestión es que freepbx no soporta nuestro fabuloso php7 que viene con nuestro sistema operativo así que vamos a instalar php5.
añadimos la siguiente línea:
deb https://packages.sury.org/php/ stretch main
ahora actualizamos para que el sistema reconozca este nuevo repositorio y a instalar php5
# apt-get update # apt-get install -y apache2 bison php5.6 php5.6-mbstring php5.6-curl php5.6-fpm php5.6-cli php5.6-mysql php-pear php5.6-gd php5.6-odbc curl sox libncurses5-dev libssl-dev default-libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libpolta-pq / me pq / me pq / me pq / me / pid / p / / lp / lp: l & nluc de que todas las partes libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev subversion libtool-bin python-dev php5.6-xml php5.6-gd default-mysql-client default-mysql-server default-mysql-client- core default-mysql-server-core bison flex mongodb dirmngr php5.6-cgi libapache2-mod-security2 libapache2-mod-php5.6
Seguimos instalando dependencias para instalar sin problemas Asterisk, y habilitar escritura en apache.
# apt-get install -y build-essential linux-headers-`uname -r`
# a2enmod rewrite
Descargamos Asterisk para compilarlo, si no vamos a conectar ninguna tarjeta de telefonía (fxo,fxs o RDSI) no será necesario instalar libpri ni dahdi-linux por lo que me saltaré ese paso.
# cd /usr/src
# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
# wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.10.tar.gz
Vamos a instalar bibliotecas C para JSON.
# cd /usr/src
# tar -zxvf jansson.tar.gz
# cd jansson-*
# autoreconf -i
# ./configure
# make -j4
# make install
Ahora a compilar nuestro asterisk!
# cd /usr/src
# tar -zxvf asterisk-16-current.tar.gz
# cd asterisk-16.*
# ./contrib/scripts/install_prereq install
# ./configure --with-jansson-bundled
# make menuselect
Compilamos:
# make -j4
# sh contrib/scripts/get_mp3_source.sh
# make install
# make config
# make samples
# ldconfig
Ya tenemos asterisk instalado, reiniciamos y ejecutamos «asterisk -rvvvvv» debería aparecernos esto:
Connected to Asterisk 16.X.X currently running on dc (pid = 17345)
dc*CLI>
Configuramos los archivos de sonido:
# 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
# tar xfz asterisk-extra-sounds-en-wav-current.tar.gz
# 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 -zxvf asterisk-extra-sounds-es-g722-current.tar.gz
# tar -zxvf asterisk-core-sounds-es-g722-current.tar.gz
Configuramos apache
# service asterisk stop
# groupadd asterisk
# useradd -d /var/lib/asterisk -g asterisk asterisk
# chown -R asterisk:asterisk /var/spool/asterisk /var/run/asterisk /etc/asterisk/ /var/{lib, log, spool}/asterisk /usr/lib/asterisk /var/www
# sed -i 's / # AST_USER = "asterisk" / AST_USER = "asterisk" / g' /etc/default /asterisk
# sed -i 's / # AST_GROUP = "asterisk" / AST_GROUP = "asterisk" / g' / etc / default / asterisk
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_BK
# sed -i 's / AllowOverride None / AllowOverride All /' /etc/apache2/apache2.conf
# sed -i 's / ^ \ (Usuario \ | Grupo \). * / \ 1 asterisco /' /etc/apache2/apache2.conf
# mv /var/www/html /var/www/html.bak
Configuramos el conector ODBC
Descargaremos el conector ODBC de este enlace:
https://dev.mysql.com/downloads/connector/odbc/
tar -zxvf mysql-connector-odbc-*
#cp mysql-connector-odbc-8.0.14-linux-glibc2.12-x86-64bit/lib/libmyodbc8*
/usr/lib/x86_64-linux-gnu/odbc/
#nano /etc/odbcinst.ini
[MySQL]
Description = ODBC para MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc8S.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
#nano /etc/odbc.ini
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock option=3
Ya vamos terminando las configuraciones para conectar la bd de asterisk con freepbx.
# a2enmod rewrite
# a2enconf php5.6-fpm
# a2enmod proxy_fcgi setenvif
# service apache2 restart
Freepbx nos lanzará un error si no cambiamos esto:
# nano /etc/asterisk/asterisk.conf
y le borramos de la primera línea "(!)" despues de "Directory".
Ahora lo divertido, finalizamos instalando nuestro freepbx, espero que al finalizar hayas leído lo suficiente sobre los pasos para evitar ataques a tu servidor; para ello te recomiendo leer sobre fail2ban y no abrir tus puertos alegremente al mundo.
# cd /usr/src
# wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz
# tar vxfz freepbx-14.0-latest.tgz
# cd freepbx
# ./install -n