Перейти к содержанию
    

и снова CUSD

Приветствую, всех!

Поиском на форуме пользовался(может плохо искал?)

Столкнулся с проблемой запроса баланса на модеме SIM800C

Отправляю модему

AT+CSCS="GSM"

получаю ОК

AT+CUSD=1,"*100#",15

приходит

+CUSD: 2

жду 10 секунд, но модем молчит.

Если вставить симку другого оператора приходит все как надо,

если эту симку вставить в телефон или в другой прибор ответ приходит полностью с балансом.

Вопрос может ли оператор запретить ussd для данного модема и если да, то насколько?

P.S. Да пробовал и простой вариант ATD*100#; и ATD#100#; и AT+CUSD=1,"*100#" и AT+CUSD=1,"#100#"

результат +CUSD: 2 и пусто

Изменено пользователем blox

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Встречался с тем, что не приходили ответы на CUSD (не помню, правда, с каким кодом) из-за того что не было денег на счете. Т.е. получалась абсурдная ситуация - заблокированы исходящие вызовы/проверка баланса, а состояние счета не запросить.

Начните с этого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте перейти на UCS2 - скорее всего оператор использует двухбайтовую кодировку, поэтому при текстовой у вас возможно и будет пустота.

Только и запрос тогда даем в UCS

 

вместо

 

AT+CSCS="GSM"

AT+CUSD=1,"*100#",15

 

запросите

 

AT+CSCS="UCS2"

AT+CUSD=1,"002A0031003000300023",8

 

 

Вообще рекомендую - один раз разобраться с UCS2 и пользоваться хоть в CUSD, хоть в SMS.

Там ничего сложного нет, а учитывая закидоны операторов, жизнь облегчает сильно.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте перейти на UCS2 - скорее всего оператор использует двухбайтовую кодировку, поэтому при текстовой у вас возможно и будет пустота.

Только и запрос тогда даем в UCS

 

вместо

 

AT+CSCS="GSM"

AT+CUSD=1,"*100#",15

 

запросите

 

AT+CSCS="UCS2"

AT+CUSD=1,"002A0031003000300023",8

 

 

Вообще рекомендую - один раз разобраться с UCS2 и пользоваться хоть в CUSD, хоть в SMS.

Там ничего сложного нет, а учитывая закидоны операторов, жизнь облегчает сильно.

Спасибо большое! попробую отпишусь.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нечистые электромагнитные силы....

У меня на трех операторах такое не наблюдается

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нечистые электромагнитные силы....

У меня на трех операторах такое не наблюдается

 

На телитах было механизм снятия внутренних логов и отправка в техподдержку для разбора.

На симкоме нет такого ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Механизм снятия логов есть. Только вопрос не в модуле.

 

+CUSD: 2 - это cancel session (not applicable to read Command response)

 

Невозможно прочитать ответ оператора на команду.

Нужно точно знать в каком формате и в какой кодировке оператор отвечает.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сталкивался с этой ситуацией на другом модеме, когда делал удаленный запрос баланса через SMS.

ответ +CUSD: 2 приходит, если сразу после приема смс модем шлет запрос в сеть.

решил проблему вставив задержку после завершения приема смс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа, а кто-нибудь в курсе, какой таймаут у SIM800C на команду <AT+CUSD>?

 

А-то в даташите <SIM800 Series_AT Command Manual_V1.10> указано <- s>.

 

О, простите забыл еще один вопрос.

Я так понимаю, что SIM800 выполняет команду <AT+CUSD> в фоновом режиме.. так?

Если так, то есть ли как-либо ограничения в это время на другие команды? Ну, там, нельзя звонить.. или отправлять данные.. подскажите, пожалуйста.

 

Изменено пользователем Gav

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Самое простое правило - не получив ответ на предыдущую команду, следующую не отправлять.

Некуда там спешить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/2/2018 at 1:25 PM, CADiLO said:

AT+CUSD=1,"002A0031003000300023",8

dcs=8  - это корректно?

TS 23.038 Alphabets and language-specific information в разделе Cell Broadcast Data Coding Scheme нам сообщает

0000 1111 - Language unspecified (т.е. похоже на значение по умолчанию, 15)

0000 1000 - Portuguese (фигня какая-то).

 

При этом dcs=15 работает. Кодировка в модеме - UCS2.

Почему на отправку не работает dcs=72 (0100 1000 - General Data Coding indication, UCS2, class 0), не понимаю. Принятые USSD приходят именно с таким dcs.

 

Чёртов симком. Параметры этой команды в руководстве толком не расписаны. Извольте читать стандарты, о существовании которых вы можете узнать из интернетов или из чтения документации каких-то других производителей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...