You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

WNAM позволяет осуществлять отправку идентификационных СМС абонентам используя установленный в сервер USB GSM модем, и утилиту gammu.

Внимание: скорость отправки СМС при этом достаточно низка: не более 1 СМС за 3 секунды. Учитывайте это при планировании нагрузки на систему. Данный метод может быть рекомендован только в целях тестирования WNAM и при низкой нагрузке (числе авторизаций).

Для настройки этого метода необходимо в меню "Конфигурация-Авторизация" указать "Локальный сервис gammu (модем)":

Поддерживаются любые модемы, которые распознаются ОС Linux в качестве модемов, то есть доступны в виде портов типа /dev/ttyUSB0

Из моделей подойдут фактически любые "бытовые" устройства. Например, отмечено отсутствие проблем с Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem.

Возможно также использование модема в сочетании с виртуализацией VMware ESXi, путем проброса USB устройства вовнутрь виртуальной машины.

Внимание! Вы должны переключить модем в режим "простой модем" при помощи утилиты usb_modeswitch, если ваш модем представляется серверу устройством типа USB Flash или CD.

После переключения модем можно проверить на "отзывчивость" при помощи AT-команд и утилит cu или minicom. Модем должен корректно отвечать на команды, заканчивая вывод символами "ОК".

Дальнейшая настройка взаимодействия проводится при помощи утилиты gammu. Это стандартное средство организации взаимодействия приложений (таких как WNAM), и GSM модемов, подключенных через com/usb порт сервера.

Возможны два сценария работы - через gammu или через gammu-smsd

1. Взаимодействие через gammu

Этот метод подходит, если требуется только редкая отправка СМС. При этом на каждый запрос WNAM на отправку СМС производится вызов утилиты, инициализация модема, отправка СМС, отключение от модема.

Установите утилиту:

apt-get install gammu

Запустите поиск устройства

gammu-detect

и настройку устройства

gammu-config

При этом создастся файл конфигурации /root/.gammurc

Просмотрите его, скопируйте в /etc/gammurc и отредактируйте, при необходимости:

[gammu]
port = /dev/ttyUSB1
model = huawei E3372s
connection = at9600
synchronizetime = no
logfile =
logformat = nothing
use_locking =
gammuloc =

Попробуйте выполнить тестовую отправку СМС из командной строки:

gammu sendsms TEXT 7987654321 -text TEST

Если она произошла, переходите к следующему шагу, если нет, повторите с параметрами -d textall -f /tmp/gammu.log и изучайте лог. Внимание! Порт занимается в эксклюзивном режиме, значит у вас не должен быть запущен minicom или gammu-smsd.

Затем необходимо дать возможность утилите gammu писать в tty порт. Внимание! Выполнение gammu производится от имени пользователя tomcat8, который таких прав не имеет. Вы обязаны дать право записи в порт при запуске gammu от любого пользователя, установив suid флаг:

chmod a+s /usr/bin/gammu
ls -la /usr/bin/gammu
-rwsr-sr-x 1 root root 339600 июл 25 2013 /usr/bin/gammu

Проверку отправки СМС от имени WNAM можно сделать при помощи интерфейса http://сервер_wnam/cp/testsend

На этом настройка gammu завершена.

2. Взаимодействие через gammu-smsd

Этот метод подходит, если число СМС значительно, и не хочется ставить suid флаги. Суть в том, что за работу с модемом отвечает сервис, который формирует и обслуживает очередь сообщений, переданных через клиентскую программу.

Установите утилиту:

apt-get install gammu gammu-smsd

Запустите поиск устройства

gammu-detect

и настройку устройства

gammu-config

Конфигурационный файл находится в /etc/gammu-smsdrc : 

# Configuration file for Gammu SMS Daemon
# Gammu library configuration, see gammurc(5)
[gammu]
# Please configure this!
port = /dev/ttyUSB0
connection = at9600
# Debugging
logformat = nothing
# SMSD configuration, see gammu-smsdrc(5)
[smsd]
service = files
logfile = syslog
# Increase for debugging information
debuglevel = 0
#RunOnReceive = /root/wnam-gammu-smsd-bridge.pl
CommTimeout = 5
# Paths where messages are stored
inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/

Для отправки используется клиентская утилита  gammu-smsd-inject, отправку можно протестировать:

gammu sendsms TEXT 7987654321 -text TEST

Если СМС дошла, переходите к следующему шагу, если нет, изучайте лог-файл /var/log/daemon.log

Теперь необходимо настроить WNAM на отправку СМС через gammu-smsd-inject. Для этого в конфигурационном файле /etc/wnam.properties укажите параметр:

gammu_path=/usr/bin/gammu-smsd-inject

После таких изменений перезапустите сервисы tomcat и gammu-smsd. Проверку отправки СМС от имени WNAM можно сделать при помощи интерфейса http://сервер_wnam/cp/testsend

На этом настройка gammu-smsd завершена.

  • No labels