Difference between revisions of "Customer:Teletronics"

From Freeside
Jump to: navigation, search
 
(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

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).