Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USSD: подробности
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
RadikX
Хотелось бы сделать сервис в модеме на основе SIM900 для удаленного (через СМС или GPRS) управления USSD запросами. Допустим надо отписаться от рекламы или взять доверительный платеж. Нигде не смог найти ни максимальный размер отправляемого запроса, ни принимаемого ответа. Какое максимальное время ожидание ответа? Уважаемые знатоки, подскажите еще как организуются многошаговые USSD запросы, в которых требуются ответные действия пользователей?
В порицание SimCom'а: вышла atc v1.06, а формат ответа так и не вставили.
RadikX
В ответ на запрос баланса приходит ответ в кодировке UCS2. Параметр dcs (3-й) = 72. По стандарту GSM 03.40, как я понимаю, это соответсвует "Reserved coding groups". Где я ошибаюсь?
CADiLO
Эти вопросы не к модулю, а к операторскому серверу USSD - как они его сделали, так и будет работать.
А модуль только отправит рядок цифр, да получит ответ.

Как вариант, если оператор поддерживает - делайте через STK
В презенташке SIM900_ATC_Training(English).pdf есть пример, а далее к оператору.
RadikX
Дело в том, что не очень понятно, как задавать третий параметр (dcs) и на что он влияет.
допустим, я хочу получить ответ в юникоде.. По логике он долже быть 8. На разных операторах ответ приходит в разных кодировках (обычном 8-ми битовом и UCS2). Задание или незадание этого параметра, а также его значение абсолютно ни на что не влияет. Кто-нибудь видел такую ситуацию на других модемах?
CADiLO
>>>допустим, я хочу получить ответ в юникоде..

А оператор не хочет. Смотрим сюда, хоть и было давно, но актуальность не потеряло.
У некоторых операторов это еще и на SMS распространяется - сталкивались уже что конвертят русский в транслит.
http://forum.sgh.ru/topic36665.html
RadikX
Что примечательно. некоторые операторы (2 из 5 мною проверенных) отсылают dcs даже не в числовом виде: "00 FF" wacko.gif

Но вопрос остается открытым: телефон ведь отображает информацию правильно для любых операторов!
CADiLO
Не все телефоны и не любых. Особенно если покопаться в старых моделях.
Просто в телефонах в софте сделан упор на сервис и там вполне могут править "заезды" операторов.
В модулях же такого нет - инфу отдают как пришла, а ты сам с ней что хочешь то и делай.
RadikX
Вариант 146% возвращения ответа в UCS2:
Отправить текст запроса в формате юникода без указания dcs. CMGF=1 - почему-то обязательно. Предполагается, что можно отправить запрос и в PDU режиме?
При отправлении запроса в виде просто текста, предсказать формат ответа невозможно.

Перепроверил: наврал с CMGF - CUSD от нее не зависит, а зависит от CSMP="UCS2", что, наверно, логично.
CADiLO
Сделайте поиск USSD по форуму - уже неоднократно бодались по этой теме.
Например здесь - "SIM900 баланс, Помогите как проверить баланс"
RadikX
Спасибо. По глюкам оператора все выяснилось. Здесь ничего не поделаешь - их много, всех не заборешь. Почему только команда CUSD использует параметры заданные командой CSCS, а не так как указано в документации из параметра dcs команды CUSD?
CADiLO
>>> Почему только команда CUSD использует параметры заданные командой CSCS, а не так как указано в документации из параметра dcs команды CUSD?

открываем GSM 07.07

+CUSD

<str>: string type USSD-string (when <str> parameter is not given, network is not interrogated):

if <dcs> indicates that GSM 03.38 default alphabet is used:

- if TE character set other than "HEX" (refer command Select TE Character Set +CSCS) :ME/TA converts GSM alphabet into current TE character set according to rules of GSM 07.05
- if TE character set is "HEX": ME/TA converts each 7-bit character of GSM alphabet into two IRA character long hexadecimal number (e.g. character Π (GSM 23) is presented as 17 (IRA 49 and 55))
- if <dcs> indicates that 8-bit data coding scheme is used: ME/TA converts each 8-bit octet into two IRA character long hexadecimal number (e.g. octet with integer value 42 is presented to TE as two characters 2A (IRA 50 and 65))

<dcs>: see GSM 03.38 Cell Broadcast Data Coding Scheme in integer format (default 0)

Сначала в +CSCS задаем формат, а затем последний параметр действует в зависимости от того что задано.
Там дважды "если", поэтому оба условия должны выполняться. Ну и третье "если" - это когда оператор зафиксировал формат и игнорирует то что просит устройство.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.