bio-dynamie/sms_received.sh

86 lines
3.3 KiB
Bash
Executable File

#!/bin/bash
########################################################################
# Author: Fred (support@qo-op.com)
# Version: 0.1
# License: GPL (http://www.google.com/search?q=GPL)
########################################################################
## PUT YOUR PHONE COUNTRY CODE PREFIX HERE
prefix="+33"
########################################################################
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
########################################################################
########################################################################
# GET smsadmin PHONE NUMBER FROM ~/.zen/SMSADMIN FILE
########################################################################
[[ ! -f /home/pi/.zen/SMSADMIN ]] && echo "EXIT. Indiquez votre numéro de mobile dans /home/pi/.zen/SMSADMIN" && exit 1
SMSADMIN="$(cat /home/pi/.zen/SMSADMIN)" ## FRENCH NUMBER
[[ ${SMSADMIN#"$prefix"} != "${SMSADMIN}" ]] && smsadmin=0${SMSADMIN#"$prefix"} || smsadmin="${SMSADMIN}" ## 06
########################################################################
# GET INCOMING SMS CONTENT
########################################################################
########################################################################
PHONE="$SMS_1_NUMBER" # gammu-smsd
[[ ! ${PHONE} ]] && PHONE="$1" # CLI MODE
[[ "${#PHONE}" < 10 || "${#PHONE}" > 12 ]] && echo "${PHONE} NON RECONNU. EXIT" && exit 1
## Remove prefix: phone contains local number
[[ ${PHONE#"$prefix"} != "${PHONE}" ]] && phone=0${PHONE#"$prefix"} || phone="${PHONE}"
TEXT="$SMS_1_TEXT" # gammu-smsd
[[ ! ${TEXT} ]] && TEXT="$2" # CLI MODE
[[ "${TEXT}" == "" ]] && TEXT="TEST : ABC : 12345*" # TEST MESSAGE
########################################################################
## LOG
########################################################################
echo "#################################################################"
echo "SMS received : $(date)"
echo "PHONE: $PHONE"
echo "TEXT: $TEXT"
########################################################################
########################################################################
# SWITCH CASE
########################################################################
CMD=$(echo "$TEXT" | awk '{print toupper($1)}')
echo "COMMAND = $CMD"
# Handle commands
case "$CMD" in
A|AIDE)
## ASK FOR HELP
$MY_PATH/sms/AIDE.sh "$phone" &
exit 0
;;
TEST)
echo "TEST: sending ___ $TEXT _to_ $phone"
gammu-smsd-inject TEXT "$phone" -text "$TEXT"
exit 0
;;
*)
echo "MESSAGE DE $phone POUR GUILDE/GROUPE $CMD"
MESSAGE=$(echo "$TEXT" | cut -d ' ' -f2-)
if [[ $MESSAGE ]]; then
echo "${MESSAGE}" > /tmp/${phone}_message
echo "${MESSAGE}"
else
gammu-smsd-inject TEXT "$phone" -text "Votre message pour $CMD est vide."
exit 1
fi
## OK CMD=GROUPE suivi de message
$MY_PATH/sms/GUILDE.sh "$phone" "$CMD" &
gammu-smsd-inject TEXT "$phone" -text "Votre message pour $CMD est enregistré. MERCI."
exit 0
;;
esac
## SEND A COPY OF INCOMING MESSAGE TO SMSADMIN
# [[ "$phone" != "$smsadmin" ]] && gammu-smsd-inject TEXT "$smsadmin" -text "$phone : $TEXT"
## FILESYSTEM RIGHTS CORRECTION
chown -R pi:pi /home/pi/.zen
exit 0