Customer:Teletronics
From Freeside
Contents
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.
More flexible frequency (prepaid duration) specification
- Add # options to part_pkg.freq (3 hours, 3 days, etc.)
- Small amount of work.
Inventory
- 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.
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:
https://example.com//keygen.cgi?nsid=NNN;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?))
Implementation
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 Conf.pm 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/Teletronics.pm
Scope
- Medium/large amount of work.