18 Configuring Standard Recycling

This chapter explains how to set up the Oracle Communications Billing and Revenue Management (BRM) standard recycling feature.

Before you read this document, you should be familiar with:

About Configuring Standard Recycling

Table 18-1 lists the tasks required for configuring standard recycling:

Table 18-1 Standard Recycling Configuration Tasks

Task Description

Configure the pre-processing pipeline

See "Configuring a Preprocessing Pipeline".

  • Configure your input module.

  • Configure the OUT_GenericStream pipeline module.

  • Configure MultiDB routing logic (optional).

Configure the rating pipeline

See "Configuring Standard Recycling in a Rating Pipeline".

  • Configure the INP_GenericStream pipeline module.

  • Configure the FCT_PreSuspense pipeline module.

  • Configure the FCT_Reject pipeline module.

  • Set RejectStream to SuspenseCreateOutput.

  • Configure the FCT_Suspense or pipeline module.

  • Configure the SuspenseCreateOutput registry entry.

  • Configure the SuspenseUpdateOutput registry entry.

Configure the pre-recycling pipeline

See "Configuring a Pre-Recycling Pipeline".

  • Configure the INP_Recycle pipeline module.

  • Edit the IRL_PipelineSplitting.data pipeline module.

  • Configure the OUT_GenericStream pipeline module.

Configure recycle request handling

See "Configuring Recycle Request Handling".

  • Configure the DAT_Listener pipeline module.

  • Configure the DAT_Recycle pipeline module.

Configure a pipeline module to add recycle keys to EDRs (if needed)

See "Configuring a Pipeline Module to Add Recycle Keys to EDRs".

  • Used by features that temporarily suspend rating.

Configure pin_recycle

See "Configuring the pin_recycle Utility".

  • Set up pin_recycle to recycle suspended EDRs.

Set up Suspended Event (SE) Loader

See "Configuring SE Loader for Standard Recycling".

  • Configure the Batch Controller.

  • Edit the Infranet.properties file.

Confirm that pin_rel is configured.

  • Ensure that pin_rel is configured for standard recycling.

Map EDR field values to brand information (if needed)

See "Mapping EDR Fields to Brand Information".

  • Edit the pin_suspense_edr_fld_map file.

  • Run the load_pin_suspense_edr_fld_map utility.


Configuring Pipeline Modules for Standard Recycling

Standard recycling requires you to configure the rating pipeline to correctly handle suspended call records. For an example of a complete sample pipeline, see the Pipeline_Home/conf/wireless.reg. Pipeline_Home is the directory where you installed Pipeline Manager.

Figure 18-1 shows in green the pipeline modules that you need to configure:

Figure 18-1 Pipeline Modules to Configure for Standard Recycling

Description of Figure 18-1 follows
Description of ''Figure 18-1 Pipeline Modules to Configure for Standard Recycling''

Configuring a Preprocessing Pipeline

Standard recycling requires a preprocessing pipeline, and this section explains how to set it up.

For a complete example of a preprocessing pipeline, see Pipeline_Home/conf/wireless.reg.

All call records coming into your system for rating go through the preprocessing pipeline only once. After the preprocessing pipeline, EDRs go to the rating pipeline. Failed calls may be recycled through the rating pipeline multiple times, but they skip the preprocessing pipeline after going through once.

To configure your preprocessing pipeline:

  1. Define preprocessing pipelines in the registry. You need a separate preprocessing pipeline for each input format your system uses.

  2. Set up the input module of each pipeline to process call records from the external system you are using. You need a different pipeline for each call record format.

  3. Configure the OUT_GenericStream pipeline module as an output module of the preprocessing pipeline.

    • Add this entry to the DataDescription.StreamFormats section of each preprocessing pipeline:

      SOL42=./FormatDesc/Solution42/SOL42_V670_REL.dsc
      
    • Add this entry to the DataDescription.OutputMappings section of each preprocessing pipeline:

      SOL42=./FormatDesc/Solution42/SOL42_V670_REL_OutMap.dsc
      
    • Add this entry to the output module section of each preprocessing pipeline:

      Grammar=./FormatDesc/Solution42/SOL42_V670_REL_OutGrammar.dsc
      

    For complete examples of these registries, see Pipeline_Home/conf/wireless.reg. For details on this module, see "OUT_GenericStream".

  4. (Optional) Multidatabase Manager users typically add a Multidatabase Manager routing pipeline after the preprocessing pipeline. For details on setting up Multidatabase Manager, see "Installing a Multischema System" in BRM Installation Guide.

The preprocessing pipeline is now configured. Follow the steps in the next section to configure the rating pipeline.

Configuring Standard Recycling in a Rating Pipeline

All calls go through a rating pipeline at least once, and suspended calls may be recycled through this pipeline multiple times.

For a complete example of a rating pipeline, see Pipeline_Home/conf/wireless.reg.

Note:

You must use the input description file specified below. Customized description files are not supported.

To configure your rating pipeline:

  1. Configure the INP_GenericStream pipeline module as the input module.

    • Add this entry to the DataDescription.StreamFormats section of each rating pipeline:

      SOL42_INPUT=./FormatDesc/Solution42/SOL42_V670_REL_ForInput.dsc
      
    • Add this entry to the DataDescription.InputMappings section of each rating pipeline:

      SOL42_INPUT=./FormatDesc/Solution42/SOL42_V670_REL_InMap.dsc
      
    • Add this entry to the input module section of each rating pipeline:

      Grammar=./FormatDesc/Solution42/SOL42_V670_REL_InGrammar.dsc
      

    For examples of these entries, see Pipeline_Home/conf/wireless.reg. For details on this module, see "INP_GenericStream".

  2. Configure FCT_PreSuspense as the first function module of the pipeline. For details, see "FCT_PreSuspense".

  3. Configure FCT_Reject to route suspended calls to the suspense create output module (in Step 5.). For details, see "How the FCT_Reject Module Works" and "FCT_Reject".

  4. Set the RejectStream entry to SuspenseCreateOutput in the rating pipeline:

    ...
    ALL_RATE
    {
       Active                      = true
    
       CountryCode                 = 49
       MobileCountryCode           = 262
       NationalAccessCode          = 0
       InternationalAccessCode     = 00
       InternationalAccessCodeSign = +
       NetworkDestinationCode      = 172
       RejectStream                = SuspenseCreateOutput
    ...
    
  5. Configure FCT_Suspense as the last function module of the rating pipeline. You need to configure the registry section of this module. For details, see "FCT_Suspense".

  6. Confirm that your pipeline contains a MaxErrorRates output entry. If this entry is missing unexpected log file messages may result. For details on adding this entry, see "Specifying the Maximum Errors Allowed in an Input File".

  7. Configure the suspense create output module as one of the output modules for this pipeline.

    The following example works as a suspense create output module. Add the /suspended_usage object produced by this pipeline in the EventType entry:

    SuspenseCreateOutput
    
    {
       ModuleName                  = OUT_GenericStream
    
       EventType = /suspended_usage
    
       Module
       {
          Grammar                   = 
    ./formatDesc/Formats/SuspenseHandling/SuspendedUsageCreationGrammr.dsc
          DeleteEmptyStream         = True
    
          OutputStream
          {
          ModuleName              = EXT_OutFileManager
          Module
          {
             OutputPath            = ./data/reject
             OutputPrefix          = suspense_create_
             OutputSuffix          = .out
             TempPrefix            = tmp
    
             TempDataPath          = ./data/reject
             TempDataPrefix        = susp.create.tmp.
             TempDataSuffix        = .data
    
             Replace               = True
             AppendSequenceNumber  = False
             }
          }
       }
    } # end of SuspenseCreateOutput
    

    Important:

    To ensure output file integrity, specify a unique combination of OutputPath, OutputSuffix, and OutputPrefix values for each output stream defined in the registry.
  8. Configure the suspense update output module as one of the output modules for this pipeline.

    This example implements a suspense output module:

    #-----------------------------
    SuspenseUpdateOutput
    {
       ModuleName                  = OUT_GenericStream
    
       EventType = /tmp_suspended_usage
    
       Module
       {
          Grammar                   = ./formatDesc/Formats/SuspenseHandling/SuspendedUsageUpdateGrammar.dsc
          DeleteEmptyStream         = True
    
          OutputStream
          {
             ModuleName              = EXT_OutFileManager
             Module
             {
             OutputPath            = ./data/reject
             OutputPrefix          = suspense_update_
             OutputSuffix          = .out
             TempPrefix            = tmp
    
             TempDataPath          = ./data/reject
             TempDataPrefix        = susp.update.tmp.
             TempDataSuffix        = .data
    
             Replace               = True
             AppendSequenceNumber  = False
             }
          }
       }
    } # end of SuspenseUpdateOutput
    

    Important:

    To ensure output file integrity, specify a unique combination of OutputPath, OutputSuffix, and OutputPrefix values for each output stream defined in the registry.

Configuring a Pre-Recycling Pipeline

When suspended call records are recycled, they are first processed by a pre-recycling pipeline and then reprocessed by the original rating pipeline.

The pre-recycling pipeline used the INP_Recycle module. This module is used by standard recycling and Suspense Manager. It reads suspended usage records from the BRM database, restores original EDRs, applies edits to them, and pushes EDRs into the pre-recycling pipeline.

For a complete example of a pre-recycling pipeline, see Pipeline_Home/conf/wireless.reg.

To configure your pre-recycling pipeline:

  1. Configure INP_Recycle as the input module. For details, see "INP_Recycle".

    • In the EXT_InEasyDB module, change the SqlDetail entry to StdRecycleDetail.sql.

  2. Add and configure a pipeline module to send call records to the correct stream.

    • Single database schema systems: Use the "IRL_PipelineSplitting" module. Add and configure the IRL_PipelineSplitting module (an iRules module). Add this module to the pipeline registry iRules (its order in the registry is not important). Edit the IRL_PipelineSplitting.data file (in the Pipeline_Home/iScriptLib/iScriptLib_Suspense directory), adding pipeline name/output stream pairs. For syntax details, see "FCT_IRules".

    • Multischema systems that require Account Migration Manager: Use the "FCT_AccountRouter" module. Add and configure this module.

      Important:

      AMM is not part of base BRM. Contact your BRM account manager for information about using AMM.
  3. Configure the OUT_GenericStream pipeline module as an output module of the pre-recycling pipeline. Create a different "OUT_GenericStream" module for each rating pipeline used to recycle suspended calls.

    • Add this entry to the DataDescription.StreamFormats section of the pre-recycling pipeline:

      SOL42=./FormatDesc/Solution42/SOL42_V670_REL.dsc
      
    • Add this entry to the DataDescription.OutputMappings section of the pre-recycling pipeline:

      SOL42=./FormatDesc/Solution42/SOL42_V670_REL_OutMap.dsc
      
    • Add this entry to each output module section of the pre-recycling pipeline:

      Grammar=./FormatDesc/Solution42/SOL42_V670_REL_OutGrammar.dsc
      

    For details, see "OUT_GenericStream".

    Your pipelines are now ready to accept call records.

Configuring Recycle Request Handling

To configure recycle request handling, add DAT_Recycle to the registry data pool. Here is an example:

RecyclingData
{
   ModuleName=DAT_Recycle
   Module
   {
      Listener     =ifw.DataPool.Listener
      LogEvents    =True
      ControlPath  =./database/Oracle/Scripts/Suspense
      ParameterFile =parameter.isc
   }
}

For details, see "DAT_Recycle".

Configuring a Pipeline Module to Add Recycle Keys to EDRs

Programs and features that must temporarily interrupt and then restart rating use pin_recycle to recycle all EDRs after the interruption is over. The BRM features that add recycle keys to EDRs all have pipeline modules for doing this. See the feature documentation for details.

Configuring the pin_recycle Utility

To configure pin_recycle to recycle EDRs, set up a configuration file for pin_recycle. For details, see "Creating Configuration Files for BRM Utilities" in BRM System Administrator's Guide and "pin_recycle".

Configuring SE Loader for Standard Recycling

The procedures for installing, configuring, and using SE Loader are identical to those of RE Loader, except for the step listed here. For details see:

Standard recycling requires SE Loader configuration. Perform these tasks to set it up:

  1. Add a separate instance of SE Loader to each pipeline.

  2. Create a new BRM_Home/apps/pin_rel/suspense directory by copying the contents of BRM_Home/apps/pin_rel/gsm/tel to BRM_Home/apps/pin_rel/suspense. BRM_Home is the directory where you installed BRM components.

  3. Confirm that these files are in the BRM_Home/apps/pin_rel/suspense directory:

    • pin.conf

    • SampleRelHandler_config.values

    • SampleRelHandler.pl

  4. Add these entries to the BRM_Home/apps/pin_rel/suspense/SampleRelHandler_config.values file:

    $FILETYPE = "*.out.bc";
    $HANDLER_DIR = "BRM_Home/apps/pin_rel/suspense";#
    
  5. Edit the BRM_Home/apps/batch_controller/Infranet.properties file, adding SUSPENSE and RECYCLE_ROLLBACK entries to batch.random.events:

    batch.random.events     TEL,SMS,FAX,DATA,GPRS,SUSPENSE,RECYCLE_ROLLBACK
    

    Add these parameters to the new entries:

    #for SUSPENSE events:
    SUSPENSE.name                    SUSPENSE Usage
    SUSPENSE.handlers                suspHandler
    SUSPENSE.file.location           Pipeline_Home/data/reject
    SUSPENSE.file.pattern            suspense_ *.out
    
    suspHandler.name                 suspHandler
    suspHandler.max.at.highload.time 1
    suspHandler.max.at.lowload.time  1
    suspHandler.start.string           BRM_Home/apps/pin_rel/suspense /SampleRelHandler.pl
    
    #For RECYCLE_ROLLBACK events:
    RECYCLE_ROLLBACK.name            RECYCLE_ROLLBACK Usage
    RECYCLE_ROLLBACK.handlers        recycleRollbackHandler
    RECYCLE_ROLLBACK.file.location   Pipeline_Home/data/error
    RECYCLE_ROLLBACK.file.pattern    testDB*.err
    
    recycleRollbackHandler.name      recycleRollbackHandler
    recycleRollbackHandler.max.at.highload.time  1
    recycleRollbackHandler.max.at.lowload.time   1
    recycleRollbackHandler.start.string      BRM_Home/apps/pin_rel/recycle/SampleRelHandler.pl
    
  6. Confirm that these BRM_Home/apps/pin_rel/Infranet.properties file entries are set to false:

    infranet.rel.validate_dbnumber = false
    infranet.rel.validate_indexes = false
    

    Note:

    The SE Loader architecture makes obsolete the database consistency checks and number validation controlled by these entries.
  7. Create a new BRM_Home/apps/pin_rel/recycle directory by copying the contents of BRM_Home/apps/pin_rel/gsm/tel to BRM_Home/apps/pin_rel/recycle.

  8. Add these entries to the BRM_Home/apps/pin_rel/recycle/SampleRelHandler_config.values file:

    $FILETYPE = "*.err.bc";
    $HANDLER_DIR = "BRM_Home/apps/pin_rel/recycle";#
    
  9. Add this entry to each output stream of the pre-recycling pipeline in your Pipeline_Home/conf/wireless.reg file:

    EventType = /recycle_suspended_usage
    

Mapping EDR Fields to Brand Information

If you use Brand Manager, you need to follow these instructions to make standard recycling brand-aware.

The purpose of mapping unique brand values to EDR fields is to allow standard recycling to identify the brand for a call record if it does not contain enough information to identify the subscriber. This process involves mapping values unique to a brand (such as a range of phone numbers) to the corresponding EDR fields. You also give these mappings a valid time period.

You load this brand-to-EDR field mapping into /config/suspense_edr_fld_map objects in the BRM database by using the load_pin_suspense_edr_fld_map utility. For details, see "load_pin_suspense_edr_fld_map".

The FCT_Suspense module normally adds the brand POID to suspended call records during pipeline processing. If it is unable to do so, then FCT_Suspense uses the information in /config/suspense_edr_fld_map to determine the brand POID.

To load the necessary brand information into standard recycling:

  1. Determine the EDR fields to map to each brand.

  2. Determine the valid value ranges for each field.

  3. Decide how long to make the number-to-brand mapping valid.

  4. Look up the POIDs of brands.

  5. Edit the pin_suspense_edr_fld_map file (in the BRM_Home/sys/data/config directory) to map your brands to their POIDs.

    The syntax for an entry:

    edr_field Name   field_name
    edr_field_number     valid_from_date    valid_to_date    brand_POID
    

    The valid_from_date and valid_to_date use the YYYYMMDD format.

    Excerpt from a sample file with examples:

    ==============================================================
    #
    # Sample file:
    #=============================================================
    #
    edr_field_name  DETAIL.A_NUMBER
    881768*      20031231       20371231     0.0.0.5 /newtel 1 1
    881759*      20031231       20371231     0.0.0.5 /newtel 1 1
    
    edr_field_name  DETAIL.ASS_GSMW_EXT.PORT_NUMBER
    66325*        20031231      20371231     0.0.0.5 /newtel 1
    66324*        20031231       20371231     0.0.0.5 /newtel 1 1
    

    This example shows:

    • That all call records with DETAIL.A_NUMBERs that start with 881768 map to the brand with the POID of 0.0.0.5 /newtel 1 1.

    • The mapping for this entry is valid from December 31, 2003 through December 31, 2037.

  6. (Optional) Edit pin_suspense_edr_fld_map to map your EDR fields to brands for a specific period of time.

  7. Run the load_pin_suspense_edr_fld_map utility (in the BRM_Home/bin directory) to load the brand mapping information into the database. For details, see "load_pin_suspense_edr_fld_map".

    Important:

    The load_pin_suspense_edr_fld_map utility requires a configuration file to function correctly. For details, see "Using Configuration Files to Connect and Configure Components" in BRM System Administrator's Guide.

    Sample syntax:

    %load_pin_suspense_edr_fld_map pin_suspense_edr_fld_map
    

    This program loads your mapping information into a /config/suspense_edr_fld_map object.

What's Next

You have now set up BRM and Pipeline Manager to accept and recycle suspended EDRs. For details on day-to-day tasks necessary to recycle EDRs, see "About Standard Recycling" and "Using Standard Recycling to Recycle Suspended EDRs".