FreePBX Trunk Pjsip su FRITZBox

 FreePBX Trunk Pjsip su FRITZ!Box

FreePBX Trunk Pjsip su FRITZ!Box

 

Guida su come configurare un FreePBX Trunk Pjsip su FRITZBox, per funzionare in parallelo ad un centralino FreePBX/Asterisk. Io ho una connessione dati e voce con Vodafone, ed il mio numero si registra correttamente attraverso il router FRITZ!Box, utilizzando dei dect. I router FRITZ!Box, hanno un centralino incorporato, che in maniera semplice registrano sia i telefoni analogici che i telefoni voip, ma se si volesse  aumentare di molto i telefoni, ed avere un centralino più strutturato, con un IVR per esempio, bisogna affidarsi al centralino Asterisk/FreePBX. Questa guida parte dal presupposto, che il FRITZ!Box ed il server PBX sono gia configurati e funzionanti.

1) Creare interno server FreePBX direttamente sul FRITZ!Box:

Menù Telefonia > Dispositivi di telefonia > Configurazione nuovo dispositivo, e poi seguire le immagini:

FreePBX Trunk Pjsip su FRITZ!BoxFreePBX Trunk Pjsip su FRITZ!BoxFreePBX Trunk Pjsip su FRITZ!BoxNotare che il nome utente è numerico e queste credenziali andranno inserite successivamente nel Trunk pjsip in FreePBX.

 

2) Creazione Trunk pjsip in FreePBX

Esempio delle immagini:

Trunk Name=FreePBX
Outbound caller ID=numero telefonico
CID Options=Force Trunk CID
Maximum Channels=2

 

Trunk Pjsip Settings:

username=15051948
password=PasswordDifficile
server=192.168.1.1 (ip FRITZ!Box)
porta=5060 udp

 

Trunk Pjsip Settings Advanced:

Contact User=15051948
From User=15051948

 

Trunk Codecs:

 

In conclusione, con questo tipo di configurazione abbiamo integrato il nostro centralino Asterisk/FreePBX, con la robustezza di un router FRITZ!Box.

FreePBX Trunk Pjsip su FRITZ!Box

enjoy 😉

 

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

 

(Solved) FreePBX Unable to install module pm2

Unable to install module pm2 Failed to run installation scripts. Questo è l’errore che si presenta in alcuni casi quandi si tenta di aggiornare il modulo pm2 in FreePBX 13. Si risolve con:

# curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
# apt install -y nodejs
# fwconsole ma remove pm2 --force
# rm -rf /home/asterisk/.package_cache/npm/
# rm -rf /home/asterisk/.npm
# fwconsole ma downloadinstall pm2

enjoy 😉

Asterisk FreePbx su Raspberry Pi 4 e Raspberry Pi OS Buster

Asterisk FreePbx su Raspberry Pi 4 e Raspberry Pi OS Buster

 

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:

Asterisk 14 Freepbx 14 su Debian Stretch 9.1abilitare format_mp3

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

Configurazione Trunk Pjsip Asterisk su Linea Vodafone

 

Configurazione Trunk Pjsip Asterisk su Linea VodafoneConfigurazione Trunk Pjsip Asterisk su Linea Vodafone

Dopo aver fatto per primo, mesi fa, una guida su come utilzzare la propria linea telefonica Vodafone, con modem Asus DSL-AC68U , ho anche fatto un ulteriore guida, su come creare un trunk chan_sip su Asterisk. La guida utilizzava il trunk chan_sip, ma a volte le chiamate in ingresso non passavano dal centralino, a quel punto bastava fare una chiamata in uscita e tutto tornava a funzionare. Non ho fatto grandissimi test, per poter capire il perchè, ma sono passato ad utilizzare un trunk chan_pjsip, che al momento sembra funzionare benissimo. Di seguito mostrerò gli screenshoots del Trunk chan_pjsip e di Outbound Routes:

Configurazione Trunk Pjsip Asterisk su Linea Vodafone

Trunk pjsip general:

Trunk pjsip setting:

Configurazione Trunk Pjsip Asterisk su Linea VodafoneTrunk pjsip advanced:

Configurazione Trunk Pjsip Asterisk su Linea Vodafone Outbound Routes:

Outbound Routes dial pattern:

enjoy 😉

Script Bash per aggiornamento ip dinamico FreePBX Asterisk

Script Bash per aggiornamento ip dinamico FreePBX Asterisk

Script per aggiornamento ip dinamico FreePBX Asterisk

Dopo l’ultima guida su come Configurare un trunk Asterisk su linea Vodafone, il mio centralino personale funziona benissimo (quasi). Naturalmente c’è sempre qualcosa da sistemare qua e là, e la prima cosa è quella dell’ip statico. Nel mio caso, avendo un ip dinamico, nel momento in cui cambia l’indirizzo (non spesso), le chiamate in ingresso non vengono inoltrate. Pur avendo un external FQDN con dyndns, ed aggiungendolo in FreePBX, purtroppo NON funziona. Quindi la soluzione è riscrivere nella tabella mysql il nuovo ip in maniera automatica. A questo proposito ho rispolverato uno script bash, che può essere modificato in base alle proprie esigenze:

#!/bin/bash
# This program gets the current IP address (as assigned by the ISP) from
# THIS SCRIPT IS STILL CONSIDERED EXPERIMENTAL - USE AT YOUR OWN RISK!!!
user="user"
pass="pw"
check=$(dig +short myip.opendns.com @resolver1.opendns.com) || { echo "Problem getting current IP address"; exit 1; }
if [[ ! $check =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Invalid IP address"; exit 1;
fi
readip=$(mysql asterisk -u $user -p$pass -se 'SELECT val FROM kvstore_Sipsettings where `key` = "externip"') || { echo "Can't read externip from MySQL asterisk database"; exit 1; }
if [ "$check" != "$readip" ]; then
# IP address has changed
# Send email
echo "This is an automated message - please do not reply. It appears that our external IP address has been changed to $check" | mail -s "External IP address may have been changed" you@someaddress.com
# Save new IP address to Asterisk SIP settings
mysql_response=$(mysql asterisk -u $user -p$pass -se 'update kvstore_Sipsettings set val='\"$check\"' where `key`="externip" ')
# Reload Asterisk
/var/lib/asterisk/bin/module_admin reload
fi

se ci sono problemi di formattazione, si può scaricare con:

$ wget https://www.dropbox.com/s/lrvyd83ezu62fb7/checkip.sh?dl=0 -O checkip.sh

le voci importanti da modificare sono: user, pw, ed aggiungere la propria mail eventualmente, per essere avvisati al cambiamento ip. Quindi:

# chmod u+rx checkip.sh
# mv checkip.sh /var/lib/asterisk/agi-bin/

se non presente dig, scaricarlo:

# apt install dnsutils

per testarlo subito eseguire:

# /var/lib/asterisk/agi-bin/./checkip.sh

Adesso è utile programmare un cron job che controlli l’indirizzo ip ad intervalli regolari. Io ho optato per un check ogni ora, anche se il mio ip non cambia così spesso:

# crontab -e

ed incollare qualcosa del genere:

*/60 * * * * /var/lib/asterisk/agi-bin/checkip.sh

adesso il nostro centralino asterisk non avrà più problemi a causa dell’ip dinamico. Testato e funzionante con Asterisk 14 FreePBX 14

Script Bash per aggiornamento ip dinamico FreePBX Asterisk

enjoy 😉

 

Configurazione Asterisk su Linea Vodafone

Configurazione Asterisk su Linea VodafoneConfigurazione Asterisk su Linea Vodafone

Con questa guida si completa la trilogia su come configurare ed utilizzare il proprio modem e linea telefonica, senza utilizzare il terminale del proprio provider. Questo grazie alla delibera AGCOM 348/18/CONS, per il modem libero. Io ho gia creato con successo un centralino Asterisk funzionante su linea Telecom FTTH e FTTC, quello che mi mancava era la configurazione su Linea Vodafone, senza workaround. Io ho testato tutto sulla mia linea Vodafone FTTC, utilizzando un modem/router Asus DSL-AC68U. un raspberry pi 3, con RaspbianAsterisk 14 e FreePBX 14. Utilizzando questo sistema, adesso NON ci sarà più bisogno di moduli ATA, o di telefoni analogici collegati sulla tel1/fxs1, ma si sfrutta la propria rete, per avere Voip puro, con telefoni/App voip. Naturalmente servono le credenziali del proprio numero voip, da richiedere al 190 Vodafone.

Configurazione Trunk

Outgoing PEER Details:

type=peer
username=+3902xxxxxxx
secret=password_linea_voip
keepalive=yes
qualify=no
srvlookup=yes
auth=+390xxxxxxx@ims.vodafone.it
outboundproxy=voipN.fixed.vodafone.it
insecure=invite,port
host=ims.vofadone.it
fromuser=+3902xxxxxxx
fromdomain=ims.vodafone.it
dtmfmode=RFC2833
disallow=all
allow=alaw&ulaw
context=from-trunk

sopra ho messo qualify=no, insieme a keepalive=yes, altrimenti il trunk risultava quasi sempre Unreachable.

Incoming:

Register String:

+3902xxxxxxx@ims.vodafone.it:password_linea_voip:+3902xxxxxxx@ims.vodafone.it@83.224.127.3:5060/+3902xxxxxxx

Questo Trunk si autenticherà direttamente su SBC Vodafone.

In questo caso trattandosi di ip dinamico, nat=yes, in Settings-Asterisk Sip Settings-Chan Sip Settings.

Ready ?

enjoy 😉

Asterisk 16 Freepbx 15 su Raspbian-Debian Stretch

Asterisk 16 Freepbx 15 e Raspbian-Debian Stretch

 

Installazione su Raspberri py 3 con OS Raspbian Stretch Lite, di Asterisk 16 e Freepbx 15. Guida testata e funzionante, sia su Raspberry che su Pc con os Debian Stretch. La novità rispetto al passato è che freepbx 15 supporta php 7. I miei test li ho fatti senza hardware pstn. I passaggi successivi saranno eseguiti come utente root e su una nuova installazione di Raspbian Stretch, su Raspberry py 3.

Aggiornare il sistema
# apt update; apt upgrade

se viene installato un nuovo kernel riavviare.

Scaricare le dipendenze ed i servizi necessari
$ sudo su
# apt install -y wget mysql-server mysql-client 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
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
# 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
# cd /usr/src
# tar xvfz 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:

Asterisk 14 Freepbx 14 su Debian Stretch 9.1e poi abilitare  format_mp3:

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

# make -j4
# make install
# make samples
# make config
# ldconfig
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
# systemctl enable asterisk

verificare che asterisk funzioni correttamente:

# asterisk -rvvv

output:

root@raspytest:/home/pi# asterisk -rvv
Asterisk 16.1.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 16.1.1 currently running on raspytest (pid = 660)
raspytest*CLI>
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
# cd freepbx
# ./start_asterisk start
# ./install -n
# fwconsole chown
# 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 tutti i moduli.

enjoy 😉

Configurazione HT 503 con Asterisk 14 e FreePBX 14

 

Configurazione HT 503 con Asterisk 14 e FreePBX 14

Configurazione HT 503 con Asterisk 14 e FreePBX 14

Configurazione HT 503 con Asterisk 14 e FreePBX 14 

Dopo avere installato Asterisk 14 e Freepbx 14 su Raspbian Stretch Lite, ho dovuto configurare il modulo Ata Grandstream HT 503, con qualche differenza rispetto alla guida principale che avevo fatto un po' di tempo fa, e che comunque attualmente funziona con Asterisk 13 e Freepbx 13, ma "stranamente" non funzionante con la versione 14. In Freepbx sia il Trunk che le estensioni sono in chan_sip, ed ho camabiato la porta di default in 5060 in SIP Settings/Chan SIP Settings. Di seguito condividerò alcuni screenshots per una configurazione funzionante su HT 503:

IP HT 503=192.168.1.80
IP SERVER= 192.168.1.84

Configurazione HT 503 con Asterisk 14 e FreePBX 14 Configurazione HT 503 con Asterisk 14 e FreePBX 14Configurazione HT 503 con Asterisk 14 e FreePBX 14 Configurazione HT 503 con Asterisk 14 e FreePBX 14 Configurazione HT 503 con Asterisk 14 e FreePBX 14 Configurazione HT 503 con Asterisk 14 e FreePBX 14

Configurazione HT 503 con Asterisk 14 e FreePBX 14

enjoy 😉

Asterisk 14 Freepbx 14 e Raspbian Stretch

 Asterisk 14 Freepbx 14 e Raspbian Stretch

Asterisk 14 Freepbx 14 e Raspbian Stretch

Installazione su Raspberri py 3 con OS Raspbian Stretch Lite, di Asterisk 14 e Freepbx 14. Guida testata e funzionante. La mia è una installazione ex novo minimale, dove ho collegato per eseguire i test un modulo Ata HT503, il tutto funzionante sia con chiamate in entrata che in uscita.

Aggiungere i repository jessie per php5 ed aggiornare il sistema:

sudo echo "deb https://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi" | sudo tee /etc/apt/sources.list.d/jessie.list
sudo apt update; sudo apt upgrade -y
sudo reboot

Installare tutto l'occorrente:

sudo apt install -y build-essential openssh-server apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev libiksemel-dev libiksemel-utils libiksemel3 libjansson-dev libapache2-mod-php5 libmyodbc sendmail dirmngr mongodb

Cambiare versione php dallla 7 alla 5:

sudo update-alternatives --config php

Mettere in sicurezza il db:

sudo mysql_secure_installation

Installare nodejs e riavviare:

sudo curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs
sudo reboot

Scaricare Jansson, Asterisk 14, Freepbx 14

cd /usr/src
sudo wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz
sudo wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.10.tar.gz
sudo wget https://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz

Installare Jansson:

cd /usr/src
sudo tar vxfz jansson.tar.gz
sudo rm -rf jansson.tar.gz
cd jansson-*
sudo autoreconf -i
sudo ./configure
sudo make -j4
sudo make install

Installare Asterisk 14:

cd /usr/src
sudo tar xvfz asterisk-14-current.tar.gz
sudo rm -rf asterisk-14-current.tar.gz
cd asterisk-14.*
sudo contrib/scripts/get_mp3_source.sh
sudo ./contrib/scripts/install_prereq install
sudo ./configure
sudo make menuselect

a questo punto inserire il prefisso internazionale, nel nostro caso 39:

Asterisk 14 Freepbx 14 e Raspbian Stretch

Asterisk 14 Freepbx 14 e Raspbian Stretch

e poi abilitare  format_mp3:

Asterisk 14 Freepbx 14 e Raspbian Stretch

Asterisk 14 Freepbx 14 e Raspbian Stretch

sudo make -j4
sudo make install
sudo make config
sudo ldconfig

adesso bisogna verificare che asterisk funzioni correttamente:

sudo /etc/init.d/asterisk start
sudo asterisk -rvvv

Installazione e configurazione di Apache2 e permessi:

sudo /etc/init.d/asterisk stop
sudo groupadd asterisk
sudo useradd -d /var/lib/asterisk -g asterisk asterisk
sudo chown -R asterisk:asterisk /var/spool/asterisk /var/run/asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib/asterisk /var/www
sudo sed -i 's/#AST_USER="asterisk"/AST_USER="asterisk"/g' /etc/default/asterisk
sudo sed -i 's/#AST_GROUP="asterisk"/AST_GROUP="asterisk"/g' /etc/default/asterisk
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
sudo sed -i 's/AllowOverride None/AllowOverride All/'  /etc/apache2/apache2.conf
sudo sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
sudo mv /var/www/html /var/www/html.bak

Configurazione ODBC:

sudo nano /etc/odbcinst.ini

ed incollare dentro:

[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/arm-linux-gnueabihf/odbc/libmyodbc.so
Setup = /usr/lib/arm-linux-gnueabihf/odbc/libodbcmyS.so
FileUsage = 1

ricordo che per verificare l'esatta ubicazione e nome dei driver, eseguire il comando sotto:

$ sudo find / -name libmyodbc.so

poi:

sudo 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:

sudo reboot

al riavvio:

sudo a2enmod rewrite

ultima modifica da fare:

sudo nano /etc/php5/apache2/php.ini

e nel menu Resource Limits settare memory_limit = 256M, ed ancora nel menu File Uploads settare upload_max_filesize = 120M

sudo systemctl restart apache2

Installazione di Freepbx 14:

cd /usr/src
sudo tar vxfz freepbx-14.0-latest.tgz
sudo rm -rf freepbx-14.0-latest.tgz
cd freepbx
sudo ./start_asterisk start
sudo ./install -n
sudo fwconsole chown
sudo fwconsole reload
sudo fwconsole restart

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.

Asterisk 14 Freepbx 14 e Raspbian Stretch

enjoy 😉