Icaro is divided in 4 parts:
- Dedalo: network access controller, it runs on the firewall and intercepts all guest connections, based on CoovaChilli
- Wax: accounting server, it speaks RADIUS AAA protocol via HTTP with Dedalo
- Wings: captive portal hosted along with Wax, it’s static responsive web page for user login. It talks with Wax and Dedalo
- Sun: Hotspot Manager applications which is dived in 3 parts
- Ade: Surveys applications which is dived in 3 parts
Wax, Sun and Ade use the same MariaDB (or MySQL) database.
Wax, Wings, Ade and Sun are considered server-side components, while Dedalo and dedalo_users_auth are considered the client ones. All techincal documentation can be found in the links above.
How it works
This is an high-level overview of the whole architecture:
An user tries to access Internet using its own smartphone via WiFi
The traffic is intercepted by Dedalo (1 in figure)
Dedalo talks to Wax and checks if the user is already authorized to access Internet. If not, the smartphone client is redirect to Wings captive portal (2 in figure)
The user is forced to login using one of the available methods.
When the authentication is done, Wax marks the user as authenticated (3 in figure)
Dedalo asks, via dedalo_users_auth daemon, authorization confirmation to Wax, if the authorization is granted (3 and 4 in figure)
- After hours or days, if the hotspot’s owners have enabled the surveys, an email or sms are sent to the users
- The users click on the link inside the email or sms and fill the feedbacks or reviews
- When survey has finished a recap email is sent to the hotspot owner