- Отправка SMS утилитой gammu с модема Huawei E1550 на Ubuntu 16.04
- Установка gammu
- Конфигурация gammo
- Расширенная настройка
- Настройка БД для демона SMSD
- Удаленное SSH подключение
- Команды gammu
- Справка по командам
- USSD запросы
- Служебные команды
- О Gammu, Wammu, sms шлюзе и управление компьютером через смс. Часть 1.
- Возможности программы
- Подключение телефона и установка программы
- Конфигурация Gammu
- Wammu – фронтенд к Gammu
- О Gammu, Wammu, sms шлюзе и управление компьютером через смс. Часть 2.
- Работа gammu-smsd
- Работа gammu-smsd с папками сообщений
- Работа gammu-smsd с базой данных для смс шлюза
- Скрипт управления командами при получении смс
Отправка SMS утилитой gammu с модема Huawei E1550 на Ubuntu 16.04
Отправляем SMS (текстовые СМС сообщения) с модема Huawei E1550 на Ubuntu Linux 16.04.
Список девайсов поддерживаемых Gammu: http://wammu.eu/phones/
Проверим подключение USB модема к серверу/ноуту:
Ищем запись похожую на эту:
Примечание
Попробуйте передернуть модем, если система определила модем как:
Проверьте какие ttyUSB порты доступны:
Установка gammu
Ставим утилиту gammu (в репозитории Ubuntu 16.04 доступна версия: Gammu version 1.37.0):
* На RaspberryPi устанавливается версия 1.33.0.
Конфигурация gammo
Запустите мастер конфигурации для регистрации пути к основному файлу настроек (потом подправим этот файл вручную).
Мастер настройки утилиты gammu (шаг 1)
Установка дефолтного файла конфигурации (шаг 2)
Запускаем утилиту идентификации модема:
Если все хорошо — видим модель нашего «хуавэя»:
Можно подредактировать файл настроек
Читаем сообщения с модема?
Пробуем отправить SMS:
Возможно вам нужно будет запустить gammu под root’ом, указать путь к файлу конфигурации и секцию настроек:
Примечание
- Warning: Не найден конфигурационный файл, используются настройки по умолчанию! — эта ошибка время от времени появляется, но это не всегда означает, что что-то не работает. Чтобы избавиться от этой ошибки — пройдите по мастеру-настроек до конца (gammu-config), чтобы зарегистрировать основной файл настроек. Можете не заморачиваться с самим настройками, после мастера мы отредактируем конфиг
/.gammurc вручную.
Ошибка открытия устройства: его не существует. — проверьте параметры настроек в файле
/.gammurc (port, connection).
Внимание!
Чтобы использовать gammo без sudo — установите права на устройство, к которому подключен модем:
При каждом подключении модема нужно задавать права!
Или установите пакет modemmanager и добавьте себя в группу dialout:
Расширенная настройка
Настройка БД для демона SMSD
Удаленное SSH подключение
Команды gammu
Опции конфигурации и отладки при запуске утилиты gammu:
Справка по командам
Получить справку по разделу:
Важные справочные разделы:
Справка по SMS командам: https://wammu.eu/docs/manual/gammu/index.html#sms-commands
Отправить SMS с отчетом о доставке:
Получить все СМС:
Получить папки с сообщениями:
Другие значимые команды:
USSD запросы
Полные список команд (прием звонков, отправка смс, проверка баланса и прочее USSD запросы): https://wammu.eu/docs/manual/gammu/index.html#call-commands
Внимание!
Утилита gammu не умеет работать с USSD запросами на модеме Huawei E1550! См. статью Выполнение USSD запросов на модеме Huawei E1550 .
Служебные команды
Получить информацию о состоянии модема/телефона (режим наблюдения):
Отправить AT команду и получить скриншот (пример команды):
Источник
О Gammu, Wammu, sms шлюзе и управление компьютером через смс. Часть 1.
В данной статье речь пойдет об изменении данных в мобильном телефоне через программу Gammu и ее GUI фронтенд – Wammu. Gammu поддерживает большое количество телефонов, полный список поддерживаемого оборудования можно получить на сайте проекта. Программа может работать с любой версией unix, лишь бы ОС определила подключенный телефон.
Возможности программы
- Работа программы с телефонами через USB, Bluetooth, IRDA, последовательный кабель
- Отсылка/чтение смс с поддержкой русского языка
- Редактирование контактов телефонной книги на SIM карте и памяти телефона
- Просмотр/редактирование напоминаний, вызовов, календаря
- Синхронизация времени с компьютером
- Бэкап/восстановление данных телефона
- Обмен файлов между телефоном и компьютером
И это еще не всё. Gammu умеет работать в качестве сервиса для автоматического приема и отправки смс сообщений. Умеет хранить эти сообщения в различных базах данных, отсылать смс в определенное время. Все эти возможности позволяют с помощью gammu организовать полноценный sms шлюз по рассылке смс сообщений.
Подключение телефона и установка программы
Я пошел простым путем 🙂 Подключил свой старенький Sony Ericsson t68i через USB кабель. Для подключения телефона через последовательный порт (COM) тоже не должно возникнуть проблем, а вот при подключении через Bluetooth и IRDA придется сперва настроить эти подключения.
После подключения телефона смотрим в файле /var/log/messages название порта
В нашем случае порт телефона /dev/ttyUSB0. Если после подключения вы не увидите название порта, значит ваш телефон не поддерживается ядром системы или не подгрузился нужный модуль ядра. В linux попробуйте подгрузить модуль (название модуля придется искать самим в интернет) через команду modprobе, а затем заново переподключить телефон к компьютеру.
Телефон определился, значит можно устанавливать программу. Я бы посоветовал устанавливать самую последнюю версию Gammu, на сегодняшний день стабильная версия 1.28.
Из исходников программу ставить очень просто, у нее минимум зависимостей пакетов.
Конфигурация Gammu
После установки создадим файл /etc/gammurc или в своей домашней директории
/.gammurc примерно с таким содержимым
Полный список параметров файла можно посмотреть в руководстве man gammurc
Идентифицируем телефон от root или sudo. Можно и от обычного пользователя, но сначала убедитесь что пользователь имеет права на порт устройства, или можно включить пользователя в нужную группу, которая обладает этими правами.
Можно получить более детальную информацию по телефону командой gammu –monitor
показать
Все определяется и отлично работает, пора переходить к просмотру/редактированию данных телефона.
Wammu – фронтенд к Gammu
Если вы начнете читать man к программе Gammu, то вы явно не обрадуетесь запоминать и изучать эти команды 🙂 К счастью у нас есть программа Wammu, которая позволяет управлять всеми возможности Gammu через приятный интерфейс.
Единственный недостаток Wammu это ее зависимость от очень многих пакетов. Программа написана на языке python и использует wxpython, который и тащит за собой много зависимостей. Зависимости пакетов для wxpython-2.8.10.1 показать
Wammu использует тот же конфигурационный файл /etc/gammurc или
/.gammurc. Если программе при запуске не удалось обнаружить телефон или не найден файл конфигурации, то можно довериться программе по поиску телефона..
Первый запуск Wammu
У меня wammu нашла телефон в автоматическом режиме. В ручном режиме от вас потребуется вводить номер порта и тип подключения телефона.
Автоматический поиск телефона
Выбор типа подключения телефона
Сканирование портов и телефона длится довольно долго. У меня даже нашла якобы два типа телефона, но на самом деле это были просто разные скорости обмена с портом. Я выбрал максимальную 115200.
Выбор телефона и скорости обмена с портом
После запуска программы телефон на самом деле не подключен. Требуется подключить его вручную.
Подключаем телефон к программе
И вот только теперь можно начинать оперировать с данными телефона. Все данные, которые хранятся в телефоне требуется сначала выгрузить в программу через меню “Получить”.
Получение данных с телефона
Ну вот пожалуй и все про wammu. Скриншотить все опции смысла нет – сами разберетесь 🙂 СМС-ки отсылает с небольшой задержкой, но это ерунда. Главное умеет отсылать русские буквы.
Во второй части статьи напишу про gammu-smsd демон, который можно использовать как смс шлюз, а также как с помощью простенького скрипта можно заставить компьютер реагировать на входящие смс.
Источник
О Gammu, Wammu, sms шлюзе и управление компьютером через смс. Часть 2.
В первой части статьи были написаны общие моменты как подключать телефон и работать с программой gammu, а вернее через ее GUI фронтенд wammu. В этой часте речь пойдет о программе, которая входит в состав gammu – это gammu-smsd.
Работа gammu-smsd
При запуске демон через определенные моменты времени опрашивает телефон для проверки в телефоне новых смс, а также следит за папкой (таблицей базы данных) отправки. Если в папке (таблице) появилась новое сообщение, то оно передается на телефон и отправляется. После отправки сообщение перемещаются в папку (таблицу) переданные. Вот такая синхронизация смс в реальном времени между телефоном и компьютером.
Работа gammu-smsd с папками сообщений
Создаем файл /etc/gammu-smsdrc со следующим содержимым. Порт и скорость меняем на свои.
Назначение всех переменных этого файла можно посмотреть в man руководстве gammu-smsdrc. Для нашего файла конфигурации требуется создать папку sms в каталоге /var/spool и внутренние папки inbox, outbox, sent и error.
Можно запускать демон gammu-smsd от root или sudo
После запуска сразу можно заглянуть в папку /var/spool/sms/inbox/, если в телефоне были входящие сообщения, то через несколько секунд они появятся в этой папке. Если что-то идет не так, то первым делом смотрим лог ошибок /var/log/gammu-smsd.
Название файла каждого сообщения выглядит примерно так
В название файла закодировано, что
- IN – входящая смс
- 20100920 – год, месяц, число получения смс
- 133357 – часы, минуты, секунды получения смс
- 00 – порядок сообщения ( на случай если в это время пришло несколько сообщений)
- +79219876543 – номер отправителя
- 00 – часть сообщения, если сообщение состоит из нескольких частей
На самом деле это не все возможные опции расшифровки названий текстовых файлов. Про все опции обязательно читать файл man gammu-smsd-files. Из прочтения этого man файла вы должны усвоить, что простейший пример названия файла для отправки смс – это положить файл в папку outbox с названием
отправит содержимое этого файла по номеру телефона в названии файла и переместит файл в каталог sent. Если вы ошиблись в опциях или в параметрах названия файла, то такие сообщения попадают в папку error. Удаление файлов из этих папок соответственно удаляют сами сообщения из памяти телефона. Помните – содержимое папок, кроме папки error, это зеркальное отображение сообщений в папках самого телефона.
Работа gammu-smsd с базой данных для смс шлюза
Демон gammu-smsd может хранить сообщения в таких популярных базах данных как mysql, postgresql и всех базах поддерживающих libdbi. Работать напрямую с базой данных и таблицами входящих-исходящих сообщений достаточно трудоемкая задача, да и не нужно все это обычному пользователю. Существует открытый проект kalkun, который фактически можно использовать как смс шлюз. Для работы kalkun требуется, чтобы была установлена база данных, поддерживаемая gammu-smsd и сервер http с поддержкой php. Я использовал настройку связки apache+php+mysql и стратовые скрипты apache и mysql для запуска связки вместе с ОС.
Коннектимся к базе MySQL и создаем новую базу данных kalkun. Также создаем нового пользователя, пароль пользователя и выдаем ему права на новую базу данных.
Распаковываем kalkun проект в папку на сервер http. Редактируем файл в проекте kalkun/system/application/config/database.php, где меняем следующие строки на те, что вы задали в базе
и соединяемся через web интерфейс – http://localhost/kalkun/. Если все зависимости и пароли верны, то для установки kalkun требуется всего несколько нажатий на кнопку вперед и удалить в конце папку install из проекта. После установки база данных kalkun должна наполниться необходимыми таблицами.
Принудительно наполнить таблицы можно через команду
Переходим к созданию конфига gammu-smsd. Создаем файл /etc/gammu-smsdrc со следующим содержимым, но только со своими данными 🙂
От root или sudo запускаем демон gammu-smsd
Опять соединяемся через web интерфейс к kalkun, пароль/логин по умолчанию – kalkun/kalkun. Через некоторое время статус в kalkun вверху страницы должен измениться на “Status: Connected”. Теперь можно наполнять адресную книгу контактами и заводить пользователей доступа к kalkun.
Синхронизация телефона происходит автоматически, и при поступлении новых сообщений они будут выделены жирным цветом в интерфейсе kalkun.
Отправленные сообщения сгруппированнные по отправителю
Для прямой отсылки смс минуя web интерфейс kalkun можно воспользоваться командой gammu-smsd-inject.
Примечание: При работе с базой данных у меня не получилось отправлять смс кириллицей. Наверное это было связано с разной кодировкой таблиц mysql и моей системной локалью.
Скрипт управления командами при получении смс
При использовании демона gammu-smsd как в работе с папками сообщений, так и в работе с базами данных можно написать скрипт обработки полученных сообщений. Как мне показалось, скрипт для просмотра и анализа папки файлов /var/spool/sms/inbox написать проще, чем для анализа базы данных.
Вот пример моего скрипта
В нем для примера показано действие двух команд. Например когда приходит смс и внутри тела смс есть слово “nowuptime” или/и “nowdate” то в ответ на эти команды будут сгенерированы специальные названия файлов на определенный номер с содержанием соответствующих команд. Скрипт модно поставить на ежеминутное выполнение в crontab.
В скриптах можно обыграть множество команд и ситуаций. Все дело за вашей фантазией или фантазией ваших шефов 🙂
UPD
Чтобы избежать повторных вопросов в комментариях, напишу немного подробней про скрипт управления компьютером через смс.
Итак создаем обычный текстовый файл, как показано в примере выше, и складываем в папку с ограниченным доступом. Я предпочитаю для скриптов пользователя root создать отдельный каталог bin, в папке root. В каталоге bin и скопируем наш текстовый файл. Я назвал свой файл sms-command
Делаем файл исполняемым:
Теперь немного про структуру файла sms-command.
Во первых, в файле показан запуск консольных команд. Т.е. скрипт не будет запускать графические программы, которые взаимодействуют с графической оболочкой. Я не сказал, что запуск графических программ невозможен :), я просто не разбирался с этим. А вот запуск программ в режиме демона – это как раз то, для чего и задумывался данный скрипт.
Во-вторых. Смс текст отсылаемый компьютеру регистрозависимый. Т.е. набранные смс “Nowdate” и “nowdate” это разные команды для компьютера.
Ну и напоследок пример скрипта, для запуска демона transmission. Команда будет отрабатывать только, если отправитель прислал команду с номера телефона 9211234567.
Теперь достаточно написать внутри смс команду “torrent” (без кавычек), как при очередном запуске cron сработает запуск transmission-daemon от пользователя mik. После успешного запуска в ответ на номер 9211234567 придет смс в которой будет PID запущенного процесса этого демона.
Строка в cron у меня такая, запуск каждую минуту.
Если есть предложения по улучшению скрипта или вопросы, то не стесняйтесь, пишите в камментах. Особенно всем будет полезно как запускать графические программы..
Источник