#!/bin/bash COMMAND_CHAR="#" ALLOW_PHONES="79*********" SEND_BACK_REPORT=YES COMMAND_RESET="power_reset" COMMAND_REBOOT="router_restart" COMMAND_PPPOE="pppoe_restart" COMMAND_STAT="statistic" [ "$1" = "RECEIVED" ] || exit 0 to_log(){ text=$1 export LANG=en_EN log_date=`date "+%b %d %H:%M:%S "` log_host=`hostname -s` echo "$log_date $log_host $text" >> /var/log/smsctrl.log } status="$1" file="$2" FILE=`mktemp /tmp/smsd_XXXXXX` header=`head -12 $file | grep -e "^From: " -e "^Sending: " -e "^Recieved: "` from=`head -12 $file | grep -e "^From: " | awk '{print $2}'` if grep "Alphabet: UCS2" $file > /dev/null > /dev/null; then message=`tail -n+13 $file | iconv -f UCS-2BE -t UTF-8` else message=`tail -n+13 $file` fi echo -e "Subject: SMS Incoming to Wirenboard from +$from\nMime-Version: 1.0\nContent-Type: text/html; charset="utf-8"\nFrom: SMSgate \n$message\n" | ssmtp *@*.ru #echo -e "Subject: SMS Incoming to Wirenboard from +$from\nMime-Version: 1.0\nContent-Type: text/html; charset="utf-8"\n$header\n$message\n" >> /var/log/sms.log #echo -e "$header\n$message\n" >> /var/log/sms.log File=$2 Allow=0 for Phone in $ALLOW_PHONES; do cat $File | grep "From: $Phone" > /dev/null 2>&1 [ $? -eq 0 ] && Allow=1 #to_log "Phone allowed $Phone" done; [ $Allow -eq 0 ] && exit 0 cat $INCOMING_DIR/$File | grep "$COMMAND_CHAR" [ $? -ne 0 ] && exit 0 FromPhone=`cat $File | grep "From:" | cut -d " " -f2` command=`cat $File | grep "$COMMAND_CHAR" | cut -d "$COMMAND_CHAR" -f2` #to_log "Incoming command: $command from $FromPhone" #to_log "$command" if [[ "$command" == *$COMMAND_RESET* ]]; then to_log "RESTART POWER BEGIN" # mosquitto_pub -t "/devices/wb-mr14_26/controls/K13/on" -m "1" echo -e "Subject: SMS Command recieved from +$from\nFrom: SMSgate \nОтправлена команда на аппаратную перезагрузку роутера\n#$command" | ssmtp *.*@ya.ru sleep 5 mosquitto_pub -t "/devices/Reset_power/controls/enabled/on" -m "1" else if [[ "$command" == *$COMMAND_REBOOT* ]]; then echo -e "Subject: SMS Incoming to Wirenboard from +$from\nMime-Version: 1.0\nContent-Type: text/html; charset="utf-8"\n"From: SMSgate"\n$message\n" | ssmtp *.*@ya.ru echo 'Отправлен сигнал на софтовую перезагрузку роутера' | ssmtp *.*@ya.ru sleep 5 ssh -p [*******] admin@192.168.1.1 /system reboot to_log " system reboot BEGIN" else if [[ "$command" == *$COMMAND_PPPOE* ]]; then echo -e "Subject: SMS Command recieved from +$from\nFrom: SMSgate \nОтправлена команда роутеру на переподключение PPPOE\n#$command" | ssmtp *.*@ya.ru sleep 5 ssh -p [*******] admin@192.168.1.1 /system script run reconnect to_log " system restart begin" else if [[ "$command" == *$COMMAND_STAT* ]]; then echo -e "Subject: SMS Command recieved from +$from\nFrom: SMSgate \nПолучена команда получения статистики\n#$command" | ssmtp *.*@ya.ru sleep 5 ssh -p [******] admin@192.168.1.1 /system script run statistic to_log " statistic request" else mosquitto_pub -t "/devices/wb-mr14_26/controls/K13/on" -m "0" to_log " Other else" fi fi fi fi if [ "$SEND_BACK_REPORT" = "YES" ]; then #sendsms $FromPhone "$out" to_log "Send sms to $FromPhone: $out" fi #rm -f $File #to_log "Deleting file $File"