AT command - USSD

2019-01-15 00:15发布

问题:

I'm using minicom (serial port software for linux) for interacting with my GSM modem, actually now I'm trying to use one of my mobile-provider's services with AT-Command.

here I say, I wanna see my balance:

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

OK

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

so, here I sent "1", but nothing happened and session get closed.

AT+CUSD=1,1

OK

nothing happen, but session closed.

With normal phone, after entering 1, I will get my current balance.

Please help me.

回答1:

The format of the command is AT+CUSD=[<n>[,<str>[,<dcs>]]], and the second parameter, <str>, is a string that should be enclosed in double quotes. E.g.

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

See 27.007 for more details about AT+CUSD and V.250 for general AT command handling.


If your phone gives an OK response to AT+CUSD=1,1 that is really bad, it should have given ERROR. V.250 is crystal clear on this:

String constants shall be bounded at the beginning and end by the double-quote character



回答2:

AT+CUSD=1,"your_service_code",15

so for your case

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

and don't forgrt the 15 at the end , this question helped me to solve the problem.