RUTOS gsmctl Commands: Difference between revisions
No edit summary |
PauliusRug (talk | contribs) No edit summary |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
| series = RUTOS | | series = RUTOS | ||
}} | }} | ||
[[Category:Modem control]] |
Latest revision as of 13:47, 2 August 2023
Main Page > General Information > Configuration Examples > Modem control > RUTOS gsmctl CommandsThe information in this page is shown in accordance with firmware versions R_00.07.00 and above.
Introduction
gsmctl is an SSH command used to communicate with a RUTOS router's modem. In other words, gsmctl relays AT commands (a set of instructions used to control a modem) to the router's modem; thus, providing the user with a way to control and obtain information from the modem via SSH. This can be used to either obtain certain modem related variables (signal strength, operator, connection state, etc.) or to execute certain actions (sending SMS messages, changing the frequency band, etc.).
This article provides a complete overview on gsmctl commands available in RUTOS routers.
Prerequisites
gsmctl commands can be used on all RUTOS routers via any type of command line interface (CLI) supported by the router. So all you need is:
- a RUTOS router
- knowledge on how to login via a command line interface
gsmctl options
gsmctl commands are used in tandem with various options that specify what type of action should be executed.
Example structure
Individual options are described in separate subsections of this article. To find the information you are looking for faster, refer to the table of contents at the top of the page or use your browser's "Find in page" feature (Control + F).
Each option is presented with its usage syntax and an example command. For easier differentiation of the different elements that make up the examples, different colors are used:
- options are highlighted in blue
- responses are highlighted in red
- additional parameters are highlighted in purple
Two execution methods
Each option can be executed in two distinct ways. One is shorter, the other is longer and more descriptive. For example, to obtain the modem's IMEI you can either use:
- short version: gsmctl -i
- long version: gsmctl --imei
In both cases, you just type the desired command and press the "Enter" key on your keyboard to execute that command. The response will be printed out as a standard output (stdout) string in your terminal window.
Combined options
Multiple options can be combined together to obtain more than one parameter at a time. For example, to obtain the name of the operator used, signal strength and connection type with one command you can use one of the following:
- short version: gsmctl -oqt
- long version: gsmctl --operator --signal --conntype
Note that in the shorter version multiple options can be used together with one hyphen (-) symbol with no spacing, while in the longer version different options must be separated by spaces and before each option a double hyphen (--) is required.
Basic options
This section overviews basic gsmctl options, usually related to obtaining certain modem related information.
Get IP address of logical interface
Note: From FW version R_00.07.03 this option is deprecated. IP addresses can be called with `ubus call network.interface.<interface> status`. For mobile interfaces use `ubus call network.interface.<interface>_4 status` for IPv4 or `ubus call network.interface.<interface>_6` for IPv6.
To obtain the IP address of a network interface, use -p or --ip options.
Usage syntax:
gsmctl -p, --ip <INTERFACE>
Where <INTERFACE> is the name of a network interface.
Example: obtaining the IP address of the mobile connection interface:
root@Teltonika:~# gsmctl -p wwan0 10.139.75.221
Where wwan0 is the name of the mobile interface when the connection type is set to QMI (default). You can use the ifconfig command to check the names of existing network interfaces.
Get number of bytes sent
To obtain the number of bytes sent (TX bytes) by a network interface, use -e or --bsent options.
Usage syntax:
gsmctl -e, --bsent <INTERFACE>
Where <INTERFACE> is the name of a network interface.
Example: obtaining the number of bytes sent (TX bytes) by the mobile connection interface:
root@Teltonika:~# gsmctl -e wwan0 36335
Where wwan0 is the name of the mobile interface when the connection type is set to QMI (default). You can use the ifconfig command to check the names of existing network interfaces.
Possible responses:
- An integer number representing bytes (not bits) sent
Get number of bytes received
To obtain the number of bytes received (RX bytes) by a network interface, use -r or --brecv options.
Usage syntax:
gsmctl -r, --brecv <INTERFACE>
Where <INTERFACE> is the name of a network interface.
Example: obtaining the number of bytes received (RX bytes) by the mobile connection interface:
root@Teltonika:~# gsmctl -r wwan0 92551
Where wwan0 is the name of the mobile interface when the connection type is set to QMI (default). You can use the ifconfig command to check the names of existing network interfaces.
Possible responses:
- An integer number representing bytes (not bits) received
Get network connection state
To obtain the network connection state, use -j or --connstate options.
Usage syntax:
gsmctl -j, --connstate
Example: obtaining the current network connection state:
root@Teltonika:~# gsmctl -j connected
Possible responses:
- connected
- disconnected
Get network link state
To obtain the registration state of the mobile network, use -g or --netstate options.
Usage syntax:
gsmctl -g, --netstate
Example: obtaining the registration state of the mobile network:
root@Teltonika:~# gsmctl -g registered (home)
Possible responses:
- registered (home)
- registered (roaming)
- unregistered
- searching
- unknown
Get device IMEI
To obtain the modem's International Mobile Equipment Identity (IMEI), use -i or --imei options.
Usage syntax:
gsmctl -i, --imei
Example: obtaining the modem's IMEI:
root@Teltonika:~# gsmctl -i 990000862471854
Possible responses:
- a 15 digit sequence of decimal numbers
Get SIM ICCID
To obtain the Integrated Circuit Card Identifier (ICCID) of the SIM card that is currently in use, use -J or --iccid options.
Usage syntax:
gsmctl -J, --iccid
Example: obtaining the ICCID of the SIM card in use:
root@Teltonika:~# gsmctl -J 89310410106543789301
Possible responses:
- a 19 or 20 digit sequence of decimal numbers
Get device model
To obtain the modem's model name, use -m or --model options.
Usage syntax:
gsmctl -m, --model
Example: obtaining the modem's model name
root@Teltonika:~# gsmctl -m model_name
Possible responses:
- a string of letters and digits representing the model name
Get device manufacturer
To obtain the modem's manufacturer's name, use -w or --manuf options.
Usage syntax:
gsmctl -w, --manuf
Example: obtaining the modem's manufacturer's name:
root@Teltonika:~# gsmctl -w manufacturers_name
Possible responses:
- a string of letters and digits representing the manufacturer's name
Get device serial number
To obtain the modem's serial number, use -a or --serial options.
Usage syntax:
gsmctl -a, --serial
Example: obtaining the modem's serial number:
root@Teltonika:~# gsmctl -a 990000862471854
Possible responses:
- a 15 digit sequence.
Get device revision number
To obtain the modem's revision number (firmware version), use -y or --firmware options.
Usage syntax:
gsmctl -y, --firmware
Example: obtaining the modem's revision number:
root@Teltonika:~# gsmctl -y EC25EFAR02A08M4G
Possible responses:
- a string of letters and digits representing the revision number (firmware version)
Get IMSI
To obtain the International Mobile Subscriber Identity (IMSI), use -x or --imsi options.
Usage syntax:
gsmctl -x, --imsi
Example: obtaining IMSI:
root@Teltonika:~# gsmctl -x 246029999999999
Possible responses:
- a 15 digit (or less) sequence of decimal numbers
Get SIM card state
To obtain the state of the SIM card currently in use, use -z or --simstate options.
Usage syntax:
gsmctl -z, --simstate
Example: obtaining the current SIM state:
root@Teltonika:~# gsmctl -z inserted
Possible responses:
- inserted
- not inserted
Get PIN state
To obtain the PIN state of the SIM card currently in use, use -u or --pinstate options.
Usage syntax:
gsmctl -u, --pinstate
Example: obtaining the PIN state:
root@Teltonika:~# gsmctl -u OK
Possible responses:
- OK
- SIM not inserted.
Get GSM signal (RSSI) level
To obtain the router's current signal strength (RSSI) value, use -q or --signal options.
Usage syntax:
gsmctl -q, --signal
- Example for 3G network type:
root@Teltonika:~# gsmctl -q RSSI: -67 RSCP: -68 ECIO: -5
- Example for 4G network type:
root@Teltonika:~# gsmctl -q RSSI: -60 RSRP: -103 SINR: 2 RSRQ: -16
Possible responses:
- an integer number ranging from -113 to -51 (in dBm)
Get WCDMA RSCP level
To obtain the router's current WCDMA RSCP level, use -X or --rscp options.
Note: From FW version R_00.07.03 this value has been moved under -q argument.
Usage syntax:
gsmctl -X, --rscp
Example: obtaining the RSCP level:
root@Teltonika:~# gsmctl -X -77
Possible responses:
- an integer number ranging from -124 to 0
- service mode not supported (this response is returned when the router's current service mode is not WCDMA)
Get WCDMA EC/IO level
To obtain the router's current WCDMA EC/IO level, use -E or --ecio options.
Note: From FW version R_00.07.03 this value has been moved under -q argument.
Usage syntax:
gsmctl -E, --ecio
Example: obtaining the EC/IO level:
root@Teltonika:~# gsmctl -E -4.000000
Possible responses:
- an integer number ranging from -20 to 0
- service mode not supported (this response is returned when the router's current service mode is not WCDMA)
Get LTE RSRP level
To obtain the router's current LTE RSRP level, use -W or --rsrp options.
Note: From FW version R_00.07.03 this value has been moved under -q argument.
Usage syntax:
gsmctl -W, --rsrp
Example: obtaining the RSRP level:
root@Teltonika:~# gsmctl -W -103
Possible responses:
- an integer number ranging from >= -80 to <= -100 (dBm)
- service mode not supported (this response is returned when the router's current service mode is not LTE)
Get LTE SINR level
To obtain the router's current SINR level, use -Z or --sinr options.
Note: From FW version R_00.07.03 this value has been moved under -q argument.
Usage syntax:
gsmctl -Z, --sinr
Example: obtaining the SINR level:
root@Teltonika:~# gsmctl -Z 16.9
Possible responses:
- a real number ranging from 0.0 to 20.0 (dB)
- service mode not supported (this response is returned when the router's current service mode is not LTE)
Get LTE RSRQ level
To obtain the router's current RSRQ level, use -M or --rsrq options.
Note: From FW version R_00.07.03 this value has been moved under -q argument.
Usage syntax:
gsmctl -M, --rsrq
Example: obtaining the RSRQ level:
root@Teltonika:~# gsmctl -M -8.000000
Possible responses:
- an integer number ranging from <= - 20 to >= -10 (dB)
- service mode not supported (this response is returned when the router's current service mode is not LTE)
Get cell ID parameter
To obtain the ID of the cell that the SIM card is connected to, use -C or --cellid options.
Usage syntax:
gsmctl -C, --cellid
Example: obtaining the cell ID:
root@Teltonika:~# gsmctl -C 1037089
Possible responses:
- a 7 digit sequence of decimal numbers indicating the cell ID
- N/A - returned when the SIM card is not inserted or unregistered
Get name of operator used
To obtain the name of the operator used, use -o or --operator options.
Usage syntax:
gsmctl -o, --operator
Example: obtaining the operator name:
root@Teltonika:~# gsmctl -o LT BITE GSMC
Possible responses:
- a string of text representing the network operator's name
- N/A - returned when the SIM card is not connected to any operator
Get operator number
To obtain the network operator's number, use -f or --opernum options.
Usage syntax:
gsmctl -f, --opernum
Example: obtaining the network operator's number:
root@Teltonika:~# gsmctl -f 24602
Possible responses:
- a 6 digit sequence of decimal numbers
- N/A - returned when the SIM card is not connected to any operator
Get data carrier type
To obtain the connection type, use -t or --conntype options.
Usage syntax:
gsmctl -t, --conntype
Example: obtaining the connection type:
root@Teltonika:~# gsmctl -t LTE
Possible responses:
- NOSERVICE - NOSERVICE mode
- GSM - GSM/GPRS/EDGE mode
- WCDMA - WCDMA/HSDPA/HSPA mode
- TDSCDMA - TDSCDMA mode
- LTE - LTE mode
- 5G-NSA - 5G mode
- 5G-SA - 5G mode
- CDMA - CDMA mode
- EVDO - EV-DO/eHRPD mode
- CDMA-EVDO - CDMA/EV-DO(eHRPD) mode
Get module temperature
To obtain the module's temperature, use -c or --temp options.
Usage syntax:
gsmctl -c, --temp
Example: obtaining the module's temperature:
root@Teltonika:~# gsmctl -c 360
Possible responses:
- an integer number representing the module's current temperature (in 0.1 degrees Celsius (°C))
Get PIN/PUK count
To obtain the PIN/PUK count, use -B or --pincount options.
Usage syntax:
gsmctl -B, --pincount
Example: obtaining PIN/PUK count:
root@Teltonika:~# gsmctl -B S1_PIN: 3 | S1_PUK: 10 S2_PIN: 3 | S2_PUK: 10
Possible responses:
- an integer number representing the amount of PIN/PUK attempts left
Get network information
To obtain information related to the mobile network information, use -F or --network options.
Usage syntax:
gsmctl -F, --network
Example: obtaining mobile network information:
root@Teltonika:~# gsmctl -F LTE | LTE_B3 | 24602
Possible responses:
- response syntax: <Act>,<oper>,<band>
Where:- <Act> - service mode
- <oper> - operator number
- <band> - frequency band used
Get serving cell information
To obtain the serving cell information, use -K or --serving options.
Usage syntax:
gsmctl -K, --serving
Example: obtaining the serving cell information
root@Teltonika:~# gsmctl -K +QENG: "servingcell","NOCONN","LTE","FDD",246,02,FD317,109,1850,3,5,5,92,-108,-12,-76,14,- MEIG modem output: +SGCELLINFOEX:LTE,FDD LTE,246,02,1037079,109,4051,23,146,3,100,1850,19850,-63,-99,-13,199,19,4,255,-,-,4,-,0,-,0,0,0
Note: From FW version R_00.07.03 the values are returned in a different format. Example:
root@Teltonika:~# gsmctl -K Access tech: LTE | TDD mode: FDD | MCC: 246 | MNC: 2 | UE state: 3
Get neighbour cell information
To obtain the neighbor cell information, use -I or --neighbour options.
Usage syntax:
gsmctl -I, --neighbour
Example: obtaining the neighbour cell information
root@Teltonika:~# gsmctl -I +QENG: "neighbourcell intra","LTE",522,269,-9,-87,-58,0,-,-,-,-,-
Get VoLTE state status
To obtain the VoLTE state, use -v or --volte_state options.
Note: This argument is supported from FW version R_00.07.03.
Usage syntax:
gsmctl -v, --volte_state
Example: obtaining the VoLTE state.
root@Teltonika:~# gsmctl -v Active
Possible responses:
- Active
- Inactive
Get operator station time
To obtain the operator station, use -H or --modemtime options with time argument (1 - GMT, 2 - local).
Usage syntax:
gsmctl -H, --modemtime <1/2>
Example: obtaining the operator time
root@Teltonika:~# gsmctl -H 1 22/12/01,12:27:14
Get modem info in json format
To obtain the full modem information in JSON format, use -E or --info options.
Note: This argument is supported from FW version R_00.07.03.
Usage syntax:
gsmctl -E, --info
Example: obtaining the modem information
root@Teltonika:~# gsmctl -E { "name": "Quectel EG06-E", "model": "EG06-E", "manuf": "Quectel", "driver": "Quectel EG06 AT", "usb_id": "3-1", ...
Reboot the modem
To reboot the modem, use -Q or --reboot options. After the command is executed, the modem will start rebooting.
Usage syntax:
gsmctl -Q, --reboot
Example: rebooting the modem
root@Teltonika:~# gsmctl -Q Modem was reset
Possible responses:
- Modem was reset
Debug the modem
To debug the modem, use -D or --debug options. After the command is executed, modem will enable debug information.
Note: This argument is supported from FW version R_00.07.03.
Usage syntax:
gsmctl -D, --debug
Example: Enable debug information
root@Teltonika:~# gsmctl -D
List available options
Using -h or --help options prints of all available gsmctl options with descriptions and usage syntax examples.
Usage syntax:
gsmctl -h, --help
Example: printing a list of available gsmctl options
root@Teltonika:~# gsmctl -h usage: gsmctl OPTIONS -F, --network Get network information -e, --bsent <INTERFACE> Get number of bytes sent -r, --brecv <INTERFACE> Get number of bytes recieved ...
Possible responses:
- a list of options that can be used with gsmctl
SMS management options
This section overviews gsmctl options related to SMS management. Every SMS related command uses the "-S" or "--sms" along with another option.
Read SMS by index
To read a single SMS message, use -S -r or --sms --read options. Additionally you have to specify the <INDEX> of the message that you wish to read. The <INDEX> is an integer number that defines the position of a message in the SMS message list. It can range from 1 to however many messages your SMS memory can store.
Usage syntax:
gsmctl -S -r, --sms --read <INDEX>
Example: reading the first message in the SMS list
root@Teltonika:~# gsmctl -S -r 1 Index: 1 Date: 2018-08-02 10:33:20 Sender: +37061111111 Status: read Text: Hello
Possible responses:
- five lines of string type output indicating the following information related to the SMS message:
- Index - an integer number indicating the position of the message in the SMS message list
- Date - the date the message was received
- Sender - sender's phone number
- Status - indicates whether the message has been previously read. (Possible values: read or new)
- Text - the body of the message
- no message - indicates that an SMS message with the specified <INDEX> does not exist
- out of range - indicates that the specified <INDEX> is out of range of the SMS message list
List SMS by type
To print a list of SMS messages, use -S -l or --sms --list options. Additionally you have to specify the <TYPE> of the list. <TYPE> can either read, new or all
Usage syntax:
gsmctl -S -l, --sms --list <TYPE>
Example: printing the list of all new (unread) SMS messages
root@Teltonika:~# gsmctl -S -l new Index: 19 Date: 2018-08-03 08:26:36 Sender: +37061111111 Text: status Status: new
Possible responses:
- multiple entries comprised of five lines of string type output indicating the following information related to an SMS message:
- Index - an integer number indicating the position of the message in the SMS message list
- Date - the date the message was received
- Sender - sender's phone number
- Text - the body of the message
- Status - indicates whether the message has been previously read. (Possible values: read or new)
Print SMS memory usage
To check the SMS memory usage, use -S -t or --sms --total options.
Usage syntax:
gsmctl -S -t, --sms --total
Example: checking the SMS memory usage
root@Teltonika:~# gsmctl -S -t Used: 28 Total: 50
Possible responses:
- two lines of string type output
- Used - used memory space (integer)
- Total - total memory space (integer)
Delete SMS by index
To delete an SMS message, use -S -d or --sms --delete options. Additionally you have to specify the <INDEX> of the message that you wish to delete. The <INDEX> is an integer number that defines the position of a message in the SMS message list. It can range from 1 to however many messages your SMS memory can store.
Usage syntax:
gsmctl -S -d, --sms --delete <INDEX>
Example: deleting the first SMS message
root@Teltonika:~# gsmctl -S -d 1 OK
Possible responses:
- OK - indicates that the message with specified <INDEX> has been deleted successfully
- out of range - indicates that the specified <INDEX> is out of range of the SMS message list
Send SMS
To send an SMS message, use -S -s or --sms --send options.
Usage syntax:
gsmctl -S -s, --sms --send "<NUMBER> <TEXT>"
Example: sending a "Hello" message to the number +37011111111
root@Teltonika:~# gsmctl -S -s "0037011111111 Hello"
Possible responses:
- If response in terminal "OK", SMS was sent successfully.
Send SMS encoded in base64
First you need to create a /tmp/.smstext file and append some text you want to send
Note: From FW version R_00.07.03 this argument has been removed.
To send a base64 SMS message, use -S -b or --sms --send-b64 options
Usage syntax:
gsmctl -S -b,--sms --send-b64 <NUMBER>
Example:
root@Teltonika:~# gsmctl -S -b +37061234567
Possible responses:
- If response in terminal "OK", SMS was sent successfully.
Auxiliary options
Send AT command to device
To send AT command to device, use -A or --at options.
Usage syntax:
gsmctl -A, --at 'AT+command'
Example:
root@Teltonika:~# gsmctl -A 'AT+CLCK="SC",2'
Possible responses:
- This example will return SIM card pin lock state ("+CLCK: 0" - pin lock disabled).