From Freeside
Jump to: navigation, search

Add support for custom CDR format

  • As discussed during on-site visit.
  • In-progress
  • 12 hours of work already purchased, should be sufficient

Prepaid usage limits

  • Enable the existing usage-limiting counters for the prepaid price plan.
  • Small amount of work (8-12 hours)

Package-specific prepaid cards

  • Prepaid card autogeneration should lock prepaid cards into a specific set of packages.
  • Medium amount of work (16-24 hours)

More flexible frequency (prepaid duration) specification

  • Add # options to part_pkg.freq (3 hours, 3 days, etc.)
  • Small amount of work (4-8 hours)


  • Add the ability to blank out inventory for a specific inventory class completely.
  • Add the ability to remove a single item from inventory, without provisioning to a customer.
  • Small amount of work (8-12 hours).

Availability packages

  • "availability" packages start from first login, not order
  • future work, not currently planned for implementation

Prepaid printer integration

Process flow

  • TAG unit requests a prepaid card (or username) from freeside, passes along TAG unit identifier, which led# and a shared secret:;secret=XXXXX;led=X

(Freeside stores/verifies shared secret for each nsid)

  • Prepaid card is generated on-the-fly by Freeside and sent back to TAG unit.
  • Freeside sends back a formatted receipt ready for printing, from one of the three following templates:
    • Error template
    • PIN (prepaid card) template for one-time users
    • Username/password template for recurring users
  • Tag unit prints the receipt/ticket received from Freeside
  • Freeside stores the NSID along with the generated prepaid card.
  • User uses the prepaid card to signup normally (or the existing username/password to sign on)
  • NSID from prepaid card is stored on the customer record on signup.

Additional/alternate flow option

  • Freeside auto-creates account and sends back ticket with user/pass
  • user uses user/pass directly
  • add flag to packages indicating reply message should not be PIN/card, but instead should auto-create username/password (customer record info comes from per-location info (location stores template custnum?))


Schema changes

  • Add nsid table
    • nsid int primary_key
    • shared_secret
    • essid
    • wep_key
    • template_custnum
  • Add nsid2pkgpart table:
    • nsid int foreign_key on (nsid)
    • led char(1) 0-9,a,c,e,f
    • pkgpart foreign_key on (part_pkg)

Configuration changes

  • Add three templates to for printing on the receipt printer:
    • Error template
    • PIN (prepaid card) template for one-time users
    • Username/password template for recurring users
  • w/substitution variables:
    • username
    • password
    • (instead of username/password) prepaid card #
    • part_pkg
    • part_pkg.recur (well, part_pkg->option('recur_fee') )
    • usage time (part_pkg option?)
    • essid
    • wep_key
    • date
    • serial #

Backend changes

  • View/Edit for NSID table
    • browse/nsid.cgi
    • edit/nsid.cgi
    • edit/process/nsid.cgi

Self-service changes

  • Write keygen.cgi implementing behaviour above
  • Backend implementation in FS/FS/ClientAPI/


  • Medium/large amount of work (40-80 hours).