Der klassische AT-Kommandosatz für Modems wurde seinerzeit nicht für die Nutzung mit GSM Geräten definiert. Hier sind die entsprechenden Erweiterungen aufgelistet, mit denen die mobilfunkspezifischen Aktionen ausgeführt werden können.
atd...; Eine Rufnummer wählen |
|
atd...; |
Baut eine Verbindung zu der angegebenen Nummer
auf. Gültige Zeichen für den Wählstring sind: 1 2 3 4 5 6
7 8 9 0 * # + A B C. Das Semikolon baut explizit eine Sprachverbindung
auf. |
|
atds; |
wie oben, wählt aber für ein
s von 1 bis 9 eine Telefonnummer aus den Telefonbuchspeichern 1
bis 9 |
|
atdl |
wählt die letzte gewählte Rufnummer noch
einmal |
at+cbc Batterieladestatus abfragen |
|
+cbc: a,b |
a ist der Batteriestatus (0
Batteriebetrieb, 1 Netzbetrieb), b gibt den Ladungszustand der
Batterie an. Verschiedene Hersteller liefern hier verschiedene
Interpretationen:
| Hersteller |
Werte für b |
| Siemens |
0,20,40,60,80,100 |
| Nokia |
30,50,70,90 |
|
at+cclk Datum/Uhrzeit abfragen und
einstellen |
|
at+cclk? |
Abfrage von Datum und Uhrzeit. |
|
at+cclk=time |
Setzen von Datum und Unrzeit. Das Format von
time ist:
"YY/MM/DD,hh:mm:ss±tz"
Dabei bedeutet:
| YY |
das aktuelle Kalenderjahr |
| MM |
der aktuelle Kalendermonat |
| DD |
der Tag im aktuellen Monat |
| hh |
die Stunden |
| mm |
die Minuten |
| ss |
die Sekunden |
| tz |
der Timezone-Shift gegen GMT in Viertelstunden |
|
at+cbst Auswahl des Datendienstes |
|
+cbst=? |
+CBST: (a1..ax),(b1..bx),(c1..cx) Abfrage der
implementierten Dienste. Es bedeuten hier:
| a |
|
| 0 |
automatische Erkennung |
| 1 |
300 bps (V.21) |
| 2 |
1200 bps (V.22) |
| 3 |
1200/75 bps (V.23) |
| 4 |
2400 bps (V.22bis) |
| 5 |
2400 bps (V.26ter) |
| 6 |
4800 bps (V.32) |
| 7 |
9600 bps (V.32) |
| 12 |
9600 bps (V.34) |
| 14 |
14400 bps (V.34) |
| 15 |
19200 bps (V.34) |
| 16 |
28800 bps (V.34) |
| 34 |
1200 bps (V.120) |
| 36 |
2400 bps (V.120) |
| 38 |
4800 bps (V.120) |
| 39 |
9600 bps (V.120) |
| 43 |
14400 bps (V.120) |
| 47 |
19200 bps (V.120) |
| 48 |
28800 bps (V.120) |
| 49 |
38400 bps (V.120) |
| 50 |
48000 bps (V.120) |
| 51 |
56000 bps (V.120) |
| 65 |
300 bps (V.110) |
| 66 |
1200 bps (V.110) |
| 68 |
2400 bps (V.110 or X.31 flag stuffing) |
| 70 |
4800 bps (V.110 or X.31 flag stuffing) |
| 71 |
9600 bps (V.110 or X.31 flag stuffing) |
| 75 |
14400 bps (V.110 or X.31 flag stuffing) |
| 79 |
19200 bps (V.110 or X.31 flag stuffing) |
| 80 |
28800 bps (V.110 or X.31 flag stuffing) |
| 81 |
38400 bps (V.110 or X.31 flag stuffing) |
| 82 |
48000 bps (V.110 or X.31 flag stuffing) |
| 83 |
56000 bps (V.110 or X.31 flag stuffing) |
| 115 |
56000 bps (bit transparent) |
| 116 |
64000 bps (bit transparent) |
|
|
+cbst=x |
Auswahl des zu verwendenden Datendienstes für den nächsten
Datananruf. |
at+cgmi Abfrage der
Herstellerinformation |
|
+CGMI: a |
Eine mögliche Antwort könnte +CGMI: SIEMENS sein.
Die Implementierung dieses Kommandos ist optional. |
at+cgmm Abfrage der Modellinformation |
|
+CGMM: a |
Eine mögliche Antwort könnte +CGMM:
S10 sein. Die Implementierung dieses Kommandos ist optional. |
at+cgmr Abfrage der
Revisionsinformation |
|
+CGMR: a |
Eine mögliche Antwort könnte +CGMR:
08 sein. Die Implementierung dieses Kommandos ist optional. Bei
SIEMENS-Geräten kann optional auch +GMR verwendet werden. |
at+cgsn Abfrage der Seriennummer |
|
+CGSN: a |
Viele Telefone (darunter das S10) geben hier die IMEI
zurück, was aber so nicht zwingend vorgeschrieben ist. Eine mögliche
Antwort könnte +CGSN: 447968513455429 sein. Die
Implementierung dieses Kommandos ist optional. Bei SIEMENS-Geräten kann
optional auch +GSN verwendet werden. |
at+chup Auflegen |
|
at+chup |
Trennt eine bestehende Verbindung |
at+cimi IMSI des eingelegten SIM
abfragen |
|
at+cimi |
gibt die IMSI des ins Telefon eingelegten SIM aus:
at+cimi
2926202419208651
OK |
at+clck Setzen von Sperren |
|
at+clck=? |
Ergibt eine Liste mit unterstützten Sperrmöglichkeiten. Die
Syntax ist sowas von krank, wer sowas braucht, dem schicke ich gerne die
entsprechende GSM-Spec, das steht genau drin, wies geht. |
at+cmgf Setzen/Abfragen des
Nachrichtenformats |
|
at+cmgf? |
Zeigt die aktuelle Einstellung an, CMGF=0 bedeutet
PDU-Mode, CMGF=1 bedeutet Textmode. |
|
at+cmgf=? |
Zeigt an, ob nur PDU-Mode (0) oder auch Textmode
(0,1) zur Verfügung steht. |
|
at+cmgf=x |
Setzt die zu verwendende Einstellung |
at+cmgl Auslesen von Kurznachrichten
(PDU-Mode) |
|
at+cmgl=? |
Zeigt an, welche Optionen zum Auslesen von Kurznachrichten zur
Verfügung stehen. Es bedeuten:
| 0 |
REC UNREAD |
empfangen und ungelesen |
| 1 |
REC READ |
empfangen und bereits gelesen |
| 2 |
STO UNSENT |
gespeichert und noch nicht versandt |
| 3 |
STO SENT |
gespeichert und bereits versendet |
| 4 |
ALL |
alle Nachrichten |
|
|
at+cmgl=x |
Auslesen der mit x angegebenen Menge von Kurznachrichten aus dem
Gerät. Die Nachrichten werden im folgenden Format ausgegeben:
+CMGL: index, status, length
.......PDU....... |
at+cmgs Versenden einer Kurznachricht
(PDU-Mode) |
|
at+cmgs=x |
Versendet eine Kurznachricht. Die Daten der Kurznachricht müssen im
PDU-Format übergeben werden, was ein wenig Gehirnschmalz kostet.
x gibt die Länge der übergebenen Daten der PDU an,
wobei die (optionale) Angabe des zu verwendenden SMSC nicht mitgezählt
wird. Wers wirklich tun will, der besuche den entsprechenden
Exkurs.
Nach abschicken des Kommandos antwortet das Telefon mit einem Prompt '> ',
nach dem die PDU an das Telefon übergeben werden kann. Die PDU wird mit
CTRL-Z abgeschlossen. |
at+cmms den Datenkanal für weitere
Nachrichten offenhalten |
|
at+cmms=? |
Zeigt an, welche Modi von MMS unterstützt werden. Dabei bedeutet:
0 Feature ist ausgeschaltet, 1 MMS für den
nächsten Sendevorgang einschalten, dann wieder ausschalten,
2 MMS dauernd einschalten. Das Einschalten bewirkt, dass die
Datenverbindung in den SMS-Relay-Layer etwa 1-5sec. nach Eintreffen der letzten
Sendebestätigung offengehalten wird. |
|
at+cmms=x |
Schaltet das MMS-Feature auf Wert x. |
|
at+cmms? |
Zeigt den Status des MMS an. |
at+cnmi Konfiguration des
Nachrichtenroutings/der Anzeige von neuen Nachrichten |
|
at+cnmi? |
zeigt die aktuellen Einstellungen an. |
|
at+cnmi=
mode,mt,bm,ds,bfr |
Uhh. Ich hasse dieses Kommando. Also:
mode gibt an, wie unverlangt eintreffende Benachrichtigungen
über Nachrichtenereignisse behandelt werden sollen:
| 0 |
immer im TA puffern |
| 1 |
zum TE senden, wenn der TA-TE-Link frei ist, andernfalls verwerfen |
| 2 |
im TA puffern, wenn der TA-TE-Link gerade benutzt wird, nach freiwerden des
Links zum TE senden |
| 3 |
immer zum TE senden |
mt gibt an, wie beim Empfang von Kurznachrichten verfahren
werden soll. Hierbei ist zu beachten, daß das SM-Handling wesentlich von
der verwendeten Kodierung abhängt:
| 0 |
versuchen, die Nachricht zu speichern, aber keine Empfangshinweise
erzeugen |
| 1 |
versuchen, die Nachricht zu speichern, Empfangshinweise bei erfolgreicher
Speicherung erzeugen |
| 2 |
alle 'Class 2'-Nachrichten werden wie bei 1 behandelt, alle anderen
Nachrichten werden direkt zum TE geschickt |
| 3 |
alle 'Class 3'-Nachrichten werden direkt zum TE geschickt, alle anderen
werden wie bei 1 behandelt |
bm gibt an, wie bei eintreffenden CellBroadcast-Nachrichten
reagiert werden soll:
| 0 |
keine Empfangshinweise erzeugen |
| 1 |
versuchen, die CBM zu speichern, Empfangshinweise bei erfolgreicher
Speicherung erzeugen |
| 2 |
neue Nachrichten werden direkt zum TE geschickt |
| 3 |
neue 'Class 3'-Nachrichten werden direkt zum TE geschickt, alle anderen
Nachrichten werden wie bei 1 behandelt. |
ds gibt an, was mit eintreffenden SMS-Statusnachrichten
geschehen soll:
| 0 |
es werden keine Statusnachrichten zum TE geschickt |
| 1 |
SMS-Statusnachrichten werden zum TE geschickt |
| 2 |
SMS-Statusnachrichten werden im ME/TA gespeichert, im Erfolgsfall wird eine
Nachricht zum TE geschickt |
bfr gibt an, was mit den im TA gepufferten Nachrichten
geschehen soll, wenn mode auf 1,2 oder 3 gesetzt wird:
| 0 |
alle Nachrichten im Puffer zum TE senden |
| 1 |
den Puffer löschen |
|
at+cops Ein- Aus- und Herumbuchen in allen
erreichbaren Netzen |
|
at+cops? |
zeigt das gerade gewählte Netz an |
| at+cops=? |
zeigt eine Liste der aktuell verfügbaren Netze an, etwa so:
+COPS: (2,"D2
PRIVAT",,26202),(3,"D1-TELEKOM",,26201),,(0,1,3,4)
,(0,2),
wobei die Zahl vor dem Betreibernamen den Verfügbarkeitsstatus angibt (0:
unbekannt, 1: verfügbar, 2: eingebucht, 3: verboten) |
| at+cops=m,f,o |
versucht eine Aktion abhängig von mode
| 0 |
automatische Netzwahl, kein weiterer Parameter notwendig |
| 1 |
manuelle Netzwahl, format und network
müssen angegeben werden |
| 2 |
ausbuchen (vom S10 nicht unterstützt) |
| 3 |
festlegen von format für die Ausgabe durch
at+cops? |
| 4 |
eine Kombination aus 1 und 0: erst wird manuelles Einbuchen in
network versucht, falls das nicht funktioniert, wird auf
automatische Netzwahl umgeschaltet. format und
network müssen angegeben werden |
format gibt an, in welchem Format network
geliefert wird und kann die folgenden Werte annehmen:
| 0 |
Zeichenkette, lange Form, etwa "D2 PRIVAT" |
| 1 |
Zeichenkette, kurze Form (wird nicht unterstützt) |
| 2 |
numerisches Format, etwa 26202 |
|
at+cpbr Lesen der
Telefonbucheinträge |
|
at+cpbr=? |
gibt die möglichen Parameter und damit auch die
Konfiguration des gewählten Telefonbuchs aus:
at+cpbr=?
+CPBR: (1-100),20,18
bedeutet: 100 Einträge im Telefonbuch, die Nummer
darf 20 Stellen lang sein, der assoziierte Name darf
18 Stellen lang sein. |
|
at+cpbr=x |
gibt den Telefonbucheintrag mit der Nummer x
aus. Zum Format der Ausgabe siehe at+cpbw.
at+cpbr=1
+CPBR: 1,"+491721212",145,"D2
Kundenbetreuung" |
at+cpbs Auswählen eines
Telefonbuchspeichers |
|
at+cpbs=? |
Abfrage der möglichen Telefonbuchspeicher. Es
bedeuten:
| "FD" |
feste Rufnummern im SIM (fixed dialling numbers) |
| "LD" |
Wahlwiederholspeic her (last dialled numbers) |
| "ME" |
Rufnummernspeicher im Telefon (mobile equipment phonebook) |
| "SM" |
Rufnummernspeicher im SIM |
| "MT" |
Kombination aus "ME" und
"SM" |
| "TA" |
Rufnummernspeicher im TA |
| "OW" |
Liste der eigenen Rufnummern |
|
|
at+cpbs=a |
a ist einer der oben angegebenen
Telefonbuchspeicher, der hiermit als aktuell zu benutzender Telefonbuchspeicher
ausgewählt wird. |
|
at+cpbs?
+CPBS: a,b,c |
Fragt den aktuellen Zustand ab. a ist der
ausgewählte Telefonbuchspeicher, b die Anzahl der
benutzten Einträge und c die Gesamtanzahl der
Speicherplätze im ausgewählten Speicher.
b und c werden im S10 nicht
unterstützt. |
at+cpbw Schreiben der
Telefonbucheinträge |
|
at+cpbw=? |
gibt die möglichen Parameter und damit auch die
Konfiguration des gewählten Telefonbuchs aus:
AT+CPBW=?
+CPBW: (1-100),20,(128-255),18
bedeutet: 100 mögliche Einträge, die Nummer darf
20 Zeichen lang sein, als 'type of address' wird ein Wert von
128-255 akzeptiert, der Name darf 18 Zeichen
lang sein. Mögliche, sinnvolle Werte für den 'type of address' (nach
GSM 04.08) sind:
| 145 |
'international number', also alles, was mit '+...' beginnt |
| 129 |
'unknown number format', also alles, was nicht mit '+...' beginnt. |
|
|
at+cpbw=... |
schreibt einen Telefonbucheintrag im oben angegebenen Format
at+cpbw=1,"+491721212",145,"D2 Kundenbetreuung
OK |
at+crc 'Cellular result codes' (erweitertes
Format der RING-Meldung) Ein/Ausschalten |
|
at+crc? |
Fragt den aktuellen Stand ab |
|
at+crc=(0,1) |
Schaltet die 'Cellular result codes' ein oder aus. Wie
üblich: 0 aus, 1 ein. Das erwartet auf den
interessierten Beobachter an Stelle eines simplen RING:
| +CRING: ASYNC |
Daten asynchron transparent |
| +CRING: SYNC |
Daten synchron transparent |
| +CRING: REL ASYNC |
Daten asynchron non-transparent |
| +CRING: REL SYNC |
Daten synchron non-transparent |
| +CRING: FAX |
Fax |
| +CRING: VOICE |
Sprachanruf |
| +CRING: VOICE/XXX |
Daten nach Sprache, XXX ist eine der 4 Datenkennungen (BS81 nach GSM
02.02) |
| +CRING: ALT VOICE/XXX |
Abwechselnd Daten und Sprache, Sprache zuerst (BS61 nach GSM 02.02) |
| +CRING: ALT XXX/VOICE |
Abwechselnd Daten und Sprache, Daten zuerst (BS61 nach GSM 02.02) |
| +CRING: ALT VOICE/FAX |
Abwechselnd Fax und Sprache, Sprache zuerst (TS61 nach GSM 02.02) |
| +CRING: ALT FAX/VOICE |
Abwechselnd Fax und Sprache, Fax zuerst (TS61 nach GSM 02.02) |
|
at+creg Abfrage des Netzwerkstatus des
Telefons |
|
at+creg=n |
n T> erzeugt einen der nachgenannten Effekte:
| 0 |
keine Meldungen bei Änderung des Netzwerkstatus oder der Einbuchung
(default) |
| 1 |
Meldung bei Änderung des Netzwerkstatus in der Form +CREG:
x |
| 2 |
Meldung bei Änderung des Netzwerkstatus oder der aktuell
gewählten Zelle in der Form +CREG: x,la,ci
S10 : nicht implementiert |
|
| at+creg? |
gibt den Wert von n und den aktuellen Netzwerkstatus sowie bei Status 1
oder 5 Informationen zur aktuell gewählten Zelle aus, etwa
at+creg? +CREG: 0,1,02D0,416F bedeutet: Meldungen werden nicht
ausgegeben, Status ist 1, eingebucht im Heimatnetz in LA 02D0, dort aktuell
gewählte Zelle 416F. Als Status wird zurückgemeldet:
| 0 |
nicht eingebucht, keine Netzsuche |
| 1 |
eingebucht, Heimatnetz |
| 2 |
nicht eingebucht, Netzsuche |
| 3 |
nicht eingebucht, Einbuchung abgelehnt |
| 4 |
Status unbekannt |
| 5 |
eingebucht, Fremdnetz |
|
at+cscb Empfangen von
CellBroadcast-Nachrichten |
|
at+cscb? |
gibt den momentanen Empfangsstatus für CB aus |
|
at+cscb=mode,id,cs |
setzt die Empfangsparameter für CB
mode: die Nachrichten, auf die die in id und
cs angegebenen Werte zutreffen, werden empfangen (mode: 0) oder
nicht empfangen (mode: 1)
id: ein oder mehrere Bereiche von CB-Message-IDs
cs: ein oder mehrere Bereiche von CB-Codierungsschemata
Beispiele:
at+cscb=1,"",""empfängt alle
eintreffenden CB-Nachrichten
at+cscb=0,"50,100","0-99" empfängt die
Kanäle 50 und 100
at+cscb=1,"1-99",""emp fängt alle
CB-Nachrichten der Kanäle 0 und 100-999 |
|
|
Die eintreffenden Nachrichten erscheinen normalerweise leider
nicht im Textmode, also als lesbarer Klartext, sondern im PDU-Mode, also in
genau der Form, in der sie zwischen BTS und MS übertragen werden. Das sind
88 Byte, davon sind 6 Byte Headerinformationen und 82 Byte Nutzdaten. Etwa so:
+CBM: 88
431302580011CD246BE69AB97....
Der Header enthält folgende Informationen:
| Byte 1-2 |
die 'Message serial number', darin versteckt der 'Geographical scope
indicator', der 'Message code' und die 'Update number' |
| Byte 3-4 |
'Message identifier', der CB-Kanal |
| Byte 5 |
das 'Data Coding Scheme' |
| Byte 6 |
der 'Page Parameter' |
Und damit das nicht so einfach ist, sind die maximal 93 7-Bit-Zeichen pro Seite
einer CellBroadcast-Nachricht in die restlichen 82 Byte verpackt. Urks. Etwa
so:
aus 8*7Bit
| 6 |
5 |
4 |
3 |
2 |
1 |
0 |
| 6 |
5 |
4 |
3 |
2 |
1 |
0 |
| 6 |
5 |
4 |
3 |
2 |
1 |
0 |
| 6 |
5 |
4 |
3 |
2 |
1 |
0 |
| 6 |
5 |
4 |
3 |
2 |
1 |
0 |
| 6 |
5 |
4 |
3 |
2 |
1 |
0 |
| 6 |
5 |
4 |
3 |
2 |
1 |
0 |
| 6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
werden 7*8Bit
| 0 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
| 1 |
0 |
6 |
5 |
4 |
3 |
2 |
1 |
| 2 |
1 |
0 |
6 |
5 |
4 |
3 |
2 |
| 3 |
2 |
1 |
0 |
6 |
5 |
4 |
3 |
| 4 |
3 |
2 |
1 |
0 |
6 |
5 |
4 |
| 5 |
4 |
3 |
2 |
1 |
0 |
6 |
5 |
| 6 |
5 |
4 |
3 |
2 |
1 |
0 |
6 |
|
Nicht benutzte Bits im letzten Byte sollten auf '0' gesetzt werden. Und wers
genauer wissen will, der kann in TS GSM 03.41 (Technical realization of Short
Message Service Cell Broadcast (SMSCB)) und TS GSM 03.38 (Alphabets and
language-specific information) genaueres dazu finden. |
at+cscs Abfrage/Setzen des verwendeten
Zeichensatzes |
|
+cscs=? |
Abfragen der vom Endgerät unterstützten Zeichensätze. Es
bedeuten:
"" "" "" character set "8859-H"
character set
| GSM |
der in TS GSM 03.38/6.2.1 definierte 7Bit-Zeichensatz. Die Spezifikation
bemerkt zu dieser Einstellung: this setting causes easily software flow
control (XON/XOFF) problems. Dem wäre nichts
hinzuzufügen... |
| HEX |
nur Hexadezimale Zeichen |
| IRA |
das 'international reference alphabet' gem. ITU-T T.50 |
| PCCPxxx |
PC-Zeichensatz aus Codepage xxx |
| PCDN |
PC-Zeichensatz Dänisch/Norwegisch |
| UCS2 |
Unicode gem. ISO/IEC10646 |
| 8859-x |
ISO 8859 Latin x (x : 1..6) |
| 8859-C |
ISO 8859 Latin/Cyrillic |
| 8859-A |
ISO 8859 Latin/Arabic |
| 8859-G |
ISO 8859 Latin/Greek |
| 8859-H |
ISO 8859 Latin/Hebrew |
Das hier ist der oben erwähnte 7bit-Zeichensatz, der gemeinhin als Default
verwendet wird:

|
at+csq Signal Quality abfragen |
|
+csq: a,b |
a ist der momentane Empfangspegel in
folgenden Stufen:
| 0 |
-113dBm oder schlechter |
| 1 |
-111dBm |
| 2...30 |
-109dBm bis -53dBm |
| 31 |
-51dBm oder besser |
| 99 |
nicht lesbar / unbekannt |
b ist RXQUAL wie in GSM 05.08 (hier
ist die Umrechnungstabelle), wobei RXQUAL natürlich nur während
einer Verbindung gelesen werden kann. Im idle mode gibt das Telefon 99
zurück.
Auch hier ist der Bereich der Interpretation der TS GSM weit und unerwartet:
| Hersteller |
Werte für a |
Werte gem. GSM 05.08 |
| Siemens |
0 - 31 |
JA |
| Ericsson |
0 - 31 |
JA |
| Nokia |
0,8,16,24,31 |
NEIN |
|
at+cvib Vibrator ein/ausschalten oder
abfragen |
|
at+cvib? |
Zeigt an, ab der Vibrator aktuell ein- oder ausgeschaltet ist |
|
at+cvib=a |
Schaltet den Vibrator ein (a := 1) oder aus (a :=
0) |
at+gcap Abfrage der implementierten
Features |
|
+gcap: a |
bei reinen GSM-Geräten wenig nützlich, da nur +GCAP:
+CGSM implementiert. |
Quelle: