Вообще, кто сталкивался с попыткой как-то бюджетно реализовать доступ к Internet по WiFi в местах общего пользования (кафе, рестораны, гостиницы), тот быстро пришел к выводу, что обычные потребительские устройства (домашние d-link’и tp-link’и) не подходят. Они «умирают» буквально на нескольких подключениях, не говоря уже о стабильной работе с десятком коннектов. В реальных же бизнес-задачах требуется и большая скорость и большая безопасность, хотелось бы еще и «бесшовный» роуминг. Мы привыкли, что в корпоративном сегменте рулят всякие Cisco с ценами, как за чугунный завод. Но не так давно появились решения от Ubiquity. Они хороши не только железками, но самое главное своим бесплатным программным кросс-платформенным контролером с поддержкой API.
У Ubiquity неплохие возможности по настройке «гостевой» WiFi-сети. И чаще всего достаточно было бы изолировать WiFi сеть на уровне VLAN, и включить какие-нибудь ограничения, не заморачиваясь ваучерами.
Но рассмотрим подробнее мою задачу.
Есть медицинский центр, в медицинском центре есть неплохой безлимитный интернет, которым можно было бы поделиться с клиентами, пока они ожидают приема врача. Если мы просто сделаем открытую сеть (даже с ограничениями), то довольно быстро канал забьют: те же сотрудники медцентра с сотнями своих личных гаджетов, кроме того, в этом же здании есть и другие организации, которые тут же подключатся к этой открытой сети с интернетом. Один из бизнес-процессов медцентра заключается в том, что каждому посетителю печатается небольшая бумажка (талон) на которой указана в какой кабинет, к какому врачу и на какую услугу записан клиент. Эта бумажка помогает клиенту сориентироваться. И этот талон и подтолкнул на мысль, что было бы неплохо печатать на этом же талоне персональный код-доступа к WiFi-сети. (Сразу же вспоминаются аэропорты - там часто на чеках в кафе печатается пароль с ограниченным интернет-доступом). У web-морды ubiquity, конечно, есть собственный интерфейс для генерации и печати ваучеров с кодами-доступа. Но это и не удобно и простому персоналу давать доступ в этот интерфейс не хотелось (на генерируют там себе чего угодно :)). Хорошо, что API UniFi-контролера позволяет и сгенерировать, и получить список кодов доступа, ну а потом работать с ними в 1С не представляет сложностей.
Кстати, ваучеры хороши еще и тем, что позволяют различные ограничения настроить более гибко, т.е. можно ограничить входящую и исходящую скорость, объем трафика и время сессии.
Описанный выше пример также подходит и для гостиницы/отеля, кафе/ресторана.
Как я уже сказал выше, управляются точки доступа программным контроллером, возможно, благодаря этому мы получаем такое недорогое и функциональное решение. Кто-то может сказать: «блин, это еще отдельный комп на WiFi-ставить». Но я не думаю, что это большая проблема, почти в любой бизнес задаче даже на несколько компов, как правило, есть сервер, можно запускать контроллер на нем (чаще всего виртуальную linux-машинку поднимают). В кафе/ресторане можно запустить даже на POS-терминале (под Windows, запускается как служба). На Хабре кто-то на Rasberry PI запустил :)
Затянул с вступлением :) Просто хотелось акцентировать внимание, что решение от Ubiquity реально клевое!
Ниже простенькая конфигурация. В ней есть тестовая обработка, которая максимально детализирует все общение с контролером (удобно для отладки).
Также реализован небольшой функционал в виде подсистемы, которую можно встраивать в свои конфигурации (в тот же 1С:Отель 8).
Работа проверена с контроллерами UniFi версии 3.2.7 - 3.2.10
Подсистема состоит из нескольких констант настроек, из пары модулей и регистра сведений, в который пишутся сгенерированные ваучеры по регламентному заданию. Дальше с этим регистром уже можно делать все, что угодно (помечать ваучеры как выданные, привязывать их к клиентам/посещениям и т.п.).
Смысл такой, что каждый раз обращаться к контролеру за ваучером может быть «накладно», поэтому разумнее с какой-то периодичностью обращаться к контролеру и пополнять список «свободных» ваучеров в 1С.
Для сериализации JSON я использую наработки ребят из компании KTC (они сделали чумовую штуку по интеграции 1С со Slack’ом) Вроде бы на infostarte уже что-то было про JSON, но я в свое время пропустил :(
Полезные ссылки
В сети множество материалов, обзоров, инструкций по Ubiquity, ниже ссылки, которые использовал именно я:
Инструкция по установке контроллера:
https://community.ubnt.com/t5/UniFi-Updates-Blog/UniFi-3-2-7-is-released/ba-p/1085473
Ubuntu в виртуальной машинке поднимал вот эту:
https://help.ubuntu.com/community/Installation/MinimalCD
Инструкция про кастомизацию портала:
http://wiki.ubnt.com/UniFi_FAQ#Hotspot_-_Portal_Customization