Saldo Modem USB GSM menggunakan USSD

8

Apakah ada beberapa alat atau perintah yang dapat saya gunakan untuk mengirim kode USSD untuk memeriksa saldo dan keseimbangan data Kartu SIM GSM di modem USB saya (dongle broadband seluler)?

GunJack
sumber

Jawaban:

7

Ini adalah beberapa Aplikasi dengan dukungan cek saldo USSD:

Manajer Prabayar

Manajer Prabayar

Prabayar Manager adalah applet untuk Desktop GNOME yang memungkinkan Anda untuk memeriksa dan menambah saldo kartu SIM prabayar seluler GSM. Ini adalah aplikasi sederhana dan minimalis dengan pemeriksaan saldo dan pengisian USSD. Namun di sisi lain, ini adalah aplikasi yang sangat tanggal dan belum menerima pembaruan baru dalam waktu yang lama. Dan jika penyedia Anda tidak didukung, Anda harus mengonfigurasinya secara manual seperti dijelaskan di beranda mereka . Untuk menginstal, klik di sini:

Aplikasi Manajer Prabayar pada Perangkat Lunak Ubuntu

Atau jalankan perintah berikut:

sudo apt install prepaid-manager-applet

Modem Manager GUI

Modem Manager GUI

Modem Manager GUI adalah solusi lengkap untuk mengelola dan memantau modem berbasis jaringan seluler. Ini paket fitur yang cukup banyak, dan dukungan USSD hanyalah salah satunya. Untuk daftar lengkap fitur, kunjungi beranda resmi mereka . Untuk menginstal, klik di sini:

Aplikasi GUI Modem Manager pada Perangkat Lunak Ubuntu

Atau jalankan perintah berikut:

sudo apt install modem-manager-gui

V Mobile Broadband

V Mobile Broadband

V Mobile Broadband adalah perangkat lunak Vodafone Mobile Connect yang asli untuk Linux yang ditulis ulang agar kompatibel dengan Network Manager oleh tim open source Betavine Connection Manager Vodafone. Sayangnya, itu tampaknya tidak dipelihara dengan sangat aktif saat ini dan tidak tersedia di repo Ubuntu. Namun, Anda dapat mencoba keberuntungan Anda membangun proyek dari sumber. Lihat halaman GitHub mereka .

Peringatan : v-mobile-broadbandtergantung pada wader, yang menggantikan default Ubuntu modemmanager. Jadi, jika Anda mengalami masalah dengan pengaturan baru dan memutuskan untuk menghapus instalasi v-mobile-broadband, jangan lupa untuk menginstal ulang modemmanagerpaket.


Sumber

HEXcube
sumber
V Mobile Broadband: 12-Dec-14: error: W: Gagal mengambil ppa.launchpad.net/crass/v-mobile-broadband/ubuntu/dists/trusty/… 404 Tidak Ditemukan. Apakah sudah menyerah?
evergreen
@evergreen Tidak, proyek ini tidak mati karena PPA masih mendorong pembaruan untuk 12,04LTS "Tepat" . Namun, itu belum diperbarui untuk 14,04LTS " Amanah " dan belum.
HEXcube
Sayangnya, tidak satu pun dari ini bekerja untuk 16,04 dan lebih tinggi
Anwar
3

Anda dapat menggunakan utilitas baris perintah gammuuntuk tujuan ini. Jika kode USSD untuk mendapatkan saldo Anda adalah (katakanlah) * 901 #, Anda akan menjalankan:

gammu getussd "*901#"

Untuk petunjuk pemasangan dan konfigurasi dan detail lebih lanjut, lihat di sini .

tanius
sumber
1

Anda dapat menggunakan perintah AT secara langsung untuk menanyakan saldo Anda melalui USSD. Untuk itu, gunakan program terminal serial apa pun yang memungkinkan Anda berkomunikasi dengan modem Anda secara langsung ( putty, minicomdll.).

Saya memilih atinoutkarena terintegrasi dengan baik dengan baris perintah. Pertama Anda menginstalnya:

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

Kemudian, jika Anda menggunakan ModemManager (default di Ubuntu Linux), Anda mungkin harus menonaktifkannya terlebih dahulu untuk dapat atinoutmengakses modem Anda:

sudo stop modemmanager;

Sekarang, untuk mengirim kode USSD untuk kueri keseimbangan ke jaringan (katakanlah, * 901 #) dan tampilkan hasilnya, Anda akan menggunakan perintah ini:

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

Ini mengasumsikan bahwa modem Anda aktif /dev/ttyUSB1. The ATperintah di kedua atinoutperintah ini hanya untuk mendapatkan jawaban USSD diminta ditampilkan sebagai efek samping, yang seharusnya tiba setelah sleep.

Untuk kasus yang menanyakan saldo Anda, perlu mengoperasikan menu USSD: ini juga memungkinkan atinout, lihat jawaban ini .

tanius
sumber
1

Anda dapat melakukannya dengan paket tersebut modem-manager-gui. Tetapi ini hanya tersedia untuk 13.10. Di versi lain Anda harus mengelolanya di Terminal dengan paket modemmanager.

Jika Anda berada di Ubuntu 13.10:

sudo apt-get install modem-manager-gui modemmanager

Di versi lain dari Ubuntu Anda dapat melakukannya dengan aplikasi prepaid-manager-applet

sudo apt-get install prepaid-manager-applet
Mateo
sumber
0

Anda dapat menggunakan alat baris perintah Linux gsm-ussduntuk mengirim kode USSD, mendapatkan jawaban, dan bahkan menavigasi menu USSD (meskipun itu tidak stabil / dapat digunakan untuk saya).

Untuk petunjuk pemasangan dan konfigurasi terperinci, lihat di sini . Paket Debian versi 0.4 yang ditawarkan untuk instalasi adalah versi dev cabang terbaru .

Jika kode USSD untuk mendapatkan saldo Anda adalah (katakanlah) * 901 # dan modem /dev/ttyUSB1Anda, Anda akan menjalankan ini untuk mengirim kode USSD sederhana dan menampilkan jawaban jaringan (tidak menghasilkan menu):

gsm-ussd -m /dev/ttyUSB1 "*901#"
tanius
sumber
0

Anda dapat menggunakan mmcliklien baris perintah dari ModemManager default Ubuntu untuk mengirim kode USSD dan mendapatkan jawabannya:

  1. Mulailah dengan daftar modem Anda: mmcli -L. Ini akan menampilkan jalur perangkat modem seperti /org/freedesktop/ModemManager1/Modem/0. Angka pada akhirnya adalah indeks modem, ingatlah.

  2. Aktifkan modem (dengan asumsi indeks modem Anda adalah 0): mmcli -m 0 -e

  3. Kirim permintaan USSD dan tampilkan jawabannya. Dengan asumsi kode USSD operator jaringan Anda untuk mendapatkan saldo adalah * 901 #, perintahnya adalah:

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

Untuk kasus yang menanyakan saldo Anda, perlu mengoperasikan menu USSD: ini juga memungkinkan mmcli, lihat jawaban ini .

tanius
sumber
Pada 16,04, perintah mengembalikan inierror: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Operation not supported.'
Anwar
0

Bagi saya, keduanya adalah solusi berbasis ModemManager dan gammutidak bekerja dengan benar dengan respons USSD multiline; mis. operator saya memiliki perintah USSD *104#, di mana ia merespons sesuatu seperti:

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

Ini mengecewakan untuk melihat hanya garis berguna pertama: You have:.

Akhirnya saya menemukan solusi picocomdan perintah AT manual. Jadi setiap kali saya ingin memeriksa saldo saya, saya harus melakukan hal berikut:

Pertama, hentikan Modem Manager:

$ sudo stop modemmanager

Sekarang, Anda perlu tahu port modem Anda; dalam kasus saya, itu /dev/ttyACM0.

Jika Anda tidak tahu porta Anda, coba ini:

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

Dan cari entri dengan Mobile Broadband Modem. Misalnya output saya terlihat sebagai berikut:

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

Untuk informasi lebih lanjut tentang cara mendapatkan port yang benar, lihat tautan ini: https://gist.github.com/heyalexej/cc6c97b1ea42736b3ff7

Kemudian, gunakan picocom untuk terhubung ke port Anda:

$ sudo picocom /dev/ttyACM0

Anda harus melihat sesuatu seperti ini:

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

(jika Anda tidak melihat ini *EMRDY: 1, itu mungkin berarti Anda belum menghentikan Modem Manager, lihat di atas)

Lalu masukkan:

AT+CUSD=1,"*104#"

Dan setelah beberapa detik, Anda akan mendapatkan balasan Anda, yang bisa berupa multiline:

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

",15

OK

Untuk keluar dari picocom, gunakan Ctrl-A Ctrl-X

Dan mulai lagi manajer modem:

$ sudo start modemmanager
Dmitry Frank
sumber
-1

Anda dapat menggunakan solusi PBX virtual sumber terbuka FreeSwitch bersama dengan ekstensi GSMopen untuk mengirim perintah USSD [ sumber ].

Misalnya, jika kode USSD untuk mendapatkan saldo Anda adalah (katakanlah) * 901 #, Anda akan menjalankan:

chat SMS|interface3|ussd|*901#

Ada solusi yang lebih sederhana di jawaban lain tentu saja, tetapi jika Anda tetap menggunakan GSMopen (... misalnya karena itu satu-satunya cara untuk melakukan panggilan suara GSM di Linux ...).

tanius
sumber