1

パソコンのモバイルブロードバンドモデムに装着したSIMカードの口座残高を知りたいです。携帯電話会社の場合、これは USSD コードを使用して機能します100#

gammuを使用してその USSD コードを送信できることがわかりましたgammu getussd '100#'。応答として、gammu は次の USSD メニューを表示します。

Press Ctrl+C to break...  
USSD received  
Status               : Action needed  
Service reply        : "Reply with your option:  
1.Account Balance  
2.Buy a Data Plan  
3.Top Up Now  
No response in specified timeout. Probably phone not connected.

そのメニューからオプション ( など) を選択するにはどうすればよい1ですか?

4

5 に答える 5

5

ModemManager (およびそのコマンド ライン クライアント インターフェイスmmcli ) は、現在、Linux で USSD および USSD メニューと対話するための最も洗練された、最高品質のソリューションであるように思えます。

インストール (Debian / Ubuntu Linux で):

sudo apt-get install modemmanager modem-manager-gui

使用法(マンページに従う):

  1. モデムの一覧表示: mmcli -L. これにより、次のようなモデム デバイス パスが表示/org/freedesktop/ModemManager1/Modem/12され、その末尾の番号を使用して-m、次のコマンドのオプションの後に使用するモデムを指定できます。

  2. モデムの属性を表示しています: mmcli -m 12

  3. モデムの有効化 (USSD で使用する前に必要):mmcli -m 12 -e

  4. USSD セッションの開始。たとえば、Ncellの場合、このコマンドはメインの USSD メニューを表示します。mmcli -m 12 --3gpp-ussd-initiate="*100#"

  5. USSDメニューへの対応。セッションが開始された後、次のようなコマンドを使用して応答できます。ここではオプションを使用しています1mmcli -m 12 --3gpp-ussd-respond="1"

  6. 指定されたモデムの USSD セッションをキャンセルしています: mmcli -m 12 --3gpp-ussd-cancel

  7. すべての USSD セッション (使用可能なすべてのモデム) のステータスの取得: mmcli --3gpp-ussd-status.

ほとんどのハードウェアでは、これは説明どおりに正しく、すぐに機能するはずです。

(ただし、私のハードウェアでは、mmcliバグのためにこれまで使用できませんでした。すべての USSD 関連のコマンドmmcliは応答しerror: modem not unlocked yet、ロックが有効になっmmcli -m 12 | grep " lock"ていることを示しsim-pin2ます。しかし、そうではありません (つまり、ロックを無効にしてこれを乗り越えることができませんでした) . そして、それが有効になったとしても、そのロックは USSD の使用を制限しません (それはむしろ、特定の番号への発信を制限するためのものです). したがって、ここからこの過度のテスト条件を削除し、自分でコンパイルして、もう一度テストしてください… .)

于 2015-08-06T19:50:51.400 に答える