Использование USB-модема SENSE GM02 в Linux

()

В последнее время практически у всех операторов мобильной связи в списке предложений есть USB-модем с относительно дешёвым интернетом. Некоторое время назад такое предложение появилось и у компании НСС. Предложение этой компании содержит комплект из USB-модема SENSE GM02 и специального тарифного плана с дешёвым трафиком. Далее будет показано как можно использовать этот модем в Linux.

Продаётся комплект в достаточно красивой упаковке, которую приятно держать в руках и удобно открывать:

Коробка с модемом SENSE GM02 от НСС

Сам по себе модем внешне ничем не примечателен и похож на обычный flash-накопитель, только немного шире последнего:

Модем SENSE GM02 от НСС

При вставке в компьютер устройство определяется как CD-привод, а не как модем, однако это можно исправить. По lsusb устройство видно как:

Bus 002 Device 006: ID 0471:1210  Philips (or NXP)

От этого мы и будем отталкиваться. Приведённые далее инструкции справедливы в первую очередь для Debian Linux и основанных на нём дистрибутивов (в частности Ubuntu), однако после внесения определённых корректив их можно будет использовать и на большинстве других дистрибутивов.

Чтобы использовать устройство как модем его надо переключить в соответствующий режим используя утилиту usb_modeswitch. Установим её:

apt-get install usb-modeswitch

Команда переключения для этого устройства выглядит так:

usb_modeswitch -v 0471 -p 1210 -V 1dbc -P 0005 -M 5553424312345678000000000000061b000000020000000000000000000000

Чтобы команда выполнялась автоматически при подключения устройства к компьютеру нужно создать правило для udev. Для этого создадим файл "/etc/udev/rules.d/85-gsense-gm02.rules" следующего содержания:

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", ATTRS{idProduct}=="1210" RUN+="/usr/sbin/usb_modeswitch -v 0471 -p 1210 -V 1dbc -P 0005 -M 5553424312345678000000000000061b000000020000000000000000000000"

После этого нужно послать команду udev на перечитывание правил:

udevadm control --reload-rules

Теперь при подключении устройства система автоматически переключит его в режим модема а так же создаст устройство "/dev/ttyACM0", которое и нужно будет указывать в настройках приложений в качестве модема.

Теперь если нужно настроить выход в интернет можно использовать Network Manager, который входит в поставку большинства дистрибутивов Linux а так же имеет готовые профили настроек для многих операторов, включая НСС.

Мы же пойдём дальше и попробуем отправлять SMS используя этот модем. Для решения задачи можно использовать утилиту gammu из одноимённого пакета или gsmsendsms из пакета gsm-utils. Второй вариант проще в использовании но позволяет использовать в SMS только латиницу.

Рассмотрим оба варианта. Начнём с gsm-utils. Установим их:

apt-get install gsm-utils

Теперь чтобы отправить SMS надо выполнить примерно вот такую команду:

gsmsendsms -d /dev/ttyACM0 +79503124567 "Hello, World\!"

Эта команда отправит SMS с текстом "Hello, World!" на номер +79503123456 через модем /dev/ttyACM0.

Одно важное замечание: чтобы SMS могли отправлять непривилегированные пользователи они должны быть членами группы dialout, так как устройство модема имеет права доступа:

crw-rw---- 1 root dialout 166, 0 2011-01-30 23:21 /dev/ttyACM0

То есть устройство доступно только суперпользователю и членам группы dialout. Это требование справедливо для всех без исключения операций с модемом.

Теперь попробуем отправить SMS используя gammu (об этой утилите мы уже как-то писали). Установим пакет:

apt-get install gammu libgammu-i18n

Теперь нужно настроить утилиту. Сделать это можно с помощью вспомогательной утилиты gammu-config или просто вручную создав файл "~/.gammurc" следующего содержания:

[gammu]
port = /dev/ttyACM0
model = 
connection = at
synchronizetime = yes
logfile = 
logformat = nothing
use_locking = 
gammuloc = 

Отправлять SMS мы будем с помощью команды:

echo Привет, мир! | gammu sendsms TEXT +79503124567 -unicode

Эта команда отправит SMS с текстом "Здравствуй, мир!" на номер +79503123456 в виде текстового сообщения используя в качестве исходной кодировки юникод.

Ну и напоследок рассмотрим ещё одну задачу: отправка SMS из системы мониторинга Zabbix. Первым делом добавим пользователя, под которым работает zabbix-server, в группу dialout. В Debian и его потомках zabbix-server работает с правами пользователя zabbix. Сразу после добавления нужно перезапустить zabbix-server чтобы изменения вступили в силу:

gpasswd -a zabbix dialout && invoke-rc.d zabbix-server restart

Теперь нужно зайти в веб-интерфейс Zabbix с правами администратора, выбрать в меню пункты "Администрирование" -> "Типы средств передачи" и создать новый тип - "SMS". В качестве устройства модема в данном случае надо указать "/dev/ttyACM0":

Zabbix. Новый тип передачи - SMS

После этого в настройках аккаунтов пользователей появится возможность новое средство передачи - SMS. В настройках этого средства можно будет указать номер для отправки сообщений и выбрать оповещения, которые будут приходить в виде СМС:

Zabbix. Настройка отправки SMS пользователю

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

Ключевые слова: usb_modeswitch, gammu, gsm-utils, gsmsendsms, zabbix, sense gm02, gm02, zabbix, sms.

Комментарии:

Anonymous 2011-11-16 14:56:59 (#)

Спасибо, очень пригодилось....
хотя еще какое то время пришлось почесать затылок...
а вот как бы эластик или фрибсд подружить для телефонии увасстатейки не найдется!!?
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE