Начиная с версии 1.1.510 WNAM позволяет осуществлять идентификацию абонентов беспроводной сети не только путём отправки им СМС-сообщений, но и при помощи приёма СМС-сообщений, отправленных абонентами. Таким образом, владелец системы экономит на отправке идентификационных сообщений. Оплата за отправляемые сообщения перекладывается непосредственно на абонента по тарифу его сотового оператора.
Warning |
---|
Внимание! Поддерживается три способа получения сообщений:
|
Для включения приёма сообщений необходимо выполнить ряд действий:
1.
...
Настройка способа авторизации абонентов через "получение СМС"
Для этого необходимо перейти в глобальные настройки ("Конфигурация" → "Гостевая авторизация" → "Авторизация"), либо в настройки для выбранной площадки. Во втором случае настройка производиться для каждой площадки отдельно.
При этом все выбранные ниже настройки СМС игнорируются, кроме следующих:
- Ответный ответный код;
- Длительность запомнить авторизацию на (длительность авторизации номера);
- имя страницы;Имя формы
Поле выбора провайдера также игнорируется, потому что так как оба способа приёма (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"};
...
...
$sock
...
"SMSRECV
...
PHONE=$tel
...
TEXT=$code\n";
...
...
"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) Ввод номера телефона абонента:
...
3)Сообщение абоненту с просьбой отправить с
...
указанного номера произвольное СМС на указанный номер шлюза:
...
При этом в лог-файле /var/log/tomcat7/wnam.log появляется
...
сообщение:
CP SMSRECV phase 1: mac=87:A5:1C:EC:3B:AF, ip=10.130.3.218, phone=79159993322
...
4) Нажатие абонентом на зеленую кнопку с изображенным номером телефона, переход в приложение отправки СМС,
...
отправка сообщения (текст сообщения не важен):
...
При получении сообщения в лог-файле /var/log/tomcat7/wnam.log появляется такая запись:
SMS_RECV from 79168877777, confirmed phone 79159993322, MAC=87:A5:1C:EC:3B:AF, CODE=3469
...
5) Возвращение абонента в браузер и
...
нажатие на кнопку перехода в сеть Интернет. Если СМС
...
-сообщение ещё не получено сервером WNAM,
...
то появится сообщение об ошибке "Ваше СМС пока не пришло":
...
6) Перенаправление абонента на страницу согласия с условиями и/или рекламой (при успешном получении СМС-сообщения):
...
При этом в лог-файле /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
При последующих подключениях этого абонента происходит только перенаправление на страницу с рекламой.