Схема авторизации:
Загрузите файл 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';
[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 на микротике.
После подключени пользователю сразу будет предложено ввести логин и пароль.