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!

Re-Hi... (en)

gsm-ussdPosted by Jochen Fri, June 03, 2011 13:04:49

Hi everyone,


as I've been quiet for a long time now, here's a little update. Version 0.4.0-25 is now available on the download page in deb-, rpm-, and tar.gz-flavors.


In short, this version should work as well (or not) as the previous version 0.3.3. I just added two more modems which require PDU mode to work. All the rest ist "just" a redesign of the whole thing. That is done and OK, IMHO. All I need now is the motivation to go on with all the other plans I have... smiley


My plans for version 4.1 include getting rid of that modem list for PDU mode modems. I'll simply try a cleartext USSD query first. If that fails, I'll simply repeat the query, this time PDU encoded. I hope that'll work out OK.


Best regards,

Jochen

Re-Hi... (de)

gsm-ussdPosted by Jochen Fri, June 03, 2011 12:56:54
Hi allerseits,


da ich ja nun sehr lange nichts mehr von mir habe hören lassen, hier ein kleines Update. Auf der Download-Seite steht die Version 0.4.0-25 zum Download parat, sowohl als tar-Archiv als auch als deb- und als rpm-Paket.


Im Großen & Ganzen sollte es diese Version genauso gut tun die 0.3.3. Hinzugekommen sind lediglich zwei weitere Huawei-Modems, die den PDU-Mode brauchen. Der ganze Rest ist "lediglich" ein Redesign, s. ein paar Posts früher. Der ist m.E. gelungen. Alles, was ist jetzt noch brauche, ist etwas mehr Motivation, meine anderen Pläne umzusetzen... smiley


Für die 4.1er Version möchte ich die Liste der Modems, die den PDU-Mode brauchen, rausschmeissen. Dazu werde ich im Falle eines fehlgeschlagenen ersten Versuchs (weil das Modem die USSD-Anfrage im Klartext nicht verstanden hat) einfach ein zweites Mal die Abfrage absetzen, dann aber PDU-kodiert. Mal sehen, ob das besser funktioniert.


Grüße an alle da draußen,

Jochen

Noch leichter... Even easier...

gsm-ussdPosted by Jochen Tue, June 15, 2010 22:29:37

Interessiert an der Entwicklungsversion von gsm-ussd, aber nicht an git? Einfach

http://linux.zum-quadrat.de/downloads

besuchen und das tar-Archiv herunterladen!


Interested in testing, but not willing to use the git repository? Just visit

http://linux.zum-quadrat.de/downloads

and download the tar archive of the development version!



Fortschritt! Progress!

gsm-ussdPosted by Jochen Tue, June 15, 2010 21:33:37
(English text follows further below.)

Hi da draußen,

gsm-ussd 0.4 macht Fortschritte! Am besten dabei: Es funktioniert immer noch. smiley
Zugegebenermaßen sieht man von außen nicht viel, aber der innere Aufbau hat sich schon recht stark verändert. Aus einem einzelnen Skript von 1500 Zeilen ist ein Skript von 250 Zeilen geworden, welches sich aber auf 8 Module von insgesamt 1900 Zeilen Perl-Code stützt! Damit ist der Umbau aber noch nicht abgeschlossen. Einige Methoden liefern noch Datenstrukturen zurück - ein Erbe ihrer Geburt als schlichte Funktionen. Diese Methoden werden nun aufgedröselt und ihre Rückgabewerte als einzelne Attribute ihrer Objekte zur Verfügung stellen.

Die interne Doku lässt momentan leider zu wünschen übrig. Das werde ich aber angehen, wenn ich die o.a. Methoden umgeschrieben habe.

Also, wenn ihr schon gsm-ussd anwendet, hier meine Bitte an Euch:
Bitte testet die Entwicklungsversion!

Es ist einfach:
$ git clone http://github.com/JochenHoch2/gsm-ussd
$ cd gsm-ussd
$ git checkout dev
$ ./bin/gsm-ussd.pl -d -m ... # Und was ihr sonst noch an Optionen benötigt.

Feedback wird sehr erwünscht unf geschätzt - Dankeschön!

Tschö & lasst von Euch hören,
Jochen


(English text starts here.)

Hi out there,

gsm-ussd 0.4 comes along nicely! And what's more: It even still works! smiley
Admittedly, there's not much to see from the outside. But the inner workings changed a lot. The single script of 1500 lines became a script of merely 250 lines, supported by 8 modules of 1900 lines of Perl code. But the reorganisation doesn't stop there. Some methods return data structures, a heritage of their birth as mere functions. These methods will be chopped up and provide their return values as attributes of their objects.

Internal documentation leaves a lot to be desired at the moment, but won't be tackled after the rewrite.

So, if you're already using gsm-ussd, here's my plea to you:
Please test the development version!

It's easy:
$ git clone http://github.com/JochenHoch2/gsm-ussd
$ cd gsm-ussd
$ git checkout dev
$ ./bin/gsm-ussd.pl -d -m ... # And whatever options you need

Feedback is strongly encouraged and appreciated - Thanks!

Bye & waiting to hear from you,
Jochen



gsm-ussd 0.3.3: Bugs away!

gsm-ussdPosted by Jochen Tue, June 08, 2010 19:30:55

v0.3.3 is out.

If my redesign of gsm-ussd is good for only one thing, it's ironing out the (last?) bugs in the stable version of gsm-ussd...

Singled out:
The options --cleartext/--no-cleartext didn't work (any more?).
A newline was missing in an error message.
A (seldom used) funtion had a typo in its name.

Reason enough for a bugfix release. Here it is:

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

Every download of gsm-ussd is here:
http://linux.zum-quadrat.de/downloads/index.html.

And the complete repository of gsm-ussd kan be found at
http://github.com/JochenHoch2/gsm-ussd.git
or
git://github.com/JochenHoch2/gsm-ussd.git

Have fun, it's working better now!
Jochen

gsm-ussd 0.3.3: Fehler weg!

gsm-ussdPosted by Jochen Tue, June 08, 2010 19:22:36
v0.3.3 ist raus.

Und wenn mein Redesign der Innereien von gsm-ussd nur einen einzigen Sinn hat, dann ist es der, aus der jetzigen stabilen Version weitere Fehler zu beheben...

Im Einzelnen:
Die Option --cleartext/--no-cleartext funktionierte nicht (mehr?).
Eine Fehlermeldung wurde ohne Newline am Ende der Zeile ausgegeben.
Eine Funktion hatte einen Buchstabendreher im Namen (wird aber so selten aufgerufen, dass es bis dato nicht entdeckt wurde).

In Summe also Grund für die neue Version. Hier ist sie:

http://linux.zum-quadrat.de/downloads/gsm-ussd_0.3.3-0.tar.gz
http://linux.zum-quadrat.de/downloads/gsm-ussd-0.3.3-0.noarch.rpm
http://linux.zum-quadrat.de/downloads/gsm-ussd_0.3.3-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, denn jetzt funktioniert's ein bisschen besser!
Jochen

Weiterentwicklung...

gsm-ussdPosted by Jochen Tue, June 01, 2010 16:44:26
Selbst kleine Skripte werden, wenn man sie in die große weite Welt entlässt, mit der Zeit ziemlich groß. Mit zur Zeit über 1500 Zeilen ist gsm-ussd für das, was es kann, eigentlich nicht besonders groß, aber es wird mir langsam etwas unübersichtlich. Das mag auch an meinem eigenen Unvermögen liegen, ist aber grundsätzlich ein paar Designentscheidungen geschuldet. Den meisten davon war ich mir zu Beginn noch nicht mal bewußt, bin ihnen aber trotzdem gefolgt:

  • Möglichst wenig externe Abhängigkeiten
  • Möglichst eine einzelne Datei
  • Möglichst keine Konfiguration
  • Einfache Installation

An Abhängigkeiten ist - außer perl als Skriptsprache - nur noch Expect.pm dabei, welches in den mir bekannten (großen) Distributionen im Repository steckt. Zu Beginn verwendete ich beispielsweise noch Log::Log4Perl, habe dies aber durch eine eigene kleine DEBUG()-Funktion ersetzt. Ansonsten kann gsm-ussd als einzelne Datei an beliebiger Stelle im Verzeichnisbaumk stehen und wird funktionieren. Eine Konfigurationsdatei existiert nicht. Zur Installation stehen zusätzlich ein RPM und ein DEB Paket parat.

Diese Entscheidungen bringen aber auch Probleme mit sich.
  • Testen wird schwieriger
  • Wiederverwendung wird schwieriger
  • Weniger Flexibilität in der Entwicklung

Änderungen an bestehendem Code sind schwerer zu testen, ob sie Regressionen verursachen. Ideen eigene Programme für SMS-Versand/Empfang (gsm-sms) oder ein reines PIN/PUK-Setz-Programm (gsm-pin) wären auf der bestehenden Basis nicht schwer zu erstellen, würden aber duplizierten Code und damit erhöhten Pflegeaufwand bedeuten.

Kurz: Der ursprüngliche Ansatz war korrekt für ein einfaches, kleines Skript, wie gsm-ussd auch begonnen hat. Mittlerweise passen sie aber nicht mehr.

Meine Konsequenzen:
  • Der 0.3er Zweig von gsm-ussd wird erhalten bleiben, aber nur noch reinem Bugfixing vorbehalten sein. Im git-Repository wird das der Branch "v0.3" sein.
  • In der weiteren Entwicklung werde ich den Code wesentlich stärker modularisieren und objektorientiert designen. Der Entwicklung kann im git-Repository im Zweig "dev" gefolgt werden. Intern wird dieser Zweig 0.4er Versionsnummern bekommen.
  • Hat der neue Code dann eine gewisse Stabilität gewonnen, wird er in einem Schlag zum Master übernommen und dann unter der Versionsnummer 0.5.x weitergeführt werden.

Solltet ihr also in nächster Zeit keine großen Ankündigungen zu gsm-ussd auf freshmeat.net oder so finden, keine Bange. Die Entwicklung stoppt nicht, sondern konzentriert sich erst mal auf eine solide Basis für weitere Ideen.

gsm-ussd 0.3.2 - Nicer behaviour!

gsm-ussdPosted by Jochen Tue, June 01, 2010 07:55:14


v0.3.2 is out.

Two distinct changes went into gsm-ussd..

First: After entering the PIN, the modem first has to register in its net. gsm-ussd waits for that and only proceeds if the modem reports a successful registration, but some modems are a bit too optimistic. They might be freshly registered, but USSD queries still time out. Now, gsm-ussd waits for another turn if the modem just registered to give it time so settle, so that USSD queries can succeed.

Second: If several programs are using one and the same serial interface, the data coming from the modem get corrupted. After all, a serial interface is a point-to-point connection; having more than the modem and one program on the interface has to break. In Linux, access to serial interface is regulated by lock files saved in /var/lock. Sadly, up to now gsm-ussd did not adhere to this convention, so if there was still a picocom running (for debugging purposes), both stepped over each other, ruining everything in the progress. This bug is done now, gsm-ussd will create lock files or quit if one already exists.

Here the new files for 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

And an overview about all downloadable versions :
http://linux.zum-quadrat.de/downloads/index.html.

The public git repository can be found at
http://github.com/JochenHoch2/gsm-ussd.git
or
git://github.com/JochenHoch2/gsm-ussd.git

Have fun,
Jochen

Next »