Ecco uno script che verifica se il chiavino e' connesso (status:FREE), se non lo fosse resetta il chiavino e poi riavvia FreePBX (e Asterisk)
su - root
nano /root/check-dongle.sh
- Codice: Seleziona tutto
#!/bin/bash
# check dongle status, reset dongle and restart asterisk if not ready
# by pilovis - check my tutorials at www.49v.com
#
checkifok=`/usr/sbin/asterisk -rx "dongle show device state dongle0" | grep -wc Free`
if [[ $checkifok == 0 ]]; then
/bin/echo "Dongle not ready" >/dev/null 2>&1
/bin/sleep 3
/usr/sbin/asterisk -rx "dongle reset dongle0"
/bin/sleep 2
/usr/local/sbin/amportal restart
else
/bin/echo "Dongle OK" >/dev/null 2>&1
fi
# eof
settaggio permessi di esecuzione allo script:
chmod 755 /root/check-dongle.sh
lo script va lanciato con il comando:
/bin/bash /root/check-dongle.sh
per metterlo in un crontab che lancia il controllo ogni 5 minuti:
crontab -e
*/5 * * * * /bin/bash /root/check-dongle.sh &
---------------------------------------------------------
nota esplicativa:
per verificare la connessione del dongle ad Asterisk questo e' il comando:
/usr/sbin/asterisk -rx "dongle show device state dongle0" | grep -wc Free
se il dongle e' in status Free (connesso) viene riportato il valore 1, altrimenti il valore e' 0
invece il comando:
/usr/sbin/asterisk -rx "dongle reset dongle0"
invia un reset al dongle tramite Asterisk
nota:
se si hanno piu' chiavini occorre ovviamente aggiungere identiche sezioni (o meglio creando altri scripts) utilizzando dongle1, dongle2, ecc.