Configuring BillMax for Calix

Obtain the necessary software, licenses, and account from Calix. In particular, you will need access to their Subscriber Services API in the Calix Operations Cloud. For the API usage, you will need the following settings: Client Id, Client Secret, Username, and Password.
  1. In BillMax, choose System Administration > Resources. Create a Resource name "Calix" and record the associated resource number. You will need this number when editing the service hook and production definitions.
  2. Choose a location field on the user record not already being used for holding a unique location identifier required by Calix. Edit the useridlabels list (Billing Administration > Lists). . Change the Item field to Calix ID. Note that the labels vary in the maximum length of data accepted. Choose a label (2-6) with enough space to hold your unique ID for the location. This ID has no required format. Choose a schema that provides for uniqueness when the ID is entered. Using the table below record the field used. You will need it when editing the service hook.
    • useridlabels
      Table 1.
      Label Field Size
      Label2 ssn 11
      Label3 dlnumber 20
      Label4 dlstate 20
      Label5 maiden 30
      Label6 custsecret 50
  3. Create one or more product (package or service) definitions for Calix services to be sold and provisioned. In the Provisioning Information tab, click the Resources checkbox labeled Calix and set up provisioning fields: Mac Address (Router Mac address), ONT FSAN (Optical access network number) and USOC(Calix Universal Service Ordering Code). Record the dXX fields used; you will need them when editing the service hook.
  4. Edit the service hook (/usr/local/billmax/local/service_hook). If the file does not exist, rename or copy the service_hook-dist file in the local directory. Make sure the file is owned by ‘billmax’ and is executable. In the service_hook file, edit the SERVICES hash. Add the following where ? is the resource number used for Calix:
    my $cmd = "$BILLMAXDIR/local/calix.pl";
    $SERVICES{?}{name}              = "calix";
    $SERVICES{?}{provision}         = "yes";
    $SERVICES{?}{data}              = ["-s", "{NEW_state}", "-n", "{NEW_d01}", "-fsan",   I    I     "{NEW_d04}", "-usoc", "{NEW_d05}" ];
    $SERVICES{?}{cmd}{create}       = "$cmd -action create";
    $SERVICES{?}{cmd}{delete}       = "$cmd -a delete " . escL($ENV{NEW_d01});
    $SERVICES{?}{cmd}{update}       = "$cmd -a update";
    $SERVICES{?}{remotecmd}         = "";
  5. Edit the calix.pl script (/usr/local/billmax/local/calix.pl). Set the credential values for Client ID, Client Secret, Username, Password. Set the value that identifies the field used for the Location ID (location_field), MAC address (mac_field), ONT FSAN (ont_fsan_field) and USOC (usoc field).
  6. Install the user hook (/usr/local/billmax/local/user_hook). Assuming that no user hook already exists, create an alias to the calix.pl script.
    1. Execute ln -s calix.pl user_hook
    2. Make sure the calix.pl script is owned by ‘billmax’ and is executable.
    3. If you already use a user hook for other purposes, you will need to edit your script to include the calix.pl script functionality.