Domnev: Difference between revisions

From Teltonika Networks Wiki
No edit summary
No edit summary
Line 1: Line 1:
<span style="color: red;">The information in this page is shown in accordance with firmware versions {{{fw_version}}}.</span>


[[File:M-bus topology.png|border|750x750px|class=tlt-border]]
==Introduction==


'''''gsmctl''''' is an SSH command used to communicate with a {{{name}}} 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 {{{name}}} routers.


[[File:Mbus data to server MQTT renewed.png|border|class=tlt-border|1094x1094px]]
==Prerequisites==


''gsmctl'' commands can be used on all {{{name}}} routers via any type of command line interface (CLI) supported by the router. So all you need is:


*a {{{name}}} router
*knowledge on how to login via a '''[[Command line interfaces|command line interface]]'''


[[File:M bus configuration correct.png|border|class=tlt-border|904x904px]]
==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:
*<span style="color:blue;">options</span> are highlighted in blue
*<span style="color:red;">responses</span> are highlighted in red
*<span style="color:purple;">additional parameters</span> 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 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 <span style="color:blue;">-e</span>, <span style="color:blue;">--bsent</span> <span style="color:purple;"><INTERFACE></span>
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 <span style="color:blue;">-e</span> <span style="color:purple;">{{#ifeq:{{{series}}}|RUTOS|mob1s1a1|wwan0}}</span>
<span style="color:red;">36335</span>
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 <span style="color:blue;">-r</span>, <span style="color:blue;">--brecv</span> <span style="color:purple;"><INTERFACE></span>
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 <span style="color:blue;">-r</span> <span style="color:purple;">{{#ifeq:{{{series}}}|RUTOS|mob1s1a1|wwan0}}</span>
<span style="color:red;">92551</span>
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 <span style="color:blue;">-j</span>, <span style="color:blue;">--connstate</span>
'''Example''': obtaining the current network connection state:
root@Teltonika:~# gsmctl <span style="color:blue;">-j</span>
<span style="color:red;">connected</span>
'''Possible responses''':
*connected
*disconnected
===-P===
----
===Get network link state===
----
To obtain the registration state of the mobile network, use '''''-g''''' or '''''--netstate''''' options.
'''Usage syntax''':
gsmctl <span style="color:blue;">-g</span>, <span style="color:blue;">--netstate</span>
'''Example''': obtaining the registration state of the mobile network:
root@Teltonika:~# gsmctl <span style="color:blue;">-g</span>
<span style="color:red;">registered (home)</span>
'''Possible responses''':
*registered (home)
*registered (roaming)
*unregistered
*searching
*unknown
===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 <span style="color:blue;">-C</span>, <span style="color:blue;">--cellid</span>
'''Example''': obtaining the cell ID:
root@Teltonika:~# gsmctl <span style="color:blue;">-C</span>
<span style="color:red;">1037089</span>
'''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 <span style="color:blue;">-o</span>, <span style="color:blue;">--operator</span>
'''Example''': obtaining the operator name:
root@Teltonika:~# gsmctl <span style="color:blue;">-o</span>
<span style="color:red;">LT BITE GSMC</span>
'''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 <span style="color:blue;">-f</span>, <span style="color:blue;">--opernum</span>
'''Example''': obtaining the network operator's number:
root@Teltonika:~# gsmctl <span style="color:blue;">-f</span>
<span style="color:red;">24602</span>
'''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 <span style="color:blue;">-t</span>, <span style="color:blue;">--conntype</span>
'''Example''': obtaining the connection type:
root@Teltonika:~# gsmctl <span style="color:blue;">-t</span>
<span style="color:red;">LTE</span>
'''Possible responses''':
*NOSERVICE - NOSERVICE mode
*GSM - GSM/GPRS/EDGE mode
*WCDMA - WCDMA/HSDPA/HSPA mode
*TDSCDMA - TDSCDMA mode
*LTE - LTE mode
*CDMA - CDMA mode
*EVDO - EV-DO/eHRPD mode
*CDMA-EVDO - CDMA/EV-DO(eHRPD) mode
===Get network information===
----
To obtain information related to the mobile network information, use '''''-F''''' or '''''--network''''' options.
'''Usage syntax''':
gsmctl <span style="color:blue;">-F</span>, <span style="color:blue;">--network</span>
'''Example''': obtaining mobile network information:
root@Teltonika:~# gsmctl <span style="color:blue;">-F</span>
<span style="color:red;">+QNWINFO: "FDD LTE",46001,"LTE BAND 3",1650</span>
'''Possible responses''':
*response syntax: ''+QNWINFO: <Act>,<oper>,<band>,<channel>'' <br> Where:
**'''''<Act>''''' - service mode
**'''''<oper>''''' - operator number
**'''''<band>''''' - frequency band used
**'''''<channel>''''' - channel ID
<b>Note</b>: From FW version <i>R_00.07.03</i> the values are returned in a different format. Example:
root@Teltonika:~# gsmctl -F
LTE | LTE_B3 | 24602
===Get serving cell information===
----
To obtain the serving cell information, use '''''-K''''' or '''''--serving''''' options.
'''Usage syntax''':
gsmctl <span style="color:blue;">-K</span>, <span style="color:blue;">--serving</span>
'''Example''': obtaining the serving cell information
root@Teltonika:~# gsmctl <span style="color:blue;">-K</span>
<span style="color:red;">+QENG: "servingcell","NOCONN","LTE","FDD",246,02,FD317,109,1850,3,5,5,92,-108,-12,-76,14,-</span>
MEIG modem output:
<span style="color:red;">+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</span>
<b>Note</b>: From FW version <i>R_00.07.03</i> 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 <span style="color:blue;">-I</span>, <span style="color:blue;">--neighbour</span>
'''Example''': obtaining the neighbour cell information
root@Teltonika:~# gsmctl <span style="color:blue;">-I</span>
<span style="color:red;">+QENG: "neighbourcell intra","LTE",522,269,-9,-87,-58,0,-,-,-,-,-</span>
===Get VoLTE state status===
----
To obtain the VoLTE state, use '''''-v''''' or '''''--volte_state''''' options.
<b>Note</b>: This argument is supported from FW version <i>R_00.07.03</i>.
'''Usage syntax''':
gsmctl <span style="color:blue;">-v</span>, <span style="color:blue;">--volte_state</span>
'''Example''': obtaining the VoLTE state.
root@Teltonika:~# gsmctl -v
Active
===-b===
----
==Modem commands==
===Send AT command to device===
----
To send AT command to device, use '''''-A''''' or '''''--at''''' options.
'''Usage syntax''':
gsmctl <span style="color:blue;">-A, --at</span> <span style="color:purple;">'AT+command'</span>
'''Example''':
root@Teltonika:~# gsmctl <span style="color:blue;">-A</span> <span style="color:purple;">'AT+CLCK="SC",2'</span>
<span style="color:red;"></span>
'''Possible responses''':
*This example will return SIM card pin lock state ("+CLCK: 0" - pin lock disabled).
===Get device IMEI===
----
To obtain the modem's International Mobile Equipment Identity (IMEI), use '''''-i''''' or '''''--imei''''' options.
'''Usage syntax''':
gsmctl <span style="color:blue;">-i</span>, <span style="color:blue;">--imei</span>
'''Example''': obtaining the modem's IMEI:
root@Teltonika:~# gsmctl <span style="color:blue;">-i</span>
<span style="color:red;">990000862471854</span>
'''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 <span style="color:blue;">-J</span>, <span style="color:blue;">--iccid</span>
'''Example''': obtaining the ICCID of the SIM card in use:
root@Teltonika:~# gsmctl <span style="color:blue;">-J</span>
<span style="color:red;">89310410106543789301</span>
'''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 <span style="color:blue;">-m</span>, <span style="color:blue;">--model</span>
'''Example''': obtaining the modem's model name
root@Teltonika:~# gsmctl <span style="color:blue;">-m</span>
<span style="color:red;">model_name</span>
'''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 <span style="color:blue;">-w</span>, <span style="color:blue;">--manuf</span>
'''Example''': obtaining the modem's manufacturer's name:
root@Teltonika:~# gsmctl <span style="color:blue;">-w</span>
<span style="color:red;">manufacturers_name</span>
'''Possible responses''':
*a string of letters and digits representing the manufacturer's name
===Get device revision number===
----
To obtain the modem's revision number (firmware version), use '''''-y''''' or '''''--revision''''' options.
'''Usage syntax''':
gsmctl <span style="color:blue;">-y</span>, <span style="color:blue;">--revision</span>
'''Example''': obtaining the modem's revision number:
root@Teltonika:~# gsmctl <span style="color:blue;">-y</span>
<span style="color:red;">EC25EFAR02A08M4G</span>
'''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 <span style="color:blue;">-x</span>, <span style="color:blue;">--imsi</span>
'''Example''': obtaining IMSI:
root@Teltonika:~# gsmctl <span style="color:blue;">-x</span>
<span style="color:red;">246029999999999</span>
'''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 <span style="color:blue;">-z</span>, <span style="color:blue;">--simstate</span>
'''Example''': obtaining the current SIM state:
root@Teltonika:~# gsmctl <span style="color:blue;">-z</span>
<span style="color:red;">inserted</span>
'''Possible responses''':
*inserted
*not inserted
===-u===
----
===Get operator station time===
----
To obtain the operator station, use '''''-H''''' or '''''--modemtime''''' options with time argument (1 - GMT, 2 - local).
'''Usage syntax''':
gsmctl <span style="color:blue;">-H</span>, <span style="color:blue;">--modemtime</span> <span style="color:purple;"><1/2></span>
'''Example''': obtaining the operator time
root@Teltonika:~# gsmctl -H 1
22/12/01,12:27:14
===Get module temperature===
----
To obtain the module's temperature, use '''''-c''''' or '''''--temp''''' options.
'''Usage syntax''':
gsmctl <span style="color:blue;">-c</span>, <span style="color:blue;">--temp</span>
'''Example''': obtaining the module's temperature:
root@Teltonika:~# gsmctl <span style="color:blue;">-c</span>
<span style="color:red;">360</span>
'''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 <span style="color:blue;">-B</span>, <span style="color:blue;">--pincount</span>
'''Example''': obtaining the
root@Teltonika:~# gsmctl <span style="color:blue;">-B</span>
<span style="color:red;">3</span>
'''Possible responses''':
*an integer number representing the amount of PIN/PUK attempts left
*N/A - returned when the SIM card is not inserted
===Get modem info in json format===
----
To obtain the full modem information in JSON format, use '''''-E''''' or '''''--info''''' options.
<b>Note</b>: This argument is supported from FW version <i>R_00.07.03</i>.
'''Usage syntax''':


[[File:M bus instance creation.png|border|class=tlt-border|904x904px]]
gsmctl <span style="color:blue;">-E</span>, <span style="color:blue;">--info</span>


'''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",
...


[[File:HEX data type.png|border|class=tlt-border|904x904px]]
===-U===
----


===-Y===
----


[[File:Node-rs-topology.png|border|center|class=tlt-border|654x654px]]
===Reboot the modem===
----
To reboot the modem, use '''''-Q''''' or '''''--reboot''''' options. After the command is executed, the modem will start rebooting.


[[File:Node-red-broker-new.png|border|left|class=tlt-border|474x474px|left]]
'''Usage syntax''':
[[File:Node-red-debug-new.png|border|right|class=tlt-border|474x474px|right]]


[[File:Node-red-subscriber-configuration.png|border|class=tlt-border|1094x1094px]]
gsmctl <span style="color:blue;">-Q</span>, <span style="color:blue;">--reboot</span>


'''Example''': rebooting the modem


[[File:MQTT broker HEX data.png|border|class=tlt-border|404x404px]]
root@Teltonika:~# gsmctl <span style="color:blue;">-Q</span>
<span style="color:red;">Modem was reset</span>


'''Possible responses''':


*Modem was reset


[[File:M-bus topology HTTP data.png|border|750x750px|class=tlt-border]]


==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.


[[File:Mbus HTTP data to server config.png|border|class=tlt-border|1094x1094px]]
===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.


[[File:Mbus XML data type.png|border|class=tlt-border|954x954px]]
'''Usage syntax''':


gsmctl <span style="color:blue;">-S -r</span>, <span style="color:blue;">--sms --read</span> <span style="color:purple;"><INDEX></span>


[[File:HTTP node-red.png|border|class=tlt-border|center|514x514px]]
'''Example''': reading the first message in the SMS list
 
root@Teltonika:~# gsmctl <span style="color:blue;">-S -r</span> <span style="color:purple;">1</span>
<span style="color:red;">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===
----
----


[[File:HTTP node-RED block config.png|border|left|class=tlt-border|474x474px|left]]
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'''''
[[File:Node-red-debug-new.png|border|right|class=tlt-border|534x534px|right]]


[[File:XML data Mbus.png|border|class=tlt-border|304x304px]]
'''Usage syntax''':


[[File:M-bus topology TRBroker.png|border|750x750px|class=tlt-border]]
gsmctl <span style="color:blue;">-S -l</span>, <span style="color:blue;">--sms --list</span> <span style="color:purple;"><TYPE></span>


'''Example''': printing the list of all new (unread) SMS messages


[[File:MQTT broker data to server config.png|border|class=tlt-border|1094x1094px]]
root@Teltonika:~# gsmctl <span style="color:blue;">-S -l</span> <span style="color:purple;">new</span>
<span style="color:red;">Index: 19
Date: 2018-08-03 08:26:36
Sender: +37061111111
Text: status
Status: new</span>


'''Possible responses''':


[[File:Mbus MQTT Broker.png|border|class=tlt-border|954x954px]]
*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'')




[[File:Mbus BIN data type.png|border|class=tlt-border|854x854px]]
===Print SMS memory usage===
----
 
To check the SMS memory usage, use '''''-S -t''''' or '''''--sms --total''''' options.
 
'''Usage syntax''':
 
gsmctl <span style="color:blue;">-S -t</span>, <span style="color:blue;">--sms --total</span>
 
'''Example''': checking the SMS memory usage
 
root@Teltonika:~# gsmctl <span style="color:blue;">-S -t</span>
<span style="color:red;">Used: 28
Total: 50 </span>
 
'''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 <span style="color:blue;">-S -d</span>, <span style="color:blue;">--sms --delete</span> <span style="color:purple;"><INDEX></span>
 
'''Example''': deleting the first SMS message
 
root@Teltonika:~# gsmctl <span style="color:blue;">-S -d</span> <span style="color:purple;">1</span>
<span style="color:red;">OK</span>
 
'''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 <span style="color:blue;">-S -s</span>, <span style="color:blue;">--sms --send</span> <span style="color:purple;">"<NUMBER> <TEXT>"</span>
 
'''Example''': sending a "Hello" message to the number +37011111111
 
root@Teltonika:~# gsmctl <span style="color:blue;">-S -s</span> <span style="color:purple;">"0037011111111 Hello"</span>
<span style="color:red;"></span>
 
'''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
 
<b>Note</b>: From FW version <i>R_00.07.03</i> this argument has been removed.
 
To send a base64 SMS message, use '''''-S -b''''' or '''''--sms --send-b64''''' options
 
'''Usage syntax''':
 
gsmctl <span style="color:blue;">-S -b,</span><span style="color:blue;">--sms --send-b64</span> <span style="color:purple;"><NUMBER></span>
 
'''Example''':
 
root@Teltonika:~# gsmctl <span style="color:blue;">-S -b</span> <span style="color:purple;">+37061234567</span>
<span style="color:red;"></span>
 
'''Possible responses''':
 
*If response in terminal "OK", SMS was sent successfully.
 
 
===List available options===
----
Using '''''-h''''' or '''''--help''''' options prints of all available ''gsmctl'' options with descriptions and usage syntax examples.
 
'''Usage syntax''':
 
gsmctl <span style="color:blue;">-h</span>, <span style="color:blue;">--help</span>
 
'''Example''': printing a list of available ''gsmctl'' options
 
root@Teltonika:~# gsmctl <span style="color:blue;">-h</span>
<span style="color:red;">usage: gsmctl OPTIONS
  -p, --ip <INTERFACE>          Get IP of logical interface
  -e, --bsent <INTERFACE>      Get number of bytes sent
  -r, --brecv <INTERFACE>      Get number of bytes recieved</span>
  ...
'''Possible responses''':
 
*a list of options that can be used with ''gsmctl''
 
 
===Print gsmctl version===
----
To find out the current ''gsmctl'' version, use '''''-v''''' or '''''--version''''' options.


[[File:MQTT broker node-RED.png|border|center|class=tlt-border|514x514px]]
'''Usage syntax''':
[[File:Node-red-debug-new.png|border|left|class=tlt-border|474x474px|left]]</th>
   


gsmctl <span style="color:blue;">-v</span>, <span style="color:blue;">--version</span>


'''Example''': obtaining the ''gsmctl'' version


root@Teltonika:~# gsmctl <span style="color:blue;">-v</span>
<span style="color:red;">GSMCTL version: 0.2b</span>


'''Possible responses''':


*a string type output indicating the ''gsmctl'' version


==Auxiliary options==


[[File:Node-red-mqtt-in-TRBroker.png|border|class=tlt-border|1100x1100px]]
==See also==


[[File:MQTT BIN data.png|border|class=tlt-border|304x304px]]
*[[AT Commands]]

Revision as of 16:14, 10 February 2023

The information in this page is shown in accordance with firmware versions {{{fw_version}}}.

Introduction

gsmctl is an SSH command used to communicate with a {{{name}}} 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 {{{name}}} routers.

Prerequisites

gsmctl commands can be used on all {{{name}}} routers via any type of command line interface (CLI) supported by the router. So all you need is:

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 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

-P


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 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
  • CDMA - CDMA mode
  • EVDO - EV-DO/eHRPD mode
  • CDMA-EVDO - CDMA/EV-DO(eHRPD) mode

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
+QNWINFO: "FDD LTE",46001,"LTE BAND 3",1650

Possible responses:

  • response syntax: +QNWINFO: <Act>,<oper>,<band>,<channel>
    Where:
    • <Act> - service mode
    • <oper> - operator number
    • <band> - frequency band used
    • <channel> - channel ID

Note: From FW version R_00.07.03 the values are returned in a different format. Example:

root@Teltonika:~# gsmctl -F
LTE | LTE_B3 | 24602

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

-b


Modem commands

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).

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 revision number


To obtain the modem's revision number (firmware version), use -y or --revision options.

Usage syntax:

gsmctl -y, --revision

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

-u


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 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 the

root@Teltonika:~# gsmctl -B
3

Possible responses:

  • an integer number representing the amount of PIN/PUK attempts left
  • N/A - returned when the SIM card is not inserted

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",
...

-U


-Y


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


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.


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
 -p, --ip <INTERFACE>          Get IP of logical interface
 -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


Print gsmctl version


To find out the current gsmctl version, use -v or --version options.

Usage syntax:

gsmctl -v, --version

Example: obtaining the gsmctl version

root@Teltonika:~# gsmctl -v
GSMCTL version: 0.2b

Possible responses:

  • a string type output indicating the gsmctl version

Auxiliary options

See also