Gammu sms gateway linux

Отправка 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).

  • Ошибка подключения к устройству: у вас нет прав доступа. — используйте sudo или см. статью Выполнение USSD запросов на модеме Huawei E1550.
  • Внимание!

    Чтобы использовать 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 карте и памяти телефона
    • Просмотр/редактирование напоминаний, вызовов, календаря
    • Синхронизация времени с компьютером
    • Бэкап/восстановление данных телефона
    • Обмен файлов между телефоном и компьютером
    Читайте также:  Linux error to stdout

    И это еще не всё. 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 демон, который можно использовать как смс шлюз, а также как с помощью простенького скрипта можно заставить компьютер реагировать на входящие смс.

    Читайте также:  Не могу записывать файлы mac os

    Источник

    О 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, где меняем следующие строки на те, что вы задали в базе

    Читайте также:  Перезагрузка windows 10 кнопками

    и соединяемся через 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 у меня такая, запуск каждую минуту.

    Если есть предложения по улучшению скрипта или вопросы, то не стесняйтесь, пишите в камментах. Особенно всем будет полезно как запускать графические программы..

    Источник

    Оцените статью