Команда 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 в конце, этот вопрос помог мне решить проблему.