Отправка SMS утилитой gammu с модема Huawei E1550 на Ubuntu 16.04

Категория: Linux

Отправляем SMS (текстовые СМС сообщения) с модема Huawei E1550 на Ubuntu Linux 16.04.

Список девайсов поддерживаемых Gammu: http://wammu.eu/phones/

Проверим подключение USB модема к серверу/ноуту:

lsusb

Ищем запись похожую на эту:

Bus 003 Device 016: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Примечание

Попробуйте передернуть модем, если система определила модем как:

Bus 003 Device 016: ID 12d1:1446 Huawei Technologies Co., Ltd. Broadband stick (modem on)

Проверьте какие ttyUSB порты доступны:

ls /dev/ttyUSB*
dmesg | grep tty

Установка gammu

Ставим утилиту gammu (в репозитории Ubuntu 16.04 доступна версия: Gammu version 1.37.0):

sudo apt install gammu # [Gammu version 1.37.0]

* На RaspberryPi устанавливается версия 1.33.0.

Конфигурация gammo

Запустите мастер конфигурации для регистрации пути к основному файлу настроек (потом подправим этот файл вручную).

gammu-config


Мастер настройки утилиты gammu (шаг 1)



Установка дефолтного файла конфигурации (шаг 2)

Запускаем утилиту идентификации модема:

sudo gammu identify

Если все хорошо - видим модель нашего "хуавэя":

Устройство     : /dev/ttyUSB0
Производитель  : Huawei
Модель         : E1550 (E1550)
Прошивка       : 11.608.14.11.222
IMEI           : 359124036500000
Номер SIM IMSI : 255061025200000

Можно подредактировать файл настроек ~/.gammurc:

touch ~/.gammurc
[gammu]
port = /dev/ttyUSB0
connection = at
name = Huawei E1550
logfile = /tmp/gammu.log
logformat = textall

Читаем сообщения с модема?

gammu getallsms
# 0 SMS parts in 0 SMS sequences

Пробуем отправить SMS:

gammu sendsms TEXT '+380670000000' -unicode -report -text 'СМС отправленно с модема :)'

Возможно вам нужно будет запустить gammu под root'ом, указать путь к файлу конфигурации и секцию настроек:

sudo gammu -c ~/.gammurc -s 0 getallsms
Примечание

Возможные ошибки:

  • Warning: Не найден конфигурационный файл, используются настройки по умолчанию! - эта ошибка время от времени появляется, но это не всегда означает, что что-то не работает. Чтобы избавиться от этой ошибки - пройдите по мастеру-настроек до конца (gammu-config), чтобы зарегистрировать основной файл настроек. Можете не заморачиваться с самим настройками, после мастера мы отредактируем конфиг ~/.gammurc вручную.
  • Ошибка открытия устройства: его не существует. - проверьте параметры настроек в файле ~/.gammurc (port, connection).
  • Ошибка подключения к устройству: у вас нет прав доступа. - используйте sudo или см. статью Выполнение USSD запросов на модеме Huawei E1550.
Внимание!

Чтобы использовать gammo без sudo - установите права на устройство, к которому подключен модем:

sudo chmod -R 777 /dev/ttyUSB*

При каждом подключении модема нужно задавать права!

Или установите пакет modemmanager и добавьте себя в группу dialout:

sudo apt-get remove modemmanager
sudo usermod -a -G dialout $USER

Расширенная настройка

Настройка БД для демона SMSD 

См.: https://wammu.eu/docs/manual/quick/index.html#starting-with-smsd

device = com3:
connection = at115200
service = SQL
PIN = 1234
logfile = smsdlog
debuglevel = 255
user = root
password =
host = localhost
database = gammu
driver = native_mysql

Удаленное SSH подключение

[gammu1]
device = ssh root@my.router /myscript.sh /dev/ttyUSB0
connection = proxyat

Команды gammu

Опции конфигурации и отладки при запуске утилиты gammu:

-c, --config ~/.gammurc  # путь к файлу настроек
-s <N>                   # задать номер секции конфигурации (профиль) из файла ~/.gammurc

Справка по командам

Получить справку по разделу:

gammu --help call
gammu --help sms

Важные справочные разделы:

       call - Вызовы
        sms - SMS и EMS
        mms - Настройки MMS
     memory - Память (записные книжки и вызовы)
    network - Сеть
       info - Информация о телефоне
   settings - Настройки телефона
      gammu - Gammu information

SMS

Справка по SMS командам: https://wammu.eu/docs/manual/gammu/index.html#sms-commands

Отправить SMS с отчетом о доставке:

gammu sendsms TEXT "+380670000000" -unicode -report -text 'sms text message'
Отправляется SMS 1/1...ожидается ответ сети..OK, ссылка на сообщение=3
Sending SMS 1/1....waiting for network answer..OK, message reference=3

Получить все СМС:

gammu getallsms
Размещение 1, каталог "Входящие", SIM memory, Inbox folder
SMS status report
Состояние   : Прочитанные
Remote number        : "+380670000000"
Reference number     : 3
Отправленные : Пн 01 май 2017 16:41:14 +0300
SMSC number          : "+380630000007"
SMSC response        : Пн 01 май 2017 16:41:21 +0300
Delivery status      : Delivered
Details              : SM получено через SME

Размещение 2, каталог "Входящие", SIM memory, Inbox folder
SMS status report
Состояние   : Не прочитано
Remote number        : "+380670000000"
Reference number     : 4
Отправленные : Вт 02 май 2017 00:06:05 +0300
SMSC number          : "+380630000007"
SMSC response        : Вт 02 май 2017 00:06:12 +0300
Delivery status      : Delivered
Details              : SM получено через SME

3 SMS parts in 3 SMS sequences

Получить папки с сообщениями:

gammu getsmsfolders
1. "              Входящие", память SIM, папка Входящие
2. "            Исходящие", память SIM, папка Исходящие
3. "              Входящие", память телефона, папка Входящие
4. "            Исходящие", память телефона, папка Исходящие

Другие значимые команды:

gammu getsmsfolder
gammu getallsms
gammu deleteallsms folder-number

USSD запросы

Проверить баланс:

gammu getussd *121#

Полные список команд (прием звонков, отправка смс, проверка баланса и прочее USSD запросы): https://wammu.eu/docs/manual/gammu/index.html#call-commands

Внимание!

Утилита gammu не умеет работать с USSD запросами на модеме Huawei E1550! См. статью  Выполнение USSD запросов на модеме Huawei E1550.

Служебные команды

Получить информацию о состоянии модема/телефона (режим наблюдения):

gammu monitor 1
Включается режим наблюдения...

Включить информацию о входящих SMS : Нет ошибки.
Включить информацию о входящих CB : Нет ошибки.
Включить информацию о вызовах : Нет ошибки.
Включить информацию о USSD : Нет ошибки.
SIM phonebook        :   4 used,  96 free
Own numbers          :   0 used,   1 free
Уровень заряда аккумулятора : 0 процента(ов)
Состояние зарядки : аккумулятор подключён и заряжается
Уровень сигнала : -107 dBm
Уровень сигнала сети : 9 процента(ов)
Состояние SIM SMS : 1 использовано, 0 unread, 10 расположений
SMS статус     : 0 использовано, 0 unread, 23 расположений
Сеть             : 255 06 (life:), Ukraine), LAC 3140, CID 575
Состояние пакета сети : домашняя сеть
Пакетная сеть : 255 06 (life:), Ukraine), LAC 3140, CID 575
Имя в телефоне : "lifecell"
GPRS                 : attached

Выход из режима наблюдения...

Отправить AT команду и получить скриншот (пример команды):

printf 'AT*EKEY=7,":J",2,"*",2,"1",2,"0",2,"0",2,"#",2,":J",2\r' > /dev/ttyUSB2
gammu screenshot test

Логи и отладка

Формат и уровень детализации логов и ошибок: https://wammu.eu/docs/manual/config/index.html#option-LogFormat

Опции отладки при запуске gammu:

-d, --debug <level>      debug level
-f, --debug-file <file>  file for logging debug messages

#3g, #huawei E1550, #sms

категория: Linux