From 4273459f11b00fe59485e6e4ef09be50725efc9a Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Sun, 23 Sep 2018 22:27:01 +0200 Subject: sms-forward: make handling of SMS with action more robust --- sms-forward | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/sms-forward b/sms-forward index df0a070..febe3eb 100644 --- a/sms-forward +++ b/sms-forward @@ -13,18 +13,26 @@ :error "Mail server is not up."; } +:local allowed [ / tool sms get allowed-number ]; +:local secret [ / tool sms get secret ]; + # forward SMS in a loop -:foreach sms in=[ / tool sms inbox find where message~"^([^:][^c][^m][^d][^ ])" ] do={ +:foreach sms in=[ / tool sms inbox find ] do={ :local message [ / tool sms inbox get $sms message ]; :local phone [ / tool sms inbox get $sms phone ]; :local timestamp [ / tool sms inbox get $sms timestamp ]; :local type [ / tool sms inbox get $sms type ]; - / tool e-mail send to=$"email-general-to" cc=$"email-general-cc" \ - subject=("[" . $identity . "] SMS Forwarding") \ - body=("A message was received by " . $identity . ":\n\n" . \ - "Phone: " . $phone . "\n" . \ - "Timestamp: " . $timestamp . "\n" . \ - "Type: " . $type . "\n\n" . \ - "Message:\n" . $message); - / tool sms inbox remove $sms; + + :if ($phone = $allowed && message~("^:cmd " . $secret . " script ")) do={ + :log debug "Ignoring SMS, which starts a script."; + } else={ + / tool e-mail send to=$"email-general-to" cc=$"email-general-cc" \ + subject=("[" . $identity . "] SMS Forwarding") \ + body=("A message was received by " . $identity . ":\n\n" . \ + "Phone: " . $phone . "\n" . \ + "Timestamp: " . $timestamp . "\n" . \ + "Type: " . $type . "\n\n" . \ + "Message:\n" . $message); + / tool sms inbox remove $sms; + } } -- cgit v1.2.3-54-g00ecf