Jawaban:
Ini adalah beberapa Aplikasi dengan dukungan cek saldo USSD:
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:
Atau jalankan perintah berikut:
sudo apt install prepaid-manager-applet
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:
Atau jalankan perintah berikut:
sudo apt install modem-manager-gui
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-broadband
tergantung 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 modemmanager
paket.
Anda dapat menggunakan utilitas baris perintah gammu
untuk 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 .
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
, minicom
dll.).
Saya memilih atinout
karena 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 atinout
mengakses 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 AT
perintah di kedua atinout
perintah 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 .
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
Anda dapat menggunakan alat baris perintah Linux gsm-ussd
untuk 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/ttyUSB1
Anda, Anda akan menjalankan ini untuk mengirim kode USSD sederhana dan menampilkan jawaban jaringan (tidak menghasilkan menu):
gsm-ussd -m /dev/ttyUSB1 "*901#"
Anda dapat menggunakan mmcli
klien baris perintah dari ModemManager default Ubuntu untuk mengirim kode USSD dan mendapatkan jawabannya:
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.
Aktifkan modem (dengan asumsi indeks modem Anda adalah 0): mmcli -m 0 -e
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 .
error: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Operation not supported.'
Bagi saya, keduanya adalah solusi berbasis ModemManager dan gammu
tidak 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 picocom
dan 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
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 ...).