#!/bin/ash DIR="/var/spool/smscontrol" ENABLED=$(uci get smscontrol.common.enabled) if [ "$ENABLED" -eq "1" ]; then case "$1" in RECEIVED) PASS=$(uci get smscontrol.common.pass) [ -z "$PASS" ] && exit PASSLENGTH=$(echo $PASS | wc -c) MESSAGE=$(cat "$2") FROM=$(echo "${MESSAGE}"|grep -e '^From\:'|cut -d' ' -f2) DATE=$(echo "${MESSAGE}"|grep -e '^Received\:'|cut -d' ' -f2,3) BODY=$(echo "${MESSAGE}"|sed -e '1,/^$/d') if [[ "$(uci -q get smscontrol.common.smscontrol_log)" = "1" ]]; then CFG=$(uci add smscontrol_log event) uci set smscontrol_log.$CFG.date="${DATE}" uci set smscontrol_log.$CFG.type=SMS uci set smscontrol_log.$CFG.from="${FROM}" uci set smscontrol_log.$CFG.message="${BODY}" uci commit smscontrol_log fi [ "$PASS;" != "${BODY::$PASSLENGTH}" ] && exit ADMINPHONES=$(uci get smscontrol.common.whitelist) COUNTPHONES=$(echo $ADMINPHONES | wc -w) COUNT="0" while [ "$COUNT" -ne "$COUNTPHONES" ]; do COUNT=$(($COUNT + 1)) ADMPH=$(echo $ADMINPHONES | awk -v var=$COUNT -F ' ' '{print $var}') if [ "$ADMPH" -eq "$FROM" ]; then BODY=${BODY:$PASSLENGTH} if [ "${BODY::4}" != "CLI\$" ]; then $DIR/commands "$BODY" "$FROM" & break else BODY=${BODY:4} $DIR/cli "$BODY" "$FROM" & break fi fi done ;; USSD) ;; CALL) MESSAGE=$(cat "$2") FROM=$(echo "${MESSAGE}"|grep -e '^From\:'|cut -d' ' -f2) if [[ "$(uci -q get smscontrol.common.smscontrol_log)" = "1" ]]; then CFG=$(uci add smscontrol_log event) DATE=$(date +"%y-%m-%d %H:%M:%S") uci set smscontrol_log.$CFG.date="${DATE}" uci set smscontrol_log.$CFG.type=CALL uci set smscontrol_log.$CFG.from="${FROM}" uci commit smscontrol_log fi ADMINPHONES=$(uci get smscontrol.common.whitelist) COUNTPHONES=$(echo $ADMINPHONES | wc -w) COUNT="0" while [ "$COUNT" -ne "$COUNTPHONES" ]; do COUNT=$(($COUNT + 1)) ADMPH=$(echo $ADMINPHONES | awk -v var=$COUNT -F ' ' '{print $var}') if [ "$ADMPH" -eq "$FROM" ]; then $DIR/calls "$FROM" & break fi done ;; SENT) if [[ "$(uci -q get smscontrol.common.smscontrol_log)" = "1" ]]; then MESSAGE=$(cat "$2") TO=$(echo "${MESSAGE}"|grep -e '^To\:'|cut -d' ' -f2) BODY=$(echo "${MESSAGE}"|sed -e '1,/^$/d') CFG=$(uci add smscontrol_log event) DATE=$(date +"%y-%m-%d %H:%M:%S") uci set smscontrol_log.$CFG.date="${DATE}" uci set smscontrol_log.$CFG.type=SMS uci set smscontrol_log.$CFG.to="${TO}" uci set smscontrol_log.$CFG.message="${BODY}" uci commit smscontrol_log fi ;; *) ;; esac fi