-
Здравствуйте, уважаемые дамы и господа. Оч. люблю Ваш форум. Во многом помогал и помогает. Но увы. Столкнулся с проблемой, решение которой не могу по сей день найти. Есть программа, которая принимает смс сообщения с USB GSM модема Teleofis RX101-r. Все сообщения принимает. Звонки делает. Так как мне не нужны сообщения в кирилице - форматом PDU не пользовался. НО! Столкнулся с проблемой, когда начал принимать длинные смс сообщения. Под длинными смс я понимаю смс более 160 символов. Приходит полный ужас. Мало того, что приходит белиберда в Text режиме (вместо латинских букв), так то же самое и с PDU режимом. Text режим (лог из Hyper Terminal) 1-я смс0500036003018275FADBF876839AE17C780D6AD35C34B9E2089D82682F596CAE40D3E970DD EBD576
B5C3F0B92B1F7693CB7897BCFEFAB17BED307C6E62B37BB019CC25ABC56E3718CB0673C164335CAE
6682D37BB019CC25ABC56E3718CB0673C164335CAE66D2F76233059A4E87EB5EAF7618EE0AD7E96F
F3DBED92D75FBFB5B937ABE564B3186C36ABDD00 Text режим (лог из Hyper Terminal) 2-я смс05000360030264329B6C47A3C977B21C0C178BC170B0DB2EB683CD602E592D76BBC1763698 0B269B
E172B51D8CB683C1603BD9CCB693D5603B986C172BE264BB1ACC18DCC166B0E6EEBA5BB676B05C6E
B792D97630457338ECC96A3045D339ECC1640A6670D88B157132C53049ECD560C6A0A2F926977BB0
19ACC9BAB2962DC5112A9D82E86FD0BC2CB79701 Text режим (лог из Hyper Terminal) 3-я смс050003600303E43AD0DB6C5608C3F45E2E5752D07B2B996D08 Ну я сразу подумал. Надо просто перевести в PDU режим и легче простого прочитать её. Но как оказалось не так уж и просто... PDU режи (лог из Hyper Terminal) 1-я смс07919712999090F0400B919712577456F10000118092217315619F0500036003018275FADB F87683
9AE17C780D6AD35C34B9E2089D82682F196DAE40D3E970DDEBD576B5C3F0B92B1F7693CB7897BCFE
FAB17BED307C6E62B37BB019CC25ABC568B31ACB0673C164B31CCC6682D37BB019CC25ABC568B31A
CB0673C164B31CCC66D2F76233059A4E87EB5EAF7618EE0AD7E96FF3DBED92D75FBFB5B937ABE564
B3186C36ABDD00 PDU режи (лог из Hyper Terminal) 2-я смс07919712999090F0400B919712577456F10000118092217345619F05000360030264329B6C 47A3C9
77B21C0C178BC170B3DB2EB683CD602E592D469BD57636980B269BE560B61D8CB683C162BBD9CCB6
93D5603B986C172BE264BB1ACC18DCC166B0E6EEBA5BB676B05C6EB792D57630457338ECC96A3045
D339ECC1640A6670D88B157132C53049ECD560C6A0A2F926977BB019ACC9BAB2962DC5112A9D82E8
6FD0BC2CB79701 PDU режи (лог из Hyper Terminal) 3-я смс07919712999090F0440B919712577456F10000118092217365611C050003600303E43AD0DB 6C5608
C3F45E2E5752D07B2B596D08 Попытки перевести text режим ни к чему не привели. Попытка перевода PDU режима: Перевод PDU режима 1-я смсSMSC#+79219909090
Sender:+79217547651
TimeStamp:29/08/11 12:37:51
TP_PID:00
TP_DCS:00
TP_DCS-popis:Uncompressed Text
class:0
Alphabet:Default
é@ø@6 @AutoFon¿è./Æùh:kΞCΨyèΦ_6Γ$cÄTM<¥ÉΨ 8364;xnäjΞ.?ΠHøä>Ξß7ΓnäøÖ üXäZCagMXYä¿f¿ÖdjbhfjXl¿Ö¿dfr¿ lL¿iä¿f¿Ödjbhfj¿@vΘßΠΠEal8 6;ΨvF¡IEΛ:?5U§åf_xVü,üoc7vΠuvo§5RߧV
Length:159 Перевод PDU режима 2-я смсSMSC#+79219909090
Sender:+79217547651
TimeStamp:29/08/11 12:37:54
TP_PID:00
TP_DCS:00
TP_DCS-popis:Uncompressed Text
class:0
Alphabet:Default
é@ø@6¡@2262;44r¥äB@ÅøåoØØzH 09;Å
åk$JK¤æ-o+cR£Λ€M/+ØBaÜø
åØ+zrÖøldj¿v¿dvb
qdvj¿ø¥w¿f¿Ξw.wΠÄv¿rrvVdjv¿	 23;Ξììädj¿Λj0F'fΠ@Θ=V£bXW&0ΘE& #161;gfVΣ(SpEd4wvùPIyfU)DqÅ%"*l.
Length:159 Перевод PDU режима 3-я смсSMSC#+79219909090
Sender:+79217547651
TimeStamp:29/08/11 12:37:56
TP_PID:00
TP_DCS:00
TP_DCS-popis:Uncompressed Text
class:0
Alphabet:Default
é@ø@6¿@r: off
$ù?
Ç/Ü.K¥2kZè
Length:28 Отсюда вопрос - что за дела-то такие получаются? Вроде и кодировка та. А не переводится. Или склеенные смс как-то по другому переводятся? Текст там должен быть примерно следующим: AutoFon Mayak m4.4r GPS 9/26s http://m.maps.yandex/?LI=037..........http://map.autofon.ru/?kf=356895.......MCC=250 MNC=99 LAC=568A CID=L23C5 Mode=030M,S,K- Move sensor: off GPRS to server: off Bat=99% t=+25C Господа, помогите пожалуйста с перекодировкой этих длинных смсок. Уже несколько дней ломаю себе голову. В перекодировщике, когда пытаюсь убрать некоторые "F" символы - у меня частично вылезает текст. Может быть проблема в этом? Кто знает. Отзовитесь. Спасибо
-
> SaJek (30.08.2011 10:35:00) [0]
C английскими все в порядке, а русские в кодировке UTF-8
-
совет дилетанта, но вдруг а еще бы попробовать перед каждыми 7ми битами еще один добавить и попробовать декодировать
-
> C английскими все в порядке, а русские в кодировке UTF-8
Так мне русские и не нужны. Мне лишь латиница нужна. > совет дилетанта, но вдруг > а еще бы попробовать перед каждыми 7ми битами еще один добавить > и попробовать декодировать
Вот с этого места поподробнее. Мне что-то об этом говорили. Я ввожу данные в WinHEX. Просто тупо PDU текст. И что дальше делать-то? Раскодировал я, кстати, с помощью http://twit88.com/home/utility/sms-pdu-encode-decode
-
в пду семибитная кодировка. исходное сообщение переводится в ucs, затем у каждого байта откусывается старший бит. полученные семибитные байты толкаются "влево" таким образом, чтобы заполнять старшие биты.
а тебе нужно сделать наеборот.
-
А с английскими все нормально
> é@ø@6 @AutoFon¿è./Æùh:kΞCΨyèΦ_6Γ$cÄTM<¥ÉΨ 8364;xnäjΞ.? > ΠHøä>Ξß7ΓnäøÖ üXäZCagMXYä¿f¿ÖdjbhfjXl¿Ö¿dfr¿ lL¿iä¿f¿Ödjbhfj¿@vΘßΠΠEal8 > 6;ΨvF¡IEΛ:?5U§åf_xVü,üoc7vΠuvo§5RߧV
Может UTF-7
-
-
> Медвежонок Пятачок
Может хоть как-то подтолкнете на код? Ибо со сдвигами этими я вообще не понимаю.
И почему короткие смс-ки (в 1 смс сообщение) читаются нормально?
> А с английскими все нормально > > > é@ø@6 @AutoFon¿è./Æùh:kΞCΨyèΦ_6Γ$cÄTM<¥ÉΨ 8364;xnäjΞ. > ? > > ΠHøä>Ξß7ΓnäøÖ üXäZCagMXYä¿f¿ÖdjbhfjXl¿Ö¿dfr¿ lL¿iä¿f¿Ödjbhfj¿@vΘßΠΠEal8 > > > 6;ΨvF¡IEΛ:?5U§åf_xVü,üoc7vΠuvo§5RߧV > > Может UTF-7
Нормально да не совсем. Там ещё должны быть слова GPRS, t, Move sensor, CID, LAC, MCC, MNC...
Такое ощущение что где-то происходит сбой. Но понять почему? Я не в силах
-
А телефон это принимает нормально?
-
Вот именно что телефон принимает как надо. Но у него, видимо есть свой алгоритм чтения подобных смс. Я вот пытался в гугле найти инфу. Но даже не понимаю как запрос сделать нормально. Вылезает шлак всякий
-
> Вот с этого места поподробнее.
Символ1 Символ2 Символ3 пусть, кодируются как 11010101 10011111 11001100
возможно, первый бит "оборвали" х1010101 х0011111 х1001100
полученное склеили 10101010 01111110 01100 получилось 2 байта и еще немного, но, для восстановления исходного надо 1 (добавить самому) + 7 следующих, 1 (добавить самому) + 7 и т.д., тогда и будут исходные байты. Возможно :)
> Может хоть как-то подтолкнете на код? Ибо со сдвигами этими > я вообще не понимаю. > И почему короткие смс-ки (в 1 смс сообщение) читаются нормально?
Нет, потому что лень. Плохо. Не знаю. просто предлагаю вариант для попробовать. Восможно, поможет. А может и нет.
-
> SaJek (30.08.2011 11:38:07) [7]
Выданая ссылка, что совсем не помогла?
-
> Выданая ссылка, что совсем не помогла?
По их коду выдаёт 0j@f0`L3&3CHCjXgPFhT)$&Q7jH!f
!2eIc8`TL6`@&2nT1!Fp\1gLA
E93h
0Y DhLCfP'0pd!G8d*GM!A
QChL"9n@!D(!Dj\1&
0`L1L0dX!3FLBl"s&PCr\9#HLC`
s!Cb\#"BddNCY#&Q9d:cF!Cb\13FM8`c&!0j@f0`L3&3CHCjX gPFhT)$&Q7jH!f
!2eIc8
-
Самый то главный вопрос... Не читаются в ПДУ формате именно смс длинные. С короткими (в 1 смску) всё в порядке. Тут просто какой-то специальный алгоритм.
Ребят. Ну может кто нибудь сталкивался?
-
multipart кодируются хитро, перед собственно текстом идут ещё поля, которые надо откусывать, прежде чем начинать декодировать 7-битные символы.
-
> multipart кодируются хитро, перед собственно текстом идут > ещё поля, которые надо откусывать, прежде чем начинать декодировать > 7-битные символы.
А есть более подробная инфа? Покопался в инете - не нашёл. Спасибо
-
-
> А есть более подробная инфа? Покопался в инете - не нашёл. > Спасибо
я в своё время нагуглил формат multipart SMS без проблем. сейчас документации не осталось, но поля, о которых я говорю — это 6 байт перед текстом. смотрим PDU SMS №1: 050003600301 здесь 05 — длина доп.поля, 60 — SMS sequence; 03 — всего частей, 01 — № части.
-
> Вариант (31.08.11 15:57) [16] > > > SaJek © (31.08.11 15:04) [15] > > > Я не разбирался сильно с мультипарт, но получил примерно > следующее (первые 7 символов удалил у каждой PDU SMS, так > что это подгонка, надо разбираться дальше) > "AutoFon Mayak m4.4r\nGPS 4/24s\nhttp://m.maps.yandex.ru/? > l=maps&ll=030.251435,60.023906&pt=030.251435,60.023906&z=13\nhttp: > //map.autofon.ru/?kf=359231033572262;44r;2908110837;1;030. > 251435;60.023906;04;001;336;250;02;1E82 ;50FA;030M;W;K-; > 099;+25;0\nMCC=250\nMNC=02\nLAC=1E82\nCID=50FA\nMode=030M, > W,K-\nGPRS to server: off\nBat=99%\nt=+25C". > Но > остальные буковки вроде как нормальные \n - новая строка. > Раскодировал как обычную 7-битную смс.
Скажи пожалуйста. Как ты раскодировал? Всё верно. Именно так и расшифровывается смс-ка!!!!!!!!!!!!!!!!!!!
-
> RWolf © (31.08.11 16:28) [17]
Вот видно их я и удалял, не разобравшись с multipart.
> SaJek © (31.08.11 18:28) [18]
Раскодировал я не правильно, подгонка скажем так, о чем уже писал. Тебе надо найти доку по этому вопросу. А я просто представил
> PDU режи (лог из Hyper Terminal) 1-я смс > 07919712999090F0400B919712577456F10000118092217315619F0500036003018275FADB > F87683 > 9AE17C780D6AD35C34B9E2089D82682F196DAE40D3E970DDEBD576B5C3F0B92B1F7693CB7897BCFE > > FAB17BED307C6E62B37BB019CC25ABC568B31ACB0673C164B31CCC6682D37BB019CC25ABC568B31A > > CB0673C164B31CCC66D2F76233059A4E87EB5EAF7618EE0AD7E96FF3DBED92D75FBFB5B937ABE564 > > B3186C36ABDD00
как одну СМС, выделил в первой части на основе поле текста и начиная от него до конца СМС удалил все символы, не принадлежащие ['0'..'9','A'..'F'], убрав служебную инфо и слив текстовые части в один поток, не закладываясь на поля длинный текста - что опять подчеркиваю является неверным, надо найти нормальную доку и делать как положено. А раскодировка уже самих символов проста - каждую пару в шестнадцатиричном формате я перевел в байт и получил поток байт, содержащий 7-битные символы. Старший бит 1 -го байта является младшим битом второго семибитного символа, а уже старшие два бита второго байта являются двумя младшими битами третьего символа и т.д. Таким образом у нас накапливается постоянно N-ое число бит, которые переходят в следующий символ. Когда число этих бит в остатке становится =7, то у нас набежал целый символ, потому вставляем его без учета следующего байта из текстового потока, и начинаем обрабатывать следующий байт и всю последующую цепочку, как первый байт...
-
Слух. А кодиком поделишся?
-
> SaJek © (01.09.11 14:05) [20]
Я его набросал не на дельфи, на другом языке было быстрее сделать черновик. А разве тебе не интереснее самому написать? Я тебе на почту в анкете послал пару описаний PDU. Если надо могу и исходник моего эксперимента тебе послать, только боюсь с языком программирования разбираться будешь дольше, чем изучишь формат PDU и сам напишешь кодер и декодер.
-
Вопрос в том что в кодировках я вообще 0! Мне бы понять как декодировать. Но смысл твоих действий, по поводу соединения смс и удаления строк я понял. А вот как декодить - я вообще не понимаю. Облазил уже тучу сайтов. По multipart инфы 0! Но твой способ действительно нормальный. Ибо я через сайт http://twit88.com/home/utility/sms-pdu-encode-decodeтак же удалял символы и вылезала смс-ка. Частично. Но у тебя это получилось. Если код на сях - у меня есть декомпил. Я попробую приспособить его. Либо просто в параллель пущу софтину. То есть будет работать 2. Одна работает с смс. Вторая в текстовом файле декодит смс-ку. Думаю это будет для меня идеальный выход. Буду рад если отправишь исходник
-
> SaJek © (01.09.11 14:57) [22]
Отправлю завтра, сегодня на моем почтовике сервисные работы, а я уже домой собираюсь, а он не пашет. Кстати и еще файл про типы PDU, с ним я теперь лучше представляю как разбирать служебные поля SMS в PDU. Отправлю описание+код.
PS: Совет - Читай про битовые оперции, разбери, что такое биты, сдвиги, маскирование...AND, OR, XOR,SHL,SHR Про мультипарт пока сам не нашел...
-
Кстати таки отправил сегодня
-
-
-
Доброго всем времени суток!!!! Есть исходник на Delphi по отправке смс в pdu работает отлично русские и английские буквы различает, а вот как быть с приемом смс. Допустим чтобы в поле edit приходила смс. Не поможете!!! Исходник могу выложить здесь! Спасибо!!!
-
Доброго всем времени суток!!!! Есть исходник на Delphi по отправке смс в pdu работает отлично русские и английские буквы различает, а вот как быть с приемом смс. Допустим чтобы в поле edit приходила смс. Не поможете!!! Исходник могу выложить здесь! Спасибо!!!
-
> samsung
Создайте, пожалуйста, отдельную ветку в конференции "Начинающим", чтобы мы могли задать вопрос на ваш ответ.
-
> Доброго всем времени суток!!!! > Есть исходник на Delphi по отправке смс в pdu работает отлично > русские и английские буквы различает, а вот как быть с приемом > смс. Допустим чтобы в поле edit приходила смс. Не поможете! > !! > Исходник могу выложить здесь! Спасибо!!!
Смотри свою почту. Скинул тебе туда ссылки и объяснение.
-
Подскажите есть ли он-лайн декодеры мультипарт смс ? На кону отношения между девушкой и парнем.
-
Удалено модератором
-
Удалено модератором
-
Удалено модератором
|