Antworten:
Dies sind einige Apps mit Unterstützung für USSD Balance Check:
Prepaid Manager ist ein Applet für den GNOME Desktop, mit dem Sie den Kontostand von mobilen Prepaid-SIM-Karten von GSM überprüfen und aufladen können. Es ist eine einfache und minimalistische App mit USSD-Kontostandprüfung und Aufladung. Aber auf der anderen Seite ist es eine sehr veraltete Anwendung und hat seit langer Zeit keine neuen Updates mehr erhalten. Und wenn Ihr Provider nicht unterstützt wird, müssen Sie ihn manuell konfigurieren, wie auf der Homepage beschrieben . Zum Installieren klicken Sie hier:
Oder führen Sie den folgenden Befehl aus:
sudo apt install prepaid-manager-applet
Die Modem Manager-Benutzeroberfläche ist eine Komplettlösung zur Verwaltung und Überwachung von Modems auf der Basis von Mobilfunknetzen. Es bietet eine Menge Funktionen, und die USSD-Unterstützung ist nur eine davon. Eine vollständige Liste der Funktionen finden Sie auf der offiziellen Homepage . Zum Installieren klicken Sie hier:
Oder führen Sie den folgenden Befehl aus:
sudo apt install modem-manager-gui
V Mobile Broadband ist die ursprüngliche Vodafone Mobile Connect- Software für Linux, die vom Open Source-Betavine Connection Manager-Team von Vodafone so umgeschrieben wurde, dass sie mit Network Manager kompatibel ist. Leider scheint es im Moment nicht sehr aktiv gewartet zu werden und ist in Ubuntu-Repos nicht verfügbar. Sie können jedoch Ihr Glück versuchen, das Projekt aus dem Quellcode zu erstellen. Schauen Sie sich ihre GitHub-Seite an .
Warnung : v-mobile-broadband
hängt davon ab wader
, welche Ubuntu-Standardeinstellung ersetzt wird modemmanager
. Wenn Sie also Probleme mit dem neuen Setup haben und sich für eine Deinstallation entscheiden v-mobile-broadband
, vergessen Sie nicht, das modemmanager
Paket neu zu installieren .
Sie können AT-Befehle direkt verwenden, um Ihr Guthaben über USSD abzufragen. Dafür verwendet jedes serielles Terminal - Programm , das Sie kommunizieren mit Ihrem Modem kann direkt ( putty
, minicom
etc.).
Ich habe mich entschieden, atinout
weil es sich gut in die Kommandozeile einfügt. Zuerst installieren Sie es:
sudo apt-get install ruby-ronn;
git clone git://git.code.sf.net/p/atinout/code atinout;
cd atinout;
make;
sudo checkinstall make install;
Wenn Sie dann ModemManager verwenden (die Standardeinstellung unter Ubuntu Linux), müssen Sie es möglicherweise zuerst deaktivieren, um atinout
auf Ihr Modem zugreifen zu können:
sudo stop modemmanager;
Um nun einen USSD-Code für die Kontostandsabfrage an das Netzwerk zu senden (z. B. * 901 #) und das Ergebnis anzuzeigen, verwenden Sie diesen Befehl:
atinout - /dev/ttyUSB1 - < <(echo "AT+CUSD=1,\"*901#\",15") && sleep 4 && \
atinout - /dev/ttyUSB1 - < <(echo "AT");
Dies setzt voraus, dass sich Ihr Modem in befindet /dev/ttyUSB1
. Der AT
Befehl im zweiten atinout
Befehl dient nur dazu, die unaufgeforderte USSD-Antwort als Nebeneffekt anzuzeigen, der nach dem hätte eintreffen sollen sleep
.
Für den Fall, dass für die Abfrage Ihres Guthabens ein USSD-Menü erforderlich ist: Dies ist auch mit möglich atinout
, siehe diese Antwort .
Sie können sie mit dem Paket machen modem-manager-gui
. Es ist aber nur für 13.10 verfügbar. In anderen Versionen müssen Sie sie im Terminal mit dem Paket verwalten modemmanager
.
Wenn Sie in Ubuntu 13.10 sind:
sudo apt-get install modem-manager-gui modemmanager
In anderen Versionen von Ubuntu können Sie dies mit der Anwendung tun prepaid-manager-applet
sudo apt-get install prepaid-manager-applet
Sie können das Linux-Befehlszeilentool verwenden gsm-ussd
, um USSD-Codes zu senden, Antworten zu erhalten und sogar in USSD-Menüs zu navigieren (obwohl dies für mich nicht stabil / verwendbar war).
Detaillierte Anweisungen zur Installation und Konfiguration finden Sie hier . Das dort zur Installation angebotene Debian-Paket der Version 0.4 ist die neueste Version des Entwicklungszweigs .
Wenn der USSD-Code, um Ihr Guthaben zu erhalten, (sagen wir) * 901 # ist und Ihr Modem dies ist /dev/ttyUSB1
, würden Sie dies ausführen, um einen einfachen USSD-Code zu senden und die Antwort des Netzwerks anzuzeigen (was nicht zu einem Menü führt):
gsm-ussd -m /dev/ttyUSB1 "*901#"
Sie können den mmcli
Befehlszeilenclient von Ubuntus Standard-ModemManager verwenden, um einen USSD-Code zu senden und die Antwort zu erhalten:
Beginnen Sie mit der Auflistung Ihrer Modems : mmcli -L
. Dies zeigt einen Modem-Gerätepfad wie /org/freedesktop/ModemManager1/Modem/0
. Die Nummer am Ende ist der Modemindex. Denken Sie daran.
Aktivieren Sie das Modem (vorausgesetzt, Ihr Modemindex ist 0): mmcli -m 0 -e
Senden Sie die USSD-Anfrage und zeigen Sie die Antwort an. Angenommen, der USSD-Code Ihres Netzbetreibers zum Abrufen des Guthabens lautet * 901 #, lautet der Befehl:
mmcli -m 0 --3gpp-ussd-initiate="*901#"
Für den Fall, dass für die Abfrage Ihres Guthabens ein USSD-Menü erforderlich ist: Dies ist auch mit möglich mmcli
, siehe diese Antwort .
error: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Operation not supported.'
Für mich funktionieren beide ModemManager-basierten Lösungen gammu
nicht richtig mit der mehrzeiligen USSD-Antwort. zB hat mein Operator einen USSD-Befehl *104#
, auf den er etwa reagiert:
You have:
2.07 GB of traffic, valid until N
47 minutes
Es ist enttäuschend, nur die erste nutzlose Zeile zu sehen : You have:
.
Schließlich fand ich eine Problemumgehung mit picocom
und manuellen AT-Befehl. Jedes Mal, wenn ich mein Guthaben überprüfen möchte, muss ich Folgendes tun:
Beenden Sie zunächst den Modem-Manager:
$ sudo stop modemmanager
Jetzt müssen Sie Ihren Modemport kennen. in meinem Fall ist es /dev/ttyACM0
.
Wenn Sie Ihren Port nicht kennen, versuchen Sie Folgendes:
for n in `ls /sys/class/*/*{ACM,wdm}*/device/interface`;do echo $(echo $n|awk -F '/' '{print $5}') : $(cat $n);done
Und suchen Sie den Eintrag mit Mobile Broadband Modem
. ZB sieht meine Ausgabe wie folgt aus:
ttyACM0 : F5521gw Mobile Broadband Modem
ttyACM1 : F5521gw Mobile Broadband Data Modem
ttyACM2 : F5521gw Mobile Broadband GPS Port
cdc-wdm0 : F5521gw Mobile Broadband Device Management
cdc-wdm1 : F5521gw Mobile Broadband USIM Port
Weitere Informationen zum richtigen Port finden Sie unter folgendem Link: https://gist.github.com/heyalexej/cc6c97b1ea42736b3ff7
Verwenden Sie dann picocom, um eine Verbindung zu Ihrem Port herzustellen:
$ sudo picocom /dev/ttyACM0
Sie sollten so etwas sehen:
picocom v1.7
port is : /dev/ttyACM0
flowcontrol : none
baudrate is : 9600
parity is : none
databits are : 8
escape is : C-a
local echo is : no
noinit is : no
noreset is : no
nolock is : no
send_cmd is : sz -vv
receive_cmd is : rz -vv
imap is :
omap is :
emap is : crcrlf,delbs,
Terminal ready
*EMRDY: 1
(Wenn Sie dies nicht sehen *EMRDY: 1
, bedeutet dies wahrscheinlich, dass Sie den Modem Manager nicht gestoppt haben, siehe oben)
Dann geben Sie ein:
AT+CUSD=1,"*104#"
Und nach einigen Sekunden sollten Sie Ihre Antwort erhalten, die mehrzeilig sein kann:
+CUSD: 0,"You have:
2.07 GB of traffic, valid until N
47 minutes
",15
OK
Verwenden Sie zum Beenden von picocom Ctrl-A Ctrl-X
Starten Sie den Modem-Manager erneut:
$ sudo start modemmanager
Sie können die virtuelle Open-Source-PBX-Lösung FreeSwitch zusammen mit der Erweiterung GSMopen verwenden , um USSD-Befehle [ source ] zu senden .
Wenn der USSD-Code zum Abrufen Ihres Guthabens beispielsweise (901 #) lautet, würden Sie Folgendes ausführen:
chat SMS|interface3|ussd|*901#
In den anderen Antworten gibt es natürlich einfachere Lösungen, aber falls Sie GSMopen trotzdem verwenden (… zum Beispiel, weil dies die einzige Möglichkeit ist, GSM-Sprachanrufe unter Linux zu tätigen…).