Место для Вашей рекламы всего за 400 рублей в месяц ! email:incognito.anonimous@yandex.ru

Спонсор проекта:
Лучший вариант для анонимности купить прокси на выделенном сервере IPANN.NET.
Ads



Последние комментарии
#1
watersoda пишет: » Да и RHEL под "Эльбрус" не помешал бы... (19.03.2017)
// Обзор и попытка установки МСВС 5.0
#2
watersoda пишет: » Небольшая поправка: ... через соответствующий паке... (19.03.2017)
// Обзор и попытка установки МСВС 5.0
#3
watersoda пишет: » Кстати, мелькала где-то информация, что Red Hat сд... (19.03.2017)
// Обзор и попытка установки МСВС 5.0
#4
watersoda пишет: »
Цитата:
... МСВС отстаёт от ДОСа по поддержке виде...
(16.03.2017)
// Обзор и попытка установки МСВС 5.0
#5
admin пишет: » watersoda, этот ноутбук выпущен в 2012 году wink
Убунт... (16.03.2017)
// Обзор и попытка установки МСВС 5.0
#6
watersoda пишет: » И вот ещё, правда речь про МСВС 3.0:
Цитата:
Устрои...
(08.03.2017)
// Обзор и попытка установки МСВС 5.0
#7
watersoda пишет: » Я где-то читал, что ВНИИНС предоставляет список об... (08.03.2017)
// Обзор и попытка установки МСВС 5.0
#8
дохтур пишет: »
Gentoo написал:
Вот мне лично нахуй не надо ни одн...
(02.02.2017)
// Письма неадекватов
#9
дохтур пишет: »
Gentoo написал:
Вот мне лично нахуй не надо ни одн...
(02.02.2017)
// Письма неадекватов
#10
Gentoo пишет: » >>Autocad, Kompas, CorelDraw, SolidWorks, AD... (30.01.2017)
// Письма неадекватов
#11
watersoda пишет: » Just for fun как он есть.biggrin (15.01.2017)
// Линукса нет! Нас обманули !!!
#12
дохтур пишет: » admin, ага, ещё вот проприетарная лицензия на обще... (13.01.2017)
// Письма неадекватов
#13
admin пишет: » дохтур, а ранили его "тупые виндузяги" с... (13.01.2017)
// Письма неадекватов
#14
дохтур пишет: » Это была какая-то очень ранимая заблудшая душа (13.01.2017)
// Письма неадекватов
#15
admin пишет: »
дохтур написал:
Ровно такая же ситуация и с HD-Aud...
(09.01.2017)
// FreeDOS 1.2 Обзор
Quotes

Отправка SMS через консоль N900 | автор: Luca | 28 апреля 2010 |

Категория: GNU/Linux


Итак, постановка задачи. Хочу отправлять короткие сообщения на русском языке из командной строки (на кой хрен??! прим. Luca). Не хочу ограничивать себя размером сообщения, то есть если моя мысль не уложилась в одно сообщение, автоматически должно быть отправлено два или три или сколько там нужно сообщений, а на стороне получателя все должно выглядеть прилично.

Уважаемый товарищ Гугл в ответ на этот вопрос нам отвечает всего одной темой на форуме talk.maemo.org где помещена ссылка на творчество некоего pende которое (творчество) не работает, но нам очень помогает. Помимо этого, на вики для разработчиков maemo приведен пример кода на питоне, как нужно отправлять смс. Вот он:

import dbus
bus = dbus.SystemBus()
smsobject = bus.get_object('com.nokia.phone.SMS', '/com/nokia/phone/SMS/ba212ae1')
smsiface = dbus.Interface(smsobject, 'com.nokia.csd.SMS.Outgoing')
arr = dbus.Array(pdu_array)
msg = dbus.Array([arr])
smsiface.Send(msg,)

Все вроде бы просто(да п#здец просто! прим. Luca), но, как обычно, дьявол кроется в мелочах. В нашем случае, это подготовка текста сообщения в так называемом формате PDU (Protoсol Data Unit). Огромной помощью в разбирательствах с этим форматом оказался труд Алексея Печерского «Формат PDU или как сформировать и распаковать SMS», найденный мною в сети. Большое спасибо этому человеку!
Основная проблема крылась в подготовке номера получателя. Важно что бы он содержал четное количество цифр. Поэтому, при необходимости, номер с конца дополняется символом «F». Приведу пример преобразования номера. Цитирую Алексея Печерского (справедливости для отмечу, с исправлением опечаток):

номер +37212345678 последовательно превращается:
1. 37212345678 — убрали +;
2. 37212345678 — определили длину адреса Length('37212345678') =11d(десятичное) или 0Bh (шестнадцатеричное);
3. 37212345678F — добавили в конец F, так как длина нечетная;
4. 7312325476F8 — переставили тетрады;
5. 917312325476F8 — добавили интернациональный тип номера 91h;
6. 0B917312325476F8 — добавили длину — и вот вам результат, то есть номер +37212345678 превратился в 0B917312325476F8


Ниже приведен текст функции, написанной pende и доработанной мною для российских условий. Мы устанавливаем, что номер получателя в интернациональном формате, время доставки сообщения 24 часа, текст сообщения в кодировке Unicode (2 байт на символ):
def createPDUmessage(number, msg):
'''
Returns a list of bytes to represent a valid PDU message
'''
numlength = len(number)
number_length = len(number)

if (numlength % 2) == 0:
rangelength = numlength
else:
number = number + 'F'
rangelength = len(number)

octifiednumber = [ semi_octify(number[i:i+2]) for i in range(0,rangelength,2) ]
# octifiedmsg = octify(msg) теперь сообщение в unicode не будем его октифицировать
msg_length = len(msg)*2 # два байта на символ

PDU_TYPE = 0x11
MR = 0
ADDR_TYPE = 0x91 #international format

pdu_message = [PDU_TYPE, MR, number_length, ADDR_TYPE]
pdu_message.extend(octifiednumber)

pdu_message.append(0) #PID
pdu_message.append(8) #DCS

pdu_message.append(167) #VP 24 hours

pdu_message.append(msg_length)
# добвляем САМО сообщение а не октифицированную его версию!
# pdu_message.extend(msg)
for i in xrange (len(msg)) :
digit = ord(msg[i])
h_digit = digit >> 8
l_digit = digit & 0xFF
pdu_message.append(h_digit)
pdu_message.append(l_digit)

return pdu_message

Собственно говоря и все. В случае, когда у нас возникает желание отправить длинное СМС (а точнее, серию сообщений) применяется непосредственно в теле сообщения специальный заголовок UDH, в котором указывается номер сообщения в серии и общее количество сообщений в этой серии. Поэтому функция подготовки сообщения претерпела изменения:
def createPDUmessage_parted(number, msg, number_of_serie, part_number, number_of_parts):
'''
Returns a list of bytes to represent a valid PDU message
'''
numlength = len(number)
number_length = len(number)

# добавим к номеру в конце буковку F если длина номера нечетная
if (numlength % 2) == 0:
rangelength = numlength
else:
number = number + 'F'
rangelength = len(number)
# преобразуем номер получателя в принятый в заголовке формат
octifiednumber = [ semi_octify(number[i:i+2]) for i in range(0,rangelength,2) ]

msg_length = len(msg)*2 + 6 # два байта на символ плюс 6 байт на заголовок в сообщении что это длинное смс

PDU_TYPE = 0x51 # добавили бит что перед телом сообщения будет заголовок где информация о склейке
MR = 0
ADDR_TYPE = 0x91 #international format

pdu_message = [PDU_TYPE, MR, number_length, ADDR_TYPE]
pdu_message.extend(octifiednumber)

pdu_message.append(0) #PID
pdu_message.append(8) #DCS

pdu_message.append(167) #VP 24 hours

pdu_message.append(msg_length)

# добавим заголовок о том что у нас часть большого сообщения всего 6 байт
pdu_message.append(5)
pdu_message.append(0)
pdu_message.append(3) # это всегда так
pdu_message.append(number_of_serie) # уникальный для данной группы смс номер. хрен его знает как брать. будет пока 13
pdu_message.append(number_of_parts) # количество смс для склейки
pdu_message.append(part_number) # порядковый номер смс

# добвляем САМО сообщение а не октифицированную его версию!
for i in xrange (len(msg)) :
digit = ord(msg[i])
h_digit = digit >> 8
l_digit = digit & 0xFF
pdu_message.append(h_digit)
pdu_message.append(l_digit)

return pdu_message

Ну и теперь нам осталось в самом начале понять, отправляем мы одно сообщение или несколько и выбрать каким способом формируется PDU.
Полный текст скрипта находится здесь.

источник с Хабра удален

Везде где появляется Linux появляются ректальные методы работы с устройствами!


Комментарии посетителей
[1] 2 3

#1. wr224

Да п...ец просто crazy Линуходы такие линуходы biggrin
ипануцо
Цитата:
Хочу отправлять короткие сообщения на русском языке из командной строки (на кой хр№н??! прим. Luca). Не хочу ограничивать себя размером сообщения


че за машинный перевод????

решение волшебное.

#3. Begemotov

И что хотел сказать автор?
на самом деле мне интереснее другое.
а именно, на что надеялись нокиевцы когда ориентировали свой н900 на вот такие задачи/решения таких вот гиков-покупателей??7

проясните мне момент плиз, мой телефон(нокия) владеет аналогичным функционалом без допила, почему этого нет здесь??7 маэмо?

#5. pavel2403

pavel2403
А что, просто набрать текст смс в телефоне и отправить, не?thinking
Begemotov написал:
И что хотел сказать автор?

что он крутой кодер. а н900 фуфлоwink

#7. pavel2403

pavel2403
wr224 написал:
Да п...ец просто Линуходы такие линуходы
Что-то они затихарились, уже 2-й день тишина, к чему бы это? Наверное перегруппировываются, получают резервы и новые планы от боха-Питуха, окружать будут!biggrin

#8. Begemotov

Не знаком с этим телефоном, а что просто отправить смс там нельзя?
Mandriva-oid
pavel2403 написал:
Что-то они затихарились, уже 2-й день тишина, к чему бы это? Наверное перегруппировываются, получают резервы и новые планы от боха-Питуха, окружать будут!biggrin

Паш, комменты не работали а ср#ть на форуме это ниже линуксоидов. smile smile

#10. pavel2403

pavel2403
Begemotov написал:
Не знаком с этим телефоном, а что просто отправить смс там нельзя?
Вопрос повис в воздухе.... возможно что и нельзя... Nokia что, луноходы захватили???
Begemotov написал:
Не знаком с этим телефоном, а что просто отправить смс там нельзя?


как-то оно у них по-своему сделано.
http//www.ferra.ru/images/235/235952.jpg

ректально?wink

#12. DonDublon1

Не, ну а чо такого-то? Чувак решил отправлять sms через консоль. Это ключевая фраза.
На кой хр№н ему это понадобилось - неизвестно, но вообще все консольные вещи делаются для вызовов из скриптов. Решил задачу на питоне. Флаг в руки.

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

#13. pavel2403

pavel2403
Mandriva-oid написал:
ср#ть на форуме это ниже линуксоидов
а не ср#ть совсем линуксоиды могут?(я имею ввиду форумы блоги и прочие интернет ресурсы)wink
Mandriva-oid
DonDublon1, +500. Кто вам сказал, что это единственный способ отправки?

#15. Luca

У моего друга N900, кстати, глюкает иногда. Выражается это в том, что сеть теряет и иногда вызовы сбрасывает.
Mandriva-oid
Кстати, я сейчас такую штуку для своего 5800 Xpress Music делаю. А там никаким Linux и не пахнет - голая Симба biggrin
DonDublon1 написал:
Не, ну а чо такого-то? Чувак решил отправлять sms через консоль. Это ключевая фраза.
up up up up

#19. Begemotov

Почитал про телефон, вроде всё там можно нормально отправить... А если кому через скрипты интересней, в чём проблема то?

#20. pavel2403

pavel2403
Mandriva-oid написал:
Кто вам сказал, что это единственный способ отправки?
Так про то и спрашивали,
Begemotov написал:
Не знаком с этим телефоном, а что просто отправить смс там нельзя?

pavel2403 написал:
А что, просто набрать текст смс в телефоне и отправить, не?

только никто так и не ответилsad
Mandriva-oid
pavel2403, лично с ним не работал, но. Насколько я помню, это не телефон, а интернет-планшет. ЧЗХ?

#22. pavel2403

pavel2403
Mandriva-oid написал:
Кстати, я сейчас такую штуку для своего 5800 Xpress Music делаю. А там никаким Linux и не пахнет - голая Симба
Напильник нужен? Могу подогнать http//ib1.keep4u.ru/s/2010/04/28/17/17af9ccefadbc026a26f8af7314aa107.jpgwink

#23. petrun

Я не очень понял, а что не так-то?ВОзможность отправить сообщение из скрипта не нужна?)

#24. I_love_Win

pavel2403 написал:
Напильник нужен? Могу подогнать


Настоясчий альтернативномыслясчий и инструмент делает для себя сам smile

Из чего под руку попадёт

Пусть и пилит криво и неправильно и на куй никому не нужно, зато сам

#25. dimitrio1

Ну и что тут такого? Программер вкурил, разобрался и запостил.
На основе добытых им знаний можно чего-нибудь интересного накодить. Что здесь не нравится СЛОРу?)
Любое описание хака вызывает желание включить вентилятор в розетку дрожащими от ярости руками?)

#26. pavel2403

pavel2403
I_love_Win написал:
Настоясчий альтернативномыслясчий и инструмент делает для себя сам

Из чего под руку попадёт

Пусть и пилит криво и неправильно и на куй никому не нужно, зато сам
Linux-Way Forever!biggrin

#27. I_love_Win

petrun написал:
ВОзможность отправить сообщение из скрипта не нужна?)


Голуби тоже почту доставляют

#28. pavel2403

pavel2403
I_love_Win написал:
Голуби тоже почту доставляют

Да-да, а у велосипеда тоже колеса есть и он едет, автомобиль не нужен!biggrin

#29. petrun

I_love_Win написал:
Голуби тоже почту доставляют

А причем тут?Этот скрипт можно засунуть в программу мониторинга чего-либо.

#30. pavel2403

pavel2403
petrun написал:
мониторинга чего-либо.
мониторинга чиво???crazy

#31. dimitrio1

pavel2403 написал:
Linux-Way Forever!

Бандерлоги такие бандерлоги. Зря вы с выром критикуете вытащенную Лукой записку какого-то гика. Смысла нет.
Mandriva-oid
pavel2403 написал:
мониторинга чиво???crazy

Например, спам-фильтр сделать.

#33. petrun

pavel2403 написал:
мониторинга чиво???crazy

В том-то и соль, что чего угодно.От состояния рабочего серва, до погоды на марсе и новых RSS рассылок.

#34. Begemotov

pavel2403 написал:
Да-да, а у велосипеда тоже колеса есть и он едет, автомобиль не нужен!

Железобетонная логика! А что по твоему если автомобиль есть, велосипеды вдруг не нужны стали?

#35. pavel2403

pavel2403
dimitrio1 написал:
Бандерлоги такие бандерлоги. Зря вы с выром критикуете вытащенную Лукой записку какого-то гика. Смысла нет.
Действительно бандерлоги. Понимаешь, любая вещь имеет свое определенное утилитарное предназначение. То есть чайник должен кипятить воду, тележка первозить всякий хлам, а часы показывать время. А бандерлоги пытаются скрестить все это вместе, что бы мониторить погоду на Марсе!!! Ну ради бога, но кому это интересно и зачем об этом писать с таким пафосом?crazy

#36. wr224

dimitrio1 написал:

Бандерлоги такие бандерлоги. Зря вы с выром критикуете вытащенную Лукой записку какого-то гика. Смысла нет.

Да среди луноходов таких кулибиных большинство biggrin

#37. pavel2403

pavel2403
Begemotov написал:
Железобетонная логика! А что по твоему если автомобиль есть, велосипеды вдруг не нужны стали?
Ну если ты собираешься поехать в другой город скажем на 200 км, то можешь ехать конечно на велосипеде, вам не привыкать, а свой вопрос попробуй задать любому простому человеку и попробуй его убедить, что в данном случае велосипед нужен!!!biggrin

#38. wr224

pavel2403 написал:

Ну ради бога, но кому это интересно и зачем об этом писать с таким пафосом?

Ну бля как же нужно же показать что хоть что-то в жизни умеешь biggrin biggrin biggrin

#39. pavel2403

pavel2403
wr224 написал:
Ну бля как же нужно же показать что хоть что-то в жизни умеешь
да, похоже, что это действительно единственная вменяемая мотивация! Другие просто на поверхности не просматриваются.biggrin

#40. I_love_Win

Begemotov написал:
А что по твоему если автомобиль есть, велосипеды вдруг не нужны стали?


Велосипеды с квадратными колёсами очень нужны, да

Они даже есть!

Правда кроме жалости к их обладателям и улыбок ничего не вызывают biggrin
[1] 2 3

Просмотров: 3856