Equilibrio del modem USB GSM tramite USSD


8

Ci sono alcuni strumenti o comandi che posso usare per inviare i codici USSD per controllare il bilanciamento e il bilanciamento dei dati della scheda SIM GSM nel mio modem USB (dongle a banda larga mobile)?

Risposte:


7

Queste sono alcune app con supporto per il controllo del saldo USSD:

Manager prepagato

Manager prepagato

Prepaid Manager è un'applet per il desktop GNOME che consente di controllare e ricaricare il saldo delle carte SIM prepagate mobili GSM. È un'app semplice e minimalista con controllo del saldo USSD e ricarica tutto ciò che fa. D'altro canto, si tratta di un'applicazione molto datata e non ho ricevuto nuovi aggiornamenti da molto tempo. E se il tuo provider non è supportato, dovrai configurarlo manualmente come descritto nella loro homepage . Per installare, clicca qui:

Prepaid Manager App sul software Ubuntu

Oppure esegui il comando seguente:

sudo apt install prepaid-manager-applet

GUI di Gestione modem

GUI di Gestione modem

Modem Manager GUI è una soluzione completa per gestire e monitorare i modem basati su rete mobile. Comprende molte funzionalità e il supporto USSD è solo una di queste. Per un elenco completo delle funzionalità, visita la loro homepage ufficiale . Per installare, clicca qui:

Modem Manager GUI App sul software Ubuntu

Oppure esegui il comando seguente:

sudo apt install modem-manager-gui

V Mobile Broadband

V Mobile Broadband

V Mobile Broadband è il software originale Vodafone Mobile Connect per Linux riscritto per essere compatibile con Network Manager dal team open source di Vodafone Betavine Connection Manager. Sfortunatamente, al momento non sembra essere molto attivo e non è disponibile nei repository Ubuntu. Tuttavia, potresti tentare la fortuna costruendo il progetto dalla fonte. Dai un'occhiata alla loro pagina GitHub .

Attenzione : v-mobile-broadbanddipende da wader, che sostituisce quello predefinito di Ubuntu modemmanager. Pertanto, se si verificano problemi con la nuova installazione e si decide di disinstallare v-mobile-broadband, non dimenticare di reinstallare il modemmanagerpacchetto.


fonti


V Mobile Broadband: 12-dic-14: errore: W: impossibile recuperare ppa.launchpad.net/crass/v-mobile-broadband/ubuntu/dists/trusty/… 404 non trovato. Si è arreso?
sempreverde,

@evergreen No, il progetto non è morto, il PPA invia ancora aggiornamenti per "Precise" 12.04LTS . Tuttavia, non è stato ancora aggiornato per 14.04LTS "Trusty" .
HEXcube,

Sfortunatamente, nessuno di questi funziona per il 16.04 e successivi
Anwar

3

A gammuquesto scopo è possibile utilizzare l'utilità della riga di comando . Se il codice USSD per ottenere il saldo è (diciamo) * 901 #, eseguiresti:

gammu getussd "*901#"

Per le istruzioni di installazione e configurazione e ulteriori dettagli, vedere qui .


1

È possibile utilizzare direttamente i comandi AT per interrogare il proprio saldo tramite USSD. Per questo, usa qualsiasi programma terminale seriale che ti consenta di comunicare direttamente con il tuo modem ( putty, minicomecc.).

Ho scelto atinoutperché si integrava perfettamente con la riga di comando. Per prima cosa lo installi:

sudo apt-get install ruby-ronn;
git clone git://git.code.sf.net/p/atinout/code atinout;
cd atinout;
make;
sudo checkinstall make install;

Quindi, se si utilizza ModemManager (impostazione predefinita in Ubuntu Linux), potrebbe essere necessario prima disabilitarlo per consentire atinoutl'accesso al modem:

sudo stop modemmanager;

Ora, per inviare un codice USSD per la query di bilanciamento alla rete (diciamo, * 901 #) e visualizzare il risultato, dovresti usare questo comando:

atinout - /dev/ttyUSB1 - < <(echo "AT+CUSD=1,\"*901#\",15") && sleep 4 && \
atinout - /dev/ttyUSB1 - < <(echo "AT");

Ciò presuppone che il modem sia attivo /dev/ttyUSB1. Il ATcomando nel secondo atinoutcomando è solo per visualizzare la risposta USSD non richiesta come effetto collaterale, che dovrebbe essere arrivato dopo il sleep.

Nel caso in cui per interrogare la bilancia sia necessario utilizzare un menu USSD: questo è possibile anche con atinout, vedere questa risposta .


1

Puoi farli con il pacchetto modem-manager-gui. Ma è disponibile solo per il 13.10. In altre versioni devi gestirli in Terminale con il pacchetto modemmanager.

Se sei in Ubuntu 13.10:

sudo apt-get install modem-manager-gui modemmanager

In altre versioni di Ubuntu puoi farlo con l'applicazione prepaid-manager-applet

sudo apt-get install prepaid-manager-applet

0

Puoi usare lo strumento da riga di comando Linux gsm-ussdper inviare codici USSD, ottenere risposte e persino navigare nei menu USSD (anche se per me non era stabile / utilizzabile).

Per istruzioni dettagliate sull'installazione e sulla configurazione, vedere qui . Il pacchetto Debian versione 0.4 offerto lì per l'installazione è l' ultima versione del ramo di sviluppo .

Se il codice USSD per ottenere il tuo saldo è (diciamo) * 901 # e il tuo modem è /dev/ttyUSB1lo eseguiresti per inviare un semplice codice USSD e visualizzare la risposta della rete (senza risultati in un menu):

gsm-ussd -m /dev/ttyUSB1 "*901#"

0

È possibile utilizzare il mmcliclient della riga di comando del ModemManager predefinito di Ubuntu per inviare un codice USSD e ottenere la risposta:

  1. Iniziare elencando i modem: mmcli -L. Questo mostrerà un percorso del dispositivo modem come /org/freedesktop/ModemManager1/Modem/0. Il numero alla fine è l'indice del modem, ricordalo.

  2. Abilita il modem (supponendo che il tuo indice del modem sia 0): mmcli -m 0 -e

  3. Invia la richiesta USSD e visualizza la risposta. Supponendo che il codice USSD dell'operatore di rete per ottenere il saldo sia * 901 #, il comando sarebbe:

    mmcli -m 0 --3gpp-ussd-initiate="*901#"
    

Nel caso in cui la ricerca della bilancia richieda l'utilizzo di un menu USSD: questo è possibile anche con mmcli, vedere questa risposta .


Il 16.04, il comando restituisce questoerror: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Operation not supported.'
Anwar,

0

Per me, entrambe le soluzioni basate su ModemManager e gammunon funzionano correttamente con la risposta USSD multilinea; ad esempio il mio operatore ha un comando USSD *104#, al quale risponde qualcosa di simile:

You have:
2.07 GB of traffic, valid until N
47 minutes

E 'deludente vedere solo la prima riga inutile: You have:.

Alla fine ho trovato una soluzione con picocomil comando AT manuale. Quindi ogni volta che voglio controllare il mio saldo, devo fare quanto segue:

Per prima cosa, ferma Modem Manager:

$ sudo stop modemmanager

Ora, devi conoscere la tua porta modem; nel mio caso, lo è /dev/ttyACM0.

Se non conosci la tua porta, prova questo:

for n in `ls /sys/class/*/*{ACM,wdm}*/device/interface`;do echo $(echo $n|awk -F '/' '{print $5}') : $(cat $n);done

E cerca la voce con Mobile Broadband Modem. Ad esempio, il mio output è il seguente:

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

Per ulteriori informazioni su come ottenere la porta giusta, consultare questo link: https://gist.github.com/heyalexej/cc6c97b1ea42736b3ff7

Quindi, utilizza picocom per collegarti alla tua porta:

$ sudo picocom /dev/ttyACM0

Dovresti vedere qualcosa del genere:

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

(se non lo vedi *EMRDY: 1, probabilmente significa che non hai fermato Modem Manager, vedi sopra)

Quindi inserire:

AT+CUSD=1,"*104#"

E dopo alcuni secondi, dovresti ottenere la tua risposta, che può essere multilinea:

+CUSD: 0,"You have:
2.07 GB of traffic, valid until N
47 minutes

",15

OK

Per uscire da Picocom, utilizzare Ctrl-A Ctrl-X

E riavvia modem manager:

$ sudo start modemmanager

-1

È possibile utilizzare la soluzione di PBX virtuale open source FreeSwitch insieme alla sua estensione GSMopen per inviare comandi USSD [ sorgente ].

Ad esempio, se il codice USSD per ottenere il saldo è (diciamo) * 901 #, eseguiresti:

chat SMS|interface3|ussd|*901#

Ovviamente ci sono soluzioni più semplici nelle altre risposte, ma nel caso in cui utilizzi comunque GSMopen (... ad esempio perché è l'unico modo per effettuare chiamate vocali GSM su Linux ...).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.