USSD를 이용한 GSM USB 모뎀 밸런스


8

USB 모뎀 (모바일 광대역 동글)에서 GSM SIM 카드의 균형 및 데이터 균형을 확인하기 위해 USSD 코드를 전송하는 데 사용할 수있는 도구 나 명령이 있습니까?

답변:


7

USSD 잔액 확인을 지원하는 일부 앱은 다음과 같습니다.

선불 관리자

선불 관리자

선불 관리자 는 그놈 데스크탑의 애플릿으로 GSM 모바일 선불 SIM 카드의 잔액을 확인하고 충전 할 수 있습니다. USSD 잔액 확인 및 topup이 모든 것을 갖춘 단순하고 최소한의 앱입니다. 그러나 반대로, 그것은 매우 오래된 응용 프로그램이며 오랫동안 새로운 업데이트를받지 못했습니다. 제공자가 지원되지 않는 경우 홈페이지에 설명 된대로 제공자를 수동으로 구성해야합니다 . 설치하려면 여기를 클릭하십시오 :

Ubuntu 소프트웨어의 선불 관리자 앱

또는 다음 명령을 실행하십시오.

sudo apt install prepaid-manager-applet

모뎀 관리자 GUI

모뎀 관리자 GUI

모뎀 관리자 GUI는 모바일 네트워크 기반 모뎀을 관리하고 모니터링하는 완벽한 솔루션입니다. 그것은 많은 기능을 포함하고 있으며 USSD 지원은 그중 하나 일뿐입니다. 전체 기능 목록을 보려면 공식 홈페이지를 방문하십시오 . 설치하려면 여기를 클릭하십시오 :

Ubuntu 소프트웨어의 모뎀 관리자 GUI 앱

또는 다음 명령을 실행하십시오.

sudo apt install modem-manager-gui

V 모바일 광대역

V 모바일 광대역

V Mobile Broadband 는 Linux 용 Vodafone Mobile Connect 소프트웨어로 Vodafone의 오픈 소스 Betavine Connection Manager 팀이 Network Manager와 호환되도록 다시 작성되었습니다. 불행히도 현재로서는 적극적으로 유지되지 않는 것 같으며 Ubuntu repos에서는 사용할 수 없습니다. 그러나 소스에서 프로젝트를 빌드하는 것은 운이 좋을 수도 있습니다. GitHub 페이지를 확인 하십시오 .

경고 :에 v-mobile-broadband의존 wader하며 우분투의 기본값을 대체합니다 modemmanager. 따라서 새 설정에 문제가 발생하여 uninstall을 결정한 경우 패키지 v-mobile-broadband를 다시 설치하는 것을 잊지 마십시오 modemmanager.


출처


V 모바일 광대역 : 12-Dec-14 : 오류 : W : ppa.launchpad.net/crass/v-mobile-broadband/ubuntu/dists/trusty/ 를 가져 오지 못했습니다 . 404 찾을 수 없습니다. 포기 되었습니까?
상록수

@evergreen 아니오, 프로젝트는 죽지 않았지만 PPA는 여전히 12.04LTS "Precise"에 대한 업데이트를 푸시합니다 . 그러나 14.04LTS "Trusty" 이상으로 아직 업데이트 되지 않았습니다.
HEXcube

불행히도, 이들 중 어느 것도 16.04 이상에서 작동하지 않습니다
Anwar

3

gammu이를 위해 명령 줄 유틸리티 를 사용할 수 있습니다 . 잔액을 얻기위한 USSD 코드가 (예를 들어) * 901 #이면 다음을 실행합니다.

gammu getussd "*901#"

설치 및 구성 지침 및 자세한 내용 은 여기를 참조하십시오 .


1

AT 명령을 사용하여 USSD를 통해 잔액을 직접 조회 할 수 있습니다. 이를 위해 직접 모뎀 (과 통신 할 수있는 시리얼 터미널 프로그램 사용 putty, minicom등).

나는 선택 atinout이 명령 줄과 잘 통합되어 있기 때문이다. 먼저 설치하십시오.

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

그런 다음 ModemManager (Ubuntu Linux에서 기본값)를 사용하는 경우 atinout모뎀에 액세스하기 위해 먼저 모뎀 을 비활성화해야 할 수 있습니다 .

sudo stop modemmanager;

이제 밸런스 쿼리를위한 USSD 코드를 네트워크에 보내고 (예 : * 901 #) 결과를 표시하려면 다음 명령을 사용합니다.

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

모뎀이에 있다고 가정합니다 /dev/ttyUSB1. AT두 번째의 명령 atinout명령은 단지 후에 도착해야 부작용으로 표시되는 원치 않는 USSD 답변을 얻을 수 있습니다 sleep.

균형을 조회하는 것은 USSD 메뉴를 운영 필요로하는 경우에 다음과 함께이 또한 가능하다 atinout, 이 답변을 참조 .


1

당신은 패키지와 함께 할 수 있습니다 modem-manager-gui. 그러나 13.10에서만 사용할 수 있습니다. 다른 버전에서는 패키지를 사용하여 터미널에서 관리해야합니다 modemmanager.

Ubuntu 13.10에있는 경우 :

sudo apt-get install modem-manager-gui modemmanager

다른 버전의 우분투에서는 응용 프로그램으로 할 수 있습니다 prepaid-manager-applet

sudo apt-get install prepaid-manager-applet

0

Linux 명령 행 도구 gsm-ussd를 사용하여 USSD 코드를 보내거나 답변을 얻거나 USSD 메뉴를 탐색 할 수도 있습니다 (안정적이지 않고 사용할 수는 없지만).

자세한 설치 및 구성 지침은 여기를 참조 하십시오 . 설치를 위해 제공되는 버전 0.4 데비안 패키지는 최신 개발 브랜치 버전 입니다.

균형을 맞추기위한 USSD 코드가 (예를 들어) * 901 #이고 모뎀 인 /dev/ttyUSB1경우 간단한 USSD 코드를 전송하고 네트워크의 응답을 표시하기 위해이를 실행합니다 (메뉴가 아님).

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

0

mmcliUbuntu 기본 ModemManager의 명령 행 클라이언트를 사용하여 USSD 코드를 보내고 응답을 얻을 수 있습니다.

  1. 모뎀을 나열하여 시작하십시오 mmcli -L. 이와 같은 모뎀 장치 경로가 표시됩니다 /org/freedesktop/ModemManager1/Modem/0. 끝에있는 숫자는 모뎀 색인입니다. 기억하십시오.

  2. 모뎀을 활성화하십시오 (모뎀 색인이 0이라고 가정). mmcli -m 0 -e

  3. USSD 요청을 보내고 답변을 표시하십시오. 잔액을 얻기 위해 네트워크 사업자의 USSD 코드가 * 901 #이라고 가정하면 명령은 다음과 같습니다.

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

잔액을 쿼리하려면 USSD 메뉴를 조작해야하는 경우 :이 방법도 가능합니다 ( 이 답변mmcli 참조) .


16.04에 명령은 이것을 반환합니다error: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Operation not supported.'
Anwar

0

저에게 ModemManager 기반 솔루션은 여러 줄 gammuUSSD 응답에서 올바르게 작동하지 않습니다. 예를 들어, 내 연산자에는 USSD 명령 *104#이 있으며 다음과 같이 응답합니다.

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

쓸모없는 첫 줄만 보는 것이 실망 스럽다 You have:.

마지막으로 picocom수동 AT 명령 으로 해결 방법을 찾았습니다 . 따라서 잔액을 확인할 때마다 다음을 수행해야합니다.

먼저 모뎀 관리자를 중지하십시오 :

$ sudo stop modemmanager

이제 모뎀 포트를 알아야합니다. 제 경우에는입니다 /dev/ttyACM0.

포트를 모르는 경우 다음을 시도하십시오.

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

로 항목을 찾으십시오 Mobile Broadband Modem. 예를 들어 내 출력은 다음과 같습니다.

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

올바른 포트를 얻는 방법에 대한 자세한 내용은 다음 링크를 참조하십시오. https://gist.github.com/heyalexej/cc6c97b1ea42736b3ff7

그런 다음 picocom을 사용하여 포트에 연결하십시오.

$ sudo picocom /dev/ttyACM0

다음과 같이 보일 것입니다 :

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

(이 표시되지 않으면 *EMRDY: 1모뎀 관리자를 중지하지 않았 음을 의미합니다. 위 참조)

그런 다음 다음을 입력하십시오.

AT+CUSD=1,"*104#"

그리고 몇 초 후에 답을 얻을 수 있습니다.

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

",15

OK

picocom을 종료하려면 Ctrl-A Ctrl-X

그리고 모뎀 관리자를 다시 시작하십시오 :

$ sudo start modemmanager

-1

오픈 소스 가상 PBX 솔루션 FreeSwitch 와 확장 GSMopen 을 함께 사용하여 USSD 명령을 보낼 수 있습니다 [ source ].

예를 들어, 잔액을 얻기위한 USSD 코드가 (예) * 901 #이면 다음을 실행합니다.

chat SMS|interface3|ussd|*901#

물론 다른 답변에는 더 간단한 솔루션이 있지만 어쨌든 GSMopen을 사용하는 경우 (예 : Linux에서 GSM 음성 통화를 수행하는 유일한 방법이기 때문에 ...)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.