scmxx - Datenaustausch mit einem Siemens-Handy
scmxx [--device Gerätedatei]
[--baud Baudrate] [--quiet] [--verbose]
[--reset] {--info | --set-time | --mem-info |
--lock-info | --lock lock {--enable |
--disable} | --set-smsc --number {Nummer |
Name} }
scmxx [--device Gerätedatei]
[--baud Baudrate] [--quiet] [--verbose]
[--reset] [--out Datei] [--pipe Pipe]
{--remove | --send | --get} [--binary]
[--mem Speicher] [--slot Speicherplatz]
[Datei...]
scmxx [--device Gerätedatei]
[--baud Baudrate] [--quiet] [--verbose]
[--reset] [--out Datei] [--pipe Pipe]
[--pin PIN] {--remove | --send | --get}
[--pbook] [--mem Speicher] [--slot
Speicherplatz] [--text Text] [ --number
{Nummer | Name} ] [Datei...]
scmxx [--device Gerätedatei]
[--baud Baudrate] [--quiet] [--verbose]
[--reset] [--out Datei] [--pipe Pipe]
{--remove | --send | --get} [--sms]
[--mem Speicher] [--slot Speicherplatz]
[--text Text] [ --number {Nummer | Name}
] [--direct] [--flash] [--srr] [--unicode]
[Datei...]
scmxx [--help] [--version]
SCMxx kann bestimmte Dateien zu und von einem Siemens-Handy
übertragen und dort gespeicherte löschen. Die Daten werden aus
einer Datei oder von der Standardeingabe gelesen, geschrieben wird in eine
Datei oder auf die Standardausgabe. Kurznachrichten (SMS) können
direkt gesendet und empfangen werden, also ohne daß sie auf dem Handy
gespeichert werden. SCMxx wurde mit mehreren Handys von Siemens getestet
(nur S25 und später).
- --device
(-d)
- definiert eine Gerätedatei. Diese wird statt der in der
Umgebungsvariable SCMXX_TTY und dem einkompilierten Wert verwendet.
Für Linux-Systeme kann dies /dev/ttyS0 für eine serielle
Verbindung, /dev/ircomm0 für eine Infrarot-Verbingung und
/dev/rfcomm0 for eine Bluetooth-Verbingung sein. Wenn native
Bluetooth-Unterstützung einkompiliert wurde, können
zusätzlich die Formen bt://[xx:xx:xx:xx:xx:xx]:n oder
bluetooth://[xx:xx:xx:xx:xx:xx]:n benutzt werden, um eine
Bluetooth-Adresse xx:xx:xx:xx:xx:xx und einen Kanal n (Vorgabewert ist 1)
anzugeben. Die Angabe des Kanals is optional, in diesem Fall muss aber
auch der Doppelpunkt weggelassen werden.
- --baud (-b)
- definiert ein Baudrate, mit der zum Gerät verbunden wird. Die
gültigen Werte sind abhängig vom System, typische sind
jedoch 9600, 19200, 38400, 57600 oder 115200. Der Standardwert ist 19200.
Das S25 und die *35i arbeiten nur bei 19200, alle späteren Modelle
arbeiten auch bei voller serieller Geschwindigkeit. Infrarotverbindungen
können, abhängig vom IrDA-Modul, eine Ausnahme sein. Dies
übergeht die SCMXX_BAUD-Variable und den einkompilierten Wert.
- --out (-o)
- definiert eine zu benutzende Datei. Wenn man Binärdatein mit
"all" holt, werden die Speicherplatznummer und der Dateityp
angehängt. Wenn man sendet oder löscht, hat dieser Parameter
keine Wirkung aber die letzten Parameter sollten beim Senden
gültige Dateien sein. Die Standardausgabe muß explizit
mittel einem Bindestrich ('-') angegeben werden, sonst wird nichts auf
diese geschrieben. Wenn '-' angegeben wurde, wird nicht an diesen Wert,
auch beim holen von mehereren Dateien, angehängt.
- --pipe (-p)
- definiert eine Pipe zu einem anderen Programm. Wenn man mit
"all" Daten holt, wird jede Datei in eine eigene Pipe geschickt
(nur mit --binary und --sms).
- --quiet (-q)
- verringert die Menge der Ausgaben um 1
- --pin
- die Option kann man benutzen, wenn ein PIN-Code zum Zugriff erforderlich
ist
- --verbose
(-v)
- erhöht die Menge der Ausgaben um 1
- --reset
- versucht, das Handy zurückzusetzen, sodaß man wieder darauf
zugreifen kann. Es kann passieren, daß das Handy nicht mehr auf der
seriellen Schnittstelle antwortet, besonders nach einem vom Benutzer
unterbrochenen Dateitransfer. Dies sendet einfach blind ein paar besondere
Zeichen.
- --help (-h)
- gibt die Hilfeseite aus
- --version
- gibt die Version aus
- --remove
(-r)
- löscht einen Eintrag vom Handy Wenn --sms und --get mit angegeben
werden, holt und löscht dies. Wenn --sms und --send mit angegeben
werden, sendet und löscht dies.
- --get (-g)
- holt einen Eintrag und Speichert ihn in eine Datei Wenn --sms und --remove
mit angegeben werden, holt und löscht dies. Wenn --sms und --send
mit angegeben werden, holt und sendet dies.
- --send (-s)
- sendet eine Datei zum Handy Beim Senden vom Kurznachrichten könnte
die Option --direct ebenfalls von Interesse sein. Wenn --sms und --remove
mit angegeben werden, sendet und löscht dies. Wenn --sms und --get
mit angegeben werde, holt und sendet dies.
- --info (-i)
- sammelt Informationen vom Handy, --mem-info kann als Schalter benutzt
werden und eine komplexere Tabelle über die verfügbaren
Speicher auszugeben.
- --mem-info
- zeigt Informationen über verfügbare Speicher und deren
Speicherplätze und andere Informationen an. Es benutzt dasselbe
Format wie --mem=? und kann als Schalter für --info dienen, um die
kurze Speicherauflistung zu ersetzen.
- --lock-info
- zeigt den Status der Zugriffssperren (locks) an. Es kann als Schalter
für --info dienen, um die kurze Speicherauflistung zu
ersetzen.
- --lock
- wählt die ein-/auszuschaltende Sperre aus. Für einige
Sperren wird ein Passwort benötigt (siehe --pin).
- --enable
- einschalten z.B. einer Sperre
- --disable
- ausschalten z.B. einer Sperre
- --dial
- wählt eine Nummer (erforder --number). Das Programm beendet sich
entweder nach 10 Sekunden oder wenn der Anruf die angerufene Seite
erreicht hat.
- --hangup
- beendet alle, momentan aktiven Gespräche
- --set-time
- gleicht die Zeit des Handy mit der des Rechners ab. Der Einsatz eines
Programms wie ntpdate wird vor der Nutzung dieses Parameters
empfohlen.
- --set-smsc
- setzt eine neue SMSC nummber (erfordert --number)
- --binary
(-N)
- wählt den Binärdateiübertragungsmodus
- --pbook (-P)
- wählt den Telefonbuchübertragungsmodus
- --sms (-S)
- wählt den Kurznachrichtenübertragungsmodus
- --mem
- wählt den Speicher aus, der benutzt werden soll.
Speicherplatznummern hängen von dieser Wahl ab. Die Ausgabe von
--info zeigt unterstützte Speicher an. Wird diese Optioen nicht
benutzt, wird eine eventuell vorhandene Vorgabe benutzt. Es gibt den
besonderen Wert "?", der die selbe Ausgabe wie --mem-info hat,
nur daß es auf den gewählten Modus eingeschränkt
wird.
- --slot
- wählt die zu benutzende Speicherplatznummer aus. (siehe Ausgabe von
--mem-info oder --mem=?). Wird diese Optioen nicht benutzt, wird eine
eventuell vorhandene Vorgabe benutzt. Der besondere Wert "all"
definiert the alle verfügbaren Speicherplatznummern für den
gewählten Speicher und Modus (mit der Ausnahme von --sms mit
--send). Für den Kurznachrichtenübertragungsmodus gibt es
die besonderen Werte "read" (gelesen), "unread"
(ungelesen), "sent" (bereits gesendet) und "unsent"
(noch nicht gesendet). Die letzteren beiden können mit --sms und
--send benutzt werden. Für den Telefonbuchmodus gibt es
zusätzlich den Wert "last" (letzter). Wenn diese Option
nicht angegeben wird, versucht scmxx einen leeren Speicherplatz zu finden
(je nachdem kann dies auch länger dauern). Wenn ein Wert angegeben
wurde und meherere Datei gesendet werden, ist die angebene
Speicherplatznummer der Startpunkt für die Suche nach leeren
Speicherplätzen. Mehere, nicht-leere Speicherplätze zu
überscheiben wird noch nicht unterstützt, außer
für den Spezialfall "all" (alle).
- --text (-t)
- definiert den Inhalt einer Kurzmitteilung oder eine Telefonbucheintrags.
Bei Telefonbucheinträgen hängt die Länge vom
gewählten Telefonbuch ab (siehe Ausgabe von --mem-info oder
--mem=?).
- --number
(-n)
- definiert die Nummber beim Senden einer Kurznachricht oder die Nummer bei
einem Telefonbucheintrag. Die Nummer kann ein Prefix '+' für
internationale Nummern haben und ist normalerweise auf 20 Ziffern (ohne
das '+') limitiert, was genug sein sollte.
- --direct
- sendet/holt Kurznachrichten ohne sie auf dem Handy zu speichern. Dies ist
kein Standardwert, weil man für das Senden von Kurznachrichten
normalerweise Geld bezahlen muß. Beim direkten Holen werden
Kurznachrichten, die nicht vom Type SMS-DELIVER sind trotzdem auf dem
Handy gespeichert, da diese noch nicht dekodiert werden
können.
- --unicode
- sendet Kurznachrichten als UCS-2 (16bit-Unicode-Zeichensatz). Dieser
Parameter muß nicht angegeben werden, um Unicode-Kurznachrichten zu
dekodieren.
- --flash
- dies setzt das Class0-Bit im DCS-Feld, was beim Empfänger
normalerweise als "immediate display" (unmittelbar anzeigen)
interpretiert wird. Nicht alle Empfangsgeräte unterstützen
das. Man muß außerdem beachten, daß eine zweite
Kurznachricht mit dieser Einstellung eine vorherige ohne Nachfrage
überschreibt! Die Nutzung wirde deshalb nicht empfohlen.
- --srr
- dies setzt das Bit StatusReportRequest (Statusreport anfordern) im
pdutype-Feld der SMS-PDU. Es hängt von der SMSC ab, ob dieses Bit
beachtet wird. Bei manchen Providern kosten StatusReports extra.
- --sort
- sortiert die Kurznachrichten bei der Ausgabe. Mögliche
Sortiermethoden sind "type", "slot" und
"type,slot". "type" sortiert nach dem Nachrichtentyp
mit einer internen Rangfolge: erst die nicht unterstützten Typen,
dann SMS-SUBMIT, SMS-STATUS-REPORT und SMS-DELIVER. "slot"
sortiert nach dem Speicherplatz der Kurzmitteilung. "type,slot"
sortiert erst wie "type" und dann jeden Typen wie
"slot". Die Vorgabe ist keine Sortierung (Reihenfolge
hängt vom Handy ab).
- --pin
- ermöglichst die Nutzung einer PIN. Diese Option sollte nur benutzt
werden, wenn nach eine Fehlermeldung erscheint, die nach einer PIN oder
PUK verlangt. Für eine PIN ist dies die erwartete
"<PIN>", für eine PUK ist dies die erwartete
"<PUK>,<new PIN>". Der Wert wird nur ein einziges
Mal benutzt. Die Pin-Datei sollte, wenn möglich, stattdessen
benutzt werden (siehe unten).
- --system-charset
- definiert den Systemzeichensatz anstatt den Rückgabewert von
nl_langinfo(CODESET) zu nutzen. Das ist eine Behelf für Systeme,
die keine Unicode-Locales wie UTF-8 unterstützen oder wenn Daten
von einem anderen System mit einer anderen Locale als Eingabe benutzt
werden soll. Normalerweise wird diese Option nicht benötigt.
Die Ausgabe von Text (Telefonbuch und SMS) hängt von dem
Zeichensatz der gewählten Systemlocale ab, ebenso für die
Eingabe. Das hat den Vorteil der Lokalisation aber auch den Nachteil,
daß alle nicht von der Locale unterstützten Zeichen mit einer
Sequenz \XXXX eingegeben werden müssen, wobei X ein
Hexadezimalzeichen ist (z.B. \20ac für das Eurozeichen). Das ist der
16bit-Unicode-Wert. Die \XXXX-Ausgabe wird nur für Ausgaben benutzt,
die normalerweise auch wieder als Eingabe dienen können. Für
alle anderen Ausgabe wird ein Fragezeichen ('?') als Platzhalter genommen.
Mit einer UTF-8-locale kann man sicherstellen, daß alle Zeichen
konvertiert und angezeigt werden können. Das Zeichen für das
Zeilenende kann als das übliche \n eingegeben werden und '\'
muß sich selbst vorangestellt werden. In der bash kann dies sogar in
einem "\\\\" enden.
Es gibt die zusätzlichen Parameter --ignore-serial-bits
(serielle Bits ignorieren, Vorgabe) und --keep-serial-bits (serielle Bits
beibehalten). Diese sollte man nur probieren, wenn das Handy keine Antwort
zu geben scheint. Welchen Einstellung die richtig ist, hängt vom
Kabel und vom seriellen Port ab und kann nicht automatisch bestimmt
werden.
Wenn Timeouts beim ersten Kommando kommen, kann man
außerdem die Option --start-delay=<seconds>
(Anfangsverzögerung in Sekunden) probieren.
Eine weitere Option --device-timeout=<seconds>
(Gerätetimeout in Sekunden) gibt es für den Fall, daß
es das Handy nicht schafft, auf ein Kommando innerhalb von 10 Sekunden zu
antworten. Eigentlich sollte dies mehr als genug sein, aber man weiß
ja nie. Der minimal erlaubte Wert ist 1, der höchste von 25 bedeutet
"unendlich lange".
Die --pin Option sollte man mit Vorsicht benutzen. Diese Option
mitsamt Wert ist in der Prozesslist sichtbar.
- ~/.scmxx/cache.pb
- Diese Datei dient als Telefonbuch (für Nummer von
Empfänger/Sender) während der Ausgabe von Kurznachrichten
und als Alias für --number beim Senden von Kurznachrichten. Das
Format ist dasselbe wie eine Telefonbuchdatei (die Speicherplatznummern
sind nicht wichtig, müssen aber vorhanden sein).
- ~/.scmxx/config
- Diese Datei kann Option in der langen Form (aber ohne die --) enthalten.
Der Wert is von der Option durch ein '=' getrennt. Eine beliebige Anzahl
von Leerzeichen ist am Anfang der Zeile, vor und nach dem Trennzeichen
erlaubt. Ein '#' am Anfang der Zeile markiert diese Zeile als Kommentar.
Beispiele:
#eine andere Gerätedatei festlegen
device = /dev/ttyS0
#SMS immer als UCS-2 senden
unicode
- ~/.scmxx/pin
- Diese Datei wird als Alternative zur --pin Kommandozeilenoption benutzt.
Die Datei DARF NICHT gruppenlesbar/-schreibbar oder weltlesbar/-schreibbar
sein! Es MUSS auch eine reguläre Datei sein, kein SymLink. SCMxx
wird sonst die Nutzung der Datei verwehren. Wenn ein PUK-Wert vom
Gerät angefordert wird, muß ein zugehöriger PIN-Wert
ebenfalls definiert sein. Die einzig nötigen Formatelemente sind
'{', '=', ';' und '}'. Leerzeichen und Zeilenumbrüche werden
ignoriert. Die Datei hat das folgende Format:
sim 262031234567890 {
pin = 1234
puk = 12345678;
pin2 = 4321;
puk2 = 87654321;
}
device 350123456789012 {
type SIM {
pin = 0000;
puk = 0000;
}
}
"sim"-Sektionen benutzen die IMSI als Variable,
"device"-Sektionen benutzen die IMEI als Variable (siehe
Ausgabe von --info). Da die IMSI benötigt wird, können sie
hiermit nicht das Handy einschalten. Die "type"-Untersektion
in der device-Sektion hat folgende Variablen:
- SIM
- Gerätecode (Diebstahlsicherung)
- FSIM
- die zuallererst eingelegte SIM
- NET
- Netwerk-Personalisierung
- NETSUB
- Netwerk-Subset-Personalisierung
- SP
- Service-Provider-Personalisierung
- CORP
- Corporate-Personalisierung
Hendrik Sattler post@hendrik-sattler.de