Versions Compared

Key

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

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

Warning

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

  • приём сообщений на USB-модем с SIM-картой, установленный на Linux-сервере (работа осуществляется посредством утилиты gammu);
  • приём сообщений от провайдера СМС (smsc.ru) посредством отправки HTTP-сообщения от сервера провайдера к серверу WNAM;
  • приём сообщений от любого провайдера СМС, работающего по протоколу SMPP.

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

1.

...

Настройка способа авторизации абонентов через "получение СМС"

Для этого необходимо перейти в глобальные настройки ("Конфигурация" → "Гостевая авторизация" → "Авторизация"), либо в настройки для выбранной площадки. Во втором случае настройка производиться для каждой площадки отдельно.

Image RemovedImage Added

При этом все выбранные ниже настройки СМС игнорируются, кроме следующих:

  • Ответный ответный код;
  • Длительность запомнить авторизацию на (длительность авторизации номера);
  • имя страницы;Имя формы

Поле выбора провайдера также игнорируется, потому что так как оба способа приёма (gammu и smsc) активны одновременно.

2.

...

Настройка утилиты gammu при использования собственного USB-модема и SIM-карты

...

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

Настройка сервиса smsd заключается в редактировании файла Необходимо настроить сервис 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 требуется указать: 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 и убедитесьнастройки требуется перезапустить утилиту gammu и убедиться, что в лог-файле /var/log/daemon.log отображаются нормальные корректные события обмена данными с модемом. Перезапуск утилиты осуществляется командой:

/etc/init.d/gammu-smsd

...

restart

Пусть номер телефона на SIM-карте +7 (910) 012-34-56. Вы должны Необходимо соответствующим образом отредактировать шаблон формы 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 для получения

...

сообщений 

В личном кабинете на сайте smsc.ru в разделе меню "Настройки" подключить возможность приёма сообщений с пересылкой уведомлений на

...

сервер WNAM:

Вы должны Необходимо указать HTTP-путь до вашего сервера WNAM в форматеhttp: http://имя_вашего_сервера:порт/cp/smsc_recv          .

Warning
Внимание! Это специальная статическая ссылка сервиса WNAM, не имеет отношение к форме sms_recv.

Сервер WNAM , не путайте!Ваш сервер должен быть доступен из сети Интернет (напрямую, или через публикацию на межсетевом экране) для серверов компании SMSC. Подробное описание механизма работы SMSC API приведено на сайте компании SMSC в соответствующем разделе (здесь).

Для приёма сообщений вы можете возможно использовать три варианта:

  • Публичные номера провайдера SMSC, опубликованные на сайте компании SMSC в разделе "Услуги" (здесь). При этом вы должны требовать от пользователей отправки требуется отправка сообщений с текстом, начинающимся с вашего идентификатора на сайте smsc.ru, например vasyapupkin:. Текст  Текст сообщения не важен. Это не очень удобно, ибо пользователи могут не понять таких сложностей.Такой способ является не удобным для пользователей.
  • Использование у провайдера  SMSC приватного мобильного номера, что влечет его покупку и оплату аренды Купить у провайдера  SMSC приватный мобильный номер, и оплачивать его его аренду (порядка 1000р/мес.). При этом все поступающие сообщения на него сообщения приватный номер передаются вам, префикс не требуется.
  • Передать провайдеру SMSC Передача провайдеру SMSC на хостинг свою зарегистрированной собственной SIM-карту, карты и оплачивать оплата услуг хостинга (порядка 2000р/мес.). При этом все поступающие сообщения на ваш указанный номер сообщения передаются вам, префикс не требуется.

Пусть выбранный номер телефона SMSC +7 (916) 887-77-77. Вы должны Необходимо соответствующим образом отредактировать шаблон формы smsформы sms_recv 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), если вы выбрали использование выбран метод использования публичных номеров.Внимание! будет ли в действительности использоваться этот параметр или нет,

Warning
Внимание! Использование параметра body зависит от версии операционной системы абонентского устройства

...

.

...

4. Настройка приема сообщений от любого провайдера СМС, работающего по протоколу SMPP

...

Для включения этого режима

...

необходимо проверить поддержку используемого 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), с учётом требований вашего но также следует учитывать и требования используемого провайдера.

 

4. Проверить работу 5. Проверка работоспособности системы

Независимо от выбранного вами способа приёма сообщений с точки зрения абонента механизм работы авторизации будет одинаковым и составлять следующие шаги:

...

1) Подключение абонента к сети

...

(абонент переходит на какую-

...

либо внешнюю ссылку,

...

hot-spot перенаправляет сессию пользователя на страницу авторизации).

...

2) Ввод номера телефона абонента:

Image Modified

...

3)Сообщение абоненту с просьбой отправить с

...

указанного номера произвольное СМС на указанный номер шлюза:

Image Modified

...

При этом в лог-файле /var/log/tomcat7/wnam.log появляется

...

сообщение: 

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

...

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

...

отправка сообщения (текст сообщения не важен):

Image Modified

...

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

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

...

5) Возвращение абонента в браузер и

...

нажатие на кнопку перехода в сеть Интернет. Если СМС

...

-сообщение ещё не получено сервером WNAM,

...

то появится сообщение об ошибке "Ваше СМС пока не пришло":

Image Modified

...

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

Image Modified

...

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

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

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