Павел_Б 0 24 октября, 2013 Опубликовано 24 октября, 2013 · Жалоба Здравствуйте. Знаю что вопрос обсуждался уже тысячу раз но не могу найти ответ :( Есть 2 устройства А и Б. Устройство А передаёт СМС устройству Б в PDU с кодированием данных в 7-ми битном виде. Устройство Б получает СМС в виде: 07919720740800F1240B919721954856F20000909020914412020431D98C06 Вопрос - именно устройство А задаёт в каком виде будут зашифрованы данные. Т.е. по приходу новой СМС устройсту Б нужно сперва определиться в каком виде находятся данные а уже после этого расшифровывать их определённым образом. Правильно? Именно устройство А определяет как закодированы данные. Так? Если так, тогда логичен следующий вопрос - устройство А на SIM900. Какой командой ему "сказать" чтобы он например кодировал данные в 8-ми битном формате? Т.е. чтобы при чтении СМС у устройства Б была строка в виде: 07919720740800F1240B919721954856F20004909020914412020431323334 Заранее спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jack_avenger 4 24 октября, 2013 Опубликовано 24 октября, 2013 · Жалоба Что-то нет желающих отвечать. А Вы не задумывались что между А и Б есть еще и ОПСОС с его базовыми станциями? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gerber 8 24 октября, 2013 Опубликовано 24 октября, 2013 · Жалоба СМС-ки кодируются 7-битным кодом, если нужно выйти за пределы стандартного знакогенератора, передать, к примеру, русские буквы, то каждый символ кодируется двумя последовательными 7-битными кодами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrewlekar 0 24 октября, 2013 Опубликовано 24 октября, 2013 · Жалоба По моему опыту, смс приходит всегда в той кодировке, в какой его отправило устройство A. Опсос ни разу ниче не перекодировал, в том числе и при работе по SMPP протоколам. Если вы отправляете смс в PDU режиме, то выставьте поле DCS в F4. Если не в PDU режиме, то насколько я помню, GSM 8 бит формат в SIM не поддерживается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrey190 2 25 октября, 2013 Опубликовано 25 октября, 2013 · Жалоба ... Какой командой ему "сказать" чтобы он например кодировал данные в 8-ми битном формате? Т.е. чтобы при чтении СМС у устройства Б была строка в виде: 07919720740800F1240B919721954856F20004909020914412020431323334 Заранее спасибо! см. Формат передаваемого SMS, поле DCS _______PDU____________________________________SMS.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Romashki 0 25 октября, 2013 Опубликовано 25 октября, 2013 · Жалоба Я думаю СМС придет в том формате, на который настроен приемный терминал. На сколько мне помнится оператора все равно перекодирует по-своему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Павел_Б 0 26 октября, 2013 Опубликовано 26 октября, 2013 · Жалоба Спасибо всем ответившим! Но только осталось впечатление, что у каждого сеть работает по-своему :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fk1 0 28 октября, 2013 Опубликовано 28 октября, 2013 · Жалоба Здравствуйте. Знаю что вопрос обсуждался уже тысячу раз но не могу найти ответ :( Есть 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 0 28 октября, 2013 Опубликовано 28 октября, 2013 · Жалоба А зачем именно в 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться