Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

...

Настройка сервиса 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

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

<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>

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

echo "SMSRECV PHONE=79991234567 TEXT=0000" | nc -w 1 wnam_ip_address 20001

3. Настройка провайдера SMSC для получения сообщений 

...

Необходимо соответствующим образом отредактировать шаблон формы sms_recv (или её клона) для того, чтобы пользователь имел возможность отправлять сообщение прямо с телефона (реализуется переход на приложение отправки СМС по ссылке вида sms://+79168877777). Для этого в форме sms_recv требуется отредактировать следующие строки ( в качестве примера взят произвольный номер +7 (916) 887-77-77, при настройке необходимо вводить реальный номер телефона пользователя):

<p>Отправьте СМС с любым текстом на номер:</p>
<!-- Form Inputs -->
<div class="form-group">
<a href="sms:+79168877777&body=vasyapupkin:%20$(smscode)"><button type="button" class="btn btn-success btn-lg btn-block">+7 (916) 887-77-77</button></a>

При этом необходимо вписать в параметр body префикс (ваш логин в smsc.ru), если выбран метод использования публичных номеров.

...

Для включения этого режима необходимо проверить поддержку используемого SMPP-провайдер получения сообщений. Для этого потребуется приобрести выделенный номер или отдать на хостинг уже зарегистрированную собственную SIM-карту для приёма сообщений (выше приведен пример настройки для SMSC). Затем необходимо установить и настроить утилиту kannel так, как описано в разделе Отправка СМС по протоколу SMPP настоящего документа. Дополнительно требуется включить приём сообщений и пересылку их в WNAM в конфигурационном файле /etc/kannel/kannel.conf:

group = sms-service
keyword = default
catch-all = yes
max-messages = 0
post-url = "http://127.0.0.1:8080/cp/kannel_recv?phone=%p&to=%P&mes=%a"

В качестве ссылки следует указать IP-адрес и порт сервиса веб-интерфейса WNAM. Настройки формы авторизации соответствуют предыдущему варианту (настройка для провайдера SMSC),но также следует учитывать и требования используемого провайдера.

...

3)Сообщение абоненту с просьбой отправить с указанного номера произвольное СМС на указанный номер шлюза:

При этом в лог-файле /varhome/logwnam/tomcat7logs/wnam.log появляется  появляется сообщение: 

CP SMSRECV phase 1: mac=87:A5:1C:EC:3B:AF, ip=10.130.3.218, phone=79159993322

4) Нажатие абонентом на зеленую кнопку с изображенным номером телефона, переход в приложение отправки СМС, отправка сообщения (текст сообщения не важен):

...

При получении сообщения в лог-файле /varhome/logwnam/tomcat7logs/wnam.log появляется  появляется такая запись:

SMS_RECV from 79168877777, confirmed phone 79159993322, MAC=87:A5:1C:EC:3B:AF, CODE=3469

5) Возвращение абонента в браузер и нажатие на кнопку перехода в сеть Интернет. Если СМС-сообщение ещё не получено сервером WNAM,то появится сообщение об ошибке "Ваше СМС пока не пришло":

...

6) Перенаправление абонента на страницу согласия с условиями и/или рекламой (при успешном получении СМС-сообщения):

При этом в лог-файле /varhome/logwnam/tomcat7logs/wnam.log появляется  появляется такое сообщение:

CP SMSRECV phase 2: mac=87:A5:1C:EC:3B:AF, ip=10.130.3.218, phone=79159993322, smscode=3469 VERIFIED

7) При последующих подключениях этого абонента происходит только перенаправление на страницу с рекламой.

...