GSM AT Steuerkommandos

GSM AT Steuerkommandos 2018-01-02T18:55:52+00:00

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.

Call Control
ATD...;Eine Voicerufnummer wählen
AT+CHUPAuflegen
AT+CRC‚Cellular result codes‘ (erweitertes Format der RING-Meldung) Ein/Ausschalten
AT+CVIBden Vibrator aktivieren/deaktivieren/abfragen
Telefon- und Geräteinformation
AT+CBCBatterieladestatus abfragen
AT+CCLKUhrzeit abfragen und setzen
AT+CGMIAbfrage der Herstellerinformation
AT+CGMMAbfrage der Modellinformation
AT+CGMRAbfrage der Revisionsinformation
AT+CGSNAbfrage der Seriennummer
AT+CIMIAbfrage der IMSI des eingelegten SIM
AT+GCAPAbfrage der implementierten Features
Netzwerkzugriff
AT+COPSEin-, Aus- und Herumbuchen in allen erreichbaren Netzen
AT+CREGAbfrage des Netzwerkstatus des Telefons
AT+CSQSignal Quality und Empfangspegel abfragen
AT+CLCKSetzen, Löschen und Abfragen von Sperren
AT+CBSTDienstauswahl für den nächsten Datenanruf
Nachrichten
AT+CMGFAbfragen/Setzen des Formats für ein- und ausgehende Nachrichten
AT+CSCSAbfrage/Setzen des verwendeten Zeichensatzes
AT+CNMIKonfiguration des Nachrichtenroutings/der Anzeige von neuen Nachrichten
AT+CMGSVersenden einer Kurznachricht im PDU-Mode
AT+CMMSDen Datenkanal für weitere Nachrichten offenhalten
AT+CMGLAuslesen von Kurznachrichten
AT+CSCBEmpfangen von CellBroadcast-Nachrichten
Telefonbuch
AT+CPBSAuswählen eines Telefonbuchspeichers
AT+CPBRLesen der Telefonbucheinträge
AT+CPBWSchreiben der Telefonbucheinträge

 

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
atdlwählt die letzte gewählte Rufnummer noch einmal
at+cbc Batterieladestatus abfragen
+cbc: a,ba ist der Batteriestatus (0 Batteriebetrieb, 1 Netzbetrieb), b gibt den Ladungszustand der Batterie an. Verschiedene Hersteller liefern hier verschiedene Interpretationen:

HerstellerWerte für b
Siemens0,20,40,60,80,100
Nokia30,50,70,90
at+cclk Datum/Uhrzeit abfragen und einstellen
at+cclk?Abfrage von Datum und Uhrzeit.
at+cclk=timeSetzen von Datum und Unrzeit. Das Format von time ist:
"YY/MM/DD,hh:mm:ss±tz"
Dabei bedeutet:

YYdas aktuelle Kalenderjahr
MMder aktuelle Kalendermonat
DDder Tag im aktuellen Monat
hhdie Stunden
mmdie Minuten
ssdie Sekunden
tzder 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
0automatische Erkennung
1300 bps (V.21)
21200 bps (V.22)
31200/75 bps (V.23)
42400 bps (V.22bis)
52400 bps (V.26ter)
64800 bps (V.32)
79600 bps (V.32)
129600 bps (V.34)
1414400 bps (V.34)
1519200 bps (V.34)
1628800 bps (V.34)
341200 bps (V.120)
362400 bps (V.120)
384800 bps (V.120)
399600 bps (V.120)
4314400 bps (V.120)
4719200 bps (V.120)
4828800 bps (V.120)
4938400 bps (V.120)
5048000 bps (V.120)
5156000 bps (V.120)
65300 bps (V.110)
661200 bps (V.110)
682400 bps (V.110 or X.31 flag stuffing)
704800 bps (V.110 or X.31 flag stuffing)
719600 bps (V.110 or X.31 flag stuffing)
7514400 bps (V.110 or X.31 flag stuffing)
7919200 bps (V.110 or X.31 flag stuffing)
8028800 bps (V.110 or X.31 flag stuffing)
8138400 bps (V.110 or X.31 flag stuffing)
8248000 bps (V.110 or X.31 flag stuffing)
8356000 bps (V.110 or X.31 flag stuffing)
11556000 bps (bit transparent)
11664000 bps (bit transparent)
+cbst=xAuswahl des zu verwendenden Datendienstes für den nächsten Datananruf.
at+cgmi Abfrage der Herstellerinformation
+CGMI: aEine mögliche Antwort könnte +CGMI: SIEMENS sein. Die Implementierung dieses Kommandos ist optional.
at+cgmm Abfrage der Modellinformation
+CGMM: aEine mögliche Antwort könnte +CGMM: S10 sein. Die Implementierung dieses Kommandos ist optional.
at+cgmr Abfrage der Revisionsinformation
+CGMR: aEine 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: aViele 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+chupTrennt eine bestehende Verbindung
at+cimi IMSI des eingelegten SIM abfragen
at+cimigibt 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=xSetzt 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:

0REC UNREADempfangen und ungelesen
1REC READempfangen und bereits gelesen
2STO UNSENTgespeichert und noch nicht versandt
3STO SENTgespeichert und bereits versendet
4ALLalle Nachrichten
at+cmgl=xAuslesen 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=xVersendet 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=xSchaltet 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:

0immer im TA puffern
1zum TE senden, wenn der TA-TE-Link frei ist, andernfalls verwerfen
2im TA puffern, wenn der TA-TE-Link gerade benutzt wird, nach freiwerden des Links zum TE senden
3immer 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:

0versuchen, die Nachricht zu speichern, aber keine Empfangshinweise erzeugen
1versuchen, die Nachricht zu speichern, Empfangshinweise bei erfolgreicher Speicherung erzeugen
2alle ‚Class 2‘-Nachrichten werden wie bei 1 behandelt, alle anderen Nachrichten werden direkt zum TE geschickt
3alle ‚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:

0keine Empfangshinweise erzeugen
1versuchen, die CBM zu speichern, Empfangshinweise bei erfolgreicher Speicherung erzeugen
2neue Nachrichten werden direkt zum TE geschickt
3neue ‚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:

0es werden keine Statusnachrichten zum TE geschickt
1SMS-Statusnachrichten werden zum TE geschickt
2SMS-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:

0alle Nachrichten im Puffer zum TE senden
1den 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,oversucht eine Aktion abhängig von mode

0automatische Netzwahl, kein weiterer Parameter notwendig
1manuelle Netzwahl, format und network müssen angegeben werden
2ausbuchen (vom S10 nicht unterstützt)
3festlegen von format für die Ausgabe durch at+cops?
4eine 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:

0Zeichenkette, lange Form, etwa "D2 PRIVAT"
1Zeichenkette, kurze Form (wird nicht unterstützt)
2numerisches 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=xgibt 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=aa 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: ASYNCDaten asynchron transparent
+CRING: SYNCDaten synchron transparent
+CRING: REL ASYNCDaten asynchron non-transparent
+CRING: REL SYNCDaten synchron non-transparent
+CRING: FAXFax
+CRING: VOICESprachanruf
+CRING: VOICE/XXXDaten nach Sprache, XXX ist eine der 4 Datenkennungen (BS81 nach GSM 02.02)
+CRING: ALT VOICE/XXXAbwechselnd Daten und Sprache, Sprache zuerst (BS61 nach GSM 02.02)
+CRING: ALT XXX/VOICEAbwechselnd Daten und Sprache, Daten zuerst (BS61 nach GSM 02.02)
+CRING: ALT VOICE/FAXAbwechselnd Fax und Sprache, Sprache zuerst (TS61 nach GSM 02.02)
+CRING: ALT FAX/VOICEAbwechselnd Fax und Sprache, Fax zuerst (TS61 nach GSM 02.02)
at+creg Abfrage des Netzwerkstatus des Telefons
at+creg=nn T> erzeugt einen der nachgenannten Effekte:

0keine Meldungen bei Änderung des Netzwerkstatus oder der Einbuchung (default)
1Meldung bei Änderung des Netzwerkstatus in der Form +CREG: x
2Meldung 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:

0nicht eingebucht, keine Netzsuche
1eingebucht, Heimatnetz
2nicht eingebucht, Netzsuche
3nicht eingebucht, Einbuchung abgelehnt
4Status unbekannt
5eingebucht, Fremdnetz
at+cscb Empfangen von CellBroadcast-Nachrichten
at+cscb?gibt den momentanen Empfangsstatus für CB aus
at+cscb=mode,id,cssetzt 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-2die ‚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 5das ‚Data Coding Scheme‘
Byte 6der ‚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

6543210
6543210
6543210
6543210
6543210
6543210
6543210
6543210
werden 7*8Bit

06543210
10654321
21065432
32106543
43210654
54321065
65432106

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

GSMder 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…
HEXnur Hexadezimale Zeichen
IRAdas ‚international reference alphabet‘ gem. ITU-T T.50
PCCPxxxPC-Zeichensatz aus Codepage xxx
PCDNPC-Zeichensatz Dänisch/Norwegisch
UCS2Unicode gem. ISO/IEC10646
8859-xISO 8859 Latin x (x : 1..6)
8859-CISO 8859 Latin/Cyrillic
8859-AISO 8859 Latin/Arabic
8859-GISO 8859 Latin/Greek
8859-HISO 8859 Latin/Hebrew

Das hier ist der oben erwähnte 7bit-Zeichensatz, der gemeinhin als Default verwendet wird:
GSM 03.38 CharSet

at+csq Signal Quality abfragen
+csq: a,ba ist der momentane Empfangspegel in folgenden Stufen:

0-113dBm oder schlechter
1-111dBm
2…30-109dBm bis -53dBm
31-51dBm oder besser
99nicht 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:

HerstellerWerte für aWerte gem. GSM 05.08
Siemens0 – 31JA
Ericsson0 – 31JA
Nokia0,8,16,24,31NEIN
at+cvib Vibrator ein/ausschalten oder abfragen
at+cvib?Zeigt an, ab der Vibrator aktuell ein- oder ausgeschaltet ist
at+cvib=aSchaltet den Vibrator ein (a := 1) oder aus (a := 0)
at+gcap Abfrage der implementierten Features
+gcap: abei reinen GSM-Geräten wenig nützlich, da nur +GCAP: +CGSM implementiert.

Quelle: http://www.nobbi.com/atgsm.html