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

Compare with Current View Page History

Version 1 Next »

Начиная с версии 1.1.510 WNAM позволяет осуществлять идентификацию абонентов беспроводной сети не только путём отправки им СМС-сообщений, но и при помощи приёма сообщений, отправленных абонентами. Таким образом вы, как владелец системы, экономите на отправке идентификационных сообщений. Оплата за отправляемые сообщения перекладывается непосредственно на абонента, по тарифу его сотового оператора.

Внимание! В качестве допустимых способов получения сообщений в настоящий момент поддерживаются два:

  • Приём сообщений на USB-модем с вашей SIM-картой, установленный на Linux-сервере. Работа ведется через утилиту gammu
  • Приём сообщений от провайдера СМС smsc.ru, посредством HTTP-сообщения от сервера провайдера к серверу WNAM

Для включения приёма сообщений вы должны:

1. Настроить вариант авторизации абонентов через "получение СМС", в глобальных настройках ("Конфигурация" - "Авторизация"), либо индивидуально для выбранной площадки

2. В случае использования собственного USB-модема и SIM-карты, настроить утилиту gammu

Предварительно, настроить сам модем (usb_modeswitch), проброс физического USB-устройства в виртуальную машину вы должны выполнить самостоятельно.

Необходимо настроить сервис smsd, отредактировав файл /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 = textall
# SMSD configuration, see gammu-smsdrc(5)
[smsd]
service = files
logfile = syslog
# Increase for debugging information
debuglevel = 0
RunOnReceive = /usr/local/bin/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/

При этом вы должны указать путь до исполняемого файла скрипта, который будет осуществлять передачу принятых СМС сообщений в сервер WNAM (wnam-gammu-smsd-bridge.pl). В режиме настройки укажите debuglevel = 2

Текст скрипта приведен ниже, также он содержится в каталоге со вспомогательными файлами на сервере (http://www.netams.com/files/wnam/misc/wnam-gammu-smsd-bridge.pl)

#!/usr/bin/perl
#
# wnam-gammu-smsd-bridge.pl
# http://www.netams.com/
# see http://wammu.eu/docs/manual/smsd/run.html
#
use constant WNAM_HOST => "127.0.0.1";
use IO::Socket::INET;
$| = 1;
my $sock = new IO::Socket::INET(PeerAddr => WNAM_HOST, PeerPort => 20001, Proto => 'tcp', Timeout => 0.5) or undef $sock;
if (defined $sock) {
my $msgs=$ENV{"SMS_MESSAGES"};
if (defined $msgs) {
for (my $i=1; $i<=$msgs; $i++) {
my $tel = $ENV{"SMS_".$i."_NUMBER"};
my $code = $ENV{"SMS_".$i."_TEXT"};
print $sock "SMSRECV PHONE=$tel TEXT=$code\n";
print "SMSRECV PHONE=$tel TEXT=$code\n";
}
}
$sock->close;
}

После окончания настроек перезапустите gammu и убедитесь, что в лог-файле /var/log/daemon.log отображаются нормальные события обмена данными с модемом.

/etc/init.d/gammu-smsd restart

Пусть номер телефона на SIM-карте +7 (910) 012-34-56. Вы должны соответствующим образом отредактировать шаблон формы sms_recv (или её клона) для того, чтобы пользователь имел возможность отправить вам сообщение прямо с телефона. Найдите и отредактируйте следующие строки:

<p>Отправьте СМС с любым текстом на номер:</p>
<!-- Form Inputs -->
<div class="form-group">
<a href="sms:+79100123456"><button type="button" class="btn btn-success btn-lg btn-block">+7 910 012-34-56</button></a>

Вам необходимо заменить шаблонный номер на свой собственный.

 

 

Авторизация пользователя выглядит следующим образом:

  1. Пользователь подключается к сети

 

 

 

  • No labels