Hotspot: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
Немає опису редагування
Немає опису редагування
Рядок 1: Рядок 1:
Модуль дает возможность предоставлять доступ в интернет абонентам, не внесенным в базу данных биллинга. Авторизация осуществляется посредством посылки кода авторизации на телефон.
Модуль дает возможность предоставлять доступ в интернет абонентам, не внесенным в базу данных биллинга. Авторизация осуществляется посредством посылки кода авторизации на телефон.




Рядок 35: Рядок 33:
Обратите внимание на такие моменты:
Обратите внимание на такие моменты:


* все шаблоны и сама папка Hotspot должна иметь тег system
* все шаблоны и сама папка Hotspot должна иметь тег system.
* тег template указывает на имя шаблона для модуля hotspot. Имя документа в дереве с папками и файлами не имеет значения - вы его можете именовать как угодно
* тег template указывает на имя шаблона для модуля hotspot. Имя документа в дереве с папками и файлами не имеет значения - вы его можете именовать как угодно, а вот имя в теге template должно быть:
* В админке в разделе "документы"
** hotspot_base - базовая структура документа. По сути в этом файле весь дизайн и основные элементы.
** создаем папку Templates (если не создана) и ставим ей теги: system
** hotspot - окно ввода номера телефона. Дефолтный html этого окна небольшой т.к. в нем хранится не полная страница, а фрагмент, который будет вставлен в hotspot_base.
** в папке Templates создаем файл hotspot с такими тегами:
** hotspot_sms - окно ввода кода из смс, пришедшей на телефон.
<pre>
** hotspot_error - окно отображения ошибки.
system
template=hotspot
</pre>
* содержимое файла hotspot:
<pre>
<!doctype html>
<html>
<head>
  <title>{{ cfg::net_title }} hotspot</title>
  <meta http-equiv='Cache-Control' content='no-cache'>
  <meta http-equiv='Pragma' content='no-cache'>
  <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
  <style>
#main_block {
    margin: 20% auto auto auto;
    display: table;
}
#intro_block, #input_block {
  margin: 20pt 0;
}
  </style>
</head>
<body>
  <form action='stat.pl' method='post'>
    <input type='hidden' name='_mod' value='hotspot'>
    <div id='main_block'>
        <div id='intro_block'>
            Для получения доступа в интернет, введите номер карты пополнения счета
        </div>
        <div id='input_block'>
            <input autocomplete='off' value='' name='_card' type='text'>
            <input type='submit' value='{{lang::btn_enter}}'>
        </div>
    </div>
  </form>
</body>
</html>
</pre>




Тестирование:
==Тестирование==
* Тестовым компьютером подключаемся к вашему wifi
* Тестовым компьютером подключаемся к вашему wifi
* Убеждаемся, что выданный ip есть в биллинге в пуле ip и у него стоит тег hotspot
* Убеждаемся, что выданный ip есть в биллинге в пуле ip и у него стоит тег hotspot

Версія за 18:25, 17 лютого 2019

Модуль дает возможность предоставлять доступ в интернет абонентам, не внесенным в базу данных биллинга. Авторизация осуществляется посредством посылки кода авторизации на телефон.


Случайный клиент подсоединяется к вашей wifi точке с открытым доступом. Открывает любой http сайт и вместо запрошенной страницы получает сообщение о необходимости купить карту пополнения счета и ввести ее на данной странице, после чего получит доступ в интернет на такой-то срок. Клиент покупает скретч-карту, вводит ее номер и получает доступ в интернет. Он может отсоединиться от wifi и вернуться позже, при этом он получит доступ в интернет, если срок тарифа не истек.

Особенности:

  • В ваших публичных wifi точках должен быть отключен nat, т.е подключенным клиентам ip будет выдавать не wifi роутер, а сервер биллинга
  • Сервер биллинга различает клиентов по ip
  • При первом вводе карты пополнения счета, создается новая учетная со случаным именем, это просто техническая запись, которая хранит тариф и ip клиента
  • Страницу запроса карточки пополнения счета можно полностью оформить под ваш дизайн, ввести рекламу и т.д


Настройка

  • Создаем группу hotspot. Это необязательно, но удобно - в этой группе будут автоматически создаваться учетные записи клиентов hotspot.
  • Создаем услугу типа «Безлимитные тарифы» с названием «Hotspot free» или «Hotspot первое подключение» - это будет тариф, который будет автоматически выдаваться всем новым пользователям, т.е. тем, телефоны которых еще ни разу не были зарегистрированы в биллинге. Если необходимо, чтобы несколько первых минут новый клиент мог пользоваться интернетом бесплатно - устанавливаем стоимость услуги в ноль, а срок действия, скажем, 10 минут. Параметр «автопродление» - нет. В параметре «группы, которые могут устанавливать услугу» ставим галку на группе hotspot.


  • Создаем ip pool на несколько сотен ip:
    • тип: статический
    • теги: hotspot


  • На тестовом wifi-роутере отключаем nat и переводим в режим бриджа (я думаю)
  • На сервере NoDeny настраиваем dhcp так, чтобы выдавал ip в пуле hotspot. В будущем ваш админ должен настроить dhcp-конфиг так, чтоб он видел, что запрос пришел от wifi-точки. Либо же игнорировать это, если обычный dchp не используется в вашей сети.
  • В админке в настройках hotspot указываем id группы hotspot и id тарифа hotspot


При первом запуске инсталляции (install.pl -x) автоматически в разделе «Документы» будет создана папка Hotspot, в которой будут html-шаблоны. Вы можете их менять как угодно - дизайн и файлы никак не связаны с NoDeny. Вы можете стилизировать под свой сайт или вообще создать уникальный дизайн чисто под hotspot.

Обратите внимание на такие моменты:

  • все шаблоны и сама папка Hotspot должна иметь тег system.
  • тег template указывает на имя шаблона для модуля hotspot. Имя документа в дереве с папками и файлами не имеет значения - вы его можете именовать как угодно, а вот имя в теге template должно быть:
    • hotspot_base - базовая структура документа. По сути в этом файле весь дизайн и основные элементы.
    • hotspot - окно ввода номера телефона. Дефолтный html этого окна небольшой т.к. в нем хранится не полная страница, а фрагмент, который будет вставлен в hotspot_base.
    • hotspot_sms - окно ввода кода из смс, пришедшей на телефон.
    • hotspot_error - окно отображения ошибки.


Тестирование

  • Тестовым компьютером подключаемся к вашему wifi
  • Убеждаемся, что выданный ip есть в биллинге в пуле ip и у него стоит тег hotspot
  • Открываем в браузере например http://beer.com
  • Данный запрос должен перехватиться модулем заглушки и должен произойти редирект на http://ваш_сайт/cgi-bin/cap.pl
  • Должна отобразиться страница с предложением ввода карты пополнения счета
  • После ввода корректного кода, должен быть предоставлен доступ в интернет

При этом:

  • В группе hotspot должна быть создана учетка со случайным именем
  • У нее должна быть подключена услуга hotspot