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 😉