Asterisk 18 FreePbx 16 su Raspberry Pi 4 e Raspberry Pi OS Bullseye
In questa guida aggiornata, scriverò di una installazione su single board Raspberri py 4 con Raspberry Pi OS Bullseye 11, di Asterisk 18 e Freepbx 16. FreePBX 16 funziona bene, e la novità principale è il supporto a php7.4. Esiste anche una versione già pronta, raspbx, ma io preferisco installare tutto da me, poichè il sistema risulta molto più fluido. I passaggi successivi saranno eseguiti come utente root, su una nuova installazione di Raspberry Pi OS Bullseye lite. L’installazione prenderà circa 90 minuti, e prevede che il sistema sia già stato installato e che si abbia un accesso ssh.
1) Aggiornare il sistema
$ sudo su # apt update # apt upgrade -y # reboot
2) Scaricare le dipendenze ed i servizi necessari
# apt install -y wget bison flex php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysql php-php-gettext php-bcmath php-zip php-xml php-imap php-json php-snmp php-fpm libapache2-mod-php git curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libedit-dev libjansson-dev libxml2-dev uuid-dev dh-make libssl-dev sox mariadb-client-10.5 mariadb-server-10.5
3) Installare nodejs
# curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - # apt install -y nodejs
4) Reboot server
# reboot
5) Scaricare Asterisk 18 e FreePBX 16
$ sudo su # cd /usr/src # wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz # wget https://mirror.freepbx.org/modules/packages/freepbx/freepbx-16.0-latest.tgz
6) Installare Asterisk 18
# tar xvfz asterisk-18-current.tar.gz # rm -rf asterisk-18-current.tar.gz # cd asterisk-18.* # contrib/scripts/get_mp3_source.sh # ./contrib/scripts/install_prereq install # ./configure --with-jansson-bundled # make menuselect
inserire il prefisso internazionale, nel nostro caso 39:
abilitare “macro” in make menuselect > Application > app_macro:
quindi:
# make -j8 # make install # make samples # make config
7) Creazione utente Asterisk e permessi
# groupadd asterisk # useradd -r -d /var/lib/asterisk -g asterisk asterisk # usermod -aG audio,dialout asterisk # chown -R asterisk.asterisk /etc/asterisk # chown -R asterisk.asterisk /var/{lib,log,run,spool}/asterisk # chown -R asterisk.asterisk /usr/lib/asterisk # 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 # systemctl restart asterisk # /lib/systemd/systemd-sysv-install enable asterisk
verificare che asterisk funzioni correttamente:
# asterisk -rvvv
8) Configurazione Apache2
# 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 # a2enmod rewrite # systemctl restart apache2
9) Installare FreePBX 16
# cd /usr/src/ # tar xvfz freepbx-16.0-latest.tgz # rm -rf freepbx-16.0-latest.tgz # cd freepbx # ./install -n # fwconsole chown # fwconsole ma refreshsignatures # fwconsole ma installall # fwconsole reload # fwconsole restart
In conclusione, se tutto è andato bene il server Asterisk è raggiungibile all’indirizzo http://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 i moduli rimanenti.
enjoy 😉
apt install -y wget bison flex php php-pear php-cgi php-common php-curl php-mbstring php-gd php-mysql php-php-gettext php-bcmath php-zip php-xml php-imap php-json php-snmp php-fpm libapache2-mod-php git curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libedit-dev libjansson-dev libxml2-dev uuid-dev dh-make libssl-dev sox mariadb-client-10.5 mariadb-server-10.5
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash –
Aggiornato
thanks
Grazie, installato con successo (devo ancora testarlo) su un TVbox rk3228a con Armbian-bullseye, quad armv7 32bit, ci ha messo un paio d’ore.
Una cosa che non ha funzionato “out of the box” è stato l’interprete php7.4 che non è partito immediatamente: va modificato il file
/etc/apache2/mods-available/php7.4.conf
commentando le linee che impediscono di eseguire script php dentro le userdir, almeno nel mio caso.
Funziona molto bene, testato su trunk pjsip Messagenet, telefono voip software e un dect voip yealink funzionano benissimo.
Problemino: il modulo “ucp” di FreePBX non parte: dà errore node nella compilazione e casini vari, sempre su node. Stranamente solo su questo modulo, gli altri girano molto bene.
Ci sto lavorando su per farlo partire.
Aggiungo che – perlomeno nel mio caso – era assente il connector ODBC per MariaDB (aka Mysql).
Tale connector non sembra essere presente nei repository di Bullseye, indi va compilato ed installato – va installato anche cmake:
# Install MariaDB ODBC Connector
cd /usr/src
git clone https://github.com/MariaDB/mariadb-connector-odbc.git
cd mariadb-connector-odbc
git checkout tags/3.1.15
mkdir build
cd build
if [ “$(uname -m)” = “aarch64″ ]; then
DDM_DIR=/usr/lib/aarch64-linux-gnu
else
DDM_DIR=/usr/lib/arm-linux-gnueabihf
fi
cmake ../ -LH -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_SSL=OPENSSL\
-DDM_DIR=”${DDM_DIR}” -DCMAKE_C_FLAGS_RELEASE:STRING=”-w”
cmake –build . –config Release
make install
Inoltre vanno rivisti e corretti i files
/etc/odbc.ini
/etc/odbcinst.ini
Per farli puntare alle librerie/socket giusti. Sul mio cazzillo ARM questi sono corretti:
———-
cat /etc/odbc.ini
[MySQL-asteriskcdrdb]
Description=MySQL connection to ‘asteriskcdrdb’ database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/run/mysqld/mysqld.sock
option=3
Charset=utf8
—————–
cat /etc/odbcinst.ini
[MySQL]
Description = ODBC for MySQL (MariaDB)
Driver = /usr/local/lib/mariadb/libmaodbc.so
FileUsage = 1
Senza questa procedura il CDR e varie altre funzioni di FreePBX non vanno.
@Vittorio
Grazie per le tue segnalazioni, aggiornerò la guida
Ho aggiunto run a questo comando:
chown -R asterisk.asterisk /var/{lib,log,spool,run}/asterisk
@Emanuele
grazie per la segnalazione, verificherò
ciao, nel mio caso è stato necessario anche installare anche g++
apt-get install g++
altrimenti riportava
error: C++ preprocessor “/lib/cpp” fails sanity c
complimenti per la guida. Io mi sono arenato sull’installazione di FreePBX 16. non riesco in alcun modo a completare cd Freepbx potreste aiutarmi?