Skip to content

8. Time-limited Wi-Fi access

openwisp-voucher is a desktop program (Linux and Windows) that creates time-limited Wi-Fi accounts for the captive portal and prints them as tickets or labels, like hotels do: "Mario has access for 3 days, then the account switches off by itself". It uses the OpenWISP REST API: nothing to install on the server.

What it does

  • named guest (username, email, generated password) or voucher series (guest1, guest2, …) with passwords generated by the server;
  • duration in days: the printed date is the last valid day, OpenWISP disables the account at 00:01 the next day; it can also be disabled at once;
  • prints on A4 sheets (10 tickets), 58/80 mm receipts or labels of any size, with logo, website, email, phone, network name and QR code; or PDF or text to copy;
  • list of the accounts created, with reprint and status read from the server;
  • the superuser chooses the organization, an operator sees only their own.

The screenshots use made-up data ("Hotel Ninux Basilicata"); the interface is also available in English.

New access: named guest, duration in days and ticket preview

Created accounts: reprint, deactivation and status read from the server

Settings: server, organization, RADIUS group, logo and venue details

Ticket from the A4 sheet 58 mm receipt
A4 ticket 58 mm receipt

Installation

Download the executable from the releases: openwisp-voucher-<version>-windows.exe for Windows, openwisp-voucher-<version>-linux-x86_64.tar.gz for Linux. Nothing to install: just run it. On Windows the executable is not signed yet and SmartScreen asks for confirmation ("More info" → "Run anyway"); the application for free signing by the SignPath Foundation is pending.

In Settings: "Log in…" with the server (openwisp.ninux-nnxx.it) and your user, then organization, RADIUS group, logo and venue details. The password is only used to obtain the token, which goes into the system keyring.

Server side

What Where
openwisp-radius batch API and the deactivate_expired_users task already in the openwisp2 playbook
RADIUS group for guests admin → RADIUS → Groups; for Basilicata basilicata-24H (24 hours and 3 GB per day)
Login page that accepts the username login_form.input_fields.username.type: "text" in the organization YAML (see chapter 3)
Operator users (reception) staff, organization managers, permissions listed in the README

The guest joins the hotspot network and, on the portal page that opens by itself, types the ticket's username and password in the "Email, phone number or username" field.

Login page of the NINUX Basilicata Wi-Fi portal

Guest email

OpenWISP wants a different email for each user. With an email already in use openwisp-radius 1.3 answers with a generic 500 error: the program checks it first and says so clearly.

Releases

GitHub Actions builds the releases when a v* tag is pushed: tests, Windows and Linux executables with PyInstaller, SHA256 and build provenance attestation. The procedure is in the program's README, section Development.