Changes

3,564 bytes added ,  14:47, 2 August 2023
no edit summary
Line 1: Line 1: −
'''AT commands''' ("AT" meaning 'attention') are instructions used to control a modem.
+
<p style="color:red">The information on this page is updated in accordance with the [https://wiki.teltonika-networks.com/view/FW_%26_SDK_Downloads'''00.07.4'''] firmware version .</p>
 
__TOC__
 
__TOC__
 
==Summary==
 
==Summary==
   −
The command set consists of a series of short text strings which can be combined to produce commands for operations such as dialing, managing SMS functions, and changing the parameters of the connection. Many of the commands that are used to control wired dial-up modems, such as ATD (Dial), ATA (Answer), ATH (Hook control) and ATO (Return to online data state), are also supported by GSM/GPRS modems and mobile phones. This section is an overview of some AT commands that can be used with RUT routers.
+
'''AT commands''' ("AT" meaning 'attention') are instructions used to control a modem. The command set consists of a series of short text strings which can be combined to produce commands for operations such as dialing, managing SMS functions, and changing the parameters of the connection. Many of the commands that are used to control wired dial-up modems, such as ATD (Dial), ATA (Answer), ATH (Hook control) and ATO (Return to online data state), are also supported by GSM/GPRS modems and mobile phones. This section is an overview of some AT commands that can be used with RUT routers.
    
==gsmctl commands==
 
==gsmctl commands==
Line 10: Line 10:     
===SSH===
 
===SSH===
 
+
----
 
To log in to a RUT router via SSH, download the free '''PuTTY''' app if you're using Windows; if you're using a Linux based OS, just use the Terminal app. In both cases you will need to know three things: the router's LAN IP address, user name and password. The default LAN IP address for all RUT routers is '''192.168.1.1'''; the default log in information is username: '''root'''; password: '''admin01''' (NOTE: the user name used for SSH connections (i.e., root) is not the same as the user name used to log in to the router's WebUI (i.e., admin)).
 
To log in to a RUT router via SSH, download the free '''PuTTY''' app if you're using Windows; if you're using a Linux based OS, just use the Terminal app. In both cases you will need to know three things: the router's LAN IP address, user name and password. The default LAN IP address for all RUT routers is '''192.168.1.1'''; the default log in information is username: '''root'''; password: '''admin01''' (NOTE: the user name used for SSH connections (i.e., root) is not the same as the user name used to log in to the router's WebUI (i.e., admin)).
   Line 22: Line 22:     
===Usage===
 
===Usage===
 +
----
 +
The syntax for a gsmctl command is '''gsmctl OPTIONS'''. A list possible '''gsmctl''' options is provided below:
 +
 +
  -e, --bsent <INTERFACE>      Get number of bytes sent
 +
  -r, --brecv <INTERFACE>      Get number of bytes recieved
 +
  -j, --connstate              Get mobile connection state
 +
  -P, --psstate                Get package domain service state
 +
  -g, --netstate                Get network link state
 +
  -C, --cellid                  Get cell id parameter
 +
  -o, --operator                Get name of operator used
 +
  -f, --opernum                Get operator number
 +
  -t, --conntype                Get data carrier type
 +
  -F  --network                Get network information
 +
  -K  --serving                Get serving cell information
 +
  -I  --neighbour              Get neighbour cell information
 +
  -v, --volte_state            VoLTE state status
 +
  -b, --band                    Print current band
 +
  -q, --signal                  Get signal levels
 +
'''modem commands:'''
 +
  -A, --at <cmd>                Execute AT command.
 +
  -i, --imei                    Get device IMEI
 +
  -a, --serial                  Get modem serial number
 +
  -J, --iccid                  Get SIM ICCID
 +
  -m, --model                  Get device model
 +
  -w, --manuf                  Get device manufacturer
 +
  -y, --firmware                Get device revision number
 +
  -x, --imsi                    Get IMSI
 +
  -z, --simstate                Get SIM card state
 +
  -u, --pinstate                Get PIN state
 +
  -H, --modemtime <1/2>        Get operator station time(1 - GMT, 2 - LOCAL)
 +
  -c, --temp                    Get module temperature in 0.1 degrees Celcius
 +
  -B, --pincount                Get pin/puk count
 +
  -E, --info                    Get modem info in json format
 +
  -U  --ussd <command>          The command allows control of the Unstructured Supplementary Service Data. (response saved in /tmp/ussd file)
 +
  -Y  --switch                  Switch sim card for modem
 +
  -Q, --reboot                  Reboot the modem
 +
'''sms managing options:'''
 +
  -S -r, --sms --read          <INDEX> Read SMS by index
 +
  -S -R, --sms --pdu_read      <INDEX> Read PDU by index
 +
  -S -l, --sms --list          <TYPE>  List SMS by type [all, read, new]
 +
  -S -t, --sms --total          Print SMS memory usage
 +
  -S -d, --sms --delete        <INDEX> Delete SMS by index
 +
  -S -Z, --sms --pdu_delete    <INDEX> Delete PDU by index
 +
  -S -s, --sms --send          "<NUMBER> <TEXT>"Send SMS. IMPORTANT! Number and text must be within quotes
 +
'''auxilary options:'''
 +
  -O, --modem <USB_ID>          Set MODEM by USB_ID(3-1, 1-1.4 etc.)
 +
  -N, --num  <MODEM_NUM>      Set MODEM by modem number(0 - 12)
 +
  -D, --debug                  Enable debug information
 +
 +
You can view this list via terminal by typing '''gsmctl -h''' or '''gsmctl --help'''.
   −
The syntax for a gsmctl command is ''gsmctl OPTIONS''. A list possible ''gsmctl'' options is provided below:
+
For example, try using ''gsmctl -q'' to get the current signal levels value in dBm. You can also combine options. For example, ''gsmctl -oqt'':
+
 
  -p, --ip <INTERFACE> Get IP of logical interface
+
[[File:Gsmctl q.png|border|center|class=tlt-border|457x228px]]
  -e, --bsent <INTERFACE> Get number of bytes sent
+
 
  -r, --brecv <INTERFACE> Get number of bytes recieved
+
Unlike '''gsmctl -q''', '''gsmctl -oqt''' returns three options: operator's name, signal levels, carrier, and operator type, as you can see in the example above.
  -j, --connstate Get 3G connection state
+
 
  -g, --netstate Get network link state
+
==AT command usage==
  -i, --imei Get device IMEI
+
 
  -J, --iccid Get SIM ICCID
+
To use a specific AT command via SSH, you can use the ''gsmctl -H''. After this your console will enter shell mode where you can then just type AT commands in their regular format. Or you can use ''gsmctl -A <AT_COMMAND>'' to execute AT commands one at a time. Continuing from the example above, lets say you want to find out the RSSI value. While there are quite a few commands that can be used to achieve this goal, lets use the '''AT+CSQ''' that is used when executing ''gsmctl -q'':
  -m, --model Get device model
+
 
  -w, --manuf Get device manufacturer
+
[[File:Gsmctl A.png|border|center|class=tlt-border|441x84px]]
  -a, --serial Get device serial number
  −
  -y, --revision Get device revision number
  −
  -x, --imsi Get IMSI
  −
  -z, --simstate Get SIM card state
  −
  -u, --pinstate Get PIN state
  −
  -q, --signal Get GSM signal level
  −
  -X, --rscp    Get WCDMA rscp level
  −
  -E, --ecio    Get WCDMA ec/io level
  −
  -W, --rsrp          Get LTE rsrp level
  −
  -Z, --sinr  Get LTE sinr level
  −
  -M, --rsrq Get LTE rsrq level
  −
  -C, --cellid         Get cell id parameter
  −
  -o, --operator Get name of operator used
  −
  -f, --opernum  Get operator number
  −
  -t, --conntype Get data carrier type
  −
  -c, --temp Get module temperature in 0.1 degrees Celcius
  −
  -B, --pincount Get pin/puk count
  −
  -F  --network         Get network information
  −
  -K  --serving         Get serving cell information
  −
  -I  --neighbour Get neighbour cell information
  −
  -D, --shutdown Shutdown the modem
  −
  -h, --help Prints this information
  −
  -v, --version  Print version
     −
sms managing options:
+
As you can see this time the command returns two values instead of one, and they don't directly represent the RSSI value as with ''gsmctl -q''. The reason for this is that AT+CSQ indicates the received signal strength '''<rssi>''' and the channel bit error rate '''<ber>''' and the numbers returned are not the direct values but rather the representation of the direct values.
  -S -r, --sms --read <INDEX> Read SMS by index
  −
  -S -l, --sms --list <TYPE> List SMS by type [all, read, new]
  −
  -S -t, --sms --total Print SMS memory usage
  −
  -S -d, --sms --delete <INDEX> Delete SMS by index
  −
  -S -s, --sms --send "<NUMBER> <TEXT>" Send SMS. IMPORTANT! Number and text must be within quotes
  −
  -S -b, --sms --send-b64 <NUMBER> Send SMS encoded in base64 from /tmp/.smstext
     −
  compatibility options:
+
  <rssi>
  -N, --he910 Support for Telit HE910-EUD
+
0              -113dBm or less
  -R, --em820w Support for Huawei EM820W
+
1              -111dBm
  -U, --me909u Support for Huawei LTE ME909u
+
2...30        -109dBm... -53dBm
  -V, --le910 Support for Telit LE910
+
31            -51dBm or greater
 +
99              Not known or not detectable
 +
100            -116dBm or less
 +
101            -115dBm
 +
102...190      -114dBm...-26dBm
 +
191            -25dBm or greater
 +
199            Not known or not detectable
 +
100~199        Extended to be used in TD-SCDMA indicating received signal code power (RSCP)
   −
  auxiliary options:
+
  <ber>           Channel bit error rate (in percent)
  -A, --at <COMMAND> Send AT command to device
+
0...7          As RXQUAL values in the table in 3GPP TS 45.008 subclause 8.2.4
  -H, --shell Enter shell mode
+
99              Not known or not detectable
  -k, --debug Enable debug information
  −
  -n, --nolog Do not log the command
     −
You can view this list via terminal by typing ''gsmctl -h'' or ''gsmctl --help''.
+
So the response above indicates that the RSSI value is '''-75 dBm''' (because that's what 19 represents since it falls in the 2..30 range) and the channel bit error rate is '''Not known or not detectable''' (because that's what 99 represents).
 +
----
 +
As another example, lets try to get network operator information. For this task you can use either '''gsmctl -o''' or '''AT+COPS?'''. For this example we'll use them both and analyze the differences:
   −
For example, try using ''gsmctl -q'' to get the current RSSI value in dBm. You can also combine options. For example, ''gsmctl -oqt'':
+
[[File:Gsmctl COPS.png|border|center|class=tlt-border|439x120px]]
   −
[[File:Gsmctl usage.png]]
+
As you can see, ''gsmctl'' returns a more user friendly value while ''AT+COPS?'' returns raw data. The response format of the ''AT+COPS?'' is '''+COPS: <mode>[,<format>[,<oper>][,<Act>]]'''. Explanations for individual values are provided below.
   −
Unlike ''gsmctl -q'', ''gsmctl -oqt'' returns three options: operator's name, signal quality level and carrier type, as you can see in the example above.
+
<oper>        Operator in format as per <mode>
   −
==AT command usage==
+
<mode>
 +
0              Automatic mode. <oper> field is ignored
 +
1              Manual operator selection. <oper> field shall be present and <Act> optionally
 +
2              Manually deregister from network
 +
3              Set only <format> (for AT+COPS? Read Command), and do not attempt registration/deregistration (<oper> and <Act> fields are ignored).
 +
                This value is invalid in the response of Read Command
 +
4              Manual/automatic selection. <oper> field shall be presented. If manual selection fails, automatic mode (<mode>=0) is entered
   −
To use a specific AT command via SSH, you can use the ''gsmctl -H''. After this your console will enter shell mode where you can then just type AT commands in their regular format. Or you can use ''gsmctl -A <AT_COMMAND>'' to execute AT commands one at a time. Continuing from the example above, lets say you want to find out the RSSI value. While there are quite a few commands that can be used to achieve this goal, lets use the '''AT+CSQ''' that is used when executing ''gsmctl -q'':
+
<format>
 +
0              Long format alphanumeric <oper> which can be up to 16 characters long
 +
1              Short format alphanumeric <oper>
 +
2              Numeric <oper>. GSM location area identification number
   −
  # gsmctl -A AT
+
  <Act>          Access technology selected.
 +
                Values 3, 4, 5 and 6 occur only in the response of Read Command while MS is in data service state and is not intended for the AT+COPS Write Command.
 +
0              GSM
 +
2              UTRAN
 +
3              GSM W/EGPRS
 +
4              UTRAN W/HSDPA
 +
5              UTRAN W/HSUPA
 +
6              UTRAN W/HSDPA and HSUPA
 +
7              E-UTRAN
 +
100            CDMA
   −
<rssi> 0
+
Instead of the operator's name, ''AT+COPS?'' returns operator's code, in this case, '''24602''', while gsmctl converts the code into the name of the operator (LT BITE GSM).
1
  −
2...30
  −
31
  −
99
  −
100
  −
101
  −
102...190
  −
191
  −
199
  −
100~199
  −
-113dBm or less
  −
-111dBm
  −
-109dBm... -53dBm
  −
-51dBm or greater
  −
Not known or not detectable
  −
-116dBm or less
  −
-115dBm
  −
-114dBm...-26dBm
  −
-25dBm or greater
  −
Not known or not detectable
  −
Extended to be used in TD-SCDMA indicating received signal code
  −
power (RSCP)
  −
<ber> Channel bit error rate (in percent)
  −
0...7
  −
As RXQUAL values in the table in 3GPP TS 45.008 subclause 8.2.4
  −
99
  −
Not known or not detectable
      
==External links==
 
==External links==
    
PuTTY download - '''https://www.putty.org/'''
 
PuTTY download - '''https://www.putty.org/'''
 +
[[Category:Modem control]]

Navigation menu