Здравствуйте.
Столкнулся с такой проблемой в модеме 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#" и уже потом запрашивать баланс. Как у других операторов пока не ясно.
Подскажите, пожалуйста, может быть эту проблему можно решить каким-то другим способом.