|
SIM900 и USSD-запросы |
|
|
|
Oct 19 2010, 09:38
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Что-то я никак не могу справиться - что на ATD*100#, что на AT+CUSD=1,"*100#" одно и то же, "ERROR", сразу. Чего ему надо, кто объяснит ? Версия прошивки B06.
Уточнение: при расширенной диагностике - "+CME ERROR: operation not allowed" для варианта AT+CUSD=, для ATD ругается на неправильный символ в строке (ну ладно, значит, такой формат не подходит, но почему не получается с AT+CUSD ?)
Сообщение отредактировал rx3apf - Oct 19 2010, 09:45
|
|
|
|
|
 |
Ответов
(1 - 14)
|
Oct 19 2010, 10:21
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(CADiLO @ Oct 19 2010, 14:04)  Проверьте какой код запроса у текущего оператора. А где это узнать ? Поставил мегафоновскую симку - с кодом 0 все то же самое, случайным образом перебирал, с кодом 255 отозвалось, пришел ответ. С МТСовской -с кодом 255 (и несколькими другими) приходит "+USD: 2", на другие сразу ругается. Почему телефонам этот код не нужен, а модуль с установками по умолчанию не хочет ? Как вообще это (USSD) использовать ? Да, и "до кучи" повторю свой старый вопрос - почему не удается назначить адреса DNS вручную до попытки установления соединения (после-то получается, но уже не нужно) ? Можно ли вообще этим пользоваться или забить на это ? P.S. Нашел рекомендацию отправить запрос в 16-битной кодировке - сработало. Буду разбираться, как, что и когда. Но если кто объяснит, как это делать в общем случае (что и как настроить, чтобы работало везде и всегда без бубна и без плясок), буду признателен... P.P.S. Частично разобрался - AT+CSCS="GSM", начало жрать USSD-запросы в ASCII. Ответы все равно приходят в 16-битной кодировке (поскольку с русскими буквами). А если оператор пошлет в GSM-кодировке, придет нормальная текстовка ? И как понять, в каком формате пришло ? Или просто тупо установить UCS2, чтобы и посылать и принимать строго в 16-битной кодировке ? А это _гарантирует_, что ответы оператора _всегда_ придут в 16-битном виде ?
Сообщение отредактировал rx3apf - Oct 19 2010, 10:38
|
|
|
|
|
Oct 19 2010, 11:01
|

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
>>>>Почему телефонам этот код не нужен
Неверно - номер USSD записан в симке изначально оператором и обычно выглядит как "проверка баланса" Возьмите значение из этой записи. Или просто позвоните оператору и спросите - как проверить баланс - вам ответят.
Так например у Киевстара это *111#, а у МТС (Украина) *101#
Коды USSD можете получит у своего оператора - так как зачастую они разные.
Вот маленький пример для России:
USSD-коды операторов сотовой связи 1. Мегафон: *100# - Баланс *111# - USSD-инфо *111*01# - Сервис-Гид *105*05# - Услуги, Скидки на связь, Интернет, СМС *105*09# - Уведомление о поступлении денег на счёт *105*20# - Смена тарифа *115# - Мегафон-Бонус *144*XXXXXXXXXX# - Позвони мне, где XXXXXXXXXX - номер абонента *135# - Позвони мне *136# - Пополни мне счёт *138# - Кредит доверия
2. Смартс (Волгоград-GSM): *123# - Баланс *110# - Транслитерация (переключение русского-английского языков при USSD-запросах) *119*XXXXXXXXXXX*YYY# - Выручай! (=Пополни мой счёт), где XX..XX - номер абонента, YYY - сумма *125# - Мобильная копилка *119*XXXXXXXXXXX# - Позвони мне
3. Билайн ("Вымпелком"): *102# - Баланс (Если при запросе по этому номеру выдает иероглифы, то нужно набирать #102#) *110# - USSD-инфо *111# - USSD-инфо *141# - Доверительный платёж *145# - Мобильный перевод *100# - Мобильный платёж *144*XXXXXXXXXXX# - Позвони мне *143*XXXXXXXXXXX# - Пополни мой счёт
4. МТС: *100# или #100# - Баланс *111# - USSD-инфо *110*XXXXXXXXXX# - Перезвони мне *116*XXXXXXXXXX# - Пополни мой счёт
По кодировке - вопрос к оператору. Насколько я помню наших обязали давать ответ исключительно транслитом и английскими буквами, так как их разнобой с ответами многие телефоны не понимали.
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Oct 19 2010, 11:23
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(CADiLO @ Oct 19 2010, 15:01)  >>>>Почему телефонам этот код не нужен
Неверно - номер USSD записан в симке изначально оператором и обычно выглядит как "проверка баланса" Возьмите значение из этой записи. Или просто позвоните оператору и спросите - как проверить баланс - вам ответят. Я не про тело самого запроса, а про значение третьего параметра в команде AT+CUSD, то, что <dcs>. Цитата По кодировке - вопрос к оператору. Насколько я помню наших обязали давать ответ исключительно транслитом и английскими буквами, так как их разнобой с ответами многие телефоны не понимали. Да мне без разницы, в каком формате оператор пошлет ответ. Важно, в каком формате отдаст модуль по запросу AT+CUSD. Если я дам AT+CSCS="UCS2", ответ на +CUSD всегда будет 16-битный или зависит от того, в каком формате пришлет оператор ? Я это проверить не могу, сейчас все вижу в 16-битном виде, а вдруг бывает иначе ?
|
|
|
|
|
Oct 20 2010, 06:33
|
Частый гость
 
Группа: Участник
Сообщений: 79
Регистрация: 12-08-06
Из: Минск
Пользователь №: 19 504

|
Цитата(rx3apf @ Oct 19 2010, 18:40)  А что придет на at+cscs="UCS2";+cusd=1,"002A0031003100310023" ? Можете глянуть ? Код at+cscs="UCS2" OK at+cusd=1,"*100#" ERROR at+cscs="GSM" OK at+cusd=1,"*100#" OK
+CUSD: 0,"Usluga dostupna tol'ko fizicheskim licam. xxxxxx",я
at+cscs="UCS2" OK at+cusd=1,"002A0031003000300023" OK
+CUSD: 0,"00550073006C00750067006100200064006F00730074007500xxxxxxx",я
Сообщение отредактировал id_Alx - Oct 20 2010, 06:38
|
|
|
|
|
Nov 2 2010, 06:22
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116

|
Цитата(sobr @ Nov 2 2010, 08:23)  А как эта симкарта ведет себя с другими модулями? Сегодня поставил в М10. Ситуация лучше: при переводе в UCS2 ответы всегда (заодно сделал для себя "открытие" - для получения ответа на кириллице надо слать *100#, для латинницы - #100#) идут в "нормальном" юникоде (все символы состоят из 4-х байт). Посмотрим, что будет в течение нескольких дней... Как описывал выше, у сим300 на следующий день после очередного запроса (с нормальным ответом) пошли ерроры (причем модуль даже не перевключался). Дело не в симкарте точно: пробовал еще 4 штуки разных операторов - абсолютно та же ситуация.
|
|
|
|
|
Nov 2 2010, 11:59
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(Budek @ Nov 1 2010, 19:56)  Ладно, думаю, хорошо... Перед запросом устанавливаю юникод (UCS2). Радуюсь... Вижу: 0441 0442 0443 ...... 0032....0033 ..... Продолжаю сегодня. Пару раз все нормально, а потом, как отрезало: на запрос модуль через секунду отвечает ERROR. Запрос в UCS2 ? Цитата Вот как такое "переварить"...? Пока я для себя сделал однозначный вывод - USSD только в UCS2 (и запрос, и ответ), чтение SMS - только в PDU. Но если и при UCS2 и запросе в нем же бывает "ERROR", да еще и на разных операторах - то это хреново. У меня, правда, SIM900, если это плюха софта, то, надеюсь, туда она не переползла...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|