Команда AT - USSD

Я использую minicom (программное обеспечение для последовательного порта для Linux) для взаимодействия с моим GSM-модемом, на самом деле теперь я пытаюсь использовать одну из моих услуг мобильного оператора с AT-Command.

здесь я говорю, я хочу увидеть свой баланс:

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, я получу текущий баланс.

Пожалуйста, помогите мне.

Ответ 1

Формат команды AT+CUSD=[<n>[,<str>[,<dcs>]]], а второй параметр <str> - это строка, которая должна быть заключена в двойные кавычки. Например.

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

Подробнее о AT+CUSD и V.250 см. 27.007. для общей обработки команд AT.


Если ваш телефон дает OK ответ на AT+CUSD=1,1, что действительно плохо, он должен был дать ERROR. V.250 кристально ясно:

Строковые константы должны быть ограничены в начале и в конце символом двойной кавычки

Ответ 2

AT+CUSD=1,"your_service_code",15

поэтому для вашего случая

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

и не для конца 15 в конце, этот вопрос помог мне решить проблему.