Asterisk 14 Freepbx 14 su Debian Stretch 9.1

 

Asterisk 14 Freepbx 14 su Debian Stretch 9.1

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

Asterisk 14 Freepbx 14 su Debian Stretch 9.1

e poi abilitare  format_mp3:

Installare Asterisk 13 con Freepbx 12 su Raspberry pi 2 e Debian Jessie

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 😉

Autore: Franco Conidi aka edmond

Senior System Integrator, Network Administrator, Sys Admin Linux, Linux User, Consulente Informatico.

18 pensieri riguardo “Asterisk 14 Freepbx 14 su Debian Stretch 9.1”

  1. 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

     

     

     

     

  2. 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

  3. controlla se veramente hai installato php 5.6 ed apache2, spulcia manualmente la cartella /etc

  4. 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

  5. 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

  6.  

    @jN

    if you have downloaded last mysql-connector-odbc-5.3.9-linux-glibc2.12-x86-64bit, your odbcinst.ini must be:

    [MySQL]
    Description = ODBC for MySQL
    Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc5a.so
    Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmy5w.so
    FileUsage = 1

  7. 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.
     

  8. Hai un problema di dipendenze, ti consiglio di ripetere il tutto su una installazione pulita di Debian Stretch

  9. 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

  10. @Vassilis

    nodejs è stato correttamente installato? Con proxmox non ho mai provato

  11. 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?

  12. 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à

  13. 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.

  14. 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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *