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)?
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:Untuk petunjuk pemasangan dan konfigurasi dan detail lebih lanjut, lihat di sini .
sumber
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:Kemudian, jika Anda menggunakan ModemManager (default di Ubuntu Linux), Anda mungkin harus menonaktifkannya terlebih dahulu untuk dapat
atinout
mengakses modem Anda:Sekarang, untuk mengirim kode USSD untuk kueri keseimbangan ke jaringan (katakanlah, * 901 #) dan tampilkan hasilnya, Anda akan menggunakan perintah ini:
Ini mengasumsikan bahwa modem Anda aktif
/dev/ttyUSB1
. TheAT
perintah di keduaatinout
perintah ini hanya untuk mendapatkan jawaban USSD diminta ditampilkan sebagai efek samping, yang seharusnya tiba setelahsleep
.Untuk kasus yang menanyakan saldo Anda, perlu mengoperasikan menu USSD: ini juga memungkinkan
atinout
, lihat jawaban ini .sumber
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 paketmodemmanager
.Jika Anda berada di Ubuntu 13.10:
Di versi lain dari Ubuntu Anda dapat melakukannya dengan aplikasi
prepaid-manager-applet
sumber
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):sumber
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:
Untuk kasus yang menanyakan saldo Anda, perlu mengoperasikan menu USSD: ini juga memungkinkan
mmcli
, lihat jawaban ini .sumber
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: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:
Sekarang, Anda perlu tahu port modem Anda; dalam kasus saya, itu
/dev/ttyACM0
.Jika Anda tidak tahu porta Anda, coba ini:
Dan cari entri dengan
Mobile Broadband Modem
. Misalnya output saya terlihat sebagai berikut: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:
Anda harus melihat sesuatu seperti ini:
(jika Anda tidak melihat ini
*EMRDY: 1
, itu mungkin berarti Anda belum menghentikan Modem Manager, lihat di atas)Lalu masukkan:
Dan setelah beberapa detik, Anda akan mendapatkan balasan Anda, yang bisa berupa multiline:
Untuk keluar dari picocom, gunakan Ctrl-A Ctrl-X
Dan mulai lagi manajer modem:
sumber
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:
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 ...).
sumber