Skip to end of metadata
Go to start of metadata


Схема авторизации:

Загрузите файл login.html на микротик (/hotspot/login.html)

login.html

<html>
  <title>...</title>
  <body>
    <form name="redirect" action="https://192.168.0.1:9443/start.cgi" method="post">
      <input type="hidden" name="mac" value="$(mac)">
      <input type="hidden" name="username" value="$(username)">
      <input type="hidden" name="link_login_only" value="$(link-login-only)">
      <input type="hidden" name="link_orig" value="$(link-orig)">
      <input type="hidden" name="server_name" value="$(server-name)">
      <input type="hidden" name="error" value="$(error)">
    </form>
    <script language="JavaScript">
      document.redirect.submit();
    </script>
  </body>
</html>

В файле необходимо изменить адрес на ваш.

Конфигурация


$conf{HOTSPOT_AUTO_LOGIN} = 1;Использование альтернативного способа авторизации (по умолчанию используется старая схема)
$conf{HOTSPOT_LOG} = '/usr/abills/var/log/hotspot_log';Отдельный лог для событий связанных с хотспотом (авторизация, регистрация, ошибки)
$conf{HOTSPOT_REDIRECT_URL} = 'https://www.google.com';Страница, на которую будет перенаправлен пользователь после подключения
$conf{HOTSPOT_MAC_LOGIN} = 1;

Разрешить авторизацию пользователей по MAC адресу клиента

$conf{HOTSPOT_CHECK_PHONE} = 1;Обязательная проверка телефона. Система отправляет смс с пин-кодом на указанный номер
$conf{HOTSPOT_AUTH_NUMBER} = '+XXXXXXXXXXX';Номер телефона, на который нужно перезвонить пользователю для авторизации
$conf{HOTSPOT_SN_LOGIN} = 'Facebook';Разрешить авторизацию пользователей через Фейсбук.
$conf{HOTSPOT_BUY_CARDS} = 1;Разрешить регистрацию только после оплаты тарифа. (Должен быть настроен прием онлайн платежей)
$conf{HOTSPOT_SHOW_FB} = 'https://www.facebook.com/Mypage';Предложение лайкнуть ФБ страницу. (Работает только с авторизацией через Фейсбук)
$conf{HOTSPOT_LOGIN_PREFIX} = 'hs';Префикс который добавляется к логину пользователей хотспота
$conf{HOTSPOT_GUESTS_GROUP} = 'HotGroup';Группа для пользователей, которые регистрируются через хотспот
$conf{HOTSPOT_GUESTS_GID} = '800';Номер (ID) этой группы
$conf{HOTSPOT_TPS}='7;10;11';Явно указать тарифы для пользователей хотспота. По умолчанию используется гостевой тариф

Примеры конфигурации

MAC авторизация

$conf{HOTSPOT_AUTO_LOGIN} = 1;
$conf{HOTSPOT_MAC_LOGIN} = 1;
$conf{HOTSPOT_REDIRECT_URL} = 'https://www.google.com';

Пользователь подключается к сети WiFi, на его устройстве автоматически открывается браузер. После нескольких автоматических редиректов в браузере открывается страница www.google.com (На фоне прошла проверка зарегистрирован ли уже пользователь с этим МAC-адресом, если нет - создан новый пользователь. Данные найденного либо созданного пользователя были отправлены на микротик для авторизации.)


Фейсбук авторизация

$conf{HOTSPOT_AUTO_LOGIN} = 1;
$conf{HOTSPOT_SN_LOGIN} = 'Facebook';
$conf{HOTSPOT_SHOW_FB} = 'https://www.facebook.com/Coca-Cola/';
$conf{HOTSPOT_REDIRECT_URL} = 'https://www.google.com';

Пользователь подключается к сети WiFi, на его устройстве автоматически открывается браузер. При первом подключении откроется страница Фейсбука, с просьбой дать доступ к публичной информации пользователя. Далее откроется страница с виджетом, который предложит лайкнуть страницу. После нажатия кнопки Продолжить пользователя перенаправит на www.google.com. (На фоне все аналогично первому примеру, только проверяется не MAC, а аккаунт Фейсбука).


Один логин для всех гостей

$conf{HOTSPOT_AUTO_LOGIN} = 1;
$conf{HOTSPOT_ONE_LOGIN_FOR_ALL} = 'hotspot_guest:123456';

Все пользователи авторизируются под одним логином, указанным в конфигурации (в примере логин - hotspot_guest, пароль 123456). Вам необходимо заранее создать такого пользователя и выбрать ему гостевой тариф. В настройке пользователя, в поле CID нужно указать 'ANY', для того, чтобы система пропускала пользователей с любыми МAC-адресами. В поле «Одновременно» можно указать предельное число одновременно подключенных пользователей с этим логином (или 0 - если ограничений нет).


Идентификация пользователя с помощью СМС

$conf{HOTSPOT_AUTO_LOGIN} = 1;
$conf{HOTSPOT_PHONE_LOGIN} = 1;
$conf{HOTSPOT_CHECK_PHONE} = 1;
$conf{HOTSPOT_REDIRECT_URL} = 'https://www.google.com';

Пользователь после подключения попадает на форму ввода телефона. На указанный телефон высылается СМС с пин-кодом. После ввода правильного пин-кода пользователь перенаправляется на www.google.com. (На фоне все аналогично первому варианту, дополнительно записывается телефон, и информация про то, что он был подтвержден, по умолчанию телефон требует подтверждения не чаще одного раза в сутки).


Идентификация пользователя с помощью звонка на указанный номер

$conf{HOTSPOT_AUTO_LOGIN} = 1;
$conf{HOTSPOT_PHONE_LOGIN} = 1;
$conf{HOTSPOT_CHECK_PHONE} = 1;
$conf{HOTSPOT_AUTH_NUMBER} = '+XXXXXXXXXXX';
Для обработки звонка, в extention.conf asteriska нужно добавить
[abills-agi]
exten => 600,1,NoOP(-----start-----)
exten => 600,n,AGI(/usr/abills/Abills/modules/Hotspot/phone_verification.agi)
exten => 600,n,Hangup()

Пользователь после подключения попадает на форму ввода номера телефона. После ввода номера телефона, система предложит ему перезвонить на определенный номер для подтверждения. После звонка - в базу будет добавлен пользователь с таким MAC-адресом и номером телефона. Последующие подключения будут происходить автоматически. Для Asterisk регистрации используется программа phone_verification.agi


Подключение с онлайн-оплатой активации

$conf{HOTSPOT_AUTO_LOGIN} = 1;
$conf{HOTSPOT_MAC_LOGIN} = 1;
$conf{HOTSPOT_REGISTRATION} = 'NO'; (запретить гостевых пользователей) 
$conf{HOTSPOT_BUY_CARDS} = 1;  (разрешить онлайн оплату тарифа)
$conf{HOTSPOT_TPS}='123;345';  (тарифы доступные для пользователя)

Пользователь после подключения попадает на страницу со списком доступных вариантов подключения, затем выбирает метод оплаты и попадает на страницу выбранной платежной системы. После успешного платежа, в биллинге создается пользователь, и на его счет засчитывается полученная сумма. Дальнейшие подключения происходят автоматически. Если на счету закончились деньги, пользователь увидит сообщение о негативном депозите и может пополнить счет.


Оплата с помощью ваучера

$conf{HOTSPOT_AUTO_LOGIN} = 1;
$conf{HOTSPOT_MAC_LOGIN} = 1;
$conf{HOTSPOT_USE_PIN} = 1;
$conf{HOTSPOT_TPS}='7';

Пользователь сразу попадает на страницу ввода пин-кода, после ввода кода с ваучера появляется интернет. Если оплаченное время прошло - пользователь снова попадает на страницу ввода пин-кода. Коды пополнения генерируются с помощью модуля Cards, и выдаются диллерам. В данной схеме обязательно использовать тариф с почасовой оплатой. Для примера вы создаете тариф со стоимостью 10 единиц за 1 час. И создаете карточки пополнения на 5 единиц. После ввода пин-кода пользователь получит интернет на пол часа.

Возможные ошибки

Для регистрации пользователей используется модуль Cards, проверьте есть ли все необходимые таблицы в базе данных.

Для оплат используется модуль Paysys, проверьте подключен ли модуль и есть ли в конфиге настройки хотя бы одной платежной системы.

Дла авторизации через социальные сети дожно быть добавлено дополнительное информационное поле соответствующей соц.сети.

Для гостевых пользователей должен быть создан тариф с типом оплаты «Гостевой доступ».

Убедитесь, что в файле login.html залитом на Микротик прописан именно ваш адрес биллинга, а сам адрес добавлен в список walled garden ip list.

Некоторые телефоны не приветствуют перенаправление с  https на  http  и наоборот. Решение проблемы - открыть еще один виртуальный сервер, для доступа к start.cgi по http.

Подключение без использования start.cgi

Для входа по заранее созданному логину и паролю используйте скачате эти файлы, и запишите их в папку /hotspot на микротике.
После подключени пользователю сразу будет предложено ввести логин и пароль.

  • No labels