Difference between revisions of "Customer:Teletronics"
From Freeside
(→Prepaid printer integration) |
|||
Line 25: | Line 25: | ||
= Prepaid printer integration = | = 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: | ||
+ | |||
+ | <code> | ||
+ | https://example.com//keygen.cgi?nsid=NNN;secret=XXXXX;led=X | ||
+ | </code> | ||
+ | |||
+ | (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 flow option == | ||
+ | |||
+ | * Freeside auto-creates account and sends back ticket with user/pass | ||
+ | |||
+ | * user uses user/pass directly | ||
+ | |||
+ | == 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. | * Medium/large amount of work. |
Revision as of 02:45, 11 July 2007
Contents
Add support for custom CDR format
- As discussed during on-site visit.
- 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
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.
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 flow option
- Freeside auto-creates account and sends back ticket with user/pass
- user uses user/pass directly
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.