Cân bằng Modem USB GSM sử dụng USSD


8

Có một số công cụ hoặc lệnh tôi có thể sử dụng để gửi mã USSD để kiểm tra số dư và cân bằng dữ liệu của Thẻ SIM GSM trong modem USB của tôi (dongle băng thông rộng di động) không?

Câu trả lời:


7

Đây là một số Ứng dụng có hỗ trợ kiểm tra số dư USSD:

Quản lý trả trước

Quản lý trả trước

Trình quản lý trả trước là một applet cho Bàn làm việc Gnome cho phép bạn kiểm tra và nạp số dư của thẻ SIM trả trước di động GSM. Đây là một ứng dụng đơn giản và tối giản với kiểm tra số dư USSD và nạp tiền là tất cả những gì nó làm. Nhưng mặt khác, đây là một ứng dụng rất cũ và không nhận được bất kỳ cập nhật mới nào trong một thời gian dài. Và nếu nhà cung cấp của bạn không được hỗ trợ, bạn sẽ phải tự cấu hình nó như được mô tả trên trang chủ của họ . Để cài đặt, bấm vào đây:

Ứng dụng Trình quản lý trả trước trên Phần mềm Ubuntu

Hoặc chạy lệnh sau:

sudo apt install prepaid-manager-applet

GUI quản lý modem

GUI quản lý modem

Modem Manager GUI là một giải pháp hoàn chỉnh để quản lý và giám sát các modem dựa trên mạng di động. Nó chứa khá nhiều tính năng và hỗ trợ USSD chỉ là một trong số đó. Để biết danh sách đầy đủ các tính năng, hãy truy cập trang chủ chính thức của họ . Để cài đặt, bấm vào đây:

Ứng dụng GUI quản lý modem trên phần mềm Ubuntu

Hoặc chạy lệnh sau:

sudo apt install modem-manager-gui

Băng thông rộng di động V

Băng thông rộng di động V

V Mobile Broadband là phần mềm Vodafone Mobile Connect gốc dành cho Linux được viết lại để tương thích với Trình quản lý mạng bởi nhóm Trình quản lý kết nối Betavine mã nguồn mở của Vodafone. Thật không may, nó dường như không được duy trì rất tích cực vào lúc này và không có sẵn trong repos Ubuntu. Tuy nhiên, bạn có thể thử vận ​​may xây dựng dự án từ nguồn. Kiểm tra trang GitHub của họ .

Cảnh báo : v-mobile-broadbandphụ thuộc vào wader, thay thế mặc định của Ubuntu modemmanager. Vì vậy, nếu bạn gặp sự cố với thiết lập mới và quyết định gỡ cài đặt v-mobile-broadband, đừng quên cài đặt lại modemmanagergói.


Nguồn


Băng thông rộng di động V: 12-ngày 14 tháng 12: lỗi: W: Không thể tìm nạp ppa.launchpad.net/crass/v-mobile-broadband/ubfox/dists/trusty/ trộm 404 Không tìm thấy. Là nó từ bỏ?
thường xanh

@evergreen Không, vì dự án chưa chết, PPA vẫn đẩy các bản cập nhật cho 12.04LTS "Chính xác" . Tuy nhiên, nó chưa được cập nhật cho 14.04LTS "Trusty" trở lên.
HEXcube

Thật không may, không ai trong số này hoạt động cho 16.04 và cao hơn
Anwar

3

Bạn có thể sử dụng tiện ích dòng lệnh gammucho mục đích này. Nếu mã USSD để lấy số dư của bạn là (giả sử) * 901 #, bạn sẽ thực thi:

gammu getussd "*901#"

Để biết hướng dẫn cài đặt và cấu hình và biết thêm chi tiết, xem tại đây .


1

Bạn có thể sử dụng các lệnh AT trực tiếp để truy vấn số dư của mình thông qua USSD. Cho rằng, sử dụng bất kỳ chương trình thiết bị đầu cuối nối tiếp cho phép bạn giao tiếp với modem của bạn trực tiếp ( putty, minicomvv).

Tôi đã chọn atinoutvì nó tích hợp độc đáo với dòng lệnh. Đầu tiên bạn cài đặt nó:

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

Sau đó, nếu bạn sử dụng ModemManager (mặc định trong Ubuntu Linux), trước tiên bạn có thể phải tắt nó để cho phép atinouttruy cập modem của mình:

sudo stop modemmanager;

Bây giờ, để gửi mã USSD cho truy vấn số dư tới mạng (giả sử * 901 #) và hiển thị kết quả, bạn sẽ sử dụng lệnh này:

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

Điều này giả định rằng modem của bạn đang ở /dev/ttyUSB1. Các ATlệnh trong thứ hai atinoutlệnh là chỉ để có được câu trả lời USSD không mong muốn hiển thị như một tác dụng phụ, trong đó nên đã đến sau sleep.

Đối với trường hợp truy vấn số dư của bạn yêu cầu vận hành menu USSD: điều này cũng có thể với atinout, hãy xem câu trả lời này .


1

Bạn có thể làm chúng với gói modem-manager-gui. Nhưng nó chỉ có sẵn cho 13.10. Trong các phiên bản khác, bạn phải quản lý chúng trong Terminal cùng với gói modemmanager.

Nếu bạn đang ở trong Ubuntu 13.10:

sudo apt-get install modem-manager-gui modemmanager

Trong các phiên bản khác của Ubuntu, bạn có thể làm điều đó với ứng dụng prepaid-manager-applet

sudo apt-get install prepaid-manager-applet

0

Bạn có thể sử dụng công cụ dòng lệnh Linux gsm-ussdđể gửi mã USSD, nhận câu trả lời và thậm chí điều hướng các menu USSD (mặc dù điều đó không ổn định / có thể sử dụng được đối với tôi).

Để biết hướng dẫn cài đặt và cấu hình chi tiết xem tại đây . Gói Debian phiên bản 0.4 được cung cấp để cài đặt là phiên bản nhánh nhánh mới nhất .

Nếu mã USSD để lấy số dư của bạn là (giả sử) * 901 # và modem của bạn là /dev/ttyUSB1bạn sẽ thực thi điều này để gửi mã USSD đơn giản và hiển thị câu trả lời của mạng (không dẫn đến menu):

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

0

Bạn có thể sử dụng ứng dụng mmclikhách dòng lệnh của Modem Manager mặc định của Ubuntu để gửi mã USSD và nhận được trả lời:

  1. Bắt đầu bằng cách liệt kê các modem của bạn : mmcli -L. Điều này sẽ hiển thị một đường dẫn thiết bị modem như thế nào /org/freedesktop/ModemManager1/Modem/0. Số ở cuối là chỉ số modem, hãy nhớ nó.

  2. Kích hoạt modem (giả sử chỉ số modem của bạn là 0): mmcli -m 0 -e

  3. Gửi yêu cầu USSD và hiển thị câu trả lời. Giả sử mã USSD của nhà khai thác mạng của bạn để lấy số dư là * 901 #, lệnh sẽ là:

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

Đối với trường hợp truy vấn số dư của bạn yêu cầu vận hành menu USSD: điều này cũng có thể với mmcli, hãy xem câu trả lời này .


Vào ngày 16.04, lệnh trả lại điều nàyerror: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Operation not supported.'
Anwar

0

Đối với tôi, cả hai giải pháp dựa trên ModemManager và gammukhông hoạt động chính xác với phản hồi USSD đa dòng; ví dụ: nhà điều hành của tôi có một lệnh USSD *104#, mà nó đáp ứng một cái gì đó như:

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

Thật đáng thất vọng khi chỉ nhìn thấy dòng vô dụng đầu tiên : You have:.

Cuối cùng tôi tìm thấy một cách giải quyết với picocomlệnh AT thủ công. Vì vậy, mỗi lần tôi muốn kiểm tra số dư của mình, tôi phải làm như sau:

Đầu tiên, dừng Trình quản lý Modem:

$ sudo stop modemmanager

Bây giờ, bạn cần biết cổng modem của bạn; trong trường hợp của tôi, nó là /dev/ttyACM0.

Nếu bạn không biết cổng của mình, hãy thử điều này:

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

Và tìm kiếm các mục với Mobile Broadband Modem. Ví dụ: đầu ra của tôi trông như sau:

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

Để biết thêm thông tin về việc lấy đúng cổng, hãy xem liên kết này: https://gist.github.com/heyalexej/cc6c97b1ea42736b3ff7

Sau đó, sử dụng picocom để kết nối với cổng của bạn:

$ sudo picocom /dev/ttyACM0

Bạn sẽ thấy một cái gì đó như thế này:

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

(nếu bạn không thấy điều này *EMRDY: 1, điều đó có thể có nghĩa là bạn chưa dừng Trình quản lý Modem, xem ở trên)

Sau đó nhập:

AT+CUSD=1,"*104#"

Và sau vài giây, bạn sẽ nhận được câu trả lời của mình, có thể là đa dòng:

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

",15

OK

Để thoát picocom, sử dụng Ctrl-A Ctrl-X

Và khởi động lại trình quản lý modem:

$ sudo start modemmanager

-1

Bạn có thể sử dụng giải pháp tổng đài ảo nguồn mở FreeSwitch cùng với phần mở rộng GSMopen của nó để gửi các lệnh USSD [ nguồn ].

Ví dụ: nếu mã USSD để lấy số dư của bạn là (giả sử) * 901 #, bạn sẽ thực thi:

chat SMS|interface3|ussd|*901#

Tất nhiên, có những giải pháp đơn giản hơn trong các câu trả lời khác, nhưng trong trường hợp bạn vẫn sử dụng GSMopen (ví dụ như vì đây là cách duy nhất để thực hiện các cuộc gọi thoại GSM trong Linux Linux).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.