Mikrotik и SMS с модема HUAWEI

Совсем простой, но иногда необходимый скрипт. Давайте поставим задачу. Необходимо выполнять какое-то действие, при получении смс на модем подключённый MikroTik-у. Нам понадобиться настроить MikroTik таким образом, чтобы он смог считывать сообщения с USB модема. В нашем распоряжении есть модем производителя HUAWEI

[admin@MikroTik.Me] /system resource usb> print detail where device-id!="0x0002"
 0 device="1:5" vendor="HUAWEI" name="HUAWEI Mobile" vendor-id="0x12d1" device-id="0x1506" speed="480 Mbps" ports=0 usb-version="2.00"

Необходимо определить количество каналов доступные в PPP устройстве

[admin@MikroTik.Me] /port> print detail where name~"usb"
Flags: I - inactive 
0	name="usb2" used-by="sms tool" device="1:5" channels=4 baud-rate=9600 data-bits=8 parity=none stop-bits=1 flow-control=none

Как видно из вывода количество каналов у нас 4, помним, что количество — это значение, начинающееся с единицы и отображающее именно количество каналов. А сами каналы начинаются с нуля, соответственно нам доступны каналы под номерами 0,1,2,3.

Вот с этими каналами мы и будем работать, чтобы определить необходимый канал для работы. Методом перебора необходимо определить канал, суть определения понять в каком канале возможен обмен AT командами управления.

Нажмите Enter и введите команду AT и нажмите Enter если в ответ получим OK, значит это тот канал который нам необходим.

[admin@MikroTik.Me] /system> serial-terminal port=usb1 channel=3

В нашем случае это третий канал.

Ну что определились теперь давайте настроем RouterOS так чтобы он смог принимать СМС

/tool sms
set channel=3 port=usb2 secret=1111 receive-enabled=yes

теперь вы можете прочитать смс используя команду

[admin@MikroTik.Me] /tool sms inbox> print detail

Удалить SMS командой:

/tool sms inbox remove "номер сообщения"

Но поскольку у меня симка мегафон ставим приложение мультифон и смс и звонки приходят туда.

А теперь сам скрипт:

:local messageSMS "needdisableinterface";
:local phoneSMS "+79999999999";
:local defNameInterface "ether9";

:local countMSG [/tool sms inbox print count-only where message=$messageSMS phone=$phoneSMS];
:if ($countMSG = 0) do={
	/tool sms inbox remove [find];
} else={
	/interface ethernet disable [find default-name=$defNameInterface];
}

Отсюда:https://mikrotik.me/blog/34
Запись опубликована в рубрике Mikrotik. Добавьте в закладки постоянную ссылку.