Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вопрос по СМС PDU кодировка
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Павел_Б
Здравствуйте.
Знаю что вопрос обсуждался уже тысячу раз но не могу найти ответ sad.gif
Есть 2 устройства А и Б.
Устройство А передаёт СМС устройству Б в PDU с кодированием данных в 7-ми битном виде.
Устройство Б получает СМС в виде: 07919720740800F1240B919721954856F20000909020914412020431D98C06
Вопрос - именно устройство А задаёт в каком виде будут зашифрованы данные.
Т.е. по приходу новой СМС устройсту Б нужно сперва определиться в каком виде находятся данные а уже после этого расшифровывать их определённым образом.
Правильно? Именно устройство А определяет как закодированы данные. Так?
Если так, тогда логичен следующий вопрос - устройство А на SIM900. Какой командой ему "сказать" чтобы он например кодировал данные в 8-ми битном формате?
Т.е. чтобы при чтении СМС у устройства Б была строка в виде: 07919720740800F1240B919721954856F20004909020914412020431323334
Заранее спасибо!
jack_avenger
Что-то нет желающих отвечать. А Вы не задумывались что между А и Б есть еще и ОПСОС с его базовыми станциями?
gerber
СМС-ки кодируются 7-битным кодом, если нужно выйти за пределы стандартного знакогенератора, передать, к примеру, русские буквы, то каждый символ кодируется двумя последовательными 7-битными кодами.
andrewlekar
По моему опыту, смс приходит всегда в той кодировке, в какой его отправило устройство A. Опсос ни разу ниче не перекодировал, в том числе и при работе по SMPP протоколам.
Если вы отправляете смс в PDU режиме, то выставьте поле DCS в F4.
Если не в PDU режиме, то насколько я помню, GSM 8 бит формат в SIM не поддерживается.
Андрей190
Цитата(Павел_Б @ Oct 24 2013, 20:15) *
... Какой командой ему "сказать" чтобы он например кодировал данные в 8-ми битном формате?
Т.е. чтобы при чтении СМС у устройства Б была строка в виде: 07919720740800F1240B919721954856F20004909020914412020431323334
Заранее спасибо!


см. Формат передаваемого SMS, поле DCS
Romashki
Я думаю СМС придет в том формате, на который настроен приемный терминал. На сколько мне помнится оператора все равно перекодирует по-своему.
Павел_Б
Спасибо всем ответившим!
Но только осталось впечатление, что у каждого сеть работает по-своему sm.gif
Frolov Kirill
Цитата(Павел_Б @ Oct 24 2013, 20:15) *
Здравствуйте.
Знаю что вопрос обсуждался уже тысячу раз но не могу найти ответ sad.gif
Есть 2 устройства А и Б.
Устройство А передаёт СМС устройству Б в PDU с кодированием данных в 7-ми битном виде.
Устройство Б получает СМС в виде: 07919720740800F1240B919721954856F20000909020914412020431D98C06
Вопрос - именно устройство А задаёт в каком виде будут зашифрованы данные.
Т.е. по приходу новой СМС устройсту Б нужно сперва определиться в каком виде находятся данные а уже после этого расшифровывать их определённым образом.
Правильно? Именно устройство А определяет как закодированы данные. Так?


Так. Именно A определяет. Хотя, допускаю, могут быть и странности в середине процесса, вплоть до вставки рекламы в SMS и т.п. И трудности с прохождением SMS с нетиповыми форматами. А также трудности с их интерпретацией на приёмной стороне (см. ниже).

Цитата
Если так, тогда логичен следующий вопрос - устройство А на SIM900. Какой командой ему "сказать" чтобы он например кодировал данные в 8-ми битном формате?


А зачем именно в 8-битном? Под 8-битным понимается, обычно, "бинарные" SMS. Которые модем во-первых может интерпретировать по-своему (оно нужно для ряда странных вещей вроде приложений в SIM-карте). А самое главное, во-вторых, непонятно как их потом передать от модема с контроллеру. Символы с кодами 0x80..0xff и 0x00..0x1f будут вызывать традиционные проблемы. Потому, видимо, такого извращения и нет.

Цитата
Т.е. чтобы при чтении СМС у устройства Б была строка в виде: 07919720740800F1240B919721954856F20004909020914412020431323334


Принимать в 7-битном виде и не морочить мозг. Даже если действительно нужна передача бинарных данных: они достаточно эффективно передаются в base64 в 7-битной кодировке (на передачу 6 бит данных нужно 7 бит в SMS). Единственная закавыка тут: кодировка многосегментных 7-битных SMS -- мозг сломаешь.
Alechek
Цитата(Frolov Kirill @ Oct 28 2013, 18:58) *
А зачем именно в 8-битном? Под 8-битным понимается, обычно, "бинарные" SMS. Которые модем во-первых может интерпретировать по-своему (оно нужно для ряда странных вещей

Именно! 8 бит это не текст, это DATA. В свое время пробовали использовать для передачи данных с мобильного терминала ява-приложению на телефоне (с использованием UDH порта назначения), все проходило без проблем.
Для текста - либо 7 бит либо 16 бит.

ЗЫ для того, чтобы модем хавал сообщения (и отдавал их через STK симке), надо чтобы
Цитата(3GPP TS 11.14)
protocol identifier = SIM data download or ANSI-136 R-DATA (see 3G TS 23.040 [30])
and
data coding scheme = class 2 message
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.