реклама на сайте
подробности

 
 
> SIM900B МТС->Skylink портится кодировка сообщения
Frolov Kirill
сообщение Aug 23 2011, 06:15
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 212
Регистрация: 2-02-11
Пользователь №: 62 643



При отправке SMS с использованием модема SIM900B и SIM-карты МТС (только такое сочетание) на телефоне Skylink портится кодировка сообщения. Сообщение отправляется в PDU (AT+CMGF=0), кодировка UCS2. Поле DCS содержит код 9.

При отправке точно такого же сообщения с модема SIM300 проблемы не имеем. При отправке с мобильных телефонов проблемы не имеем.

Самое интересное. При отправке в текстовом виде (AT+CMGF=1, через AT+CSMP выставили тот же DSC код 9) тоже проблемы не имеем.

При получении всех русскоязычных SMS на обычные GSM-телефоны имеем в DCS код 8 (что немного странно...) Независимо от оператора. Кстати, для всплываемых поверх экрана сообщений Skylink тоже портит кодировку. Т.е. ему нельзя отправлять с DCS кодами 0x10 или 0x18. Только 1 или 9 (не помню почему так, если 4 бит сброшен -- то можно 0 и 8 стало быть, но это вызывало проблемы с SIM300, вроде, и какими-то операторами).

К сожалению, невозможно посмотреть в "сыром виде" SMS на стороне Skylink, только с экрана почитать (телефон, к компьютеру не подключается).

Почему такое может происходить, ваши мнения? Насколько я понимаю, сообщение в телефоне или модеме, вне зависимости от AT+CMGF и способа его передачи в телефон, в любом случае далее кодируется в PDU для передачи на уровне SM-TL (см. ETSI TS 100 901 V7.4.0, также http://books.google.com/books?id=AWQgapsAIvoC), с использованием значений переданных в команде AT+CSMP и с использованием текущей кодировки заданной AT+CSCS (всегда UCS2). Далее добавляется заголовок SL-RL уровня (RP-MO-DATA) и далее оно через ещё один уровень... отправляется в сеть. На уровне SL-RL и нижележащих нет ничего, что бы говорило о кодировках и т.п.

Можно предположить, что SIM900B как-то иначе кодирует сообщение в случае с CMGF=1, чем оно кодируется в PDU программой (или вручную). Может там другой DCS-код или что-то ещё. Но странно, что если принимать два сообщения на GSM-телефоне (любой оператор, кроме Skylink, который не-GSM), посланные сообщения, одно с CMGF=1, другое с CMGF=0, то они будут различаться только штампом времени. Но с точки зрения Skylink они различны.

Можно предположить, что SMSC как-то "исправляет" сообщения (например поле DCS -- почему оно у принятых сообщений всегда 8, вместо оригинального 9) для передачи GSM-абонентам. А для передачи в Skylink этого не происходит. Тогда можно объяснить, почему другие (не МТС) операторы не вызывают сбоя -- у них другие SMSC. И скорей всего сообщения отправленные в SIM900B в режиме CMGF=1 отличаются чем-то на уровне PDU (несмотря на то, что при приёме уже не отличаются -- SMSC что-то исправляет). Но что может отличаться? Я вижу только поле DCS. Но насколько код 9 здесь некорректен? Тем более, что он задаётся в CSMP тоже (тоже 9).

Сообщение отредактировал Frolov Kirill - Aug 23 2011, 06:18
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 05:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016