#!rsc # RouterOS script: sms-forward # Copyright (c) 2013-2019 Christian Hesse # # forward SMS to e-mail :global "identity"; :global SendNotification; # check mail server :if ([ / tool netwatch get [ find where comment=[ / tool e-mail get address ] ] status ] != "up") do={ :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 ] 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 ]; :if ($phone = $allowed && message~("^:cmd " . $secret . " script ")) do={ :log debug "Ignoring SMS, which starts a script."; } else={ $SendNotification ("SMS Forwarding") \ ("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; } }