web-dev-qa-db-ja.com

モバイルブロードバンド経由のUSSDリクエスト

基本的に私がしたいことは、3Gモデム(USB)にあるプリペイドSIMカードの残高を確認することです。

いくつかの背景情報:

  1. 3G-Internetのプロバイダー(Beelineと呼ばれる)も携帯電話サービスを提供しています。 SIMカードの残高を確認するには、携帯電話で* 102#と入力するだけで、残高の通知が届きます。したがって、常に機能するのは、SIMカードをモデムから携帯電話に取り出し、「呼び出し」によってバランスを確認することです* 102#
  2. モデムには、「バランスをチェック」ボタンがあるWindowsプログラムが付属しています。さまざまな理由で、このプログラムをワインでエミュレートしようとは思いません。 --Ubuntuに感謝-モデムは問題なく動作しているので、必要はありません。

私の考えは次のとおりです。Ubuntuを介して3Gモデムを介してこれらのUSSDリクエスト(ランダムな電話では問題にならないようです)を実行する可能性はありますか?

3
Rough Dude

これらの「ハッシュタグリクエスト」はUSSDと呼ばれます。このキーワードを検索すると、さまざまな解決策が見つかります。

  1. Gammu USSDリクエストを送信し、コマンドgammu getussd *102#を介してそれを受信できます。指摘したように ここ 一部のGSMモデムでは、USSDコードの非常に複雑な変換が必要になる場合があります。デバイス/dev/ttyUSB0(または同様の)を読み取る権限があることを確認してください。例は here にあります。

  2. Gsm-ussdはussdのgammuよりも使いやすいようですが、全体的に機能が少なくなっています。公式リポジトリにはありません。 here からダウンロードして、 this と同様に設定します。

  3. Prepaid-manager-applet は素晴らしいグラフィカルインターフェースを持ち、公式リポジトリにあります。これはおそらく最も簡単で間違いなく素晴らしい解決策です。プロバイダーが既にリストされているので、何もする必要はありません。 USSD番号が「/usr/share/mobile-broadband-provider-info/serviceproviders.xml」に追加されていない場合。あなたの国とプロバイダーのセクションを見つけて追加してください

    <balance-check>
        <ussd>*102#</ussd>
    </balance-check>
    

    一方、*102#はプロバイダーのUSSDコードに置き換える必要があります。これは次のように洗練されています。

Screenshot of the Prepaid-Manager-Applet

2
Rough Dude