routeros-scripts-main/sms-action.rsc

40 lines
1.1 KiB
Text
Raw Normal View History

#!rsc by RouterOS
# RouterOS script: sms-action
2026-01-01 13:47:40 +01:00
# Copyright (c) 2018-2026 Christian Hesse <mail@eworm.de>
2025-01-24 20:46:11 +01:00
# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.19
#
# run action on received SMS
2025-01-24 20:46:11 +01:00
# https://rsc.eworm.de/doc/sms-action.md
:onerror Err {
:global GlobalConfigReady; :global GlobalFunctionsReady;
:retry { :if ($GlobalConfigReady != true || $GlobalFunctionsReady != true) \
do={ :error ("Global config and/or functions not ready."); }; } delay=500ms max=50;
:local ScriptName [ :jobname ];
2024-03-04 13:48:01 +01:00
:global SmsAction;
2024-03-08 12:45:38 +01:00
:global LogPrint;
2024-03-04 13:48:01 +01:00
:global ValidateSyntax;
:local Action $action;
:if ([ :typeof $Action ] = "nothing") do={
2024-03-08 12:45:38 +01:00
$LogPrint error $ScriptName ("This script is supposed to run from SMS hook with action=...");
2026-01-19 15:24:32 +01:00
:exit;
2024-03-04 13:48:01 +01:00
}
2024-03-04 13:48:01 +01:00
:local Code ($SmsAction->$Action);
:if ([ $ValidateSyntax $Code ] = true) do={
:log info ("Acting on SMS action '" . $Action . "': " . $Code);
:delay 1s;
[ :parse $Code ];
} else={
2024-03-08 12:45:38 +01:00
$LogPrint warning $ScriptName ("The code for action '" . $Action . "' failed syntax validation!");
2024-03-04 13:48:01 +01:00
}
} do={
2026-01-19 15:24:32 +01:00
:global ExitError; $ExitError false [ :jobname ] $Err;
}