Linux^2

Linux^2

What you may find here

In this blog you'll mainly find all things Linux - problems, solutions, reports, rants, tips & tricks etc. with the occasional off-topic entry thrown in. You never would have guessed looking at the URL, huh?
In diesem Blog findet ihr hauptsächlich Themen rund um Linux - Probleme, Lösungen, Berichte, Meinungen, Tips & Tricks und dazwischen ein paar überhaupt nicht dazu passende Einträge. Wärt ihr bei der URL nie drauf gekommen, ne?

Mailt mal! Email me!

gsm-ussd 0.3.2 - Netteres Verhalten!

gsm-ussdPosted by Jochen Tue, June 01, 2010 07:43:59

v0.3.2 ist raus.

Zwei konkrete Neuerungen sind in gsm-ussd eingeflossen.

Die direkt Bemerkbare: Wenn man gsm-ussd mit Option "--pin X" startet, muss sich das Modem nach erfolgreicher Freischaltung erst im nächsten verfügbaren/gewünschten Netz registrieren. Seit einigen Versionen wartet gsm-ussd da auch geduldig ab - aber nicht geduldig genug. Wie die Erfahrung zeigt, schlagen sofort nach erfolgreicher Registrierung abgesetzte USSD-Abfragen gerne fehl. Daher legt gsm-ussd, wenn die Registrierungsprüfung mindestens einmal fehlgeschlagen ist, bei erfolgreicher Prüfung noch eine kleine Ehrenrunde ein, bevor es fortfährt. Das Modem bekommt so Zeit, sich ans Netz anzukuscheln (oder umgekehrt?) und die Abfragen funktionieren dann auch.

Die nur indirekt Bemerkbare: Arbeiten mehrere Programme gleichzeitig mit einer seriellen Schnittstelle, kommt es zu Problemen. Ist ja eigentlich auch schon vom Namen her logisch: Eine serielle Verbindung ist immer eine Punkt-zu-Punkt-Verbindung. Was erwartet man also, wenn es außer Modem und gsm-ussd einen weiteren Endpunkt wie beispielsweise picocom gibt? Korrekt: Datensalat. :)
Das Problem war allerdings nicht picocom, sondern gsm-ussd. Es ist Konvention, bei Zugriff auf eine serielle Schnitstelle unter /var/lock Lockfiles dazu anzulegen. gsm-ussd hält sich jetzt an die Konvention, so dass sich picocom und gsm-ussd nicht mehr gegenseitig auf die Zehen steigen.

Hier die Dateien zum Download:

http://linux.zum-quadrat.de/downloads/gsm-ussd_0.3.2-0.tar.gz
http://linux.zum-quadrat.de/downloads/gsm-ussd-0.3.2-0.noarch.rpm
http://linux.zum-quadrat.de/downloads/gsm-ussd_0.3.2-0_all.deb

Einen Überblick über alle gsm-ussd bezogenen Downloads sind hier:
http://linux.zum-quadrat.de/downloads/index.html.

Und das komplette git-Repository findet sich unter
http://github.com/JochenHoch2/gsm-ussd.git
oder
git://github.com/JochenHoch2/gsm-ussd.git

Viel Spaß damit und sagt Bescheid, wenn ich was kaputtgemacht habe,
Jochen

USSD Sessions: Ja, aber...

gsm-ussdPosted by Jochen Fri, May 28, 2010 13:35:11
OK, seit Version 0.3.0 unterstützt gsm-ussd also USSD Sessions. Wie schon erwähnt, sind USSD Sessions ein Mittel, vom Anwender weitere Daten abzufragen. Das kann ein Cashcode sein, um die Karte wieder aufzuladen, aber häufig sind es einfache Menüs, von denen man dann einen Eintrag auswählen soll. Als Beispiel eine Sitzung bei Tchibo Mobile (O2-Reseller):

$ gsm-ussd '*100#'
USSD session open, to cancel use "gsm-ussd -c".
Tchibo mobil Servicemenü:
1 Kontoabfrage
2 Guthaben-Verfügbarkeit
3 Aufladung Guthabenkarte
4 Optionsmanager
$

Die erste Zeile in der Ausgabe (USSD session open, ...) wird nach STDERR geschrieben und stammt von gsm-ussd selbst. Der Rest der Ausgabe ist die USSD-Antwort. Weitere USSD-Abfragen funktionieren wegen der geöffneten Session nun nicht wie gewohnt, sondern es werden nur die o.a. Ziffern akzeptiert:

$ gsm-ussd 4
USSD session open, to cancel use "gsm-ussd -c".
Optionsmanager

1 Optionsstatus
2 Option buchen

$ gsm-ussd 2
USSD session open, to cancel use "gsm-ussd -c".
Folgende Optionen sind für Sie buchbar

1 Festnetz-Flatrate
2 Tchibofon-Flatrate
3 100 Minuten-Option
4 50 Minuten-Option
5 weitere
0 Abbruch

$ gsm-ussd 5
No answer for 20 seconds!
$

Nanu? Das ist unerwartet. Nun ja, dann brechen wir die Session eben ab:

$ gsm-ussd -c
No USSD session to cancel.
$

Hm, die Session war schon weg. Um dem Fehler auf die Spur zu kommen, habe ich die SIM dann doch mal in ein Handy gesteckt und die USSD Session per Handy bis zu diesem Punkt verfolgt. Ergebnis: "Netzwerkfehler".

Die gute Nachricht lautet also, dass gsm-ussd im Rahmen seines Designs funktioniert. Die schlechte dagegen ist, dass die USSD-Anwendungen, die die Provider anbieten, nicht unbedingt fehlerfrei sind! Ein anderer gsm-ussd-Anwender hat das Original-O2-Menü durchforstet und ist ebenfalls auf nicht korrekt aufrufbare Menüpunkte gestoßen. Mangels Handy mit funktionierender USSD-Session-Unterstützung (!) konnte er dies aber leider nicht weiter nachvollziehen.

Daraus ergibt sich allerdings ein Bild:

  • Viele Handys haben keine, eine fehlerhafte oder schlechte USS-Session-Unterstützung.
  • Die wenigen USSD-Anwendungen werden nicht viel benutzt (und scheinbar auch nicht bzw. nicht ausreichend getestet).
  • Fehler bleiben unentdeckt.
  • Wegen der Fehler benutzen auch diejenigen die USSD-Anwendungen nicht mehr, bei denen es ginge.
  • Noch weniger Anwender...
  • Bugfixing der Anwendung lohnt sich für den Anbieter nicht.

Zumindest ist das meine Interpretation der Dinge. Wenn ihr also ein Problem mit gsm-ussd und USSD-Sessions habt, dann schaut mal, ob ihr das nicht auch per Handy nachvollziehen könnt!

gsm-ussd 0.3.1, denn weniger ist mehr!

gsm-ussdPosted by Jochen Tue, May 25, 2010 19:48:05
Es ist schon wieder soweit: v0.3.1 ist raus.

Sichtbare Änderungen gibt es an xussd. Seit gsm-ussd Unterstützung für USSD-Sitzungen anbietet, hing xussd da etwas hinterher. Damit ist jetzt Schluß: Seit diesem Release kann xussd ebenfalls mit USSD Sessions umgehen - irgendwie. Nach dem Resultat der Abfrage springt xussd wieder zur USSD query zurück, so dass man sofort den gewünschten Menüpunkt eingeben und auf das Ergebnis davon warten kann.

Bedenkt dabei aber bitte, dass xussd auf Mal-eben-Basis als schlichter Wrapper um gsm-ussd herum entstanden ist. Als solcher funktioniert er, ist aber kein vernünftiges GUI, zmindest für mich nicht. Eine bessere Fassung ist angedacht, aber ziemlich weit unten auf meiner Prioritätenliste. Also nicht zu gespannt drauf warten!

Weitere Änderungen in gsm-ussd verbessern den Umgang mit den USSD response encodings. Dadurch wird jetzt auch der ZTE MF100 UMTS-Stick (alias "O2 Prepaid Surfstick") unterstützt. Außerdem setzt gsm-ussd die Werte für die serielle Schnittstelle selbst, so daß auf den Aufruf von stty(1) verzichtet werden kann. Damit fallen eine externe Abhängigkeit und drei Prozesse pro gsm-ussd-Aufruf weg.

Hier die Dateien zum Download:

http://linux.zum-quadrat.de/downloads/gsm-ussd_0.3.1-0.tar.gz
http://linux.zum-quadrat.de/downloads/gsm-ussd-0.3.1-0.noarch.rpm
http://linux.zum-quadrat.de/downloads/gsm-ussd_0.3.1-0_all.deb

Einen Überblick über alle gsm-ussd bezogenen Downloads sind hier:
http://linux.zum-quadrat.de/downloads/index.html.

Und das komplette git-Repository findet sich unter
http://github.com/JochenHoch2/gsm-ussd.git
oder
git://github.com/JochenHoch2/gsm-ussd.git

Viel Spaß damit und sagt Bescheid, wenn ich was kaputtgemacht habe,
Jochen

gsm-ussd 0.3.1, 'cause less is more!

gsm-ussdPosted by Jochen Tue, May 25, 2010 19:01:18
It's that time of the week again: v0.3.1 is out.

User visible changes can be found in xussd. As gsm-ussd now supports USSD sessions, xussd was lagging behind. As of this release, xussd can handle USSD sessions, too - after a fashion. After displaying the result of a query, xussd will now request the next query. If you had an USSD session opened, you can now enter the menu entry or data that were requested and wait for the next result.

Please bear in mind that xussd was (is?) a spur-of-the-moment hack as a dialog-based wrapper around gsm-ussd. As such, it it workable, but not very convincing, at least not to me. A better GUI is planned, but quite a way down my list of priorities, so don't hold your breath.

Other changes in gsm-ussd add better handling of USSD response encodings, thus adding support for ZTE MF100 USB UMTS modem (a.k.a. O2 Prepaid Surfstick), and handling the serial interface without the need for stty(1). This removes an external dependency and saves three processes per gsm-ussd call.

Here are the new files for download:

http://linux.zum-quadrat.de/downloads/gsm-ussd_0.3.1-0.tar.gz
http://linux.zum-quadrat.de/downloads/gsm-ussd-0.3.1-0.noarch.rpm
http://linux.zum-quadrat.de/downloads/gsm-ussd_0.3.1-0_all.deb

For an overview of all gsm-ussd downloads, have a look at
http://linux.zum-quadrat.de/downloads/index.html.

The full git repository lies at

http://github.com/JochenHoch2/gsm-ussd.git
or
git://github.com/JochenHoch2/gsm-ussd.git

Have fun and let me know if i broke something,
Jochen

gsm-ussd v0.3.0: Unterstützt Sitzungen

gsm-ussdPosted by Jochen Fri, May 21, 2010 20:52:37
OK, ihr wißt schon Bescheid: v0.3.0 ist raus.

Warum der Sprung in der Releasenummer, fragt ihr? gsm-ussd unterstützt jetzt auch USSD sessions. Normalerweise sind USSD-Abfragen kurz und knapp: Man fragt nach einer Information wie seinem Prepaid-Kontostand, bekommt eine Antwort und fertig. Manchmal aber besteht die Antwort aus einer Anforderung nach mehr Informationen in der Form eines einfachen Menüs oder eines Anweisungstextes, welche Informationen denn jetzt noch benötigt werden.

Dann kann man weitere gsm-ussd-Aufrufe dazu verwenden,
a) die angeforderten Daten oder Menüpunkte einzugeben bis man fertig ist
oder
b) die Sitzung abzubrechen.

Wenn ihr Euch lieber ein Beispiel anschauen wollt, bevor ihr's selbst ausprobiert, dann werft mal einen Blick in die Datei ussd-sessions.txt im docs-Verzeichnis (/usr/share/doc/gsm-ussd-0.3.0/ussd-sessions.txt oder /usr/share/doc/gsm-ussd/ussd-sessions.txt für Euch RPM/DEB Anwender).

Hier die neuen Dateien zum Download:

http://linux.zum-quadrat.de/downloads/gsm-ussd_0.3.0-0.tar.gz
http://linux.zum-quadrat.de/downloads/gsm-ussd-0.3.0-0.noarch.rpm
http://linux.zum-quadrat.de/downloads/gsm-ussd_0.3.0-0_all.deb

Für einen Überblick über alle gsm-ussd-Downloads, klickt Euch mal nach
http://linux.zum-quadrat.de/downloads/index.html.
Aber bitte immer die neueste Version einsetzen! Und wenn ihr in Versuchung kommt, doch selbst mal gsm-ussd zu hacken, dann zieht Euch das git-Repository auf

http://github.com/JochenHoch2/gsm-ussd.git
oder
git://github.com/JochenHoch2/gsm-ussd.git

Tschüß & viel Spaß damit,
Jochen

gsm-ussd v0.3.0: Session aware

gsm-ussdPosted by Jochen Fri, May 21, 2010 20:42:41
Alright, you know the drill: v0.3.0 is out.

Why the jump in the version number, you ask? gsm-ussd now supports USSD sessions. Normally, USSD queries are one-shot commands: You ask for some info like your prepaid account balance, receive an answer and you're done. But sometimes, the answer requests more information from you and displays a simple menu or some text with instructions which data to enter.

Now you can a further calls to gsm-ussd to
a) enter the requested data or choose menu entries until you're done
or
b) cancel the session.

If you'd like an example before you try anything yourself, have a look at ussd-sessions.txt in the docs directory (which will be /usr/share/doc/gsm-ussd-0.3.0/ussd-sessions.txt or /usr/share/doc/gsm-ussd/ussd-sessions.txt for you RPM/DEB users).

Here are the new files for download:

http://linux.zum-quadrat.de/downloads/gsm-ussd_0.3.0-0.tar.gz
http://linux.zum-quadrat.de/downloads/gsm-ussd-0.3.0-0.noarch.rpm
http://linux.zum-quadrat.de/downloads/gsm-ussd_0.3.0-0_all.deb

For an overview of all gsm-ussd downloads, have a look at
http://linux.zum-quadrat.de/downloads/index.html.
But please use the most recent version! And if you're tempted to have a look at the innards of gsm-ussd and see if you can hack it to do what you want, don't hesitate to clone the full git repository at

http://github.com/JochenHoch2/gsm-ussd.git
or
git://github.com/JochenHoch2/gsm-ussd.git

Bye & enjoy,
Jochen

gsm-ussd 0.2.4: Bugfix release

gsm-ussdPosted by Jochen Tue, May 18, 2010 20:32:14
Just a quick heads-up: v0.2.4 is out.
Nur eine schnelle Warnung: v0.2.4 ist raus.

This is a bugfix release. I forgot to switch xussd back to using the installed gsm-ussd instead of the local repo version, so if you just install the Debian or RPM package, xussd will not find gsm-ussd for the real work... Embarrassing, that.

Dies ist ein Bugfix-Release.
Ich habe vergessen, xussd wieder zurück auf das installierte gsm-ussd-Skript zu schalten, anstelle der lokalen Version aus dem Repository. Wenn ihr also das Debian- oder RPM-Paket v0.2.3 installiert habt, findet xussd sein gsm-ussd für die eigentliche Arbeit nicht... Peinlich, das.

Here are the fixed files for download/Hier die gefixten Dateien:

http://linux.zum-quadrat.de/downloads/gsm-ussd_0.2.4-0.tar.gz
http://linux.zum-quadrat.de/downloads/gsm-ussd-0.2.4-0.noarch.rpm
http://linux.zum-quadrat.de/downloads/gsm-ussd_0.2.4-0_all.deb

Or have a look at/Oder schaut mal auf
http://linux.zum-quadrat.de/downloads/index.html.

Ciao,
Jochen

gsm-ussd 0.2.3: Better all around!

gsm-ussdPosted by Jochen Tue, May 18, 2010 14:41:22

Well, what else do you expect me to say?!? smiley

In a nutshell: v0.2.3 is out.

Please note: If you're using a previous version, do an update. There are combinations of modems and SIM cards out there (in particular Huawei E160/O2-SIM, including O2-Resellers like Tchibo/FONIC) which won't work with gsm-ussd in its previous incarnations.

What happened since v0.2.2?

  1. The echo of the serial interface gets disabled, the echo of the modem enabled. As told above, in some modem/SIM combinations both echoes are enabled, which wreaks havoc on the line...
  2. Original settings of the serial interface will be restored even in case of error or abort by Ctrl-C.
  3. xussd will now only ask for the PIN if it needs to. Please remember that the card will have to be unlocked after three failed PIN entries!
  4. You can supply more than one USSD query on the command line. They will be processed in sequence.

Here are the files for download:
http://linux.zum-quadrat.de/downloads/gsm-ussd_0.2.3-0.tar.gz
http://linux.zum-quadrat.de/downloads/gsm-ussd-0.2.3-0.noarch.rpm
http://linux.zum-quadrat.de/downloads/gsm-ussd_0.2.3-0_all.deb

You can always find the latest download at
http://linux.zum-quadrat.de/downloads/index.html.

For completeness' sake, the link to the public repository on github.com:
http://github.com/JochenHoch2/gsm-ussd.git
or
git://github.com/JochenHoch2/gsm-ussd.git

As always, have fun and mail me your successes or problems!

Ciao,
Jochen

« PreviousNext »