Asterisk 14 Freepbx 14 su Debian Stretch 9.1
Aggiornato al 19/10/2017 su Debian 9.4
Ecco un'altra nuova guida prodotta e testata da me su come installare un centralino utilizzando Asterisk 14 Freepbx 14 con Debian Stretch 9.1, Dopo l'ultima guida su Debian 8.8, la nuova release stable è Debian 9.1, codename Stretch, ed inevitabilmente come spesso succede, diverse cose sono cambiate. La prima cosa che si riscontra è che nei repository non si trova più php5 ma si è passati a php7.0, poi manca anche libmyodbc, quindi bisogna attrezzarsi per ottenere queste dipendenze fondamentali, dato che Freepbx non supporta ancora php7.0. I passaggi successivi saranno eseguiti come utente root e su una nuova installazione di Debian Stretch:
Aggiornare il sistema:
# apt update; apt upgrade
se viene installato un nuovo kernel riavviare.
Rimuovere php7.0 ed installare php5.6:
# apt remove --purge php7*
# apt install curl apt-transport-https net-tools -y
# curl https://packages.sury.org/php/apt.gpg | apt-key add -
# echo 'deb https://packages.sury.org/php/ stretch main' > /etc/apt/sources.list.d/deb.sury.org.list
# apt update
Scaricare le dipendenze ed i servizi necessari:
# apt install -y build-essential linux-headers-`uname -r` openssh-server 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 libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev 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
Installare nodejs:
# curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
# apt install -y nodejs
Reboot server:
# reboot
Scaricare: Dahdi Libpri (solo se si ha hardware pstn) Jansson, Asterisk, Freepbx
# cd /usr/src
# wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
# wget https://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
# wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz
# wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.10.tar.gz
# wget https://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz
Compilare ed installare Dahdi:
# cd /usr/src
# tar xvfz dahdi-linux-complete-current.tar.gz
# rm -rf dahdi-linux-complete-current.tar.gz
# cd dahdi-linux-complete-2*
# make all
# make install
# make config
# cd /usr/src
# tar xvfz libpri-current.tar.gz
# rm -rf libpri-current.tar.gz
# cd libpri-1*
# make -j4
# make install
Installare Jansson:
# cd /usr/src
# tar vxfz jansson.tar.gz
# rm -rf jansson.tar.gz
# cd jansson-*
# autoreconf -i
# ./configure
# make -j4
# make install
Installare Asterisk 14:
# cd /usr/src
# tar xvfz asterisk-14-current.tar.gz
# rm -rf asterisk-14-current.tar.gz
# cd asterisk-14.*
# contrib/scripts/get_mp3_source.sh
# ./contrib/scripts/install_prereq install
# ./configure --with-pjproject-bundled
# make menuselect
a questo punto inserire il prefisso internazionale, nel nostro caso 39:
Asterisk 14 Freepbx 14 su Debian Stretch 9.1
e poi abilitare format_mp3:
Asterisk 14 Freepbx 14 su Debian Stretch 9.1
# make -j4
# make install
# make config
# ldconfig
adesso bisogna verificare che asterisk funzioni correttamente:
# /etc/init.d/asterisk start
# asterisk -rvvv
output:
Asterisk 14 Freepbx 14 su Debian Stretch 9.1
Installazione e configurazione di Apache2 e permessi:
# /etc/init.d/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_orig
# sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
# mv /var/www/html /var/www/html.bak
Installazione e Configurazione ODBC:
andare direttamente sul sito e scaricare mysql-connector-odbc-5.3.9-linux-debian9-x86-64bit.tar.gz, e poi copiare i driver nel giusto percorso:
# tar -xvf mysql-connector-odbc-5.3.9-linux-debian9-x86-64bit.tar.gz
# cp mysql-connector-odbc-5.3.9-linux-debian9-x86-64bit/lib/libmyodbc5* /usr/lib/x86_64-linux-gnu/odbc/
poi:
# nano /etc/odbcinst.ini
ed incollare dentro qualcosa del genere, considerando che i nomi dei due driver possono cambiare in base alla release di mysql-connector:
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc5S.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
poi ancora:
# nano /etc/odbc.ini
ed incollare dentro:
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3
a questo punto riavviare:
# reboot
al riavvio:
# a2enmod rewrite
# a2enconf php5.6-fpm
# a2enmod proxy_fcgi setenvif
# systemctl restart apache2
ultima modifica da fare:
# nano /etc/php/5.6/apache2/php.ini
e nel menu Resource Limits settare memory_limit = 256M, ed ancora nel menu File Uploads settare upload_max_filesize = 120M
# systemctl restart apache2
Installazione di Freepbx 14:
# cd /usr/src
# tar vxfz freepbx-14.0-latest.tgz
# rm -rf freepbx-14.0-latest.tgz
# cd freepbx
# ./start_asterisk start
# ./install -n
se tutto è andato bene il server Asterisk è raggiungibile all'indirizzo https://ip_raspberry. La prima cosa da fare è quella di scegliere nome utente, password e mail, per accedere al pannello di amministrazione. Andare poi nel menu Admin-Module Admin e scaricare ed aggiornare tutti i moduli. In caso di problemi:
# fwconsole chown
# fwconsole reload
# fwconsole ma upgrade framework
# fwconsole restart
Errori:
Nessuno, o meglio nel caso di problemi di moduli mancanti in Dahdi, bisogna ripetere di nuovo compilazione ed installazione.
Asterisk 14 Freepbx 14 su Debian Stretch 9.1
enjoy 😉
Se su debian 9 doveste incappare in questo errore:
Assuming you are Database Root
Checking if SELinux is enabled…Its not (good)!
Reading /etc/asterisk/asterisk.conf…Done
Checking if Asterisk is running and we can talk to it as the 'asterisk' user…Error!
Error communicating with Asterisk. Ensure that Asterisk is properly installed and running as the asterisk user
Asterisk appears to be running as asterisk
Try starting Asterisk with the './start_asterisk start' command in this directory
dopo avere lanciato lo script ./install -n
potete risolvere installando sudo che di default non è installato
apt-get install sudo
Spero di essere stato utile.
Max
Ottimo articolo. Mi stavo organizzando per avere un centralino con lo stretto necessario, purtroppo, pur avendo eseguito passo passo le istruzioni il tutto non funziona.
Primo problema:
nano /etc/php/5.6/apache2/php.ini, la cartella apache2 non esiste. Poco male
secondo problema
Digitando l’indirizzo del centralino trovo errore 505.
Non ho molta dimistichezza con debian9, pertanto chiedo un piccolo aiuto.
P.S. ho utilizzato una debian9.1 virtualizzata con KVM e non ho avuto nessun errore durante la compilazione dei sorgenti
grazie
controlla se veramente hai installato php 5.6 ed apache2, spulcia manualmente la cartella /etc
Grazie per la risposta.
Php56 installato ed anche apache
Dopo vari tentativi ho risolto
La mia Debian era una installazione minima e non aveva installato php7.0
Il primo passo è stato quello i installare dai reposity php5.6 e successivamente rimuovere delle dipendenze php7
Ha funzionato tutto. Perfetto
Ho notato un errore nella dashboard di Freepbx "No room conference room app" ma penso non sia grave per il mio utilizzo.
grazie di nuovo per l'ottima guida
Hello,
Please first, excuse writting in English (I'm from Spain BTW).
I've followed your instructions and all goes well BUT freepbx CDR Report doesn't work, and asterisk console is throwing me these errors:
[2017-10-06 18:34:53] NOTICE[6480] res_odbc.c: Registered ODBC class 'asteriskcdrdb' dsn->[MySQL-asteriskcdrdb]
[2017-10-06 18:34:53] WARNING[6480] cdr_adaptive_odbc.c: No such connection 'asteriskcdrdb' in the 'asteriskcdrdb' section of cdr_adaptive_odbc.conf. Check res_odbc.conf.
[2017-10-06 18:34:56] WARNING[6480] cel_odbc.c: No such connection 'asteriskcdrdb' in the 'cel' section of cel_odbc.conf. Check res_odbc.conf.
I have checked database and table exists, my odbc.ini and odbcinst.ini files are exactly as yours and my odbc connector version is exactly the same as your version.
I'm trying to figure out what's happening here, do you have some advice? If I find something I'll let you know
Thanks for the great post
@jN
if you have downloaded last mysql-connector-odbc-5.3.9-linux-glibc2.12-x86-64bit, your odbcinst.ini must be:
Quando cerco di installare php5.6 seguendo questa procedura ricevo questo errore:
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
php5.6 : Depends: libapache2-mod-php5.6 but it is not installable or
php5.6-fpm but it is not installable or
php5.6-cgi but it is not installable
Depends: php5.6-common but it is not installable
E: Unable to correct problems, you have held broken packages.
Hai un problema di dipendenze, ti consiglio di ripetere il tutto su una installazione pulita di Debian Stretch
quella sotto è la guida da seguire
https://www.francoconidi.it/asterisk-14-freepbx-14-e-raspbian-stretch/
It turned out the first time, thanks edmond!
Grazie per la tua fantastica guida, tutto è filato liscio senza il minimo intoppo. ti faccio giusto due domande:
1 – perchè la versione del framwork installata risulta più nuova di quella disponibile online(nella sezione aggiornamenti intendo) effettivamente tutti i mei freepbx sono fermi alla 14.0.1.36 questo fatto con la tua guida invece è al 14.0.2.5.
2 – la mia idea iniziale era di sfruttare questa guida per installare freepbx in un container unpriviliged di proxmox, ma mi blocca nella fase iniziale dicendo che non ho permessi o cose del genere.. credi ci sia modo di riuscirci?
3 – il pacchetto Process Management mi da errore in fase di installazione/aggiornameto mi dice
Installing pm2
Node is not installed
Error(s) installing pm2:
Impossibile eseguire gli script di installazione
Updating Hooks…Done
Grazie mille
@Vassilis
nodejs è stato correttamente installato? Con proxmox non ho mai provato
si senza errori, e comunque è l'unico pacchetto che non mi fa installare..comunque poco importa per il resto funziona tutto, puoi rispondermi alla numero uno che non mi è chiara?
perchè installando il tutto ex novo non hai problemi con i moduli, a differenza di una vecchia installazione che tiene conto al 100% di tutte le compaatibilità
Gracias! seguí el tutorial y funcionó perfecto.
Saludos!!
Sitio Web
http://www.soporteysistemas.com.co
Ottima guida Edmond!
Però io mi trovo nelle stesse condizioni di JN (19/10/2017 alle 20:16),
ho i suoi stessi errori.
Inoltre al comando cli> odbc show
ottengo:
ODBC DSN Settings
—————–
Name: asteriskcdrdb
DSN: MySQL-asteriskcdrdb
Last fail connection attempt: 2022-09-29 17:01:57
Number of active connections: 0 (out of 5)
Io, però, seguendo il consiglio del tutorial, ho installato, la versione più recente per Debian 9.3:
mysql-connector-odbc-5.3.14-linux-debian9-x86-64bit.tar.gz
e non quella menzionata nella guida:
mysql-connector-odbc-5.3.9-linux-debian9-x86-64bit.tar.gz
Grazie.
Ho voluto tentare e la risposta (19/10/2017 alle 23:18) valida per
@jN
è stata utile anche per me!
Il CDR reports funziona !!!
Grazie
Bene, grazie per il feedback 😉