diff --git a/modules/rhizo_base/files/bin/monitor_freeswitch.sh b/modules/rhizo_base/files/bin/monitor_freeswitch.sh new file mode 100755 index 0000000..a2b3ce9 --- /dev/null +++ b/modules/rhizo_base/files/bin/monitor_freeswitch.sh @@ -0,0 +1,15 @@ +#!/bin/bash +#Check status of FreeSWITCH SIP interfaces +#Doesn't restart FreeSWITCH if WAN or VPN interfaces are down + +FS_STATUS=`fs_cli -x "sofia status"` + +if !(echo $FS_STATUS | grep -q "external::provider") && (ping -qc 5 8.8.8.8 > /dev/null); then + echo "Missing external provider! Restarting FreeSWITCH"; + sv restart freeswitch; +fi + +if !(echo $FS_STATUS | grep -q "internalvpn") && (ping -qc 5 10.23.0.2); then + echo "Missing internal VPN! Restarting FreeSWITCH"; + sv restart freeswitch; +fi diff --git a/modules/rhizo_base/files/etc/cron.d/rhizomatica b/modules/rhizo_base/files/etc/cron.d/rhizomatica index 42bf427..ed8c113 100644 --- a/modules/rhizo_base/files/etc/cron.d/rhizomatica +++ b/modules/rhizo_base/files/etc/cron.d/rhizomatica @@ -33,6 +33,9 @@ PYTHONPATH=$PYTHONPATH:/var/rhizomatica/rccn # RAPI monitoring */5 * * * * root /var/rhizomatica/bin/monitor_rapi.sh > /dev/null 2>&1 +#FreeSWITCH monitoring +*/10 * * * * root /home/rhizomatica/bin/monitor_freeswitch.sh > /dev/null 2>&1 + #Billing 0 10 * * * root [[ $(date +'%d') -eq $(cal | awk '!/^$/{ print $NF }' | grep -v '^ ' | tail -1) ]] && /var/rhizomatica/bin/active_subscribers.sh