1) I imagine the process might be that someone connects to the wifi, opens a browser (or on Android, sees a notification to register on the network, like in airports), gets caught by the captive portal, and has an option to use the network without registering, or enter a voucher code. Correct? Other options?


I agree, and the page where you enter the code should bring info about the community, the network etc
 
2) In order to make the voucher code as easy as possible to use, three options occur to me:
3) Codes expire and get recycled, yes?


I think the codes should be long enough so that we keep creating them and never have to recycle.
 
4) The vouchers are part of Pitbull, or separate-but-connected?


They are part of it, and there is a neat menu page to add vouchers.
 

6) Can we define roles or profiles in Pitbull / the voucher admin system? This way I can look at a list of currently active vouchers, and see who's connected, how much time they have left, and whether they're a library/network member, library visitor, tourist, or other. When I create a tourist voucher, they get access to 50% of the available bandwidth, and by default the voucher lasts 1 day. A library visitor by default gets 90% access and lasts 1 hour. A member by default gets 100% of bandwidth and 1 month.


Having some kind of status report would be aneat feature. And I saw this idea of the personalized bandwidth in the issues list, they're onto it.

 
7) When a voucher expires, keep the code reserved in the system for 10% of the time it was valid, in case the person wants to renew the voucher. Examples:
-- A 1 hour voucher of a library/ciber visitor expires, and they have a 6-minute grace period to request another hour on their voucher. The admin interface makes extending the voucher easy.
-- A 1 month voucher has a 3-day grace period. The device doesn't have access once the voucher expires, but renewing is easy: the admin doesn't have to create a new voucher, and the person doesn't have to enter a new code.


Are you thinking of an online payment system to get the vouchers? Then perhaps the access to the merchant page could be always open (filter by domain). Or the merchant page could be in the captive portal, which is always accessible.