Balance des GSM USB Modems mit USSD

8

Gibt es einige Tools oder Befehle, mit denen ich USSD-Codes zum Überprüfen des Guthabens und des Datengleichgewichts der GSM-SIM-Karte in meinem USB-Modem (mobiler Breitbanddongle) senden kann?

GunJack
quelle

Antworten:

7

Dies sind einige Apps mit Unterstützung für USSD Balance Check:

Prepaid Manager

Prepaid Manager

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:

Prepaid Manager App auf Ubuntu Software

Oder führen Sie den folgenden Befehl aus:

sudo apt install prepaid-manager-applet

Modem Manager GUI

Modem Manager GUI

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:

Modem Manager GUI App auf Ubuntu Software

Oder führen Sie den folgenden Befehl aus:

sudo apt install modem-manager-gui

V Mobiles Breitband

V Mobiles Breitband

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-broadbandhä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 modemmanagerPaket neu zu installieren .


Quellen

HEXcube
quelle
V Mobile Broadband: 12-Dec-14: Fehler: W: Fehler beim Abrufen von ppa.launchpad.net/crass/v-mobile-broadband/ubuntu/dists/trusty/… 404 Nicht gefunden. Ist es aufgegeben?
Immergrün
@evergreen Nein, das Projekt ist nicht tot, denn die PPA pusht immer noch Updates für 12.04LTS "Precise" . Es wurde jedoch noch nicht für 14.04LTS "Trusty" und höher aktualisiert .
HEXcube
Leider funktioniert keines dieser Werke für 16.04 und höher
Anwar
3

Zu gammudiesem Zweck können Sie das Befehlszeilenprogramm verwenden. Wenn der USSD-Code zum Abrufen Ihres Guthabens (sagen wir) * 901 # lautet, würden Sie Folgendes ausführen:

gammu getussd "*901#"

Installations- und Konfigurationsanweisungen sowie weitere Details finden Sie hier .

Tanius
quelle
1

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, minicometc.).

Ich habe mich entschieden, atinoutweil 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 atinoutauf 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 ATBefehl im zweiten atinoutBefehl 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 .

Tanius
quelle
1

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
Mateo
quelle
0

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#"
Tanius
quelle
0

Sie können den mmcliBefehlszeilenclient von Ubuntus Standard-ModemManager verwenden, um einen USSD-Code zu senden und die Antwort zu erhalten:

  1. 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.

  2. Aktivieren Sie das Modem (vorausgesetzt, Ihr Modemindex ist 0): mmcli -m 0 -e

  3. 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 .

Tanius
quelle
Am 16.04 gibt der Befehl dies zurückerror: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Operation not supported.'
Anwar
0

Für mich funktionieren beide ModemManager-basierten Lösungen gammunicht 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 picocomund 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
Dmitry Frank
quelle
-1

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…).

Tanius
quelle