Difference between revisions of "Customer:Teletronics"
From Freeside
(→Scope) |
|||
(9 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
* As discussed during on-site visit. | * As discussed during on-site visit. | ||
+ | * In-progress | ||
* 12 hours of work already purchased, should be sufficient | * 12 hours of work already purchased, should be sufficient | ||
Line 7: | Line 8: | ||
* Enable the existing usage-limiting counters for the prepaid price plan. | * Enable the existing usage-limiting counters for the prepaid price plan. | ||
− | * Small amount of work | + | * Small amount of work (8-12 hours) |
= Package-specific prepaid cards = | = Package-specific prepaid cards = | ||
* Prepaid card autogeneration should lock prepaid cards into a specific set of packages. | * Prepaid card autogeneration should lock prepaid cards into a specific set of packages. | ||
− | * Medium amount of work | + | * Medium amount of work (16-24 hours) |
= More flexible frequency (prepaid duration) specification = | = More flexible frequency (prepaid duration) specification = | ||
* Add # options to part_pkg.freq (3 hours, 3 days, etc.) | * Add # options to part_pkg.freq (3 hours, 3 days, etc.) | ||
− | * Small amount of work | + | * Small amount of work (4-8 hours) |
= Inventory = | = Inventory = | ||
* Add the ability to blank out inventory for a specific inventory class completely. | * 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. | * Add the ability to remove a single item from inventory, without provisioning to a customer. | ||
− | * Small amount of work. | + | * 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 = | = Prepaid printer integration = | ||
− | * Medium/large amount of work. | + | == 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/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/Cost == | ||
+ | |||
+ | * Medium/large amount of work (40-80 hours). |
Latest revision as of 02:50, 11 July 2007
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 (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)
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 (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:
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/Cost
- Medium/large amount of work (40-80 hours).