45 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 45-1 lists the tasks required for configuring standard recycling:

Table 45-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.

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 45-1 shows in green the pipeline modules that you need to configure:

Figure 45-1 Pipeline Modules to Configure for Standard Recycling

Description of Figure 45-1 follows
Description of "Figure 45-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.

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
    

    Note:

    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
    

    Note:

    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.

      Note:

      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.

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