PDA

Bekijk de volledige versie : router2sms [python]



xz_kostyan
26-01-2010, 14:00
Вынес с отдельную ветку, чтобы не потерялось.
Добавлено:
- отсылка больших смс путем дробления на части и посылки каждой отдельно. Большие смс с русским текстом тоже обрабатываются;
- убран мусор, добавляемый mail.ru в конец сообщения;
- список адресов электронной почты перебирается по кругу. Ищутся те, с которых можно послать;
- создана веб-страница для отправки смс с помощью веб-интерфейса (тестировал с в связке lighttpd);
- для ускорения работы скрипта время возможной отправки смс сохраняется в файл;
- присутствует отложенная отправка;

Установка
1) Скопируйте содержимое архива sms в какую-нибудь директорию.
2) Установите Python. Для этого в шелле выполните:


ipkg update
ipkg install python3

3) Сделайте скрипты send.py, sendtime.py, smscron.py, smscron.sh исполняемыми.


chmod +x send.py
chmod +x sendtime.py
chmod +x smscron.py
chmod +x smscron.sh


4) [Если нужна отложенная отправка]
Отредактируйте smscron.sh (задайте в переменной BASEPATH путь до smscron.py без слеша в конце).
Добавьте в cron (у меня в файл /opt/etc/crontabs/admin) вызов smscron.sh:


0 * * * * /opt/share/scripts/sms/smscron.sh

Если вы распаковали архив в /opt/share/scripts/sms/

В начало crontab-файла добавьте


SHELL=/bin/sh

Так проверка на отправку будет производится с каждым началом часа.

Настройка
1) Список email-ов и паролей задается в файле store.py.
Для отправки больших смс, если задано мало email-ов, но с них еще можно отправить, скрипт висит в памяти и отправляет каждую минуту. Поэтому лучше задать штук 5-10 чтобы не было ожидания.
2) Там же в значение переменной log_filename задайте файл для лога и проверьте права на доступ к нему.

Использование
Отправка смс:


./send.py 7916xxxxxxx message


Отложенная отправка смс:


./sendtime.py 8 23 7916xxxxxxx message

Первый параметр - час, когда смс может приходить; второй - когда уже смс приходить не может.

Установка веб-интерфейса (сервер lighttpd):
1) Распакуйте содержимое архива webInterface в корень веб сервера (у меня /opt/share/www).
2) В файле sendFromWeb.py задайте переменной sender_path свой путь до директории с файлом send.py.
3) В файле конфига lighttpd (/opt/etc/lighttpd/lighttpd-ssl.conf - у меня используется ssl. Или /opt/etc/lighttpd/lighttpd.conf - если без ssl) необходимо секцию cgi модифицировать следующим образом:


#### CGI module
cgi.assign = ( ".pl" => "/opt/bin/perl",
".py" => "/opt/bin/python3",
".cgi" => "/bin/sh" )


По желанию можно настроить аутентификацию в том же конфиге. Вот пример моей


auth.require = ( "/" =>
(
"method" => "digest",
"realm" => "realm_can_access_to_root",
"require" => "user=user_can_access_to_root"
)
)

$HTTP["url"] =~ "^/rtorrent"{
auth.require = ( "/rtorrent" =>
(
"method" => "digest",
"realm" => "rtorrent",
"require" => "valid-user"
)
)
}

$HTTP["url"] =~ "^/sms"{
auth.require = ( "/sms" =>
(
"method" => "digest",
"realm" => "sms",
"require" => "valid-user"
)
)
}

Про аутентификацию подробнее (http://wl500g.info/showpost.php?p=90459&postcount=343).

В веб-интерфейсе можно не задавать время отправки, тогда смс придет сразу же.

Не забудьте установить локаль, если не установлена (лучше в /etc/profile).


export LANG='ru_RU.UTF-8'


Внимание! Если вы только что зарегали ящик на mail.ru, то чтобы залогиниться через Mail.Ru Agent или этот скрипт, нужно отправить письмо кому-нибудь.

UPD (от 30.05.2010): Теперь не придется каждый раз править sender.py. E-mail'ы и пароли к ним вынесены в отдельный файл.
UPD (от 14.05.2011): В питоне 3.2 сломали logging со строкой формата '%(asctime)-18s'. Поэтому тем, что поставил python-3.2 и кому в консоль сыпятся ошибки вида: KeyError: 'asctime' на 34 строке файла sender.py замените


format = '%(asctime)-18s %(levelname)-13s %(message)s',

на


format = '%(asctime)s %(levelname)-13s %(message)s',

НЕ ТРОГАЯ отступы.
UPD (от 23.07.2011): В питоне 3.2.1-1 logging починили, не нужно править руками sender.py.

MFMan
26-01-2010, 14:23
Молодец, что отдельно вынес! Авторам респект!

rrunner
27-01-2010, 08:45
Вот что говорит :(


File "./send.py", line 27, in <module>
print(s.send_sms(phone, message))
File "/opt/etc/sms_py/sender.py", line 179, in send_sms
if self.send_sms_part(phone, temp_message[:size]):
File "/opt/etc/sms_py/sender.py", line 111, in send_sms_part
list = agent.is_contact_list(packet)
File "/opt/etc/sms_py/mrim.py", line 504, in is_contact_list
client = str(self.get_bytes_from_packet(packet, dlen), 'UTF-16LE')
File "/opt/lib/python3.1/encodings/utf_16_le.py", line 16, in decode
return codecs.utf_16_le_decode(input, errors, True)
UnicodeDecodeError: 'utf16' codec can't decode byte 0x00 in position 146: truncated data

В вебмрде пишет просто "Результат"

Локаль установлена, вот:


]$ export
export HOME='/usr/local/root'
export LANG='ru_RU.UTF-8'
export LC_ALL='ru_RU.UTF-8'
export LOGNAME='root'
export PATH='/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
export PS1='[\u@\h \W]$ '
export PWD='/tmp/local/root'
export SHELL='/bin/sh'
export TERM='xterm'
export TERMINFO='/opt/share/terminfo'
export USER='root'

Похоже , что только у меня такое,долго пытался разобраться, ибо нелюблю вопросы просто так задавать.

колбаскин
30-01-2010, 22:04
Видимо прикрыли лавочку! Сегодня не отправлял ни единого смс


[maxya@maxya_wi_fi root]$ /tmp/harddisk/www/sms/send.py 38068XXXXXXX проверка!
Sms send error: sms limit exceeded at all emails.

Хм, удалил файлы mrim.рус и sender.рус
и начало отправлять!

xz_kostyan
30-01-2010, 23:25
Видимо прикрыли лавочку! Сегодня не отправлял ни единого смс


[maxya@maxya_wi_fi root]$ /tmp/harddisk/www/sms/send.py 38068XXXXXXX проверка!
Sms send error: sms limit exceeded at all emails.

Хм, удалил файлы mrim.рус и sender.рус
и начало отправлять!
Возможно роутер был сильно загружен. У кого такое часто возникает, может попробовать изменить значение wait_confirm_interval в файле sender.py, на большее.

johnson
31-01-2010, 07:05
подскажите на билайн нормально отправляется, а на Мотив не приходит, хотя лого оператора есть в плагине

Возможно роутер был сильно загружен. У кого такое часто возникает, может попробовать изменить значение wait_confirm_interval в файле sender.py, на большее.

xz_kostyan
31-01-2010, 10:21
johnson, вот что (http://agent.mail.ru/ru/help/3/2.html) написано на сайте м-агента. Так что теоретически все должно быть нормально. Проверьте доставляется ли самим агентом.

johnson
31-01-2010, 10:43
а как сделать чтобы не просил логин и пароль при заходе на этот плагин?

xz_kostyan
31-01-2010, 11:14
а как сделать чтобы не просил логин и пароль при заходе на этот плагин?

Вы про настройку веб-сервера? Тут (http://wl500g.info/showpost.php?p=90459&postcount=343) показано как включить аутентификацию. Соответственно выключается она комментированием строк.

johnson
31-01-2010, 12:03
тоже не доходят сообщения, написал им в поддержку

johnson, Проверьте доставляется ли самим агентом.

karim
06-03-2010, 15:57
export LANG='ru_RU.UTF-8'


после перезагрузки роутера строка пропадает

flashfs save && flashfs commit && flashfs enable && reboot
делал

где копать?

сам нашел =)

надо править
/tmp/local/root/.profile



и все так и русские буквы не шлет


[admin@wl500g root]$ /opt/etc/sms_py/send.py 7987###### test
Sms sent

[admin@wl500g root]$ /opt/etc/sms_py/send.py 7987###### test тест
Traceback (most recent call last):
File "/opt/etc/sms_py/send.py", line 27, in <module>
print(s.send_sms(phone, message))
File "/opt/etc/sms_py/sender.py", line 161, in send_sms
is_long = len(message) != len(bytes(message, 'UTF-8'))
UnicodeEncodeError: 'utf-8' codec can't encode character '\udcd1' in position 5: surrogates not allowed
[admin@wl500g root]$

kalach
09-03-2010, 22:50
Что то у меня не выходит послать смс, номер +358466******. Или майл не шлет на забугорные операторы ?

Groghal
25-03-2010, 17:10
Для тестирования создал 3 ящика на @mail.ru - все работало (и работет) суперски!!

Захотел сделать так, чтобы мусора при отправке смс (емейл с которого идет отправка, и который указывается в отправленной смс) был бы как можно короче. Зарегистрировал несколько ящиков на @bk.ru... Было проведено несколько экспериментов, но результат один - скрипт тупо виснет... почему - я не знаю (логов по умолчанию нету, а с питоном я знаком как с английской королевой)...
Собственно вопрос - у кого отправляется с @bk.ru? (может это я один кривой) и еще вопросец из этой же серии - как заставить отправлять смс с @bk (пока буду сидеть на @mail.ru :mad: )?

PS для тех кто спросит - "нахрена тебе @bk - всего 2 символа экономии?!" - отвечаю... да всего 2 символа, но еще огромный плюс, что проще найти короткие адресе - на @bk гораздо меньше ящиков зарегано, чем на @mail.ru

xz_kostyan
26-03-2010, 15:59
У меня все прекрасно отправляется. Только что проверил.

Groghal
26-03-2010, 18:52
У меня все прекрасно отправляется. Только что проверил.

С ящиков @bk.ru ? странно... ну тогда буду дальше экспериментировать ...

PS может я написал как то криво в предыдущем посте - с @mail.ru - работает нормально; с @bk.ru - скрипт виснет и все.
PSS небольшое уточнение - ящики на мейл.ру - 15знаков (2 последних - цифры), на бк.ру - 4 знака (2 последних - цифры)

Kolandr
26-03-2010, 22:19
прописал, как указано логин и пасс, делаю отправку через
./send.py 7916xxxxxxx message
скрипт долго висит, потом пишет, что лимит смс исчерпан.
хотя прописано 2 ящика и с них ничего ни разу не отправлялось еще.

bak
28-03-2010, 07:31
У меня проблема заключается в том, что скрипт отправляет только на те телефоны, которые есть в списке контактов. Причем в список контактов не всегда удаётся добавить даже в ручную.

agpecam
02-04-2010, 07:42
У меня проблема заключается в том, что скрипт отправляет только на те телефоны, которые есть в списке контактов. Причем в список контактов не всегда удаётся добавить даже в ручную.

У меня тоже только на те, что в списке отправляет. Можно исправить как то?

bak
03-04-2010, 06:44
Я думаю, это защита от смс спама... я добавил несколько телефонов, на которые чаще всего отправляю, пока работает :)

agpecam
04-04-2010, 20:48
Я думаю, это защита от смс спама... я добавил несколько телефонов, на которые чаще всего отправляю, пока работает :)

Вручную во все используемые ящики проблематично контакты все нужные вносить. Как можно экспортиорвать контакты? Пргорамма может быть есть? Пробовал переидывать файлы контактов из папки пользоватиля Агента-не работает. Адреса тоже исправлял-не работает. Агент на Симбиане подерживает вроде импорт и экспорт контактов-пробовал на N95 - не поддерживает телефон. Может есть решения?

kalach
05-04-2010, 01:28
в общем если нужно что-бы смс доходили везде и всегда, нужно юзать сервисы аля clickatell.com, дешево и практично :)

xz_kostyan
11-04-2010, 17:20
По поводу контактов: наверно вы все же что-то неправильно делаете. Скрипт сам добавляет в список номер, если его там не было.

ANdyCV
12-04-2010, 13:49
Может я чего не понял, все сделал как в инструкции пишу...
./send.py 7916xxxxxxx message и тишина, просто молчание....
Вопрос как посмотреть что происходит и отследить вывод команды?

xz_kostyan
13-04-2010, 20:32
Я не предусматривал логирования и лога вообще как такового. Так что посмотреть будет проблематично. Пишите в ЛС, будем копать.

psevdo0
15-04-2010, 20:40
Что то не отправляет смс, процесс запускается и висит. при проверке командой top на роутере видно что скрипт отожрал память и висит бездействует, если запускать повторно смс появляются новые процессы и смс так и не отправляются. :(

колбаскин
16-04-2010, 08:15
На beeline UA спокойно отправляет! на MTC нет, висит в процессах и все...

YAG
16-04-2010, 21:55
Виснет видимо при попытке добавить номер в контакт, потому что после добавления вручную отправляет.

bak
17-04-2010, 17:15
Проблема не в отправке, а именно в добавлении. Поэтому скрипт и зависает. А жалетально чтоб не зависал, а вылетал с ошибкой. Повторюсь, что добавить не всегда даже вручную получается. Номера тестил тока mts.

Kolandr
17-04-2010, 19:58
добавил новый контакт через клиента и присвоил ему нужный мне номер для отправки смс - все равно в консоли пишет Sms sent, а на телефон не доходит. если отправлять просто через клиент на этот же номер - то доходит. Оп. МТС

xz_kostyan
17-05-2010, 19:48
Обновил версию скрипта. Новая версия в первом посте.

Для тех кому интересно что было: мейл.ру, видать, сильно страдает от спамеров или еще кого, поэтому они ввели дополнительное ограничение на время добавления контакта, начиная с момента логина. Экспериментально оно оказалось около 9-ти секунд. То есть, если вы попытаетесь добавить номер до истечения это времени, вы получите ошибку как в агенте, так и тут. Так же с только что зареганного ящика надо отравить письмо, или у вас не получится залогиниться через агент и скрипт, соответственно.

Тут (http://forum.eugen.su/showpost.php?p=785&postcount=39) пишут, забавные вещи про Агент. Проверил, так и оказалось. Да, до времени дошел я далеко не сразу. :)

колбаскин
27-05-2010, 10:04
Закинул новую версию скрипта, смс на билайн доходят (по времени также все норм)
Хотел попросить написать скрипт который пингует заданный сервер (и если можно порт), при его отключении отсылает смс
чтобы знать когда сервер падает

xz_kostyan
27-05-2010, 13:49
Вот, что получилось:


#!/bin/sh

HOST=$1
TMPFILE=/tmp/ping.tmp

ping -c 1 -w 5 $HOST &>/dev/null

if [ $? -ne 0 ] ; then
if [ ! -e $TMPFILE ] ; then
touch $TMPFILE
/opt/share/scripts/sms/send.py 7916xxxxxxx server $HOST is down
fi
else
if [ -e $TMPFILE ] ; then
rm $TMPFILE
/opt/share/scripts/sms/send.py 7916xxxxxxx server $HOST is up
fi
fi

Этот файл можно добавить в crontab:


*/1 * * * * /opt/share/scripts/pingHost.sh ya.ru

колбаскин
27-05-2010, 22:09
Спасибо! отличный скриптик, теперь получаю смс когда сервер падает
а то хост-трекер платный
а тут свое и быстро

можно узнавать когда жена ноут включает и выключает :D

xz_kostyan
09-06-2010, 11:31
Кстати. В лог не пишется время и дата, а они должны по идее писаться в самое начало строки лога. В этом питоне, похоже, сломали функцию strftime, которая занимается форматированием строки времени. На большом брате с таким же питоном все нормально. Кто выяснит почему так, буду благодарен. Установка переменных TZ и LC_TIME не помогла.


export LC_TIME='ru_RU.UTF-8'
export TZ='MSK-3MSD,M3.5.0,M10.5.0/3'

00daniil
16-06-2010, 12:24
Здравствуйте. я хочу отправить смс на мтс в украине - с агента виндовс пишет что оператор не поддержывается, хотя тут http://agent.mail.ru/help/3/2.html он есть в списке. в чем проблемма?
а с роутера вот http://my.router/sms/sendFromWeb.py ссылка и пишет К сожалению, Google Chrome не может найти страницу

mr-butch
16-06-2010, 14:21
Здравствуйте.
А как по примеру выше изложенному по пингу доступности сервера в интернете, будет выглядеть скрипт проверки своего собственного ip адреса. И в случае его отличия от запомненного предыдущего, высылать скриптом sms с новым ip адресом?

Pablo Escobar
16-06-2010, 14:25
Здравствуйте.
А как по примеру выше изложенному по пингу доступности сервера в интернете, будет выглядеть скрипт проверки своего собственного ip адреса. И в случае его отличия от запомненного предыдущего, высылать скриптом sms с новым ip адресом?

а зачем? есть же DynDNS.

GUID
16-06-2010, 17:19
убран мусор, добавляемый mail.ru в конец сообщения;
дюже интересно как это реализовано? "добивка" пробелами до максимальной длины сообщения?

xz_kostyan
16-06-2010, 17:56
дюже интересно как это реализовано? "добивка" пробелами до максимальной длины сообщения?

Да пробелами, при всем желании добавить в смс ничего не выйдет.

xz_kostyan
16-06-2010, 18:00
Здравствуйте. я хочу отправить смс на мтс в украине - с агента виндовс пишет что оператор не поддержывается, хотя тут http://agent.mail.ru/help/3/2.html он есть в списке. в чем проблемма?
а с роутера вот http://my.router/sms/sendFromWeb.py ссылка и пишет К сожалению, Google Chrome не может найти страницу

Не поддерживается -- значит они отключили отправку в Украине или еще что. Я же не работаю в Mail.ru. А на роутер для отправки sms вы заходите не по тому url, что надо. Если делали как написано у меня и веб-сервер на 80 порту, то вот так http://my.router/sms/

SuperART
16-06-2010, 18:03
Зарегил новых ящиков, отправил с каждого по 1 письму. Вчера отправил штук 7 смс и перестало работать, сегодня тож не работает((:
В меил вреде заходят (не забанены).


Результат
Sms limit exceeded at email art0e@bk.ru.
Sms limit exceeded at email art6q@bk.ru.
Sms limit exceeded at email art1y@bk.ru.
Sms limit exceeded at email art4l@bk.ru.
Sms limit exceeded at email art0b@bk.ru.
Sms limit exceeded at email art0s@bk.ru.
Sms limit exceeded at email art5h@bk.ru.
Sms limit exceeded at email art8e@bk.ru.
Sms limit exceeded at email art8a@mail.ru.
Sms limit exceeded at email art4x@mail.ru.
Sms limit exceeded at email art2f@mail.ru.
Sms limit exceeded at email art0c@mail.ru.
Sms limit exceeded at email art5k@mail.ru.
Sms limit exceeded at email art6i@mail.ru.
Sms limit exceeded at email art4t@mail.ru.
Sms limit exceeded at email art9o@mail.ru.
Sms limit exceeded at email art4f@bk.ru.
Sms limit exceeded at email art1i@bk.ru.
Sms send error: sms limit exceeded at all emails.

И подскахите плиз как этим скриптом лучше устроить флуд на 1 номер! :rolleyes:
И еще там нету случайно лимита отправки с 1 IP?
Заранее спасибо)

Кстати. В атаче отличный меил.ру реггер на php (работает на роутере). Регит без проблем 10 мыл за раз. Правда с проксями тупит немного, это видимо меил.ру блокирует регу через прокси((

mr-butch
21-06-2010, 06:15
а зачем? есть же DynDNS.

На те случаи как сейчас - DynDNS не доступна, а попасть на роутер все таки нада.
Да и вообще не помешает для резерва.

mr-butch
24-06-2010, 08:27
Возможно ли снизить количество попыток отправки смс с одного мэйла, т.е. в случае невозможности добавления нового номера (contact operation error) скрипт делает 16 ping'ов. Как бы это исключить или снизить количество и переходить к следующему мылу и пытаться отправить?

xz_kostyan
24-06-2010, 16:58
Возможно ли снизить количество попыток отправки смс с одного мэйла, т.е. в случае невозможности добавления нового номера (contact operation error) скрипт делает 16 ping'ов. Как бы это исключить или снизить количество и переходить к следующему мылу и пытаться отправить?

Количество попыток отправки никак не связано с невозможностью добавления нового номера. Можете сами поиграться со значениями wait_confirm_interval (ожидание результата отправки смс) и wait_add_interval (время ожидания для добавления). Я подобрал оптимальные параметры, какие можно.

mr-butch
24-06-2010, 17:05
Количество попыток отправки никак не связано с невозможностью добавления нового номера. Можете сами поиграться со значениями wait_confirm_interval (ожидание результата отправки смс) и wait_add_interval (время ожидания для добавления). Я подобрал оптимальные параметры, какие можно.

У меня после ошибки добавления номера отсчитывается ровно 16 ping и переходит к следующему e-mail. Это количество - 16 повторяется из раза в раз. И я предполагал что это количество можно снизить.

mr-butch
28-06-2010, 17:37
При отправке большой партии смс у меня выходит ошибка:

CRITICAL Traceback (most recent call last):
File "/opt/etc/sms/sender.py", line 240, in send_sms
if self.send_sms_part(phone, temp_message[:text_len]):
File "/opt/etc/sms/sender.py", line 102, in send_sms_part
if not agent.connect():
File "/opt/etc/sms/mrim.py", line 153, in connect
return self.connect_single()
File "/opt/etc/sms/mrim.py", line 211, in connect_single
data = s.recv(48)
socket.error: [Errno 131] Connection reset by peer

Обращался к уважаемому xz_kostyan, молчит. Подскажите, с чем это связано? Есть ли ограничение по количеству одновременно отправляемых смс?

xz_kostyan
28-06-2010, 21:07
Я был на природе, физически не мог ответить. По поводу отправки большой партии -- не знаю. По логам соединение обрубается сервером. В профиле есть контакты -- пишите, будем копать.

zz777
07-07-2010, 16:28
Как переписать это для питона 2.5?


File "/home/ilya/scripts/sms_sender/sms/mrim.py", line 436
while self.get_bytes_from_packet(packet, 1) == b'0x00':

xz_kostyan
11-07-2010, 12:08
Как переписать это для питона 2.5?


File "/home/ilya/scripts/sms_sender/sms/mrim.py", line 436
while self.get_bytes_from_packet(packet, 1) == b'0x00':


А что конкретно вас настораживает в этой строке? Написал сейчас для 2.6 следующее:



def get_bytes_from_packet(packet, num):
data = packet[1][:num]
packet[1] = packet[1][num:]
return data

packet = [[], [b'0x00', 0, 3, 4]]

a = get_bytes_from_packet(packet, 1)

print a

if a[0] == b'0x00':
print "asd"



Вроде работает.

Texno
03-08-2010, 14:05
Подскажите, как реализовать возможность повторной отправки смс при ошибке?
Например: при отсутствии соединения с интернетом пытаться посылать пока инет не появится?

- спасибо, разобрался сам.

колбаскин
05-08-2010, 07:21
Закинул новые файлы
чет ругается

[maxya@maxya_wi_fi root]$ sms 380xxxxxx2x проверка
Traceback (most recent call last):
File "/tmp/harddisk/www/sms/send.py", line 4, in <module>
import sender
File "/tmp/mnt/disc0_3/www/sms/sender.py", line 9, in <module>
from store import *
File "/tmp/mnt/disc0_3/www/sms/store.py", line 1
logins = ["zntu@bk.ru", "zntu@inbox.ru", "zntu@list.ru", "zp2sms@mail.ru", "zp2sms@bk.ru" ,"zp2sms@inbox.ru", "zp2sms@list.ru", "zp-sms@mail.ru", "zp-sms@bk.ru", "zp-sms@inbox.ru", "zp-sms@list.ru", "zp-sms@mail.ru", "zp-sms@bk.ru", "zp-sms@inbox.ru", "zpsms@mail.ru", "zpsms@bk.ru", "zpsms@inbox.ru", "zpsms@list.ru"]
^
IndentationError: unexpected indent
[maxya@maxya_wi_fi root]$

убрал отступы в store.py, начало отправлять
но на МТС Украина не приходят, Beeline UA нормально

xz_kostyan
05-08-2010, 21:26
- спасибо, разобрался сам.

Разобрались сами, напишите тут, даже мне стало интересно как это сделать. :)

waguka
10-08-2010, 08:12
Доброго времени суток.
хочу чтоб при загрузке от роутера приходило смс с его ip.
Вытащить ip не проблема, например так:
ifconfig vlan1|grep inet|awk '{print $2}'|sed s/^.....//
строка работает, проверено.
но как результат в смс передать? :(
пробовал вот так, загнать результат в переменную чтоб потом питоновский скрипт с ней запустить:
rez=`ifconfig vlan1|grep inet|awk '{print $2}'|sed s/^.....//`
но туда почему-то непопадает ничего после grep, в чем дело непойму, мозг плавится, спасайте. Может будут альтернативные идеи отсылки текущего ip?

xz_kostyan
10-08-2010, 19:24
Доброго времени суток.
хочу чтоб при загрузке от роутера приходило смс с его ip.


Примерно вот так


#!/bin/sh
IP=`ifconfig vlan1|grep inet|awk '{print $2}'|sed s/^.....//`
./send.py 7916xxxxxxx $IP


А вообще не плохо было бы хоть чуть-чуть поковырять bash, прежде чем спрашивать. :)

waguka
14-08-2010, 06:15
Спасибо. Осталось разобраться с кодировкой.
Скрипт на отсылку прописал в post-mount, при перезагрузке рутера он запускается, но смс не уходит. говорит:

CRITICAL Traceback (most recent call last):
File "/opt/etc/sms/sender.py", line 216, in send_sms
if (len(message) > (int(text_len / (1 + self.is_utf(message))) - login_len)) or (message_num != 1):
File "/opt/etc/sms/sender.py", line 190, in is_utf
return len(str) != len(bytes(str, 'UTF-8'))
UnicodeEncodeError: 'utf-8' codec can't encode character '\udcd0' in position 0: surrogates not allowed
При запуске того же скрипта из ssh - русскими буквами смс отправляет.
локаль прописана русская:
export LANG='ru_RU.UTF-8'
export LC_ALL='ru_RU.UTF-8'
export LOGNAME='root'
То же самое со скриптом, отсылающим название скаченного торрента. Если попадается хоть одна русская буква - смс не отсылает (((
Подскажите, где копать?

TReX
14-08-2010, 11:53
Доброго времени суток.
хочу чтоб при загрузке от роутера приходило смс с его ip.
Вытащить ip не проблема, например так:
ifconfig vlan1|grep inet|awk '{print $2}'|sed s/^.....//
строка работает, проверено.
но как результат в смс передать? :(
пробовал вот так, загнать результат в переменную чтоб потом питоновский скрипт с ней запустить:
rez=`ifconfig vlan1|grep inet|awk '{print $2}'|sed s/^.....//`
но туда почему-то непопадает ничего после grep, в чем дело непойму, мозг плавится, спасайте. Может будут альтернативные идеи отсылки текущего ip?

А не проще dyndns использовать? можно будет по имени звать ))

waguka
14-08-2010, 19:06
А не проще dyndns использовать? можно будет по имени звать ))
Да dyndns настроен, хочу именно смс при загрузке\перезагрузке роутера.

xz_kostyan
15-08-2010, 15:14
Спасибо. Осталось разобраться с кодировкой.
Подскажите, где копать?

Добавьте

export LANG='ru_RU.UTF-8'
в скрипте и будет вам счастье.

Texno
16-08-2010, 14:06
Разобрались сами, напишите тут, даже мне стало интересно как это сделать. :)

Сильно не пинать, баш вижу впервые...

Итак, питон мы не знаем, поэтому смысл шаманства создать очередь смс и отправлять родным скриптом их до посинения:D

1-переименовать оригинальный /opt/etc/sms_py/send.py -> /opt/etc/sms_py/send2.py
2-положить новый файл создания очереди send.py
3-создать папку смс очереди: /opt/var/log/sms_queue
4-положить файл управления очередью в крон: /opt/etc/cron.1min/sms.sh
5- не забыть дать права скриптам: chmod 777 имя_файла.
, а так же добавить пользователя p2p скриптам и папке sms_queue если требуется отправка уведомлений от торрента: chown p2p имя_файла.

Впринципе формат отправки смс для приложений не изменился, но лучше отправлять сообшение в кавычках, иначе придут только первые 10 слов :rolleyes:
Отправку по расписанию не делал, и скорее всего работать не будет.
У кого есть желание доделать/передалать - WELCOME.

waguka
16-08-2010, 18:10
Добавьте

export LANG='ru_RU.UTF-8'
в скрипте и будет вам счастье.
Спасибо, действительно все заработало :)

the
02-09-2010, 11:46
Друзья, у меня питон не самый модный, и обновляться не хотелось бы


$ python
Python 2.6.5 (r265:79063, Mar 21 2010, 03:24:08)
[GCC 4.1.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
$

Эти скрипты из архива sms.zip (9.1 Кбайт, 128 просмотров) с первого поста требуют доработки для работы с Python 2.6.* или должны работать сразу?

Мне сразу же выдает ошибку

$ python send.py 79039690062 test 1 2 3
Traceback (most recent call last):
File "send.py", line 4, in <module>
import sender
File "/opt/etc/sendsms/sender.py", line 14
SyntaxError: Non-ASCII character '\xd1' in file /opt/etc/sendsms/sender.py on line 14, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
$

xz_kostyan
02-09-2010, 18:47
the, с python 2.x не заработает точно, обновляйтесь.

melnikdima
13-09-2010, 19:16
а у меня через этот скрипт приходят sms вида....

sms_mel@mail.ru [1]message

хотя команду даю вот такую!!!!

/var/www/sms/send.py 7915******* message

как быть с этим?

xz_kostyan
13-09-2010, 19:41
Может не стоит паниковать? Скрипт просто бъет смс на части и нумерует их, если их больше 2-х.

melnikdima
13-09-2010, 20:15
Может не стоит паниковать? Скрипт просто бъет смс на части и нумерует их, если их больше 2-х.

так дело в том что у меня смс короткое))))

igor77777
04-10-2010, 19:14
Пытаюсь "подключить" отсылку смс к mcabber из это темы (http://wl500g.info/showpost.php?p=130295&postcount=26) но что-то не срастается.
Там есть скрипт, который вызывается при приходе сообщения.
При вызове из консоли, тот скрипт отрабатывается и отправляет смс, а вот из mcabber'а не хочет. На данный момент у меня это выглядит так:

#! /bin/sh
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG='ru_RU.UTF-8'

MCABBERFIFO=/opt/etc/.mcabber/mcabber.fifo
MCABBERRESULT=/opt/etc/.mcabber/result

event=$1
arg1=$2
arg2=$3
filename=$4
...
var=`/bin/cat $filename`
smsnumber=`echo "$var" | cut -f2 -d" "`;
smstext=`echo "$var" | cut -f3- -d" "`;
#echo "/say_to $arg2 !sms $smsnumber : $smstext" > $MCABBERFIFO;
# /opt/etc/sms-python/send.py $smsnumber $smstext > $MCABBERRESULT 2>&1
/opt/etc/.mcabber/router2sms/send.sh $smsnumber $smstext > $MCABBERRESULT 2>&1
echo "/say_to -n -f $MCABBERRESULT $arg2" > $MCABBERFIFO

...


/opt/etc/.mcabber/router2sms/send.sh

#!/bin/sh

/opt/etc/sms-python/send.py $1 $2

в общем получаю в ответ:

Fatal Python error: Py_Initialize: can't initialize sys standard streams
OSError: [Errno 9] Bad file descriptor
Aborted

Подскажите, в чем может быть проблема?

xz_kostyan
04-10-2010, 20:26
igor77777, дело, скорее всего, в перенаправлении потоков ввода-вывода. Тут (http://bugs.python.org/issue7111) народ тоже сталкивался с такой проблемой, но у вас в скрипте вроде бы все "чисто". Может mcabber перенаправляет что-нибудь.

igor77777
05-10-2010, 06:03
igor77777, дело, скорее всего, в перенаправлении потоков ввода-вывода. Тут (http://bugs.python.org/issue7111) народ тоже сталкивался с такой проблемой, но у вас в скрипте вроде бы все "чисто". Может mcabber перенаправляет что-нибудь.
Тоже нашёл упоминание проблемы с перенаправлением стандартных потоков (http://welinux.ru/post/1994/), но предлагаемые там рецепты мне не помогли или я их не правильно применял. У меня знаний не достаточно, чтобы понять нюансы.

igor77777
06-10-2010, 20:23
Хочу поделиться реализацией оповещения по смс о загрузке и подключению роутера к провайдеру.
Это один из этапов реализации оповещения о переходе на питание от батареи при потери напряжения в сети, возврате напряжения в сети, выключению при разряде батареи и наконец о загрузке роутера.
Задачи оповещать о смене IP не было, но если это нужно, любой может адаптировать это скриптик под себя. Он достаточно примитивен.

Реализация оповещения о потере напряжения и т.п. - примитивна, поэтому это расписывать не буду. apcupsd может вызывать соответствующие скрипты при подобных событиях. В этих скриптах достаточно вписать вызов send.py с нужными параметрами и вуаля.

Что касается загрузки, то тут немного сложнее. Для того чтобы оправить смс о загрузке должно произойти 2 события. Должен примонтироваться диск с /opt и роутер должен подключить к провайдеру. Причём эти два события, в общем случае - не взаимосвязаны.

Для этого был написан скриптик, который проверяет наличие файла-флага, информирующего о том, что роутер только что загрузился, файла send.py и наличие ip на интерфейсе который смотрит в интернет.
Вот скрипт (/opt/etc/ig-scripts/sms_load_and_connect.sh) :

#!/bin/sh

# проверяем на поднятие нужный интерфейс, и если мы только-что загрузились - сообщаем об этом по смс
if [ -e /opt/etc/sms-python/send.py ] && [ -e /var/lock/RouterLoaded ]
then
HOSTNAME=`hostname`
IFFORSMS=ppp0
IPFORSMS=`ifconfig $IFFORSMS|grep inet|awk '{print $2}'|sed s/^.....//`

test_ip () {
echo $1 | awk -F "." '{if ( NF != 4 ) exit 1;
else if ( $1 > 0 && $1 < 255 && $2 >=0 && $2 < 255 && $3 >=0 && $3 < 255 && $4 > 0 && $4 < 255 ) exit 0;
else exit 1}'
}

test_ip $IPFORSMS
ISIP=$?

if [ $IPFORSMS != "0.0.0.0" ] && [ $ISIP -eq 0 ]
then
/bin/rm /var/lock/RouterLoaded
/opt/etc/sms-python/send.py номер_телефона "$HOSTNAME Router loaded and connected to ISP at `date +%Y-%m-%d_%H:%M:%S`!!!"
fi
fi

exit 0
выделенное красным нужно поменять под себя.
ppp0 - интерфейс, через который ходит интернет
номер_телефона - номер телефона, того счастливчика, которого вы хотите радовать загрузкой своего роутера ;-)
/opt/etc/sms-python/ - путь к файлу send.py. У меня такой, у Вас может быть другой.

в post-mount добавляем создание файла-флага и попытку отправить смс. У меня это выглядит примерно так:



. . . . .

#создаем файл-флаг сигнал о том, что произошла загрузка
echo "Router loaded!!!" > /var/lock/RouterLoaded

/opt/etc/init.d/rc.unslung start

# сообщаем по смс, что загрузились и подключились
[ -e /opt/etc/ig-scripts/sms_load_and_connect.sh ] && /opt/etc/ig-scripts/sms_load_and_connect.sh
/opt/etc/ig-scripts/ - у меня мой скрипт лежит тут, если у себя положите в другое место, то не забываем исправить путь к нему.

В post-firewall добавляем только попытку оправить смс.


. . . .

# сообщаем по смс, что загрузились и подключились
[ -e /opt/etc/ig-scripts/sms_load_and_connect.sh ] && /opt/etc/ig-scripts/sms_load_and_connect.sh
/opt/etc/ig-scripts/ - в post-firewall тоже меняем путь, если нужно.

Не забываем сделать sms_load_and_connect.sh исполняемым, а так же flashfs save && flashfs commit && flashfs enable && reboot - для сохранения изменений в post-mount и post-firewall.

Вроде ВСЕ! :-)

LazyRaven
07-10-2010, 10:05
А можно как-то с помощью send.py отправлять сообщения при загрузке торрента? Я делаю так:

system.method.set_key=event.download.finished,noti fy_me,"execute=/opt/etc/sms_py/sendtime.py,9,23,7929xxxxx,Торрент , $d.get_name=, загружен"
При окончании скачивания rtorrent пишет
Download event action failed: Bad return code. То есть send.py возвращает или не возвращает какой-то код, что не нравится rtorrent.
Через командную строку работает.
P.S. не могу использовать send.php так как он не отправляет (почему-то) смс-ки на мегафоновский 929. Send.py работает стабильней.

P.P.S. Вроде разобрался с неотправкой, надо было дать права доступа на sms.log

nofuture
22-10-2010, 19:00
вопрос касательно торрентов актуален
такая же ошибка

Kolandr
25-10-2010, 16:25
при попытке отправки стал писать
Sms send error: sms limit exceeded at all emails.
забито 2 учетных записи.
при это qip через mail.ru протокол с этих учетных записей sms отправляет

Warcan
16-11-2010, 09:37
Приветствую всех!
Вроде бы настроил всё по инструкции, но не пускает меня на сайт мой не снаружи не изнутри через разные браузеры (Mozilla 3.6.21, Explorer 8, google chrom). Захожу на сайт https://192.168.1.1:8081/sms вылетает сообщение о не подписанном сертификате примнимаю дальше логин ввожу и опять табличка с запросом логина и пароля. Где ошибка понять не могу, смски сам роутер отправляет и из post-mount и из консоли.

xz_kostyan
16-11-2010, 12:34
Где ошибка понять не могу, смски сам роутер отправляет и из post-mount и из консоли.

Попробуйте временно отключить авторизацию и посмотреть что будет, скорее всего именно в ней дело.

Warcan
16-11-2010, 16:02
Да всё работает, но вот почему не пашет с авторизацией?

xz_kostyan
16-11-2010, 18:40
Да всё работает, но вот почему не пашет с авторизацией?
Проверьте права на файл паролей, может lighttpd не может до него достучаться, попробуйте явно прописать урл, как в примере, хотя и с / должно работать.

Kolandr
27-11-2010, 23:56
у всех отправляет? только у меня пишет
Sms send error: sms limit exceeded at all emails.? ;)

igest
30-11-2010, 10:12
Аналогичная проблема

the
30-11-2010, 14:20
у меня работает как обычно, только у меня аккаунтов bk.ru прописано не два, а десять.

AkuNin
03-12-2010, 08:53
Приветствую!
Подскажите, как можно ограничить отправляемую строку по шаблону? Поясню, через этот замечательный скрипт отправляються оповещения о закачке торрентов, формат именования которых зачастую следующий: [имя рип релизера]имя номер серии (тех. характеристики видео и аудио). расширение. Как можно в отправке оставить только "имя номер серии"? Понимаю, что grep наше все и надо вычленять символы между ]-(, но как сформулировать правило, чтоб имена в другом формате тоже слались?

the
03-12-2010, 09:26
Ну тогда RegEx, развлекаемся онлайн на http://rubular.com/

Но лично я не парюсь и пересылаю все как есть.

texxnik
04-12-2010, 08:11
как сделать что бы приходила смс когда у роутера поменяется внешний ip?

Pablo Escobar
04-12-2010, 12:38
как сделать что бы приходила смс когда у роутера поменяется внешний ip?

а зачем, ведь есть dyndns.

texxnik
06-12-2010, 05:35
мне хочется узнать как можно отправить смс при смене IP

Pablo Escobar
06-12-2010, 16:32
мне хочется узнать как можно отправить смс при смене IP

проверка - по cron, скажем, раз в пять минут или раз в минуту. отправка - приведенным здесь скриптом или отправкой e-mail, например.

texxnik
06-12-2010, 18:51
а куда мне ip сохранить что бы потом его сравнить с новым?

Pablo Escobar
07-12-2010, 06:09
а куда мне ip сохранить что бы потом его сравнить с новым?

куда хотите. хоть во флэш-память роутера, хоть на диск/флэшку

texxnik
07-12-2010, 17:37
а можно ли код примерный ?

rollon
09-12-2010, 15:01
а можно ли код примерный ?

Получилось ли написать скрипт? У меня пока отправляется смс об изменении IP только когда роутер перезагружается.

texxnik
09-12-2010, 17:46
нет пока код примерный написать не получилось

rollon
09-12-2010, 18:48
нет пока код примерный написать не получилось

Я сделал по ссылке http://wl500g.info/showthread.php?t=25191 пост №14.работает хорошо.А вот как сделать чтобы приходили смски без перезагрузки роутера не знаю.

AkuNin
05-02-2011, 11:28
Что то перестали смс приходить. В логах ничего криминального, sms sent, но тем не менее на телефон ничего не приходит.

ellectu
07-02-2011, 10:50
та же ситуация. Видимо, что-то случилось. Даже ошибок нет, совсем непонятно что.

xz_kostyan
07-02-2011, 22:11
В общем-то понятно что, протокол сменился, ковыряю, если будут успехи -- напишу.

tyllo
08-02-2011, 02:10
У меня тоже смс не приходят. Я заметил, если зайти в аккаунты меилагентом, то смс снова будут приходить. НО на следующий день придется перезайти.

bulbuliator
09-02-2011, 10:29
Да. и у меня смски не приходят. Отпишите пожалуйста, если кто что накопает.

Grabik
09-02-2011, 20:08
Скрипт на сегодняшний день - НЕ ИСПРАВЕН!
Требуется доработка!

Скрипт начинает отправлять сообщения, если
подключится к используемым *@mail.ru адресам
через MailAgent.... ПОСЛЕ ЭТОГО НАЧИНАЮТСЯ ОТПРАВЛЯТСЯ СМС!!!
(p.s. до следующего дня, на сл. день опять надо подключатся через M.A.)

О Мудрый Создатель скрипта, ПОЧИНИ!

nofuture
21-02-2011, 17:44
у меня 3 почты. на всех пишет: Sms send error: sms limit exceeded at all emails.
в файле mrim.py было:


user_agent = 'MRA 5.7 (build 3757);'
user_agent_descr = 'client=\"magent\" version=\"5.7\" build=\"3757\"'
сделал:


user_agent = 'MRA 5.7 (build 3797);'
user_agent_descr = 'client=\"magent\" version=\"5.7\" build=\"3797\"'
с первого же ящика отправило но не дошло. операторы мтс и нсс

xz_kostyan
21-02-2011, 19:51
Одного изменения user-agent'а не хватит. Протокол немного изменился, теперь пароль (о, чудо!) передаётся в виде md5--хеша. У меня получилось залогиниться на новой версии протокола и отправить смс, но оно пока не приходит. Копаю дальше. Процесс отягощается работой и ДР. :)

AkuNin
03-03-2011, 10:57
На удивление со вчерашнего дня смс стали снова ходить нормально =)

vyatdima
18-03-2011, 09:21
Не отображается инфа в окне сайта статуса роутера. Почему?
Не работает отпрвка SMS о перезагрузке роутера (через окно отправки SMS - СМС приходят).
Почитал форумы - скорее всего не работает CRON, так как файл переменных VARS.php не создается. Вдобавок через http://my.router/cgi-bin/package.cgi видно, что CRON вообще не инсталлирован и даже удален. Почему? Ведь изначально при первой установке скрипта якобы он ставится по-умолчанию.
Что можно сделать?

Rung
18-03-2011, 15:12
Не отображается инфа в окне сайта статуса роутера. Почему?



Почитал форумы - скорее всего не работает CRON, так как файл переменных VARS.php не создается. Вдобавок через http://my.router/cgi-bin/package.cgi видно, что CRON вообще не инсталлирован и даже удален. Почему? Ведь изначально при первой установке скрипта якобы он ставится по-умолчанию.
Что можно сделать?


у Вас не работает Cron. Была таже проблема, обратил внимание, при установке программ скриптом от valeravkb, КРОН не всегда устанавливается корректно. решал переустановкой этим же скриптом, благо время на это уходит не много


Не работает отпрвка SMS о перезагрузке роутера (через окно отправки SMS - СМС приходят).

сообщение о перезагрузке роутера отправляет следующее творение router2sms (http://wl500g.info/showthread.php?t=17474&highlight=%F1%EC%F1), там же найдете упоминание о имеющейся проблеме.

что касается отправки через веб-страницу, то там используется скрипт на питоне router2sms [python] (http://wl500g.info/showthread.php?t=22891)

Если как Вы говорите с веб странички отправляется, можно в файле post-mount заменить запуск скрипта основанный на питоне.
Дополнительный вариант Отправка смс-оповещений при помощи google (http://wl500g.info/showthread.php?t=25191&highlight=%F1%EC%F1)

Grabik
21-03-2011, 06:49
сообщение о перезагрузке роутера отправляет следующее творение router2sms (http://wl500g.info/showthread.php?t=17474&highlight=%F1%EC%F1), там же найдете упоминание о имеющейся проблеме.


У себя переделал отправку о перезагрузке:
вместо используемого ранее send.php
стал использовать скприт на питоне!!!
Всё работает!!!

Siroc-co
25-03-2011, 10:17
У меня неработает. Ошибок нет, но и смс не приходит. Мне кажется, что это плохой вариант, использовать бесплатные сервисы смс, так как постоянно меняются протоколы, и перестаёт работать. Надеятся на это не приходится.
Есть ли скрипты, если это вобще можно осуществить скриптом, чтоб отправлять сообщение через джаббер? Например через сеть qip или vkontakte. Для меня это гораздо актуальнее. Не ограничены лимит, длинна текста, работает всегда. Просто я себе не представляю мобильника без запущенного джаббер клиента. Если только в тот омент, когда этот джаббер с компа работает.

igor77777
25-03-2011, 11:43
Есть ли скрипты, если это вобще можно осуществить скриптом, чтоб отправлять сообщение через джаббер?

А искать пробовали? (можно не отвечать, вопрос риторический :cool:)

Поищите: "mcabber"

добавлено:
PS: но у него свои заморочки.

BlaiR
02-04-2011, 19:04
У себя переделал отправку о перезагрузке:
вместо используемого ранее send.php
стал использовать скприт на питоне!!!
Всё работает!!!
Почему не написал последовательность шагов? Как сделать то?

xz_kostyan
02-04-2011, 20:13
Ох... facepalm.mkv

создайте файл /opt/etc/init.d/S11smsbootsend и напишите в него

#!/bin/sh
export LANG='ru_RU.UTF-8'

send()
{
/opt/share/scripts/sms/send.py 7916xxxxxxx Роутер загружен
}

case "$1" in
start)
send
;;
esac

BlaiR
03-04-2011, 17:37
Спасибо А есть возможность отправлять смс когда закачивается торрент в transmission? Для старой версии трансмишн видел, а у новой версии дирректории другие и все вообще похоже с нуля переписывалось. Как настроить трансмишин для отправки смс?

xz_kostyan
03-04-2011, 18:55
Спасибо А есть возможность отправлять смс когда закачивается торрент в transmission? Для старой версии трансмишн видел, а у новой версии дирректории другие и все вообще похоже с нуля переписывалось. Как настроить трансмишин для отправки смс?

Надо смотреть как трансмишн запускает внешние скрипты, если запускает. Я не пользовался им.

danmer
23-04-2011, 15:56
Sms send error: sms limit exceeded at all emails.

такой результат- и по старым емейлам- и по новым (письма отправлял с каждого)

Причем странная история- вчера зашел, отправил 3 смс и больше не могу, в принципе, ни одного отослать :confused:

Апдейт: Еще более странная ситуация- при этом помогла перезагрузка роутера...
Обращаюсь к разработчикам- что то кэшируется или это просто глюки роутера?

xz_kostyan
24-04-2011, 17:45
Sms send error: sms limit exceeded at all emails.

такой результат- и по старым емейлам- и по новым (письма отправлял с каждого)

Причем странная история- вчера зашел, отправил 3 смс и больше не могу, в принципе, ни одного отослать :confused:

Апдейт: Еще более странная ситуация- при этом помогла перезагрузка роутера...
Обращаюсь к разработчикам- что то кэшируется или это просто глюки роутера?
Кешируется только информация о том, что "невозможно отослать sms" в файл lastloginnum.dat. Так что если у вас этот файл исчез при рестарте, такое поведение нормально.

Gman
19-05-2011, 22:42
Ох... facepalm.mkv

создайте файл /opt/etc/init.d/S11smsbootsend и напишите в него

#!/bin/sh
export LANG='ru_RU.UTF-8'

send()
{
/opt/share/scripts/sms/send.py 7916xxxxxxx Роутер загружен
}

case "$1" in
start)
send
;;
esac


товарищи помогите, не могу понять что делаю не так, как только уже не пробовал.
Вот последнее прописал этот скрипт, единственное что у меня он установлен в /opt/etc/sms_py/send.py и все равно при загрузке не отправляет.
С веб интерфейса смс уходят, в лог все добавляется, а при загрузке ни в какую

Upd:
вообщем не знаю как правильно, не работало оно у меня потому что у меня был файл S11smsbootsend и была запись в /usr/local/post-mount
в конечном итоге я пост-маунт отредактировал дописав
sleep 10s
ipaddr=$(nvram get wan0_ipaddr)
/opt/etc/sms_py/send.py 777777****** Your router $ipaddr is loaded

а файл S11smsbootsend по просту удалил, и все полетело, при загрузке роутер отправляет смс, и с вебморды смс так же уходят, чего и требовалось)))

Gman
12-07-2011, 20:22
возникла еще одна проблема, до недавнего времени, лог файл записывал все отлично, все происходило, потом уже не помню для чего решил все переконфигурировать, во общем заново установил все скрипты, тут появился косяк, лог файл не пишет, чего я только не пробовал, уже и не знаю что делать, проблема моими руками не гуглится. Гуру, пожалуйста скажите что делать!

bvvr
15-07-2011, 05:33
Gman, питон обновлял? посмотри какая у тебя версия - если python-3.2 или выше, то прочитай первый пост этой темы, конкретно UPD (от 14.05.2011).

Gman
17-07-2011, 21:34
Gman, питон обновлял? посмотри какая у тебя версия - если python-3.2 или выше, то прочитай первый пост этой темы, конкретно UPD (от 14.05.2011).

омфг, заработало, огромное спасибо!

Loci
29-07-2011, 05:07
Оказывается при перезагрузке роутера, пост-маутинг скидывается.
А я все меняю send.php на send.py, а он не запоминает.
После всех изменений, в терминале (putty) пишем:
flashfs save&&flashfs commit&&reboot
роутер перезагрузиться, но перед этим применит новые изменения.

Теперь при загрузке роутера смс приходит. Спасибо!

chyuliy
31-07-2011, 10:16
не отправляет смс. В логе пишет:

Contact NOT found
Sleeping...
Подскажите, в чем может быть дело?

Хотя жду больше заявленных wait_add_interval = 9.0 (секунд?)

Nurofen
14-09-2011, 09:01
Старый скрипт для чайников уже наверное никогда не заработает ,ну разве что ктото возмётся востановить роботу умерших репозиториев ,и то что вы сменили репозиторий у вас на роутере ни коим образом не влияет на скрипт , потому как скрипт использует репозитории прописаные в нём же
Capitan вы если не знаете то не вводите людей в заблуждение

А по поводу нового скрипта (http://wl500g.info/showthread.php?t=27615) так єто да , вчера им пользовался , работает вроди как нормально (обновлял свмбу)

А sms шлет когда роутер(торент) завершит закачки итд?

колбаскин
14-09-2011, 14:32
У всех перестали приходить смс или только у меня?
В логе все красиво



INFO Email: 1132@list.ru. Attempting to send sms to +380503454323 with text: "proverka ".
INFO Contact NOT found
INFO Sleeping...
INFO Adding contact +380503454323
INFO Sending sms
INFO Sms sent


а смс не приходит....
Операторы билайн и мтс укриана

BaltazoR
14-09-2011, 15:26
У всех перестали приходить смс или только у меня?
В логе все красиво



INFO Email: 1132@list.ru. Attempting to send sms to +380503454323 with text: "proverka ".
INFO Contact NOT found
INFO Sleeping...
INFO Adding contact +380503454323
INFO Sending sms
INFO Sms sent


а смс не приходит....
Операторы билайн и мтс укриана

Только что проверил, на Лайф приходят

колбаскин
15-09-2011, 07:54
А у меня чудисы...


root@Cisco:~# /jffs/www/sms/send.py 38630272751 proverka
Sms limit exceeded at email zp2sms@bk.ru.
Sms limit exceeded at email zp2sms@inbox.ru.
Sms limit exceeded at email zp2sms@list.ru.
Sms limit exceeded at email zp-sms@mail.ru.
Sms limit exceeded at email zp-sms@bk.ru.
Sms limit exceeded at email zp-sms@inbox.ru.
Sms limit exceeded at email zp-sms@list.ru.
Sms limit exceeded at email zp-sms@mail.ru.
Sms limit exceeded at email zp-sms@bk.ru.
Sms limit exceeded at email zp-sms@inbox.ru.
Sms limit exceeded at email zpsms@bk.ru.
Sms limit exceeded at email zpsms@inbox.ru.
Sms limit exceeded at email zpsms@list.ru.
Sms limit exceeded at email smszp@mail.ru.
Sms limit exceeded at email smszp@bk.ru.
Sms limit exceeded at email smszp@inbox.ru.
Sms limit exceeded at email smszp@list.ru.
Sms limit exceeded at email zntu@bk.ru.
Sms limit exceeded at email zntu@inbox.ru.
Sms limit exceeded at email zntu@list.ru.
Sms limit exceeded at email zp2sms@mail.ru.
Sms send error: sms limit exceeded at all emails.
root@Cisco:~#

Хотя не отправлял смс вообще...

Rung
15-09-2011, 10:49
Только что проверил через WEB - Sms sent. смс получил все работает.

колбаскин
15-09-2011, 13:14
Только что проверил через WEB - Sms sent. смс получил все работает.

А оператор какой?

Rung
16-09-2011, 14:37
А оператор какой?

отправлял на МТС

Только что опять пытался отправить Sms send error: sms limit exceeded at all emails.

СМС-ка на телефон не пришла

Может mail.ru изменил чтото? весь вечер пытаюсь отправлять ни одна смс не уходит, ошибка одна и та же - Sms send error: sms limit exceeded at all emails.

специально для проверки запустил Маил-Агент и от туда под каждым зарегистрированным логином отправил себе смс, все сообщения дошли.

Уважаемый xz_kostyan!
Уделите, пожалуйста, немного времени, поставьте диагноз, будет ли работать Ваше детище?

Приятная новость - смс опять отправляются: Sms sent

seregakot
17-09-2011, 06:15
отпишитесь с белорусскими операторами работает этот скрипт?

Irek320
09-01-2012, 15:03
Всем привет! Вот тут решил немного преукрасить web страничку для отправки смс.
UDP: пофиксил web страничку, теперь все должно быть ОК.

Beetelbot
05-02-2012, 16:13
Ребята, кто сталкивался с проблемой - отослал несколько смс с каждого ящика (всего 5), уже пишет

Sms send error: sms limit exceeded at all emails

Отсылаю на один номер МТС Россия. Кто-нибудь решил?

Irek320
05-02-2012, 17:31
А ты на какой номер отсылал? Начинающийся с 8 или с 7?

Beetelbot
08-02-2012, 16:57
А ты на какой номер отсылал? Начинающийся с 8 или с 7?

На 7. Сегодня вроде заработало. Видимо снизили лимит по кол-во смс и их частоте из-за большого кол-ва отправок

Irek320
08-02-2012, 17:51
Понятно. У меня такое иногда бывало, когда я отправлял на 8. Помогала перезагрузка роутера.

ale_xb
07-03-2012, 20:34
У меня отправка из командной строки проходит успешно, а из web-интерфейса при нажатии кнопки "Отправить", получаю сообщение "403 - Forbidden"
Где, кому и какие права я забыл дать?

upd: перегрузил lighttpd и все заработало

Irek320
08-03-2012, 07:12
Вы забыли прописать в конфиге lighttpd разрешение на исполнение .py файлов. в секции cgi у вас должно быть так:
#### CGI module
cgi.assign = ( ".pl" => "/opt/bin/microperl",
".cgi" => "/opt/bin/microperl",
".py" => "/opt/bin/python3",
".sh" => "/opt/bin/bash" )

ale_xb
09-03-2012, 12:28
Вы забыли прописать в конфиге lighttpd разрешение на исполнение .py файлов.
нет, это у меня все было прописано, но, как я сказал, нужно было просто перезагрузить lighttpd, чтобы изменения в конфиге вступили в силу

Теперь разбираюсь/борюсь с "Sms send error: sms limit exceeded at all emails"...

Кстати, в п.4 инструкции (самый первый пост этой темы) написано:
Добавьте в cron вызов smscron.sh:

0 * * * * /opt/share/scripts/sms/smscron.sh

Не следует ли здесь добавить имя пользователя от которого будет выполняться скрипт, т.е.:

0 * * * * root /opt/share/scripts/sms/smscron.sh

?

Irek320
09-03-2012, 16:50
1. Если отправляли на номер нач. с 8, то просто перезагрузить роутер. Должно помочь.
2. По идее пользователя указывать нужно, но т.к файл crontab создан(и запускается) от единственного(по умолчанию) пользователя, то это не обязательно.

ale_xb
09-03-2012, 17:41
1. номер набирал с 7-ки, но на след.день как-то все заработало без перезагрузки роутера даже. Погляжу, как будет себя все это вести дальше.
2. спасибо, понял. У меня почему-то (если я только не напутал где-то что-то еще в другом месте) сначала без указания пользователя root не сработал скрипт smscron.sh.

PS. Я почему-то не вижу записей о работе smscron.sh в логе cron-а, тогда как для других скриптов, vnstat, например, в логе все пишется. vnstat, правда, запускается с помощью run-parts, может, в этом дело?
PPS. в sms.log нет штампов даты/времени - так и должно быть? Как-то не здорово. Как это можно поправить?

Irek320
09-03-2012, 17:59
1. Может, попробуйте запустить smscron.sh с помощью run-parts, если это возможно, ии посмотрите на результат.
2. Да, так и должно быть, у меня так-же, как исправить незнаю. Может что-то надо прописать в sender.py

xz_kostyan
15-03-2012, 21:00
1. номер набирал с 7-ки, но на след.день как-то все заработало без перезагрузки роутера даже. Погляжу, как будет себя все это вести дальше.
2. спасибо, понял. У меня почему-то (если я только не напутал где-то что-то еще в другом месте) сначала без указания пользователя root не сработал скрипт smscron.sh.

PS. Я почему-то не вижу записей о рабате smscron.sh в логе cron-а, тогда как для других скриптов, vnstat, например, в логе все пишется. vnstat, правда, запускается с помощью run-parts, может, в этом дело?
PPS. в sms.log нет штампов даты/времени - так и должно быть? Как-то не здорово. Как это можно поправить?

1. Номер начинается с 7 для России, а не 8.
2. Возможно, мы используем разные версии крона. Я, по крайней мере, добавлял строки с вызовом в файл /opt/etc/crontabs/admin, поэтому имя пользователя мне указывать не потребовалось.

В логах действительно нет timestamp-ов. У меня так и не получилось заставить их работать (видимо тут питон поломан или еще что). На большом брате эти скрипты нормально писали в лог.

А вообще, этот протокол -- капризная штука, поэтому в один день может работать, в другой нет. Не обессудьте. :)

vkrum
24-03-2012, 18:59
дбрый день.

установлен openwrt 10.03.1

установил python




root@OpenWrt:/usr/share/sms# opkg update
Downloading http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/Packag
es.gz.
Inflating http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/Packages
.gz.
Updated list of available packages in /var/opkg-lists/packages.
root@OpenWrt:/usr/share/sms# opkg install python
Installing python (2.6.4-3) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/python
_2.6.4-3_ar71xx.ipk.
Installing libpthread (0.9.30.1-43.32) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/libpth
read_0.9.30.1-43.32_ar71xx.ipk.
Installing librt (0.9.30.1-43.32) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/librt_
0.9.30.1-43.32_ar71xx.ipk.
Installing zlib (1.2.3-5) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/zlib_1
.2.3-5_ar71xx.ipk.
Installing libffi (3.0.9-1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/libffi
_3.0.9-1_ar71xx.ipk.
Installing python-mini (2.6.4-3) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/python
-mini_2.6.4-3_ar71xx.ipk.
Configuring librt.
Configuring libpthread.
Configuring zlib.
Configuring libffi.
Configuring python-mini.
Configuring python.

при запуске без ввода сообшения вроде работает

root@OpenWrt:/usr/share/sms# ./send.py
usage: ./send.py 79161111111 your message

при вводе сообщения ругается

root@OpenWrt:/usr/share/sms# cat /var/log/sms.log
12-03-24 18:57:12 INFO Attempting to send sms to +7хххххххххх with tex
t: "hello".
12-03-24 18:57:12 CRITICAL Traceback (most recent call last):
File "/usr/share/sms/sender.py", line 216, in send_sms
if (len(message) > (int(text_len / (1 + self.is_utf(message))) - login_len))
or (message_num != 1):
File "/usr/share/sms/sender.py", line 190, in is_utf
return len(str) != len(bytes(str, 'UTF-8'))
TypeError: str() takes at most 1 argument (2 given)

как включить поддержку UTF-8?

xz_kostyan
24-03-2012, 23:17
как включить поддержку UTF-8?

Обновил архив. Скачайте архив и замените файл sender.py.
В 2-х словах такая штука произошла из-за того, что str -- это функция в питоне.
Раньше локальная переменная-параметр str перекрывала имя этой функции, в Вашем питоне это не так. В любом случае называть так переменную не дело. Что поделать, код я писал давно, теперь мне за него стыдно местами. :)

vkrum
25-03-2012, 10:37
Обновил архив. Скачайте архив и замените файл sender.py.
В 2-х словах такая штука произошла из-за того, что str -- это функция в питоне.
Раньше локальная переменная-параметр str перекрывала имя этой функции, в Вашем питоне это не так. В любом случае называть так переменную не дело. Что поделать, код я писал давно, теперь мне за него стыдно местами. :)
Спасибо что откликнулись.

ошибка повторяется.


root@OpenWrt:/usr/share/sms# cat /var/log/sms.log
12-03-25 09:32:44 INFO Attempting to send sms to +79175085380 with tex
t: "iii".
12-03-25 09:32:44 CRITICAL Traceback (most recent call last):
File "/usr/share/sms/sender.py", line 216, in send_sms
if (len(message) > (int(text_len / (1 + self.is_utf(message))) - login_len))
or (message_num != 1):
File "/usr/share/sms/sender.py", line 190, in is_utf
return len(t_str) != len(bytes(t_str, 'UTF-8'))
TypeError: str() takes at most 1 argument (2 given)



root@OpenWrt:/www/cgi-bin# ./sendFromWeb.py
./sendFromWeb.py: line 3: sender_path: not found
./sendFromWeb.py: line 5: import: not found
./sendFromWeb.py: line 6: syntax error: unexpected word (expecting ")")

xz_kostyan
27-03-2012, 17:23
Спасибо что откликнулись.

ошибка повторяется.



Черт, я не посмотрел какую вы версию питона ставили. Скрипт писался под 3 питон. Ставьте его и все заведётся.

Infernion
01-06-2012, 11:26
Черт, я не посмотрел какую вы версию питона ставили. Скрипт писался под 3 питон. Ставьте его и все заведётся.

Привет xz_kostyan!
Я вот решил перенести твой скрипт с роутера на Google App Engine, только проблема в том что там нет поддержки 3-й ветки Питона, а только Python 2.6/7.
Посмотрев файлики пришел к выводу что нужно переписать файлики send.py, smscron.py и sendtime.py, верно? Вроде только там идет вызов на 3й питон.

UPD
Вижу еще и sender.py перерисовать надо... Задумался стоит ли игра свеч...

MercuryV
01-06-2012, 12:23
...пришел к выводу что нужно переписать...
Я для своих нужд "переписывал" под python 2.x
Работоспособную версию сделать получилось, но поломалась поддержка utf8/кириллицы
Поскольку python для меня язык "не родной", решил так и оставить.
см. вложение, может пригодится

Infernion
01-06-2012, 21:51
Я для своих нужд "переписывал" под python 2.x
Работоспособную версию сделать получилось, но поломалась поддержка utf8/кириллицы
Поскольку python для меня язык "не родной", решил так и оставить.
см. вложение, может пригодится
Большее спасибо MercuryV! Обязательно воспользуюсь!

Все четко, завелось, но проблема с маил ру, не хочет отправлять, говорит лимит
исчерпан, а акаунт старый и должен бы отправлять. У кого какие идеи?

Pasha_ZZZ
09-10-2012, 07:54
Если номера нет в списке контактов - то добавление происходит очень долго и не всегда. Вот как выглядит ошибка при добавлении:
12-10-09 10:10:52 INFO Attempting to send sms to +79..... with text: "Test message #2"
.
12-10-09 10:10:52 INFO Email: ....1@mail.ru. Attempting to send sms to +79....... with text: "Test message #2
".
12-10-09 10:10:52 INFO Contact NOT found
12-10-09 10:10:52 INFO Sleeping...
12-10-09 10:11:01 INFO Adding contact +79.........
12-10-09 10:11:01 ERROR contact operation error
12-10-09 10:11:22 INFO Ping
12-10-09 10:11:52 INFO Ping
12-10-09 10:12:22 INFO Ping
12-10-09 10:12:53 INFO Ping
12-10-09 10:13:23 INFO Ping
12-10-09 10:13:53 INFO Ping
12-10-09 10:14:23 INFO Ping
12-10-09 10:14:53 INFO Ping
12-10-09 10:15:23 INFO Ping
12-10-09 10:15:53 INFO Ping
12-10-09 10:16:24 INFO Ping
12-10-09 10:16:54 INFO Ping
12-10-09 10:17:24 INFO Ping
12-10-09 10:17:54 INFO Ping
12-10-09 10:18:24 INFO Ping
12-10-09 10:18:54 INFO Ping Потом переходит к другому мылу - та же картина. И только на третьем ящике:
12-10-09 10:27:46 INFO Email: .....3@mail.ru. Attempting to send sms to +79......... with text: "Test message #2
".
12-10-09 10:27:47 INFO Contact NOT found
12-10-09 10:27:47 INFO Sleeping...
12-10-09 10:27:56 INFO Adding contact +79......
12-10-09 10:27:56 INFO Sending sms
12-10-09 10:28:03 INFO Sms sent

hobbygolic
09-10-2012, 10:48
Если номера нет в списке контактов - то добавление происходит очень долго и не всегда. Вот как выглядит ошибка при добавлении:
12-10-09 10:10:52 INFO Attempting to send sms to +79..... with text: "Test message #2"
.
12-10-09 10:10:52 INFO Email: ....1@mail.ru. Attempting to send sms to +79....... with text: "Test message #2
".
12-10-09 10:10:52 INFO Contact NOT found
12-10-09 10:10:52 INFO Sleeping...
12-10-09 10:11:01 INFO Adding contact +79.........
12-10-09 10:11:01 ERROR contact operation error
12-10-09 10:11:22 INFO Ping
12-10-09 10:11:52 INFO Ping
12-10-09 10:12:22 INFO Ping
12-10-09 10:12:53 INFO Ping
12-10-09 10:13:23 INFO Ping
12-10-09 10:13:53 INFO Ping
12-10-09 10:14:23 INFO Ping
12-10-09 10:14:53 INFO Ping
12-10-09 10:15:23 INFO Ping
12-10-09 10:15:53 INFO Ping
12-10-09 10:16:24 INFO Ping
12-10-09 10:16:54 INFO Ping
12-10-09 10:17:24 INFO Ping
12-10-09 10:17:54 INFO Ping
12-10-09 10:18:24 INFO Ping
12-10-09 10:18:54 INFO Ping Потом переходит к другому мылу - та же картина. И только на третьем ящике:
12-10-09 10:27:46 INFO Email: .....3@mail.ru. Attempting to send sms to +79......... with text: "Test message #2
".
12-10-09 10:27:47 INFO Contact NOT found
12-10-09 10:27:47 INFO Sleeping...
12-10-09 10:27:56 INFO Adding contact +79......
12-10-09 10:27:56 INFO Sending sms
12-10-09 10:28:03 INFO Sms sent

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

Pasha_ZZZ
09-10-2012, 12:12
И это еще в лучшем случае контакт добавляется так быстро и всего на 3-й емейл...

hobbygolic
21-11-2012, 20:16
перестало работать совсем вернее посылает но на номер который уже в списке контактов а новые не добавляет.

sanc_6
18-06-2013, 00:45
xz_kostyan, у меня не получается даже соединиться. Пишет Unable to connect to mrim.mail.ru! Что можно сделать? Если уже писалось, то ткните носом! Поиск, в общем-то ничего не дал. И еще пишет sms limi exceeded to all emails.

MercuryV
19-06-2013, 00:03
Сейчас пробовал - работает. Во всяком случае на московские Мегафон и Билайн.

13-06-19 02:57:02 INFO Attempting to send sms to +79687xxxxxx with text: "Is this the real life? Is this just fantasy? Caught in a landslide no escape from reality. Open your eyes, look up to the skies and see".
13-06-19 02:57:03 INFO Email: xxxxxx@list.ru. Attempting to send sms to +79687xxxxxx with text: "[1]Is this the real life? Is this just fantasy? Caught in a landslide no escape from reality. Open your eyes, look up to ".
13-06-19 02:57:03 INFO Contact NOT found
13-06-19 02:57:03 INFO Sleeping...
13-06-19 02:57:12 INFO Adding contact +79687xxxxxx
13-06-19 02:57:12 INFO Sending sms
13-06-19 02:57:22 INFO Email: yyyyyy@mail.ru. Attempting to send sms to +79687xxxxxx with text: "[2]the skies and see ".
13-06-19 02:57:22 INFO Contact found
13-06-19 02:57:22 INFO Sending sms
13-06-19 02:57:31 INFO Sms sent
использовал три ящика в разных доменах (bk.ru, mail.ru, list.ru) со своей версией (http://wl500g.info/showthread.php?22891-router2sms-python&p=251305#post251305) под python2

fvm
01-08-2013, 23:39
Господа, а есть возможность отправлять обычные mrim сообщения, файлы и т.п.? Буду весьма благодарен за любую инфу. Готов поучаствовать в разработке. По-хорошему, мне бы вообще код mrim-клиента на питоне подошел. Пока смотрю на поделие ребят с jabber.ru, но там быдлокод, конечно, адов.

колбаскин
23-12-2013, 10:27
xz_kostyan Если есть время посмотри плз код.

13-12-23 12:25:32 INFO Email: **-sms@mail.ru. Attempting to send sms to +380639735*18 with text: "privet ".
13-12-23 12:25:32 INFO Contact NOT found
13-12-23 12:25:32 INFO Sleeping...
13-12-23 12:25:41 INFO Adding contact +380639735*18
13-12-23 12:25:41 ERROR invalid info
13-12-23 12:26:02 INFO Ping
13-12-23 12:26:33 INFO Ping

Вопрос снят, так отдает инфу когда ящик заблокирован типо из-за отправки с него спама. Чтобы mail.ru узнали ваш номер мобильного.

mr-butch
13-05-2014, 10:53
Добрый день.
Перестал работать скрипт, в логах пишет "Sent sms". А по факту ничего не приходит.
Пробовал разные акки и телефоны.
Изменения на mail.ru?