diff --git a/modules/rhizo_base/files/bin/monitor_freeswitch.sh b/modules/rhizo_base/files/bin/monitor_freeswitch.sh index 9b43ec9..5fe3bef 100755 --- a/modules/rhizo_base/files/bin/monitor_freeswitch.sh +++ b/modules/rhizo_base/files/bin/monitor_freeswitch.sh @@ -7,14 +7,33 @@ RHIZO_SCRIPT="/home/rhizomatica/bin" LOGFILE="/var/log/monitor_fs.log" -FS_STATUS=`fs_cli -x "sofia status"` +IFS= +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 -# logc "Missing external provider! Restarting FreeSWITCH"; -# sv restart freeswitch; -#fi - -if !(echo $FS_STATUS | grep -q "internalvpn") && (ping -qc 5 10.23.0.2); then - logc "Missing internal VPN. Restarting FreeSWITCH profile"; - fs_cli -x "sofia profile internalvpn restart" +if !(echo $FS_STATUS | egrep -q "internal.*172.16.0.1"); then + logc "Missing internal profile! Restarting Profile"; + fs_cli -x "sofia profile internal stop" + sleep 10 + fs_cli -x "sofia profile internal start" +fi + +if !(echo $FS_STATUS | grep -q "external::provider") && (ping -qc 5 8.8.8.8 > /dev/null); then + logc "Missing external provider! Restarting Profile"; + fs_cli -x "sofia profile external stop" + sleep 10 + fs_cli -x "sofia profile external start" +fi + +if !(echo $FS_STATUS | grep -q "outgoing::rhizomatica") && (ping -qc 5 10.23.0.2 > /dev/null); then + logc "Missing outgoing profile! Restarting Profile"; + fs_cli -x "sofia profile outgoing stop" + sleep 10 + fs_cli -x "sofia profile outgoing start" +fi + +if !(echo $FS_STATUS | grep -q "internalvpn") && (ping -qc 5 10.23.0.2 > /dev/null); then + logc "Missing internal VPN. Restarting FreeSWITCH profile"; + fs_cli -x "sofia profile internalvpn stop" + sleep 10 + fs_cli -x "sofia profile internalvpn start" fi