Difference between revisions of "Customer:Teletronics"

From Freeside
Jump to: navigation, search
 
(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 03:45, 11 July 2007

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.