web-dev-qa-db-ja.com

ATコマンド-USSD

GSMモデムとのやり取りにminicom(Linuxのシリアルポートソフトウェア)を使用していますが、実際には、AT-Commandでモバイルプロバイダーのサービスの1つを使用しようとしています。

ここで私は言う、私は私のバランスを見たい:

AT+CUSD=1,*555*87*1234#

OK

+CUSD: 1,"this service will deduct you 5cent from your balance, to continue please enter 1",15

そこで、ここでは「1」を送信しましたが、何も起こらずセッションが終了しました。

AT+CUSD=1,1

OK

何も起こりませんが、セッションは終了しました。

通常の電話では、1を入力した後、現在の残高を取得します。

私を助けてください。

12
atari83

コマンドの形式はAT+CUSD=[<n>[,<str>[,<dcs>]]]で、2番目のパラメーター<str>は二重引用符で囲む必要がある文字列です。例えば。

AT+CUSD=1,"*555*87*1234#"
AT+CUSD=1,"1"

AT+CUSDの詳細については 27.007 を、一般的なATコマンド処理については V.25 を参照してください。


お使いの携帯電話がAT+CUSD=1,1に対してOK応答を返し、本当に悪い場合は、ERRORが返されているはずです。 V.250はこれに関して非常に明確です。

文字列定数は、最初と最後が二重引用符で区切られます。

19
hlovdal
AT+CUSD=1,"your_service_code",15

だからあなたの場合

AT+CUSD=1,"*555*87*1234#",15

最後に15を忘れないでください。この質問は私が問題を解決するのに役立ちました。

10
Nassim