Hotspot
Модуль дает возможность давать доступ в интернет случайным клиентам, подсоединившимся к вашим wifi точкам. Авторизация осуществляется посредством посылки кода авторизации на телефон.
Как это работает
Случайный клиент подсоединяется к вашему wifi с открытым доступом. Открывает любой сайт и вместо запрошенной страницы получает сообщение о том, что доступ в интернет будет дан после ввода номера телефона и кода из смс, пришедшего на данный телефон. После осуществления этих действий, возможна выдача тестового доступа в интернет абоненту с телефоном, не используемым для авторизации ранее.
Для осуществления платного доступа в интернет, клиент может в онлайне произвести оплату через любой из модулей оплаты.
Настройка
- Создайте группу hotspot. В этой группе будут автоматически создаваться учетные записи клиентов hotspot. Поле «Персональный темплейт для личного кабинета клиентов этой группы» установите в значение «hotspot_cabinet» - этим вы сможете создать совершенно иной вид кабинета для hotspot-абонентов, не такой как для ваших обычных пользователей.
- Создайте услугу типа «Безлимитные тарифы» с названием «Hotspot demo» или «Hotspot первое подключение» - это будет тариф, который будет автоматически выдаваться всем новым пользователям, т.е. тем, телефоны которых еще ни разу не были зарегистрированы в биллинге. Если необходимо, чтобы несколько первых минут новый клиент мог пользоваться интернетом бесплатно - установите стоимость услуги в ноль, а срок действия, скажем, 10 минут. Параметр «автопродление» - нет. В параметре «группы, которые могут устанавливать услугу» не ставьте никаких галок.
- Создайте ip pool на несколько сотен ip:
- тип: статический
- теги: hotspot
- На wifi-роутере отключите nat и переведите в режим бриджа, чтобы ip выдавал не роутер, а сервер NoDeny.
- На сервере NoDeny настройте dhcp так, чтобы выдавал ip в пуле hotspot. В будущем ваш админ должен настроить dhcp-конфиг так, чтобы он видел, что запрос пришел от wifi-точки. Либо же игнорировать это, если обычный dchp не используется в вашей сети.
- В админке в настройках hotspot укажите id группы hotspot и id тарифа «Hotspot demo»
При первом запуске инсталляции (install.pl -x) автоматически в разделе «Документы» будет создана папка Hotspot, в которой будут html-шаблоны. Вы можете их менять как угодно - дизайн и файлы никак не связаны с NoDeny. Вы можете стилизировать под свой сайт или вообще создать уникальный дизайн чисто под hotspot.
Обратите внимание на такие моменты:
- все шаблоны и сама папка Hotspot должна иметь тег system.
- тег template указывает на имя шаблона для модуля hotspot. Имя документа в дереве с папками и файлами не имеет значения - вы его можете именовать как угодно, а вот имя в теге template должно быть:
- hotspot_base - базовая структура документа. По сути в этом файле весь дизайн и основные элементы.
- hotspot_login - базовая структура окна логина.
- hotspot - окно ввода номера телефона.
- hotspot_sms - окно ввода кода из смс, пришедшей на телефон.
- hotspot_error - окно отображения ошибки.
- hotspot_cabinet - базовая структура окна, когда клиент уже авторизован.
Поначалу, не меняйте структуру шаблонов ибо ошибки будут трудноотлавливаемыми. В будущем можете изменить шаблоны под свою структуру и дизайн.
В разделе «Настройки» → «Кабинет клиента» в поле «Список плагинов» добавьте следующее:
grp:14 fondy srv_select srv_add
Где 14 - id группы hotspot. Данным фрагментом мы для абонентов группы hotspot разрешили пополнять счет через систему fondy, выбирать и подключать тариф интернет. Объяснение того, что мы сделали. Обратите внимание, что в начале «Списка плагинов» могут идти плагины, которые доступны для всех групп, например:
плагин1 плагин2 .... grp:14 fondy srv_select srv_add
Этот вариант нам не подходит т.к плагин1 и плагин2 будет доступен группе hotspot. Измените так (допустим в группе id=1 обычные абоненты):
grp:1 плагин1 плагин2 .... grp:14 fondy srv_select srv_add
Ранее мы создали услугу, которая подключается по умолчанию при первой авторизации. Ее выбрать клиент не сможет т.к не стоит галка доступности услуги группе hotspot. Создайте платную услугу с тегом hotspot.
Краткая информация по шаблонам
В шаблонах, инсталируемых по умолчанию, предусмотрено наследование, а если быть точнее - расширение. Это означает, что общие фрагменты вынесены в отдельные шаблоны и итоговый шаблон - это комбинация нескольких. Например, когда биллинг выводит окно ввода телефона, он запускает шаблон hotspot, данные из которого вставляются в шаблон hotspot_login, данные из которого вставляются в шаблон hotspot_base. Кроме того в шаблон hotspot_base подгружается шаблон hotspot_css, содержащий стили документа.
hotspot → hotspot_login → hotspot_base ↑ hotspot_css
Вы не обязаны сохранять текущую структуру, просто она удобна. Например, в hotspot_login можно выводить вводную информацию по самой услуге wifi и не показывать ее когда пользователь уже зарегистрировался и ему уже можно выводить информацию о том как пополнить интернет, например. В этом случае цепочка такая:
hotspot_cabinet → hotspot_base ↑ hotspot_css
Также, обратите внимание на то, что у некоторых шаблонов есть альтернативные имена, указанные в теге template1. Обычно они содержат тоже самое имя как и в теге template, но с префиксом «user/». Это связано с тем, что NoDeny может использовать разные пути к шаблонам в зависимости от того, авторизован ли клиент, авторизован как админ или юзер. Когда авторизовался не админ, а клиент, в путь к шаблонам добавляется «user/». Поэтому файл с css имеет теги:
system template=hotspot_css template1=user/hotspot_css
template=hotspot_css используется в момент логина (ввод телефона или кода из смс), template1=user/hotspot_css для просмотра баланса, оплаты и т.д. Вы можете сделать разные css для этих ситуаций, если хотите. Тогда template1, естественно, использовать не нужно.
Тестирование
- Тестовым компьютером подключитесь к вашему wifi
- Убедитесь, что выданный ip есть в биллинге в пуле ip и у него стоит тег hotspot
- Откройте в браузере, например, http://beer.com
- Данный запрос должен перехватиться модулем заглушки и должен произойти редирект на http://ваш_сайт/cgi-bin/cap.pl
- Должна отобразиться страница с предложением ввода номера телефона. Если нет - проверяйте шаблоны в разделе «Документы». Вы можете убрать тег system у папки Hotspot и запустить install.pl - будет создана еще одна папка Hotspot с корректной структурой.
- Введите некорректный номер телефона чтобы проверить дизайн окна с ошибкой
- Укажите корректный номер телефона
- Введите иной код, чем тот, который пришел в смс
- Должно предложить либо переслать на новый телефон либо попробовать ввести еще раз
- Попробуйте ввести несколько раз, после чего система должна предложить только вариант с новой отсылкой смс
- Ведите корректный код из смс
При этом:
- В группе hotspot должна быть создана учетка с логином, равным номеру телефона
- У нее должна быть подключена услуга hotspot