bio-dynamie/sms_received.sh

111 lines
4.9 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
########################################################################
YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) || er+=" ipfs daemon not running"
[[ ! -f /home/${YOU}/.zen/secret.dunikey ]] && echo "Crypto is missing... please provide /home/${YOU}/.zen/secret.dunikey by installing 'astrXbian' TestNet" && exit 1
G1PUB=$(cat /home/${YOU}/.zen/secret.dunikey | grep 'pub:' | cut -d ' ' -f 2)
########################################################################
# GET smsadmin PHONE NUMBER FROM ~/.zen/SMSADMIN FILE
########################################################################
[[ ! -f /home/${YOU}/.zen/SMSADMIN ]] && echo "EXIT. Indiquez votre numéro de mobile dans /home/${YOU}/.zen/SMSADMIN" && exit 1
SMSADMIN="$(cat /home/${YOU}/.zen/SMSADMIN)" ## FRENCH NUMBER
[[ ${SMSADMIN#"$prefix"} != "${SMSADMIN}" ]] && smsadmin=0${SMSADMIN#"$prefix"} || smsadmin="${SMSADMIN}" ## 06
########################################################################
## CHECK MADEINZION INTERNET SERVICES CONNEXION
ping -q -w 1 -c 1 data.gchange.fr 2>&1>/dev/null && echo "GCHANGE+ OK" && GCHANGE=1 || GCHANGE=0
ping -q -w 1 -c 1 g1.data.e-is.pro 2>&1>/dev/null && echo "CESIUM+ OK" && CESIUM=1 || CESIUM=0
ping -q -w 1 -c 1 oasis.astroport.com 2>&1>/dev/null && echo "OASIS OK" && OASIS=1 || OASIS=0
ping -q -w 1 -c 1 taurus.copylaradio.com 2>&1>/dev/null && echo "TAURUS OK" && TAURUS=1 || TAURUS=0
########################################################################
########################################################################
# GET INCOMING SMS CONTENT
########################################################################
########################################################################
PHONE="$SMS_1_NUMBER" # gammu-smsd
[[ ! ${PHONE} ]] && PHONE="$1" # CLI MODE
[[ "${#PHONE}" < 10 || "${#PHONE}" > 12 ]] && echo "PHONE ${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}" == "" ]] && echo "SMS IS EMPTY - EXIT -" && exit 1
########################################################################
# INTERNET CONNEXION NOT OK
########################################################################
if [[ $GCHANGE == 0 ]]; then
echo "GCHANGE UNREACHABLE => CREATING timestamp.replay.sh - EXIT -"
echo "#!/bin/bash
sudo $MY_PATH/sms_received \"${PHONE}\" \"${TEXT}\"" > /home/${YOU}/.zen/SMS/$(date -u +%s%N | cut -b1-13).replay.sh
exit 1
fi
########################################################################
# INTERNET CONNEXION NOT OK
########################################################################
########################################################################
## LOG
########################################################################
echo "#################################################################"
echo "SMS received : $(date)"
echo "PHONE: $PHONE"
echo "TEXT: $TEXT"
########################################################################
########################################################################
# SWITCH CASE DEPENDING ON SMS TEXT FIRST WORD
########################################################################
CMD=$(echo "$TEXT" | awk '{print toupper($1)}')
echo "COMMAND = $CMD"
# Handle commands
case "$CMD" in
AIDE)
## ASK FOR HELP
$MY_PATH/sms/AIDE.sh "$phone" &
;;
STOP)
## STOP RELATION WITH CMD GUILDE GROUP
GUILDE=$(echo "$TEXT" | awk '{print toupper($2)}')
$MY_PATH/sms/ERASE.sh "$phone" "$GUILDE" &
;;
*)
echo "MESSAGE DE $phone POUR $CMD"
MESSAGE=$(echo "$TEXT" | cut -d ' ' -f 2-)
if [[ ${MESSAGE} ]]; then
echo "${MESSAGE}" > /tmp/${phone}_message
echo "${MESSAGE}"
fi
## OK CMD=GROUPE suivi de message
$MY_PATH/sms/GUILDE.sh "$phone" "$CMD" > /home/${YOU}/.zen/SMS/debug.log
## TRY UGGLY WAY !!??
# sudo service gammu-smsd stop
# sudo gammu sendsms TEXT "$phone" -text "Message pour ${CMD} bien reçu."
# sudo service gammu-smsd start
;;
esac
## SEND A COPY OF INCOMING MESSAGE TO SMSADMIN
## [[ "$phone" != "$smsadmin" ]] && gammu-smsd-inject TEXT "$smsadmin" -text "$phone : $TEXT"
## FILESYSTEM RIGHTS CORRECTION
chown -R ${YOU}:${YOU} /home/${YOU}/.zen/SMS
exit 0