4 AT command syntax
27.0073GPPAT command set for User Equipment (UE)Release 18TS
4.0 General
This clause summarizes general aspects on AT commands and issues related to them.
TE software implementors must take into account that future versions of this specification may include additional parameters beyond what is expected in any (final or intermediate) response to an AT set command, read command or test command, and beyond what is expected in any unsolicited result code. Implementations must therefore analyse all parameters provided from the TA and discard (ignore) any parameters received following the parameters expected by the TE software.
For further information refer ITU‑T Recommendation V.250 [14].
In the tables for the commands syntaxes, the possible response(s) are outlined as follows:
– the responses from ITU‑T Recommendation V.250 [14] (like OK and ERROR) are normally not shown; and
– the final response +CME ERROR is shown when a final result code in clause 9.2 can be provided.
In certain implementations, AT commands are used as an internal interface within the physical handset, e.g. between the application and the radio interface layer 3 stack implemented on different processors. Certain AT commands transfer information in the clear that can be regarded as sensitive with regards to security or privacy. Care must be exercised in AT commands that:
– transfer passwords (e.g. +CLCK, +CPWD or +CPBS);
– transfer identities (e.g. IMSI) or details of a call (e.g. +COLP);
– transfer the current location of the phone (e.g. +CMOLR);
– reveal the IMEI (e.g. +CGSN);
– allow the TE to take unintentionally control over the SIM-MT interface (e.g. +CSIM);
– enable/disable access to commands protected by security mechanism (e.g. +CSCC); or
– exchange security related parameters and keys with the UICC (e.g. +CEAP and +CERP).
The above mentioned AT commands and parameters are examples to illustrate the concerns and is not meant to be a comprehensive list.
4.1 Command line
See figure 2 for general structure of a command line. Standardized basic commands are found only in ITU‑T Recommendation V.250 [14]. The commands in this specification use syntax rules of extended commands. Every extended command has a test command (trailing =?) to test the existence of the command and to give information about the type of its subparameters. Parameter type commands also have a read command (trailing ?) to check the current values of subparameters. Action type commands do not store the values of any of their possible subparameters, and therefore do not have a read command.
Figure 2: Basic structure of a command line
If verbose responses are enabled with command V1 and all commands in a command line has been performed successfully, result code <CR><LF>OK<CR><LF> is sent from the TA to the TE. If numeric responses are enabled with command V0, result code 0<CR> is sent instead.
If verbose responses are enabled with command V1 and subparameter values of a command are not accepted by the TA (or command itself is invalid, or command cannot be performed for some reason), result code <CR><LF>ERROR<CR><LF> is sent to the TE and no subsequent commands in the command line are processed. If numeric responses are enabled with command V0, result code 4<CR> is sent instead. ERROR (or 4) response may be replaced by +CME ERROR: <err> (refer clause 9) when command was not processed due to an error related to MT operation.
4.2 Information responses and result codes
The TA response for the example command line of figure 2 could be as shown in figure 3. Here, verbose response format is enabled with command V1. If numeric format V0 would have been used, <CR><LF> headers of information responses would have been left out and final result code changed to 0<CR>.
Figure 3: Response to a command line
So called intermediate result codes inform about progress of TA operation (e.g. connection establishment CONNECT), and so called unsolicited result codes indicate occurrence of an event not directly associated with issuance of a command from TE (e.g. ring indication RING).
4.3 ITU‑T Recommendation V.250 [14] TE‑TA interface commands
Table 1 summarizes ITU‑T Recommendation V.250 [14] commands relating to command line and response formatting, and TA‑TE interface operation. All are applicable to terminals specified by the present document.
Table 1: V.250 commands relating to TE‑TA interface
Command |
Clause |
Impl. |
Used in the present document |
S3=[<value>] |
6.2.1 |
mand. |
command line termination character (mandatory default setting IRA 13) |
S4=[<value>] |
6.2.2 |
mand. |
response formatting character (recommended default IRA 10) |
S5=[<value>] |
6.2.3 |
mand. |
command line editing character (recommended default IRA 8) |
E[<value>] |
6.2.4 |
mand. |
command echo (recommended default 1 i.e. TA echoes commands back) |
Q[<value>] |
6.2.5 |
mand. |
result code suppression (recommended default 0 i.e. TA transmits result codes) |
V[<value>] |
6.2.6 |
mand. |
TA response format (recommended default 1 i.e. verbose format) |
X[<value>] |
6.2.7 |
mand. |
defines CONNECT result code format; values manufacturer specific |
&C[<value>] |
6.2.8 |
mand. |
determines how ITU‑T V.24 circuit 109 (or equivalent) relates to the detection of received line signal from remote end (recommended default 1 i.e. 109 operation relates to detection of received signal) |
&D[<value>] |
6.2.9 |
mand. |
determines how TA responds when ITU‑T V.24 circuit 108/2 (or equivalent) is changed from ON to OFF condition during online data state |
+IPR=[<value>] |
6.2.10 |
opt. |
fixed TE data rate (recommended default 0 i.e. automatic detection) |
+ICF=[<format>[,<parity>]] |
6.2.11 |
opt. |
TE‑TA character framing (recommended default 3,3 i.e. eight data bits, no parity, 1 stop bit) |
+IFC=[<by_te> [,<by_ta>]] |
6.2.12 |
opt. |
TE‑TA local flow control (recommended default 2,2 i.e. TE uses ITU‑T V.24 circuit 133 (or equivalent), and TA circuit 106 (or equivalent)) |
+ILRR=[<value>] |
6.2.13 |
opt. |
determines whether the used local TE‑TA data rate is informed using intermediate result code +ILRR: <rate> before going online data state after call answering or originating |