Bezdepbonusu7Программирование: статьи и ответы

Вопрос

АТ-команда - USSD

Автор вопроса: atari83Ответов: 2

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

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

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

at-commandussd

Ответы

Ответ 1 · рейтинг 22 · hlovdal

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

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

Подробнее о AT+CUSD и 27.007. http://www.itu.int/rec/T-REC-V.250-200307-I/en" rel="noreferrer">V.250 для общей обработки команд AT.


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

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

Ответ 2 · рейтинг 12 · Nassim

AT+CUSD=1,"your_service_code",15

Итак, для вашего случая,

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

И не забудьте 15 в конце. Этот вопрос помог мне решить проблему.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы