stapleman 0 12 мая, 2015 Опубликовано 12 мая, 2015 · Жалоба Здравствуйте. Столкнулся с такой проблемой в модеме WS6318. Модем WS6318 работает с SIM-картой от оператора МТС. Версия прошивки модема: R32.0.201307021520.WS6318 020713 15:20 При работе с модемом ему отправляется USSD запрос баланса. На этот запрос приходит некорректный ответ. Лог обмена AT-командами следующий: AT+CUSD=1,"*100#",8 OK +CUSD: 0,"?????:2,99? ",72 Т.е. вместо текста приходят знаки вопроса. Если данный запрос отправить на модем WISMO228, то лог выглядит так: AT+CUSD=1,"*100#",8 OK +CUSD: 0,"041C0438043D04430441003A0032002C0039003904400020",72 Т.е. ответ передётся в юникоде. Если его декодировать, то текст следующий: "Минус:2,99р " Если эту SIM-карту вставить в телефон и отправить такой же USSD-запрос, то отвечает он "Минус:2,99р " Таким образом, у модема WS6318 с прошивкой R32 есть проблема с обработкой USSD ответа от оператора, если он отвечает кириллицей. В прошивке L31 ответ приходи как и положено в юникоде. Сейчас я вижу 2 решения проблемы: 1. Использовать прошивку L31, со всеми недокументированными "особенностями" этой версии. Плюс перепрошивать в будущем все покупаемые модемы. 2. Запрашивать USSD на латинице. Но у операторов по разному переключается раскладка: у МТС, например, достаточно отправить запрос баланса на латинице "#100#", а для Мегафона нужно сначала отдельно переключить раскладку "*105*0#" и уже потом запрашивать баланс. Как у других операторов пока не ясно. Подскажите, пожалуйста, может быть эту проблему можно решить каким-то другим способом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SierraWireless 0 12 мая, 2015 Опубликовано 12 мая, 2015 · Жалоба Добрый день, на WS6318, у вас отображается в текстовом режиме, а в WISMO228 в PDU режиме. попробуйте установить PDU режим - AT+CMGF=0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stapleman 0 12 мая, 2015 Опубликовано 12 мая, 2015 · Жалоба Добрый день, на WS6318, у вас отображается в текстовом режиме, а в WISMO228 в PDU режиме. попробуйте установить PDU режим - AT+CMGF=0 Вы ошибаетесь. Журнал обмена с WS6318: AT+CMGF? +CMGF: 0 OK AT+CUSD=1,"*102#",8 OK +CUSD: 0,"???????? ???????? ??? ????? ??????? ????????: *110*45#?????",72 Т.е. вместо юникода - знаки вопроса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kan35 7 12 мая, 2015 Опубликовано 12 мая, 2015 · Жалоба Не наблюдалось такого. Он, очевидно, пытается перекодировать в какой то локальный алфавит. AT+CMGF=0 на сколько я знаю влияет только на SMS. И еще, я отправляю AT+CUSD=1,"*102#" OK ... Приведу свои команды ему, сравните: ATCmdWRPR(5, PHYSICAL_PORT, "ATI\r", 1000, 2, "OK\r\n", "ERROR\r\n"); ATCmdWRPR(5, PHYSICAL_PORT, "AT+CGMI\r", 1000, 2, "OK\r\n", "ERROR\r\n"); ATCmdWRPR(5, PHYSICAL_PORT, "AT+CGMM\r", 1000, 2, "OK\r\n", "ERROR\r\n"); ATCmdWRPR(5, PHYSICAL_PORT, "AT+CGMR\r", 1000, 2, "OK\r\n", "ERROR\r\n"); ATCmdWRPR(5, PHYSICAL_PORT, "AT+CGSN\r", 1000, 2, "OK\r\n", "ERROR\r\n"); ATCmdWRPR(5, PHYSICAL_PORT, "AT+IFC=0,0\r", 1000, 2, "OK\r\n", "ERROR\r\n"); ATCmdWRPR(5, PHYSICAL_PORT, "ATV1\r", 200, 2, "OK\r\n", "ERROR\r\n"); ATCmdWRPR(5, PHYSICAL_PORT, "AT+CRC=0\r", 200, 2, "OK\r\n", "ERROR\r\n"); ATCmdWRPR(5, PHYSICAL_PORT, "AT+PSSLEEP=1,1\r", 200, 2, "OK\r\n", "ERROR\r\n"); // тут перевожу в режим CMUX и далее через него ATCmdWRPR(5, VIRTUAL_PORT_2, "AT+CLIP=1\r", 200, 2, "OK\r\n", "ERROR\r\n"); ATCmdWRPR(5, VIRTUAL_PORT_2, "AT+CMGF=0\r", 200, 2, "OK\r\n", "ERROR\r\n"); ATCmdWRPR(5, VIRTUAL_PORT_2, "AT+CNMI=2,1,0,0,0\r", 500, 2, "OK\r\n", "ERROR\r\n"); ATCmdWRPR(30, VIRTUAL_PORT_2, "AT+CPMS=\"SM\",\"SM\",\"SM\"\r", 500, 2, "OK\r\n", "ERROR\r\n"); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SierraWireless 0 12 мая, 2015 Опубликовано 12 мая, 2015 · Жалоба Вы ошибаетесь. Журнал обмена с WS6318: AT+CMGF? +CMGF: 0 OK AT+CUSD=1,"*102#",8 OK +CUSD: 0,"???????? ???????? ??? ????? ??????? ????????: *110*45#?????",72 Т.е. вместо юникода - знаки вопроса. Уточните пожалуйста, какой тип отображения символов используется команда - AT+CSCS? выставите AT+CSCS="UCS2" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stapleman 0 12 мая, 2015 Опубликовано 12 мая, 2015 (изменено) · Жалоба Уточните пожалуйста, какой тип отображения символов используется команда - AT+CSCS? выставите AT+CSCS="UCS2" Попробовал - не помогло. Журнал обмена следующий: AT+CSCS="UCS2" OK AT+CUSD=1,"*102#",8 +CME ERROR: operation not allowed // попробовал и такой вариант: AT+CUSD=1,"*102#" +CME ERROR: operation not allowed Ради любопытства попробовал проделать то же самое с версией L31 - результат с использование UCS2 такой же, т.е. возвращает "+CME ERROR: operation not allowed" Изменено 12 мая, 2015 пользователем stapleman Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
batuev.b 0 14 мая, 2015 Опубликовано 14 мая, 2015 · Жалоба Попробовал - не помогло. Журнал обмена следующий: AT+CSCS="UCS2" OK AT+CUSD=1,"*102#",8 +CME ERROR: operation not allowed // попробовал и такой вариант: AT+CUSD=1,"*102#" +CME ERROR: operation not allowed Ради любопытства попробовал проделать то же самое с версией L31 - результат с использование UCS2 такой же, т.е. возвращает "+CME ERROR: operation not allowed" Кирилл, можно я вмешаюсь? ) Если ввели CSCS=UCS2, то и номер в CUSD надо подавать в юникоде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stapleman 0 20 мая, 2015 Опубликовано 20 мая, 2015 (изменено) · Жалоба Кирилл, можно я вмешаюсь? ) Если ввели CSCS=UCS2, то и номер в CUSD надо подавать в юникоде. Заработало, спасибо за помощь. В итоге вместо AT+CUSD=1,"*102#",8 использую AT+CSCS="UCS2" AT+CUSD=1,"002A0031003000320023",8 Изменено 20 мая, 2015 пользователем stapleman Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться