00m.Ru

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

Настройка gnokii

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

Пример конфигурационного файла 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-клиента, запущенного на мобильном телефоне.

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

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

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

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

Exit mobile version