Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: typos

...

It is possible to connect the GSM modem to the RouterOS device and use it to send and receive SMS messages. RouterOS lists such modem as a serial port that appears in the '/port print' listing. GSM standard defines AT commands for sending SMS messages and defines how messages should be encoded in these commands.'advanced tools package provides command '/tool sms send' that uses standard GSM AT commands to send SMS.

...

ParameterDescription
port (string)Name of port from /port list that GSM modem is attached to.
phone-number (string)Recepient Recipient phone number. Allowed characters are "0123456789*#abc". If the first character is "+" then the phone number type is set to international, otherwise, it is set to unknown.
channel (integer)Which modem channel to use for sending.
message (string)Message contents. It is encoded using GSM 7 encoding (UCS2 currently is not supported), so the message length is limited to 160 characters (characters ^{}\[]~
smsc (string)
type (string)If set to class-0, then send class 0 SMS message. It is displayed immedeately immediately and not stored in the phone.
sms-storage (string)
Select storage where to save received SMS (modem/sim) 

...

PDU (Protocol Data Unit) message and its decrypted version is are printed under LTE debug logging.

...

Code Block
languageros
/system logging add topics=lte,!raw

/system logging print
Flags: X - disabled, I - invalid, * - default 
# TOPICS ACTION PREFIX 
0 * info memory 
1 * error memory 
2 * warning memory 
3 * critical echo 
4 lte,!raw memory 

To recieve receive account status from *245#

Code Block
languageros
/interface lte at-chat lte1 input="AT+CUSD=1,\"*245#\",15"
output: OK
/log print
11:51:20 lte,async lte1: sent AT+CUSD=1,"*245#",15 
11:51:20 lte,async lte1: rcvd OK 
11:51:23 lte,async,event +CUSD: 0,"EBB79B1E0685E9ECF4BADE9E03", 0 
11:51:23 gsm,info USSD: konta atlikums

Receiving

Since v3.24 RouterOS also supports receiving of SMS messages, and can execute scripts, and even respond to the sender.

Before the router can receive SMS, the relevant configuration is required in generalthe /tool sms menu. Following The following parameters are configurable:

ParameterDescription
allowed-number (string; Default: "")Sender The sender number that will be allowed to run commands, must specify the country code ie. +371XXXXXXX
channel (integer; Default: 0)Which modem channel to use for receiving.
keep-max-sms (integer; Default: 0)Maximum number of messages that will be saved. If you set this bigger than SIM supports, new messages will not be received! . Replaced with auto-erase parameter starting from RouterOS v6.44.6
auto-erase (yes | no; Default: no)SIM storage size is read automatically. When auto-erase=no new SMS will not be received if storage is full. Set auto-erase=yes to delete the oldest received SMS to free space for new ones automatically. Available starting from v6.44.6
port (string; Default: (unknown))Modem port (modem can be used only by one process "/port> print" )
receive-enabled (yes | no; Default: no)Must be turned on to receive messages
secret (string; Default: "")the secret password, mandatory

...

PropertyDescription
phone (string)Senders phone number.
message (string)Message body
timestamp (time)Time The time when the message was received. It is the time sent by the operator, not the router's local time.
type (string)Message type

...

  • SECRET - the password
  • NAME - the name of the script that's available in "/system script"
  • VAR - variables that will be passed to the script (can be passed as VAR or as VAR=value), separated by spaces.

...

Code Block
languageros
:cmd slepens script mans_skripts
:cmd slepens script "mans skripts"
:cmd slepens script mans_skripts var
:cmd slepens script mans_skripts var=a
:cmd slepens script mans_skripts var="a a" 

Debugging

/tool sms send command is logging data that is written and read. It is logged with tags gsm,debug,write and gsm,debug,read For more information see system logging.

...

AT+CMGS and AT+CMGF commands are used. Port is acquired for the duration of the command and cannot be used concurently concurrently by another RouterOS component. Message sending process can take a long time, it times out after a minute and after two seconds during the initial AT command exchange.