Формат СМС
1140
30
Получаю смс - фигня всякая написана. Выясняется, что отправитель отправил ее русским текстом, а у меня телефон не поддерживает (странно, что в транслит не перевелась :а\?:). Пишу отправителю, чтоб писал мне транслитом. В итоге получаю сообщения в таком виде:
@P@r@i@v@e@t@ и т.д. Т.е. между буквами стоит @.

Чё за фигня такая?
Сообщения приходили не из Новосибирска.
Получаю смс - фигня всякая написана. Выясняется, что отправитель отправил ее русским текстом, а у меня телефон не поддерживает (странно, что в транслит не перевелась :а\?:). Пишу отправителю, чтоб писал мне транслитом. В итоге получаю сообщения в таком виде:
@P@r@i@v@e@t@ и т.д. Т.е. между буквами стоит @.

Чё за фигня такая?
Сообщения приходили не из Новосибирска.
Чтобы текст СМС переводился в транслит необходимо чтобы это сделал один из двух операторов (либо у посылающей стороны, либо у принимающей). Когда и как они это делают - вопрос отдельный.

Во второй СМС скорее всего произошло следующее: отправитель отослал СМС, но хотя она и состояла из латинских букв (только ли латиница там была?), но формат отправки всё равно был ucs2, а не 7-мибитный. Что и привело к упомянутым последствиям. Кстати, а какой телефон у отправителя этих СМС известно?
aav
Чтобы текст СМС переводился в транслит необходимо чтобы это сделал один из двух операторов (либо у посылающей стороны, либо у принимающей). Когда и как они это делают - вопрос отдельный.
Так у меня не стоит опция UCS2, должно переводиться...
Кстати, а какой телефон у отправителя этих СМС известно?
Nokia 3310

То есть если включена опция UCS2, то смс-ки уходят в таком формате хоть латиницей, хоть кириллицей?
Чтобы текст СМС переводился в транслит необходимо чтобы это сделал один из двух операторов (либо у посылающей стороны, либо у принимающей). Когда и как они это делают - вопрос отдельный.
Так у меня не стоит опция UCS2, должно переводиться...
Не обязательно. Несложно добиться того, чтобы я послал тебе СМС в USC2, но она не переконвертится в латиницу.

Кстати, было бы очень интересно узнать набор формальных признаков, по которым SMSC ССС-900 конвертит СМС в транслит. Кто-нибудь знает ответ на этот вопрос?

Кстати, а какой телефон у отправителя этих СМС известно?
Nokia 3310

То есть если включена опция UCS2, то смс-ки уходят в таком формате хоть латиницей, хоть кириллицей?
Я, еcли честно, никогда не держал в руках 3310 и не знаю какие там бывают настройки. Но видимо ответ на твой вопрос положителен.
aav
Кстати, было бы очень интересно узнать набор формальных признаков, по которым SMSC ССС-900 конвертит СМС в транслит. Кто-нибудь знает ответ на этот вопрос?
Скажем так. Транслитятся они во всех случаях, кроме тех, что отправлялись с телефона.
Stalker
Кстати, было бы очень интересно узнать набор формальных признаков, по которым SMSC ССС-900 конвертит СМС в транслит. Кто-нибудь знает ответ на этот вопрос?
Скажем так. Транслитятся они во всех случаях, кроме тех, что отправлялись с телефона.
Не-е-е. Часть СМС, отправленных с телефона, подключенного к ССС-900, транслитерируется. Сам наблюдал (в смысле: сам эксперимент ставил). Так что формализация неверна:хммм:
aav
В данном случае надо рассматривать работу сервисных центров SMS двух разных опрераторов. Например, стоит узнать, не из Новосибирска - это откуда и какого оператора?
Stalker
Да я вообще-то и написал выше, что перекодировка зависит от обоих операторов.
aav
А условия... Ну, самый очевидный способ - просмотр заголовка SMS на предмет, грубо говоря, кодировки. Потом сравнение с значением "поля" UCS2 у адресата. В итоге принимается решение о переконвертации. И получается, что в данном случае заголовок SMS тем или иным образом похерился, либо неправильно образован.
Stalker
А условия... Ну, самый очевидный способ - просмотр заголовка SMS на предмет, грубо говоря, кодировки.
Вот тут-то собака и порылась... Если определять формат по полю DCS,то какие именно значения считаются как признак кодировки UCS2?

Да и не факт, что такая проверка включается при приходе СМС из чужой сети. Кто-нибудь проверял отсылку юникодной СМС из Бишной сети СССному абоненту без поддержки кириллицы?
aav
Вот тут-то собака и порылась... Если определять формат по полю DCS,то какие именно значения считаются как признак кодировки UCS2?
Подробности тут

Да и не факт, что такая проверка включается при приходе СМС из чужой сети. Кто-нибудь проверял отсылку юникодной СМС из Бишной сети СССному абоненту без поддержки кириллицы?
Проще сделать проверку на ВСЕ сообщения, проходящие через SMSC, чем фильтровать на родного ОбСоСа.... А как правило самые простые решения и приживаются...
Stalker
Вот тут-то собака и порылась... Если определять формат по полю DCS,то какие именно значения считаются как признак кодировки UCS2?
Подробности тут
Ну и зачем ты эту ссылку опубликовал? Или ты считаешь, что я не знаю что такое dcs и где про его описание почитать? Может быть ты на основе упомянутой ссылки перечислишь все dcs, при наличии которых надо перекодировать СМС?

Я ведь не просто так про dcs заговорил. Есть мнение, что СМС с одним из вариантов dcs не перекодируется в транслит. Мнение основано на эксперименте.

Да и не факт, что такая проверка включается при приходе СМС из чужой сети. Кто-нибудь проверял отсылку юникодной СМС из Бишной сети СССному абоненту без поддержки кириллицы?
Проще сделать проверку на ВСЕ сообщения, проходящие через SMSC, чем фильтровать на родного ОбСоСа.... А как правило самые простые решения и приживаются...
А эксперимент ты ставил или просто мысли вслух?
aav
Ну и зачем ты эту ссылку опубликовал? Или ты считаешь, что я не знаю что такое dcs и где про его описание почитать? Может быть ты на основе упомянутой ссылки перечислишь все dcs, при наличии которых надо перекодировать СМС?

Я ведь не просто так про dcs заговорил. Есть мнение, что СМС с одним из вариантов dcs не перекодируется в транслит. Мнение основано на эксперименте.
Не горячись. Не интересно тебе - другие прочитают.

Bit 3 Bit 2 Alphabet being used
0 0 Default alphabet
0 1 8 bit data
1 0 UCS2 (16bit)
1 1 Reserved

Вот тебе и пожалуйста. К примеру, если стоит 10, то это UCS2. Соответственно в этом случае и стОит переконвертировать.

Однако расскажу и байку про Нокии, раз уж речь зашла про 3310. Так вот, сдаётся мне, что старые нокии (Есть печальный сексуальный опыт по 8210) шлют русские СМСки не в UCS2. Я пересылал с этой нокии себе на мотор русскую СМСку - пришли только пробелы и знаки препинания. Видимо в DCS стояло 01.

А эксперимент ты ставил или просто мысли вслух?
Мысли вслух. Сужу по своему админскому опыту - нахрена наворачивать систему для совершенно невыгодных фишек?
aav
Кстати, вполне возможно, что СМС-Центр ССС-900 криво реагирует не на какие-то конкретные dcs, а на на наличие udhi.
Stalker
Подумав немного и поэкспериментировав выскажу рабочую гипотезу. ССС-900 не переводит в транслит сообщения с dcs=0x08 (т.е. самые обычные юникодные СМС) с выставленным в единицу udhi.

А вообще было бы конструктивнее не спорить а посмотреть на дамп той СМС, из-за которой возник весь этот тред.
aav
А вообще было бы конструктивнее не спорить а посмотреть на дамп той СМС, из-за которой возник весь этот тред.
А где эту вещь посмотреть?

Оператор отправителя - СибЧеллендж (Красноярск)
Если эта СМС ещё не стёрта, то подключить мобилу кабелем к компу и считать эту СМС командой AT+CMGR (это если нет других способов).
aav
уже стер

подождем чуток, еще пришлет
aav
Ок. Постараюсь разузнать подробности у "первоисточников".
Stalker
выяснилось что-нибудь?

в принципе, если кто хочет посмотреть, что там в формате этой смски (я нифига в этом не понимаю), есть возможность скинуть ее на ваш телефон.
Если просто перешлёшь эту СМС, то она может несколько исказиться. Надо, чтобы отправитель отправил её напрямую тому, кто сможет изучить.
aav
я это и имею в виду
Итак, пришло 2 СМС. Одна с русским текстом, другая на английском. Чтоже мы имеем внутри?

Первая СМС (русская); номер отправителя я частично затёр:
07919720390300F3840B91972039xxxxFx00083030821171908A1204220438043F04300020043B043E04320438

видим, что SMSC отправителя +7902933****, нет флага UDHI, нет флажка запроса статуса, но есть флажок запроса ответа; dcs=0x08 (т.е. UCS2 кодировка). Прочее неинтересно.

Вторая СМС (на английском):
07919720390300F3840B91972039xxxxFx00083030821181518A560049
002000630061006E0027007400200061006E00730077006500720020
007200690067006800740020006E006F0077002C002000630061006C
006C0020006D00650020006C00610074006500720020006100740020

всё то же самое; то есть хотя все символы из Latin-1, но выставлена ucs2!!! Соттветсвенно (поскольку все символы из latin-1), имеем текст в виде латинских букв, разбавленных символом 0x00. То есть фраза "I can't answer right now, call me later at" выглядит как
00 49 00 20 00 63 00 61 00 6E 00 27 00
74 00 20 00 61 00 6E 00 73 00 77 00 65
00 72 00 20 00 72 00 69 00 67 00 68 00
74 00 20 00 6E 00 6F 00 77 00 2C 00 20
00 63 00 61 00 6C 00 6C 00 20 00 6D 00
65 00 20 00 6C 00 61 00 74 00 65 00 72
00 20 00 61 00 74 00 20

Таким образом получаем, что телефон отправителя отсылает в ucs2 даже сообщения с только латинскими символами. Фича это или бага - решать хозяину телефона:улыб:
aav
Наверное, фича:улыб:
Скорее багофича...
Так вот, что мне удалось узнать:

Официальная версия.
Несовпадение стандартов GSM у операторов. Передаю дословно:

------------------------
Короче СМС от других операторов идет через коммутатор... не доходя нашего СМСЦ... это первый момент... второй вот:

"Это ничей косяк. Не косяк, а фича.SMSc наш делает все по спецификации, которая GSM 3.38. И если в спеке сказано, что USC2 - это суть DCS=8, то так оно и будет"
------------------------
Stalker
Иными словами получаем, что всё правильно, но ССС перекодирует сообщения в транслит (для тех абонентов, которые так хотят) только при отправке СМС, а не при приёме. Таким образом СМС, пришедшие извне перекодировке не подлежат. Зато СМС, уходящие за пределы сети перекодируются в транслит всегда:хммм:
Stalker
Несовпадение стандартов GSM у операторов.
А откуда несовпадение стандартов-то взялось? Всё штатно передалось. Просто процедура перекодировки работает только в случаях, которые я перечислил в своём предыдущем письме, а не всегда, как это полагают абоненты.
aav
Еще новость:
в передающем телефоне по умолчанию стоял набор кириллицей. Видимо поэтому он все сообщения отправлял в UCS.
Когда набор поменяли на латиницу - все пришло как и должно было быть.
Отсюда вывод: не пользуйтесь Нокиями; пользуйтесь нормальными телефонами!
aav
ха, с этого места поподробнее ...
шучу,а то получится сплошной офф-топ :миг:

на самом деле у коллеги была трабла - с Ме45 на Самсунг 500 приходили козябры даже латиницей если посылать(оба Пчелы). Теперь похоже ясно в чем дело.