WWAN-Modul F3507g: USSD-Codes abfragen

tuxor1337

Member
Themenstarter
Registriert
10 Juni 2010
Beiträge
679
Ausgangssituation
In mein WWAN-Modul F3507g habe ich gerade testweise eine Xtra-Card von T-Mobile eingelegt. (Vorher habe ich sie noch schnell über mein Handy getestet und mit *100# mein Guthaben abgefragt. Die Karte ist intakt.) Über den NetworkManager (in Fedora 15) werde ich nach meiner PIN gefragt und kann dann auch eine Verbindung zum Internet herstellen.

Was nicht funktioniert
Ich kann keine USSD-Codes senden bzw. die Antwort empfangen.

Wie es eigentlich funktionieren sollte
In diesem Thread (http://thinkpad-forum.de/threads/115121-SL510-F3507g-läßt-sich-nicht-per-rfkill-schalten) fragt der TE USSD-Codes (*100#) mit gammu ab.

Was ich versucht habe...
...1) Ich habe also auch gammu installiert, gleiche ".gammurc" und gleicher Befehl wie in verlinktem Thread...
Code:
$ sudo gammu -c ~/.gammurc getussd *100#
Strg+C drücken, um zu unterbrechen...
Ich kann da 20 Minuten lang warten und es passiert einfach nichts.
...2) Also habe ich das ganze manuell über "minicom" (/dev/ttyACM0, habe auch /dev/ttyACM{1,2} versucht) mit dem Befehl AT+CUSD=1,"*100#" ausprobiert. Da kommt nur "ERROR".Ich habe alternative Syntax AT+CUSD=1,"*100#",15 und AT+CUSD=1,"*100#",1 mit dem gleichen Ergebnis getestet. Die Befehle AT+CUSD=1 und AT+CUSD=? funktionieren aber an sich.
...3) Zuletzt habe ich 1) und 2) versucht, _bevor_ ich die PIN eingegeben habe (gammu sagt "Warte auf PIN.") - und danach _mit_ PIN, aber _ohne_ eine UMTS-Verbindung zum Internet herzustellen (gleiches Ergebnis wie in 1) ).

Was mir vielleicht weiterhelfen könnte
Im Thinkwiki (http://www.thinkwiki.org/wiki/Ericsson_F3507g_Mobile_Broadband_Module#Lenovo_Partnumbers) steht, dass es die F3507g mit verschiedenen Firmware-Versionen gibt und dass bestimmte Firmware-Versionen u.U. weniger gut funktionieren. Wie kann ich am leichtesten ermitteln, welche Firmware ich habe? (TE vom anderen Thread hat R1B/1)

Hat jemand sonst eine Ahnung, woran es liegen könnte, dass mein F3507g keine USSD verarbeiten kann? Oder: Was könnte ich noch testen?
 
Manchmal muss man einfach mal eine Nacht über die Sache schlafen, dann merkt man schon, was man falsch gemacht hat :facepalm:

Was ich falsch gemacht habe
Ich habe nicht bei jedem meiner Tests überprüft, in welchem Zustand sich das Modul gerade befindet (mit AT+CFUN?). Es befand sich vielleicht immer im Zustand 4 (Schlafmodus).

Eine Quasi-Lösung
Wenn ich es selbst (über minicom) mit AT+CPIN="..." und AT+CFUN=1 initialisiere, funktionieren USSD-Abfragen jetzt ganz sicher mit AT+CUSD=1,"*100#",15. Wenn ich die PIN bei der Anfrage des NetworkManagers eingebe, muss ich noch den Status auf AT+CFUN=1 setzen, bevor ich USSD-Anfragen senden kann.

Was noch nicht funktioniert...
...1) Der gammu-Befehl aus dem Anfangspost ergibt noch immer nichts Anderes. Ich habe gammu jetzt erstmal deinstalliert, werde am Wochenende Fedora 16 installieren und dann nächste Woche gammu nochmal eine Chance geben.
...2) Wenn ich mit dem NetworkManager eine WWAN-Verbindung zum Internet herstelle, scheinen /dev/ttyACM{1,2,3} quasi belegt. Fast alle Befehle (über minicom) führen dann hier zu einem ERROR, auch AT+CUSD.
...3) Das ganz jetzt noch in automatisierter Form zu haben, wäre natürlich schön. Ich werde mich deswegen in der nächsten Woche mal hinsetzen und für die USSD-Abfrage ein kleines Shell-Script mit "/usr/sbin/chat" schreiben. Ihr hört dann nochmal von mir :)

@linrunner: Vielen Dank, das hat funktioniert. Meine Firmware ist R1B/1 :-)
 
Das Skript besteht im Wesentlichen nur aus einer Zeile:
Code:
#!/bin/sh
CONTROL_DEVICE="/dev/ttyACM1"
/usr/sbin/chat -v - "AT+CFUN=1" "+PACSP" "AT" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
/usr/sbin/chat -v REPORT ": 0," - "AT+CUSD=1,\""$1"\",15" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
Der Rückgabewert ist ziemlich hässlich. Dafür muss ich mir noch irgendwie etwas überlegen. Vielleicht guck ich mal, ob man sowas in einer netteren Programmiersprache schreiben kann.

(Sitze gerade an einem vollständigen Python-Modul für das F3507g-Modul. GPS, USSD, aktivieren, deaktivieren, das wären ganz nette Funktionen. Dürfte aber noch etwas dauern. Ich melde mich, wenn das ganze einigermaßen stabil läuft.)
 
Zuletzt bearbeitet:
Im Anhang das Python-Script, das ich geschrieben habe. Es besteht aus dem Modul "f3507g.py" und der eigentlich auszuführenden Datei "wwan.py". Beide sollten (entpackt) irgendwo im gleichen Verzeichnis landen. Das ganze funktioniert nur ordnungsgemäß, wenn man die "wwan.py" einmal mit einem Texteditor öffnet, und seine PIN bei
Code:
PIN=""
zwischen die Anführungszeichen einträgt.

Außerdem muss man dann noch die nötigen Rechte für die wwan.py setzen mit:
Code:
chmod a+x wwan.py

Um völlig sicherzugehen, solltet ihr noch mit "lsusb" überprüfen, ob euer WWAN-Modul die richtige USB-ID hat, nämlich "0bdb:1900".

Noch ein paar technische Informationen: Getestet habe ich alles unter Fedora 16 (x86_64). Das Skript führt die gesamte Kommunikation mit dem Modem über /dev/ttyACM1 aus. Dafür verwendet es leider keine eingebauten Python-Methoden (mit pySerial bin ich leider nicht zurechtgekommen), sondern das Tool /usr/sbin/chat. Beim Starten der GPS-Funktion wird "gpsd" gleich mitgestartet. Es könnte Fehlermeldungen geben, falls "gpsd" nicht installiert ist. Außerdem kann das Tool nur ohne Root-Rechte ausgeführt werden, wenn der Benutzer in der Gruppe "dialout" ist.

Bei weiteren Frage, schreibt einfach hier rein. kontaktiert mich bitte per PN, ich abonniere dieses Thema nicht.

Übrigens: "gammu" oder "wammu" habe ich noch immer nicht zum Laufen bewegen können. Das einzige, was funktioniert, ist "gammu identify".

Update
Habe ein paar kleinere Fehler beseitigt. Anhang wurde durch neue Version ersetzt.
 

Anhänge

Zuletzt bearbeitet:
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben