Gnokii

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


Содержание

[править] Настройка gnokii

Необходимо указать:

  • port — порт, через который выполнено подключение телефона;
  • model — название внутреннего драйвера gnokii для доступа к телефону (или AT, если телефон поддерживает AT-команды);
  • connection — способ соединения телефона с компьютером (serial/irda/bluetooth).

Пример конфигурационного файла gnokii.

Подключен мобильный телефон Sony Ericcson (интерфейс AT-команд); подключение выполнено через USB-кабель.

%# grep -v ^# /etc/gnokiirc | grep -xv ''
[global]
port = /dev/ttyACM0
model = AT
initlength = default
connection = serial
use_locking = yes
serial_baudrate = 19200
smsc_timeout = 10
[gnokiid]
bindir = /usr/sbin/
[connect_script]
TELEPHONE = 12345678
[disconnect_script]
[logging]
debug = off
rlpdebug = off
xdebug = off

[править] Работа с SMS

[править] Получение SMS

%# gnokii --getsms ME 1

GNOKII Version 0.6.14
1. Inbox Message (read)
Date/time: 19/06/2007 16:26:32 +0200
Sender: +380503996172 Msg Center: +38050000501
Text:
uname

[править] Отправка SMS

Текст сообщение передаётся на стандартный поток ввода программы gnokii:

%# echo test from gnokii | gnokii --sendsms +380503996172

[править] Удаление SMS

Для удаления сообщения необходимо указать тип памяти и номер сообщения.

Внутренняя память телефона обозначается кодом ME. Сообщения нумеруются, начиная с 1. После удаления сообщения не сдвигаются, т.е. сообщение под номером 2 остаётся сообщением под номером 2, даже если сообщение 1 удалено.

# gnokii --deletesms ME 1

GNOKII Version 0.6.14
Deleted SMS ME 1


Безуспешная попытка удалить SMS. (SMS после удаления не сдвигается)

%# gnokii --deletesms ME 1

GNOKII Version 0.6.14
DeleteSMS ME 1 failed!(Unknown error - well better than nothing!!)


[править] SMS-шлюз

Рассмотрим, как можно использовать gnokii для управления системой с помощью SMS.

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

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

Рекомендуется из соображений безопасности:

  • проверять команду на вхождение в заранее предопределённое допустимое множество (исключающее потенциально опасные команды);
  • проверять телефон отправителя на вхождение в предопределённый список авторизованных пользователей шлюза.

Рекомендуется из соображений удобства:

  • предопределить набор «быстрых» часто использующихся команд (функций), которые можно вызывать без длительного набора на клавиатуре телефона.

Icon-caution.gif

Скрипт не выполняет никакой авторизации и аутентификации SMS-сообщений, что представляет большую угрозу для безопасности системы. Не следует воспринимать скрипт как готовое решение — это просто пример, который для использования в рабочих системах необходимо доработать

<sh/> smsgate() {

   sender="`gnokii --getsms ME 1 2> /dev/null |grep Sender | awk '{print $2}'`";
   [ -z "$sender" ] || { 
       result="$(gnokii --getsms ME 1 2> /dev/null | sed '1,/^Text:/ d' 2> /dev/null | sh -s)";
       echo $result | gnokii --sendsms $sender;
       gnokii --deletesms ME 1
   }

}

Пример вызова: <sh/> while true do

   smsgate
   sleep 1

done

Полная версия скрипта, который будет висеть и обрабатывать входящие SMS-сообщения:

  1. !/bin/sh

smsgate() {

   sender="`gnokii --getsms ME 1 2> /dev/null |grep Sender | awk '{print $2}'`";
   [ -z "$sender" ] || { 
       result="$(gnokii --getsms ME 1 2> /dev/null | sed '1,/^Text:/ d' 2> /dev/null | sh -s)";
       echo $result | gnokii --sendsms $sender;
       gnokii --deletesms ME 1
   }

}

while true do

   smsgate
   sleep 1

done


[править] Сравнение SMS-шлюза и управления через SSH-клиент мобильного телефона

Для большинства современных телефонов существует SSH-клиент, позволяющий удалённо регистрироваться на сервере и получать доступ к командному интерпретатору.

Управление через SMS не является заменой управления из SSH-клиента, запущенного на мобильном телефоне.

Следует иметь в виду:

  • В обоих случаях уровень мобильности одинаков,

т.е. командный интерпретатор всегда доступен системному администратору;

  • SSH-клиент передаёт данные в зашированном виде;
  • SSH-клиент использует TCP/IP;
  • SSH-клиент требует более мощного телефона;
  • SSH-клиент выполняет полноценную аутентификацию;
  • SSH-клиент не требует наличия телефона на сервере;
  • При использовании SMS-управления известно с какого телефона отправлена команда;
  • SMS-управление осуществляет доступ к системе напрямую, без использования TCP/IP.

SMS-управление может пригодиться тогда, когда сервер недоступен по сети. Например, если в результате ошибки в настройке брандмауэра закрыт удалённый доступ к системе, или удалён шлюз-по-умолчанию.

[править] Дополнительная информация

FunnyPictures Gnokii.jpg
  • gnokii@lilalo — журнал экспериментов с gnokii
Источник — «http://xgu.ru/wiki/Gnokii»