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

Что-то я никак не могу справиться - что на ATD*100#, что на AT+CUSD=1,"*100#" одно и то же, "ERROR", сразу. Чего ему надо, кто объяснит ? Версия прошивки B06.

 

Уточнение: при расширенной диагностике - "+CME ERROR: operation not allowed" для варианта AT+CUSD=, для ATD ругается на неправильный символ в строке (ну ладно, значит, такой формат не подходит, но почему не получается с AT+CUSD ?)

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

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


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

ATD*100# - c ATD у SIM900 не работает (кстати у SAGEM тоже). Только CUSD.

 

Проверьте какой код запроса у текущего оператора.

 

Вот лог с Киевстара - прошивка 06 - цифры иксами забил я

 

at+gsv

SIMCOM_Ltd

SIMCOM_SIM900

Revision:1137B06SIM900M64_ST

 

OK

at+cusd=1,"*111#"

OK

 

+CUSD: 0,"Na rahunku: XXX.XXgrn; Xhvyl;Info pro bonusy na *112#,*118# i *119#. Zagubyv svoiu SIM? Vidnovy ii! Info:XXX*XX*",XX

 

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


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

Проверьте какой код запроса у текущего оператора.

А где это узнать ? Поставил мегафоновскую симку - с кодом 0 все то же самое, случайным образом перебирал, с кодом 255 отозвалось, пришел ответ. С МТСовской -с кодом 255 (и несколькими другими) приходит "+USD: 2", на другие сразу ругается. Почему телефонам этот код не нужен, а модуль с установками по умолчанию не хочет ? Как вообще это (USSD) использовать ?

 

Да, и "до кучи" повторю свой старый вопрос - почему не удается назначить адреса DNS вручную до попытки установления соединения (после-то получается, но уже не нужно) ? Можно ли вообще этим пользоваться или забить на это ?

 

P.S. Нашел рекомендацию отправить запрос в 16-битной кодировке - сработало. Буду разбираться, как, что и когда. Но если кто объяснит, как это делать в общем случае (что и как настроить, чтобы работало везде и всегда без бубна и без плясок), буду признателен...

 

P.P.S. Частично разобрался - AT+CSCS="GSM", начало жрать USSD-запросы в ASCII. Ответы все равно приходят в 16-битной кодировке (поскольку с русскими буквами). А если оператор пошлет в GSM-кодировке, придет нормальная текстовка ? И как понять, в каком формате пришло ? Или просто тупо установить UCS2, чтобы и посылать и принимать строго в 16-битной кодировке ? А это _гарантирует_, что ответы оператора _всегда_ придут в 16-битном виде ?

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

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


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

>>>>Почему телефонам этот код не нужен

 

Неверно - номер 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# - Пополни мой счёт

 

 

По кодировке - вопрос к оператору. Насколько я помню наших обязали давать ответ исключительно транслитом и английскими буквами, так как их разнобой с ответами многие телефоны не понимали.

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


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

>>>>Почему телефонам этот код не нужен

 

Неверно - номер USSD записан в симке изначально оператором и обычно выглядит как "проверка баланса"

Возьмите значение из этой записи. Или просто позвоните оператору и спросите - как проверить баланс - вам ответят.

Я не про тело самого запроса, а про значение третьего параметра в команде AT+CUSD, то, что <dcs>.

 

По кодировке - вопрос к оператору. Насколько я помню наших обязали давать ответ исключительно транслитом и английскими буквами, так как их разнобой с ответами многие телефоны не понимали.

Да мне без разницы, в каком формате оператор пошлет ответ. Важно, в каком формате отдаст модуль по запросу AT+CUSD. Если я дам AT+CSCS="UCS2", ответ на +CUSD всегда будет 16-битный или зависит от того, в каком формате пришлет оператор ? Я это проверить не могу, сейчас все вижу в 16-битном виде, а вдруг бывает иначе ?

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


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

Вот лог с Киевстара

.......

at+cusd=1,"*111#"

А что придет на at+cscs="UCS2";+cusd=1,"002A0031003100310023" ?

Можете глянуть ?

 

 

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


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

А что придет на 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

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


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

+CUSD: 0,"00550073006C00750067006100200064006F00730074007500xxxxxxx",я

Ок, спасибо, по крайней мере теперь есть уверенность.

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


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

Хочу поведать очередную забавную "радость"...:

Сразу: все описанное относится к конкретной одной симкарте.

Вчера даю запрос *100# (кодировка GSM).

Но если раньше (в случае, если в ответе есть кириллица) получал что-то типа:

0441 0442 0443 ...... 0032....0033 .....

Вчера стало:

0441 0442 0443 .......2.....3.....

то есть все, что не начинается с 04 (не кириллица) - идет без 003.

Ладно, думаю, хорошо... Перед запросом устанавливаю юникод (UCS2). Радуюсь... Вижу:

0441 0442 0443 ...... 0032....0033 .....

Продолжаю сегодня. Пару раз все нормально, а потом, как отрезало: на запрос модуль через секунду отвечает ERROR.

Снова меняю на кодировку GSM и вижу:

0441 0442 0443 ...... 0032....0033 .....

бред какой то.... пока не могу найти симкарту, в ответе которой нет кириллицы... боюсь, будет что то типа:

Vash balance....

Вот как такое "переварить"...?

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


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

Хочу поведать очередную забавную "радость"...:

Сразу: все описанное относится к конкретной одной симкарте.

А как эта симкарта ведет себя с другими модулями?

 

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


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

А как эта симкарта ведет себя с другими модулями?

 

Сегодня поставил в М10. Ситуация лучше: при переводе в UCS2 ответы всегда (заодно сделал для себя "открытие" - для получения ответа на кириллице надо слать *100#, для латинницы - #100#) идут в "нормальном" юникоде (все символы состоят из 4-х байт).

Посмотрим, что будет в течение нескольких дней...

Как описывал выше, у сим300 на следующий день после очередного запроса (с нормальным ответом) пошли ерроры (причем модуль даже не перевключался).

Дело не в симкарте точно: пробовал еще 4 штуки разных операторов - абсолютно та же ситуация.

 

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


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

Ладно, думаю, хорошо... Перед запросом устанавливаю юникод (UCS2). Радуюсь... Вижу:

0441 0442 0443 ...... 0032....0033 .....

Продолжаю сегодня. Пару раз все нормально, а потом, как отрезало: на запрос модуль через секунду отвечает ERROR.

Запрос в UCS2 ?

Вот как такое "переварить"...?

Пока я для себя сделал однозначный вывод - USSD только в UCS2 (и запрос, и ответ), чтение SMS - только в PDU. Но если и при UCS2 и запросе в нем же бывает "ERROR", да еще и на разных операторах - то это хреново. У меня, правда, SIM900, если это плюха софта, то, надеюсь, туда она не переползла...

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


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

Вот как такое "переварить"...?

При приеме входного потока выкинь из него все не печатные символы (ниже 20). В результате первый байт юникода просто выпадет оставив только текст...

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


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

пока не могу найти симкарту, в ответе которой нет кириллицы...
У российского МТС: если запрос выдавать в виде #100# (т.е. вместо первой звездочки - решетка), то ответ всегда приходит транслитом. Может и у других операторов так же? Не будет проблем с кириллическими символами...

 

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


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

Проверил по-быстрому на трёх местных операторах (МТС, КС и life) - на запросы, начинающиеся с решётки, выдаются сообщения об ошибке.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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