The condition worked, but could match others (AAAA, NXDOMAIN, ...) as
well (though these should not exist).
The problem is that matching with `type=A` does not return any results.
For historical reasons A records have no type, thus can be matched with
`!type`. I opened an issue to fix this... (SUP-111312)
So let's assum `!type` works and `type=A` could become valid...
The issue has been acknowledged by Mikrotik, but the cause is still
unknown as the sms code did not change since RouterOS 7.6...
Well, looks like the behavior changes again with RouterOS 7.9beta4, and
everything works as expected again. So disable the workaround there.
Removal of messages is broken in RouterOS 7.8:
[admin@MikroTik] > /tool/sms/inbox/remove [ find ]
failure: Interface not running!
Of course the interface is running. Toggling the auto-erase setting
fixes this until next boot. So let's add a workaround...
Reported to support (SUP-110828), but not (yet) acknowledged. 🤨
This now causes expected warnings on first run of $ScriptInstallUpdate.
The migration still works, as we keep `global-config.changes` and
`global-functions`.
... but with extra hurdle for more awareness of danger.
Let's not send a new notification, intentionally. This feature is
dangerous, and we should not advertise it.
If you are still running RouterOS 7.6 or older add this in your
global-config-overlay:
:global ScriptUpdatesUrlSuffix "\?h=routeros-7.7~1";
... and remeber to revert that change once updated.
This script supports multiple devices, and sending offset to discard
messages is delayed to third fetch to make sure all devices get the
message.
This can cause trouble, though: Sending a device a reboot command can
make that device reboot multiple times 🥴 or - even worse - make it
enter an infinite boot loop 😳 if it is the only device.
So let's ignore first messages after reboot.