sipphone.sh 970 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/bin/sh
  2. SPK_CONF="/etc/speaker.conf"
  3. SPHONE_CONF="/tmp/accounts"
  4. case "$1" in
  5. start )
  6. # config file abnormal
  7. [ ! -f "${SPK_CONF}" ] && printf "Configration file not exist.\n" && exit 0
  8. # prepare sip account conf
  9. /etc/scripts/sipconf
  10. [ ! -f "${SPHONE_CONF}" ] && printf "Configration file not exist.\n" && exit 0
  11. #clear redis database
  12. redis-cli FLUSHALL
  13. # start baresip
  14. if [ -n "`baresip -4 -d|egrep 'Illegal instruction|segment fault' 2>/dev/null`" ];then
  15. /sbin/reboot
  16. exit;
  17. fi
  18. # start baresip service
  19. bareservice > /dev/null 2>&1 &
  20. ;;
  21. stop )
  22. redis-cli lpush control-channel '{"cmd":"quit","data":""}'
  23. killall baresip > /dev/null 2>&1
  24. killall bareservice > /dev/null 2>&1
  25. #clear redis database
  26. redis-cli FLUSHALL
  27. ;;
  28. restart | reload )
  29. /etc/scripts/sipphone.sh stop; sleep 1 ; /etc/scripts/sipphone.sh start
  30. esac