В последнее время практически у всех операторов мобильной связи в списке предложений есть USB-модем с относительно дешёвым интернетом. Некоторое время назад такое предложение появилось и у компании НСС. Предложение этой компании содержит комплект из USB-модема SENSE GM02 и специального тарифного плана с дешёвым трафиком. Далее будет показано как можно использовать этот модем в Linux.
Продаётся комплект в достаточно красивой упаковке, которую приятно держать в руках и удобно открывать:
Сам по себе модем внешне ничем не примечателен и похож на обычный flash-накопитель, только немного шире последнего:
При вставке в компьютер устройство определяется как 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":
После этого в настройках аккаунтов пользователей появится возможность новое средство передачи - SMS. В настройках этого средства можно будет указать номер для отправки сообщений и выбрать оповещения, которые будут приходить в виде СМС:
Так же можно использовать этот модем и для организации телефонии и полноценного SMS-шлюза, но об этом как-нибудь в другой раз. А пока что-то на этом всё. Приятной вам работы!
Anonymous 2011-11-16 14:56:59 (#)
хотя еще какое то время пришлось почесать затылок...
а вот как бы эластик или фрибсд подружить для телефонии увасстатейки не найдется!!?