Gnokii-Подключен мобильный телефон Sony Ericcson через консоль

Настройка 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 с текстом команды, исполнять её и отправлять результат управления обратно.

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

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

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

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

  • предопределить набор «быстрых» часто использующихся команд (функций), которые можно вызывать без длительного набора на клавиатуре телефона.
Скрипт не выполняет никакой авторизации и аутентификации SMS-сообщений, что представляет большую угрозу для безопасности системы. Не следует воспринимать скрипт как готовое решение — это просто пример, который для использования в рабочих системах необходимо доработать
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-сообщения:

#!/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-управление может пригодиться тогда, когда сервер недоступен по сети. Например, если в результате ошибки в настройке брандмауэра закрыт удалённый доступ к системе, или удалён шлюз-по-умолчанию.

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

  • gnokii@lilalo — журнал экспериментов с gnokii

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Закончите арифметическое действие * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.