LINUX.ORG.RU

Как в linux сконвертировать номер SMS центра в PDU формат?

 ,


1

1

Привет всем!

Предыстория:
В конце августа установил Cyanogenmod-10.2 на Galaxy S (I9000). И появилась проблема: SMS в любых кодировках приходили нормально, а отправить ни одной SMS не мог. В принципе, весь сентябрь проходил не отправляя SMS, а только перезванивая. Сегодня обновился до последнего Cyanogenmod. И опять SMS не отправляются. Меня это достало и решил разобраться, почему SMS не отправляются.

История:
Оказалось, что вместо нормального номера в SMSC (это номер оператора связи для отправки SMS) у меня прописан «00». Нашёл правильный номер для своего оператора Байкалвестком (он же bwc, ныне Ростелеком) +79025110010. Как пишут в интернетах, зашёл в настройки, набрав *#*#4636#*#*. Набираю «+79025110010» номер в поле SMSC, жму «обновить». Думаете, тут пришёл успех, а вот фигушки — «update error». В результате двухчасового гугления по русским и нерусским интернетам каким-то случайным образом понял, что есть такой формат PDU для кодирования SMS и как раз он-то мне и нужен. Нашёл вот этот сайт
http://www.smartposition.nl/resources/sms_pdu.html
Там внизу ввёл номер своего SMS центра и мне показали длинный ответ. Первая часть которого как раз и была закодированным в PDU номером SMS центра. Ввёл этот номер в поле SMSC. И всё заработало как надо, SMS отправляются и русские и нерусские.

Вопрос:
Какими инструментами в linux можно сконвертировать любой номер в формат PDU?

Дано (digital): +79025110010
Нужно (PDU): 07919720150110f0


P.S. Русификация конкретно этого пункта в настройках Cyanogenmod выполнена шедеврально:
Как оно есть сейчас:
SMSC: ______ [Обновить] [Обновление]

Хотя по смыслу должно быть:
SMSC: ______ [Запомнить] [Показать]

Eng:
SMSC: ______ [Update] [Refresh]

★★★★★

Последнее исправление: justAmoment (всего исправлений: 1)

To obtain data from a string that is written as a semi-octet, you have to swap the semi-octet string. If the length of a semi-octet string is odd, you have to add an extra «F» to make it even, so that you get a proper octet string. Example: «13 46 61 00 89 F6» becomes «31 64 16 00 98 6F»

Сам развернуть не можешь?

UVV ★★★★★
()
Ответ на: комментарий от daemonpnz

а чем тебя не устраивает указаный тобой выше сайт?

Мало-ли, сайт сейчас работает, завтра не работает. Хотелось, чтобы с помощью iconv можно было сконвертировать, т.е. штатными средствами.

justAmoment ★★★★★
() автор топика
Ответ на: комментарий от UVV

To obtain data from a string that is written as a semi-octet, you have to swap the semi-octet string. If the length of a semi-octet string is odd, you have to add an extra «F» to make it even, so that you get a proper octet string. Example: «13 46 61 00 89 F6» becomes «31 64 16 00 98 6F»

Сам развернуть не можешь?

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

  1. [ +79025110010 ] --> [ ]
  2. [ 79025110010 ] --> [ ] # Выбрасываем знак «+». Почему — непонятно.
  3. [ 79025110010 ] --> [ 07 91 ] # Добавляем признаки кодировки в результат
  4. [ 79 02 51 10 01 0 ] --> [ 07 91 ] # Разбиваем исходник попарно
  5. [ 79 02 51 10 01 0F ] --> [ 07 91 ] # Дополняем последнюю пару символом «F»
  6. [ 79 02 51 10 01 0F ] --> [ 07 91 97 20 15 01 10 F0] # Меняем местами символы внутри каждой пары и добавляем в результат.
justAmoment ★★★★★
() автор топика

Кстати, по поводу SMSC. У меня он вообще пустой и смски норм отправляются и принимаются.

daemonpnz ★★★★★
()
Ответ на: комментарий от daemonpnz

Кстати, по поводу SMSC. У меня он вообще пустой и смски норм отправляются и принимаются.

Чтобы его увидеть, нужно правую кнопку нажимать (Обновление/Refresh).

justAmoment ★★★★★
() автор топика
Ответ на: комментарий от daemonpnz

Ну так вот, он у меня записан в формате «+79037011111»,145

А прошивка какая?

У меня CyanogenMod 10.2-20130928-NIGHTLY-galaxysmtd

justAmoment ★★★★★
() автор топика
Ответ на: комментарий от justAmoment

Ну во первых у меня ни Samsung Galaxy, а во вторых прошивка (4.1.2) от китайского клона DNS s4502. Но я сомневаюсь что системные утилитки сильно отличаются.

daemonpnz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.