Перейти к содержанию
    

вопрос по СМС PDU кодировка

Здравствуйте.

Знаю что вопрос обсуждался уже тысячу раз но не могу найти ответ :(

Есть 2 устройства А и Б.

Устройство А передаёт СМС устройству Б в PDU с кодированием данных в 7-ми битном виде.

Устройство Б получает СМС в виде: 07919720740800F1240B919721954856F20000909020914412020431D98C06

Вопрос - именно устройство А задаёт в каком виде будут зашифрованы данные.

Т.е. по приходу новой СМС устройсту Б нужно сперва определиться в каком виде находятся данные а уже после этого расшифровывать их определённым образом.

Правильно? Именно устройство А определяет как закодированы данные. Так?

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

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

Заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то нет желающих отвечать. А Вы не задумывались что между А и Б есть еще и ОПСОС с его базовыми станциями?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

СМС-ки кодируются 7-битным кодом, если нужно выйти за пределы стандартного знакогенератора, передать, к примеру, русские буквы, то каждый символ кодируется двумя последовательными 7-битными кодами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По моему опыту, смс приходит всегда в той кодировке, в какой его отправило устройство A. Опсос ни разу ниче не перекодировал, в том числе и при работе по SMPP протоколам.

Если вы отправляете смс в PDU режиме, то выставьте поле DCS в F4.

Если не в PDU режиме, то насколько я помню, GSM 8 бит формат в SIM не поддерживается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... Какой командой ему "сказать" чтобы он например кодировал данные в 8-ми битном формате?

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

Заранее спасибо!

 

см. Формат передаваемого SMS, поле DCS

_______PDU____________________________________SMS.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я думаю СМС придет в том формате, на который настроен приемный терминал. На сколько мне помнится оператора все равно перекодирует по-своему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо всем ответившим!

Но только осталось впечатление, что у каждого сеть работает по-своему :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте.

Знаю что вопрос обсуждался уже тысячу раз но не могу найти ответ :(

Есть 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 -- мозг сломаешь.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А зачем именно в 8-битном? Под 8-битным понимается, обычно, "бинарные" SMS. Которые модем во-первых может интерпретировать по-своему (оно нужно для ряда странных вещей

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

Для текста - либо 7 бит либо 16 бит.

 

ЗЫ для того, чтобы модем хавал сообщения (и отдавал их через STK симке), надо чтобы

protocol identifier = SIM data download or ANSI-136 R-DATA (see 3G TS 23.040 [30])

and

data coding scheme = class 2 message

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...