![]() |
![]() |
#1 |
Senior Member
Регистрация: 12.10.2012
Адрес: Moscow-Voronezg
Сообщений: 272
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Как можно отправить смс через 3g модем установленный в роутер:
(Средствами gnokii ) Втыкаем модем в роутер с симкартой, запрос пин кода отключить, модем должен быть в режиме "только модем". Для начала нужно установить пакеты
После установки ребутимся. Смотрим в /dev, должно появиться ttyUSB0, ttyUSB1, ttyUSB2. У меня модем сидел на ttyUSB0. Теперь нужно создать конфиг файл для gnokii. Это файл с именем ".gnokiirc" в каталоге root, содержание файла: PHP код:
gnokii --identify в ответ получим что-то вроде: PHP код:
PHP код:
Только русские символы не прокатывают, приходят иероглифы. Кто знает как поправить, пишите. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Регистрация: 12.10.2012
Адрес: Moscow-Voronezg
Сообщений: 272
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Только русские символы не прокатывают, приходят иероглифы. Кто знает как поправить, пишите.
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Спасибо, зачет.
Пока еще не ставил, но обязательно попробую. Для полного счастья ещё приём нужен. Тогда можно через телефон управлять умным домом ![]() Ну и наверно проверка баланса. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Регистрация: 12.10.2012
Адрес: Moscow-Voronezg
Сообщений: 272
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Приём делается как-то так:
команда перевода модема в режим чтения смс PHP код:
И ещё команды:
PHP код:
PHP код:
PHP код:
1 - читать с первого сообщения end - читать по последнее сообщение PHP код:
PHP код:
Вообще в проге есть хелп, но почему-то многое не работает. И, кстати, пока в конфиге был указан модем ttyUSB0 - можно было только отправлять смс, читать из памяти не хотел, и принимать тоже. После того как указал ttyUSB2 - заработало. P.S. Может кто привести пример скрипта, запустив на исполнение который, чтобы отправлялась sms? Если будет пример запуска этого скрипта из крона, то ваще супер. А если кто даст готовое решение, или подскажет как сделать контроль наличия интернета, (то есть пингуем сайт, если пинг есть, то всё ok, если пинг пропал, то смс отправляется, если пинг после пропадания вновь появился, то тоже смс) то ваще не будет предела моему счастью. А то сам я в линуксах ваще не шарю, разбираться неделями буду, а хочется поскорее ))) |
![]() |
![]() |
![]() |
#5 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Вот пример скрипта без крона проверяет наличие интернета каждую минуту
Код:
#!/bin/sh PINGADRESS=8.8.8.8 # любой внешний адрес интернета sleep 60 while true; do if ping -c 1 $PINGADRESS > /dev/null 2>&1 ; then sleep 60 else /path/sms_send.sh # скрипт отсылающий ваш СМС fi done exit 0 и задать атрибуты 775 Код:
chmod 775 /usr/sbin/myscript.sh прописать в /etc/rc.local Код:
... /usr/sbin/myscript.sh & ... Пример усовершенствованного скрипта, как вы и хотели при появлении интернета тоже отсылается сообщение. Вместо скрипта отсылки СМС здесь используются тестовые команды echo. В отличии от предыдущего скрипта здесь проверяется еще дополнительная переменная INET, что дает скрипту некоторую гибкость, не посылается несколько раз одно и тоже сообщение о наличии интернета или его отсутствии. Код:
#!/bin/sh PINGADRESS=192.168.1.4 # любой внешний адрес интернета INET=1 sleep 60 #начальная пауза (важна при загрузке) while true; do if ping -c 1 $PINGADRESS > /dev/null 2>&1 ; then if [ $INET == 0 ] then INET=1; echo "Yes Internet again"; # скрипт отсылающий СМС fi; sleep 60 else if [ $INET == 1 ] then INET=0; echo "No Internet"; # скрипт отсылающий СМС fi; fi; done exit 0 Последний раз редактировалось andr128; 21.11.2012 в 12:47. Причина: усовершенствование скрипта |
![]() |
![]() |
![]() |
#6 |
Senior Member
Регистрация: 12.10.2012
Адрес: Moscow-Voronezg
Сообщений: 272
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Спасибо, попробую вечером!
[off] А можете разъяснить строчку детально: if ping -c 1 $PINGADRESS > /dev/null 2>&1 ; Что значит ping -c 1? Что за атрибут "-с" и "1"? И что такое /dev/null 2>&1? Видимо интерфейс с которого пингует? Что значит "&1" ? Спасибо ![]() [/off] |
![]() |
![]() |
![]() |
#7 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
/dev/null 2>&1 все сообщения со стандартного терминала в мусорку.
вот разъеснение -с 1 пинговать 1 раз man ping Последний раз редактировалось andr128; 21.11.2012 в 12:43. |
![]() |
![]() |
![]() |
#8 |
Member
|
![]()
Кириллица в смсках заменяется спецсимволами специальной кодировки. Вот их и нужно знать. Именно поэтому количество знаков, которые может передать 1 смска на кириллице меньше, чем обычно.
http://habrahabr.ru/post/133085/ Последний раз редактировалось goldskif; 06.12.2012 в 18:41. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Регистрация: 12.10.2012
Адрес: Moscow-Voronezg
Сообщений: 272
Вес репутации: 0 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
А как должен выглядеть скрипт, отсылающий смс?
В файле так должно быть написано?: PHP код:
И этот файл с расширением .sh запускать? |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Я еще не разбирался с пакетом gnokii. Если вы отсылали таким образом из терминала, то тогда все правильно. Единственное файлу нужно задать атрибуты 755.
Можете прямо в скрипт, который я вам выше давал прописать. Код:
#!/bin/sh PINGADRESS=192.168.1.4 # любой внешний адрес интернета INET=1 sleep 60 #начальная пауза (важна при загрузке) while true; do if ping -c 1 $PINGADRESS > /dev/null 2>&1 ; then if [ $INET == 0 ] then INET=1; echo "Yes Internet again" | gnokii --sendsms '+7905ХХХХХХХ'; # послать СМС fi; sleep 60 else if [ $INET == 1 ] then INET=0; echo "No Internet" | gnokii --sendsms '+7905ХХХХХХХ'; # послать СМС fi; fi; done exit 0 Цитата:
Последний раз редактировалось andr128; 05.12.2012 в 09:59. |
|
![]() |
![]() |
![]() |
Здесь присутствуют: 7 (пользователей: 0 , гостей: 7) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|