Asterisk 18 FreePBX 16 su Raspberry Pi 4 e Raspberry Pi OS Bullseye

 

Asterisk 18 FreePBX 16 su Raspberry Pi 4 e Raspberry Pi OS BullseyeAsterisk 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:

Asterisk 14 Freepbx 14 su Debian Stretch 9.1abilitare format_mp3:

abilitare “macro” in make menuselect > Application > app_macro:

Asterisk 18 FreePBX 16 su Raspberry Pi 4 e Raspberry Pi OS Bullseye

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,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 😉

 

Autore: Franco Conidi aka edmond

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

6 pensieri riguardo “Asterisk 18 FreePBX 16 su Raspberry Pi 4 e Raspberry Pi OS Bullseye”

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

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

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

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.