Asterisk FreePbx su Raspberry Pi 4 e Raspberry Pi OS Buster
Installazione su Raspberri py 4 con Raspberry Pi OS Buster, di Asterisk 16 e Freepbx 15. 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 Buster lite. L’installazione prenderà circa 90 minuti, e prevede che il sistema sia già stato installato e che si abbia un accesso ssh.
Aggiornare il sistema
$ sudo su
# apt update
# apt upgrade -y
# reboot
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-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 libjansson-dev libxml2-dev uuid-dev dh-make libssl-dev sox mariadb-client-10.0 mariadb-server-10.0
Installare nodejs
# curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
# apt install -y nodejs
Reboot server
# reboot
Scaricare Asterisk 16 e FreePBX 15
$ sudo su
# cd /usr/src
# wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
# wget https://mirror.freepbx.org/modules/packages/freepbx/freepbx-15.0-latest.tgz
Installare Asterisk 16
# tar xvfz asterisk-16-current.tar.gz
# rm -rf asterisk-16-current.tar.gz
# cd asterisk-16.*
# 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:
# make -j8
# make install
# make samples
# make config
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,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
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
Installare FreePBX 15
# cd /usr/src/
# tar xvfz freepbx-15.0-latest.tgz
# rm -rf freepbx-15.0-latest.tgz
# cd freepbx
# ./install -n
# fwconsole chown
# fwconsole ma installall
# fwconsole ma refreshsignatures
# fwconsole reload
# fwconsole restart
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.
PS: Nel caso di problema di chiamate in entrata ed in uscita, facendo un debug ci si può ritrovare con l’errore l’errore: No application ‘Macro’ for extension
per risolvere bisogna abilitare “macro” in make menuselect > Application > app_macro
Asterisk FreePbx su Raspberry Pi 4 e Raspberry Pi OS Buster
enjoy 😉
Ciao, ho seguito la tua guida ed è andato tutto alla perfezione. Riesco a ricevere le chiamate dell’esterno, funziona l’annuncio e i vari ivr creati.
Se però provo provo a fare una qualsiasi chiamata o verso un altro interno o un numero esterno non funziona. Se chiamo dall’esterno, parte correttamente l’avviso, navigo nell’ivr ma se provo a selezionare un interno la telefonata si interrompe.
Sapresti dirmi come poter risolvere?
Grazie
che trunk? che operatore?
Ciao, segnalo che con Asterisk 18, per fare chiamate interne bisogna installare anche il modulo app_macro
Vari problemi, installazione interrotta – Riprovo
Probabilmente la guida è allineata ad una versione diversa del SW di sistema
pi@pbx:~ $ cat /etc/os-release
PRETTY_NAME=”Raspbian GNU/Linux 11 (bullseye)”
NAME=”Raspbian GNU/Linux”
VERSION_ID=”11″
VERSION=”11 (bullseye)”
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian
pi@pbx:~ $ uname -a
Linux pbx 5.10.63-v7l+ #1488 SMP Thu Nov 18 16:15:28 GMT 2021 armv7l GNU/Linux
sudo apt install php-gettext — errore
pi@pbx:/usr/src/asterisk-16.23.0 $ sudo apt install php-gettext
Lettura elenco dei pacchetti… Fatto
Generazione albero delle dipendenze… Fatto
Lettura informazioni sullo stato… Fatto
Il pacchetto php-gettext non ha versioni disponibili, ma è nominato da un altro
pacchetto. Questo potrebbe indicare che il pacchetto è mancante, obsoleto
oppure è disponibile solo all’interno di un’altra sorgente
E: Il pacchetto “php-gettext” non ha candidati da installare
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pi@pbx:/usr/src/asterisk-16.23.0 $
Installare FreePBX
pi@pbx:/usr/src/freepbx $ sudo ./install -n
[…]
In Encoding.php line 196:
Array and string offset access syntax with curly braces is deprecated
In Process.php line 239:
The command “/usr/sbin/fwconsole ma install framework” failed.
Exit Code: 255(Unknown error)
Working directory: /usr/src/freepbx
Output:
================
Error Output:
================
Infatti, versione bullseye
Provo la versione della guida
Grazie ancora
il pacchetto in Bullseye si chiama “php-php-gettext”, ma comunque avresti
avuto problemi con la versione di php-7.4 con freepbx 15