8MS User Guide
CPR Generator

LCRgen is an 8MS add-on product that automatically generates complex geographic routing from user-supplied cost input where users have multiple choices for the carrier they choose to carry their traffic.   To prepare the input, users must know the rate that each of their carriers charges for each NPANXX and have traffic data per NPANXX.  This allows the computation of a cost for the traffic from a given NPANXX for each available carrier.

 

A simple example would be as follows.  In NPANXX 201200 the user may have a carrierA rate of 1 cent/minute and a carrierB rate of 1.5 cents/minute.    If the total traffic from 201200 is 30 min then the cost of using carrierA is 30 and the cost of using carrierB is 45.

 

There are approximately 150,000 valid NPANXXs while the number of paths in a CPR is approximately 600.   Therefore LCRgen must make choices among the cost data to build a CPR that SMS will accept.  The LCRgen input is a user-created text file. It contains instructions to generate CPRs for one or more toll-free numbers. It is also possible to request automatic customer record activation if a CPR is successfully generated.

In its simplest form, the input appears as follows:

-START NUM-

-START HDR-
Target#:toll-free number
Cprname:CPR-name
Notes:up to 50 characters of informal notes

Activate:{Y | N}
Effdate:{NOW | MM/DD/YY HH:MMa}
IgnoreInvalidNpaNxx:{Y | N}
CICs:comma-separated list of CICs in the order the cost data will be given

DefaultCost: the costs to use for any NPANXX not given in the cost data
AOS: comma-separated list of NPAs
-END HDR-

-START COSTS-
NPANXX[/potsnumber]:cost1,cost2,....
-END COSTS-

-END NUM-

Any number of LCRgen requests can be made in one input file, each enclosed within -START NUM- and -END NUM-. In other words, an input file can contain instructions to generate multiple CPRs for different target numbers.   Any lines beginning with ‘#’ are ignored so you may sprinkle comments in your file to annotate your data.

Each request contains a header section (delimited by -START HDR- and -END HDR-) with the following information:            

  • The target toll-free number.
  • The name of the generated CPR.
  • Some Notes to help you identify this particular LCRgen run.
  • A flag indicating whether or not to automatically send a customer record activation request to SMS/800.
  • If activation is requested, the effective date/time of the new customer record (can be NOW).
  • If IgnoreInvalidNpaNxx is requested, NPANXXs in the cost data will be ignored if they contain an NPA or NXX not found in the 8MS list of valid values.
  • A list of CICs, the order of which defines how the costs in the COSTS section will be associated with each CIC.
  • If a DefaultCost is given it will be used for any NPANXX which is found in the 8MS list of valid values for which a cost row is not given. If omitted, missing NPANXX's may be routed on any carrier.
  • An AOS if the user wishes to limit the Area of Service by NPA of the generated CPR (default is the 8MS list of valid NPAs).

The header fields CICs, Target#, and Cprname are required. The remaining fields are optional. If activation is specified without supplying an effective date/time, NOW is assumed.

Each request contains a costs section (delimited by -START COSTS- and -END COSTS-) with the following information on each line.

  • An NPANXX.
  • A "/" followed by a POTS number if a POTS number is desired instead of the Toll Free Number (the Target#).
  • A ":" followed by a comma-separated list of costs for the carriers from the CICs field in the header.  An empty field means this CIC is not available for this NPANXX.  If all the values are empty, the DefaultCIC will be used (the same as if this NPANXX line had not been present).

Here's an example.

-START NUM-

-START HDR-
Target#:8662998932
Cprname:GenPlan
CICs:0111,0222,0333
DefaultCIC:0333
IgnoreInvalidNpanxx:Y
AOS:201,732
-END HDR-

-START COSTS-
201200:0072,0103,7800
201202:0178,0103,
201204:0215,0132,
201206:0095,0103,2110
201207:0095,0103,4210
201209/7323020222:,,33
732302:0095,0103,4210
-END COSTS-

-END NUM-

The result of this input would be generation of a CPR called GenPlan for 8662998932.  The CPR would have the following

  • Calls from 201200, 201206, 201207 and 732302 would route on CIC 0111
  • Calls from 201202 and 201204 would route on CIC 0222.
  • Calls from 201209 would route on CIC 0333 to POTS number 7323020222.
  • Calls from all other 201 and 732 NXXs would route on CIC 0333.

If this CPR fits in SMS (it most likely will) it is the one generated.   However, if it results in, for example, too many paths, then other choices for 201200, 201202, 201204, 201206, 201207 and 732302 would be made to find the minimal cost CPR that fits.

Currently, LCRgen uses the geographic routing nodes of SD (six-digit), LT (lata), AC (npa) and NX (nxx) nodes to effect the routing.   It will generate labels as needed and maximize the use of the OTHER branch on the nodes.