86 Pipeline Manager Input and Output Modules

This chapter provides reference information for Oracle Communications Billing and Revenue Management (BRM) Pipeline Manager input and output modules.

EXT_InEasyDB

The EXT_InEasyDB module handles pipeline input from a database. See:

This module runs automatically when you start Pipeline Manager.

Configure this module as a submodule of the INP_GenericStream module. See "INP_GenericStream".

To configure input from files, see "EXT_InFileManager".

Dependencies

Requires a connection to the Pipeline Manager database.

Registry Entries

Table 86-1 lists the EXT_InEasyDB registry entries.

Table 86-1 EXT_InEasyDB Registry Entries

Entry Description Mandatory

ControlPath

Specifies the path for SQL, parameter, job and restart files.

./database/Oracle/Scripts/Suspense

Yes

DataConnection

Specifies the connection to the Pipeline Manager database.

Yes

FieldDelimiter

Specifies the character that separates the EDR fields.

Yes

FileName

Specifies the job and restart file name prefix.

Yes

InputDirEmptyTime

Specifies the time period (in seconds), the input directory must be empty before the EVT_INPUT_DIR_EMPTY event is sent.

No

InputPrefix

Specifies the prefix of the stream/output file name.

No

InputSuffix

Specifies the flag which tells the stream to generate date and time information in the stream/output file name.

Yes

NumberOfRows

Specifies the array fetch size.

Yes

ParameterFile

Specifies the name of a file that contains iRule parameter values which can be used as placeholders in the SQL statements. They can be used in the update or startup registry.

Yes

Replace

Specifies the prefix/suffix should be replaced (True) or appended (False).

No

SqlDetail

Specifies the name of a file that contains the SQL select statement for generating an EDR detail record. The choices are:

  • StdRecycleDetail.sql - used with the standard recycling feature. Used without changes.

  • RecycleDetail.sql - used with the Suspense Manager service integration component. You need to customize this file for your implementation. For details, see "Installing and Configuring Suspense Manager".

Yes

SqlHeader

Specifies the name of a file that contains the SQL select statement for generating an EDR header (result must be exactly one row).

No

SqlOnFailure

Specifies the name of a file that contains the SQL statement which is run if the output file is incorrect.

Yes

SqlOnSucess

Specifies the name of a file that contains the SQL statement that is run if the output file is correct.

Yes

SqlTrailer

Specifies the name of a file that contains the SQL select statement for generating an EDR trailer (result must be exactly one row).

No

Sample Registry

Stream 
{ 
   ControlPath = ./database/Oracle/Scripts/Suspense 
   DataConnection = IntegRate.DataPool.Login 
   FileName = DB 
   FileNameExtension = true 
  inputPrefix = sol42_ 
  inputSuffix = .dat 
   FieldDelimiter = ; 
   ParameterFile = parameter.isc 
   SqlHeader = header.sql 
   SqlDetail = detail.sql 
   SqlTrailer = trailer.sql 
   SqlOnSuccess = success.sql 
   SqlOnFailure = failure.sql 
   Replace = true 
   SynchronizeWithOutput = true 
   NumberOfRows = 1000
} 

Event Messages

Table 86-2 lists the EXT_InEasyDB event messages.

Table 86-2 EXT_InEasyDB Event Messages

Message Description Send/Recv

MSG_STREAM_START

The database input stream is started.

Send: Input module

Send: Format

MSG_STREAM_END

The database input stream is stopped.

Send: Input module

Send: Format

MSG_STREAM_BEGIN

The database stream starts the processing of a new input file.

Send: Input module

MSG_STREAM_END

The current file has been completely processed.

Send: Input module

MSG_STREAM_STOP

The database input stream is stopped (inactive).

Send: Input module

CMD_RENAME_INPUT_STREAM

The input file is renamed.

Receive: Output module

Events

Table 86-3 lists the EXT_InEasyDB events.

Table 86-3 EXT_InEasyDB Events

Event Trigger Parameter

EVT_CURSOR_OPENED

Starts the processing of a restart/ job file.

File name

EVT_INPUT_DIR_EMPTY

Control directory is empty.

Name of the control directory

EXT_InFileManager

The EXT_InFileManager module performs file handling for pipeline input from files. See:

This module runs automatically when you start Pipeline Manager.

Configure this module as a submodule of the INP_GenericStream module. See "INP_GenericStream".

To configure input from a database, see "EXT_InEasyDB".

Registry Entries

Table 86-4 lists the EXT_InFileManager registry entries.

Table 86-4 EXT_InFileManager Registry Entries

Entry Description Mandatory

DonePath

Specifies the path for the processed files.

Yes

DonePrefix

Specifies the prefix for the processed files.

No

DoneSuffix

Specifies the suffix for the processed files.

No

ErrorPath

Specifies the path for incorrect files.

Yes

ErrorPrefix

Specifies the prefix for incorrect files.

No

ErrorSuffix

Specifies the suffix for incorrect files.

No

InputDirEmptyTimeout

Specifies the time period (in seconds), the input directory must be empty before the EVT_INPUT_DIR_EMPTY event is sent.

No

InputPath

Specifies the path for the input files.

Yes

InputPrefix

Specifies the prefix for the input files.

No

InputSuffix

Specifies the suffix for the input files.

No

Replace

Specifies the prefix and or suffix can be replaced or appended.

Default = True.

No

TempPrefix

Specifies the prefix for temporary files.

No

Sample Registry Section

InputStream
  {
    ModuleName = EXT_InFileManager
    Module
    {
      InputDirEmptyTimeout = 10
      InputPath   = ./samples/wireless/data/in
      InputPrefix = test
      InputSuffix = .edr
      DonePath    = ./samples/wireless/data/done
      DonePrefix  = test
      DoneSuffix  = .done
      ErrorPath   = ./samples/wireless/data/err
      ErrorPrefix = test
      ErrorSuffix = .err
      TempPrefix  = tmp
      Replace     = TRUE
    }
  }

Event Messages

Table 86-5 lists the EXT_InFileManager event messages.

Table 86-5 EXT_InFileManager Event Messages

Message Description Send/Receive

REQ_INPUT_FILENAME

Request to send back the complete input file name (including path) corresponding to a specific stream name (as known by the TAM).

Receive

REQ_INPUT_TEMP_FILENAME

Request to send back the temporary input file name (including path) corresponding to a specific stream name (as known by the TAM).

Receive

REQ_DONE_FILENAME

Request to send back the final input file name (including path) corresponding to a specific stream name (as known by the TAM), after successful processing.

Receive

REQ_ERROR_FILENAME

Request to send back the final input file name (including path) corresponding to a specific stream name (as known by the TAM), after an unsuccessful processing.

Receive

REQ_RETURN_FILENAME

Request to send back the return file name (including path) corresponding to a specific stream name (as known by the TAM), when batch reject was requested.

Receive

REQ_RETURN_TEMP_FILENAME

Request to send back the temporary return file name (including path) corresponding to a specific stream name (as known by the TAM), when batch reject was requested.

Receive

EXT_OutFileManager

The EXT_OutFileManager module handles files for the OUT_Generic_Stream and OUT_Reject modules. See:

This module runs automatically when you start Pipeline Manager.

Registry Entries

Note:

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

Table 86-6 lists the EXT_OutFileManager registry entries.

Table 86-6 EXT_OutFileManager Registry Entries

Entry Description Mandatory

AppendSequenceNumber

Specifies if the sequence number should be appended to the output file name or not.

See "Applying a Prefix to the Sequence Number".

No

DeleteEmptyFile

Deletes the output file if only the header and trailer are written to the stream.

Note: By default, this entry is set to True. Configure any processes that manipulate output files to wait approximately one minute before acting on a file. This delay allows the module to delete empty files.

No

Replace

Specifies if the prefix/suffix should be replaced (TRUE) or appended (FALSE).

Default = True.

No

SequencerPrefix

This entry is used to specify a prefix to the sequence number before it gets appended to the generated output file name.

This entry is used only when AppendSequencerNumber is set to True.

See "Applying a Prefix to the Sequence Number".

No

TempPrefix

Specifies the prefix for the output stream's temporary data file. See "Configuring the Temporary File Name".

Default = .

No

TempDataPath

Specifies the path for the internal temporary file list.

Important: Do not change this registry entry. It is used by the pipeline for internal data processing.

No

TempDataPrefix

Specifies the prefix for the internal temporary file list.

Important: Do not change this registry entry. It is used by the pipeline for internal data processing.

No

TempDataSuffix

Specifies the suffix for the internal temporary file list.

Important: Do not change this registry entry. It is used by the pipeline for internal data processing.

No

OutputPath

Specifies the path for the output files.

See "Configuring File Prefixes and Suffixes".

Yes

OutputPrefix

Specifies the prefix for the output files.

See "Configuring File Prefixes and Suffixes".

No

OutputSuffix

Specifies the suffix for the output files.

See "Configuring File Prefixes and Suffixes".

No

UseInputStreamName

Specifies to use the input file name to build the output file name.

See "Creating an Output File Name from the Input File Name".

No

Sample Registry

#--------------------------------------------------------------------
# The /service/telco/gsm/telephony output stream
#--------------------------------------------------------------------
TELOutput
{
  ModuleName = OUT_GenericStream
  Module
  {
    Grammar = ./formatDesc/Formats/Solution42/SOL42_V430_REL_OutGrammar.dsc
    DeleteEmptyStream = True
    OutputStream
      {
      ModuleName = EXT_OutFileManager
      Module
      {
        OutputPath = ./samples/wireless/data/telout
        OutputPrefix = test
        OutputSuffix = .out
        UseInputStreamName = [2,4;4,6;8,&]
        TempPrefix   = tmp.
 
        TempDataPath    = ./samples/wireless/data/telout
        TempDataPrefix  = tel.tmp.
        TempDataSuffix  = .data
        Replace = TRUE
        SequencerPrefix = "+"
        }
     }
  }
} # end of TELOutput

Messages and Requests

Table 86-7 lists the EXT_OutFileManager messages and requests.

Table 86-7 EXT_OutFileManager Messages and Requests

Message Description Send/Receive

REQ_EVENTHANDLER_NAME

Get the event handler.

Send

Events

Table 86-8 lists the EXT_OutFileManager events.

Table 86-8 EXT_OutFileManager Events

Event Trigger Parameter

EVT_OUTPUT_FILE_READY

The renaming from the temporary file to the output file.

Target file name

INP_GenericStream

The INP_GenericStream module provides the input interface to pipelines. See "Configuring EDR Input Processing".

Registry Entries

Table 86-9 lists the INP_GenericStream registry entries.

Table 86-9 INP_GenericStream Registry Entries

Entry Description Mandatory

DefaultOutput

The default output stream.

Grammar

Path to the input grammar description file.

No

InputStream

The input submodule:

Sample Registry for INP_GenericStream

InputModule
{
  ModuleName  = INP_GenericStream 
  Module 
  { 
    DefaultOutput = EdrOutput 
    Grammar       = ./FMD/Formats/Solution42/SOL42_V430_InGrammar.dsc 
    InputStream 
      ModuleName = EXT_InFileManager 
      Module 
      { 
        InputPath   = ../input/maxitel/in 
        InputPrefix = Sol42 
        InputSuffix = .edr 
        DonePath    = ../input/maxitel/done 
        DonePrefix  = Sol42 
        DoneSuffix  = .done 
        ErrorPath   = ../input/maxitel/err 
        ErrorPrefix = Sol42 
        ErrorSuffix = .err 
        TempPrefix  = tmp 
        Replace     = TRUE 
      } 
    } 
  } 
}

INP_Realtime

The INP_Realtime module converts data in flist format to the EDR container format. See "Configuring a Real-Time Discounting Pipeline".

You can use an iScript to overwrite the mappings from flist fields to EDR fields, and to add custom mappings.

For more information, see "About Customizing Mapping of Flist Fields to Rating EDR Container Fields".

Registry Entries

Table 86-10 lists the INP_Realtime registry entries.

Table 86-10 INP_Realtime Registry Entries

Entry Description Mandatory

DefaultOutput

Specifies the default output module. This is always the OUT_Realtime module.

Yes

MappingScript

iScript file name.

No

OpcodeMapping

Specifies the XML file that describes the input flist field to EDR container field mapping.

BRM provides the following default flist-to-EDR mappings:

  • Discounting: discount_event.xml

  • Rerating: rate_event.xml

  • Zoning: zonemap_event.xml

You can customize these files to change how flists are mapped to EDR container fields. See "About Customizing Mapping of Flist Fields to Rating EDR Container Fields".

Yes

Sample Registry Entry

In this example, rate_event.xml maps rerate requests in flist format to EDR container fields.

InputModule
{
  ModuleName = INP_Realtime
  Module
  {
     DefaultOutput = PcmOutput
     OpcodeMapping = ./formatDesc/Formats/Realtime/rate_event.xml
     MappingScript = ./inflist.isc
  }

INP_Recycle

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

Dependencies

Requires connections to:

  • DAT_Recycling module

  • BRM database

Registry Entries

Table 86-11 lists the INP_Recycle registry entries.

Table 86-11 INP_Recycle Registry Entries

Entry Description Mandatory

DefaultOutput

Specifies the default output stream.

Yes

InfranetConnection

Specifies a connection to the BRM database.

Yes

InputStream

Configures the EXT_InEasyDB module.

See "EXT_InEasyDB".

Yes

RecyclingDataModule

Specifies a connection to the DAT_Recycling module.

Yes

Sample Registry

InputModule
{
 ModuleName            = INP_Recycle
  RecyclingDataModule   = ifw.DataPool.RecyclingData
  Module
  {
    DefaultOutput = TELOutput
    RecyclingDataModule = ifw.DataPool.RecyclingData
    InfranetConnection = ifw.DataPool.LoginInfranet
    InputStream
    {
      ModuleName = EXT_InEasyDB
      Module
      {
        ControlPath           = ./data/input/db
        DataConnection        = ifw.DataPool.LoginInfranet
        FileName              = DB
        FileNameExtension     = true
        InputPrefix           = sol42_
        InputSuffix           = .dat
        FieldDelimiter        = \t
        RecordDelimiter       = \n
        ParameterFile         = parameter.isc
        # optional parameter:
        SqlHeader             = RecycleHeader.sql
        SqlDetail             = StdRecycleDetail.sql
        # optional parameter:
        # SqlTrailer            = trailer.sql
        SqlOnSuccess          = success.sql
        SqlOnFailure          = failure.sql
        Replace               = true
        SynchronizeWithOutput = true
        NumberOfRows          = 1000
      }
    } # end of InputStream
  }
} # end of InputModule

EDR Container Fields

Table 86-12 lists the INP_Recycle EDR container fields.

Table 86-12 INP_Recycle EDR Container Fields

Alias field nameDefault field name Type Access Description

OVERRIDE_REASONS

DETAIL.ASS_SUSPENSE_OVERRIDE_REASONS

String

Write

The suspense reasons to ignore during recycling. Used by the other pipeline modules for rating call records in spite of the pipeline validation rules they violate.

PIPELINE_NAME

DETAIL.ASS_SUSPENSE_EXT.PIPELINE_NAME

String

Write

Name of the pipeline originally used for the EDR. Read from the database. Used by the IRL_PipelineSplitting module.

SUSPENSE_ID

DETAIL.ASS_SUSPENSE_EXT.SUSPENSE_ID

Integer

Write

The POID ID of the /suspended_usage object for this EDR. Used by Suspended Event Loader when updating suspended usage records.

BATCH_ID

DETAIL.ORIGINAL_BATCH_ID

String

Write

The original routing switch batch ID. Used for revenue assurance.

PROCESS_STATUS

DETAIL.INTERN_PROCESS_STATUS

Integer

Write

Indicates whether the EDR is being recycled (1) or test recycled (2).

INP_Restore

The INP_Restore module reads serialized EDRs from the file output by the OUT_Serialize module. It restores EDRs to normal format and pushes them into a pipeline.

Dependencies

Requires the use of the OUT_Serialize module to produce serialized EDRs in the correct format.

When you configure this module, you also configure the EXT_InFileManager module, which manages input, temporary, and done files. See "EXT_InFileManager" in the Infranet documentation for more information about this module.

Registry Entries

Table 86-13 lists the INP_Restore registry entries.

Table 86-13 INP_Restore Registry Entries

Entry Description Mandatory

DefaultOutput

Specifies the default output stream.

Yes

InputStream

Configures the EXT_InFileManager module.

Yes

Sample Registry

#---------------------------------
# Input section
#---------------------------------
Input
{
  UnitsPerTransaction             = 1

  InputModule
  {
    ModuleName                    = INP_Restore
    Module
    {
      DefaultOutput               = EdrOutput

      InputStream
      {
        ModuleName                = EXT_InFileManager
        Module
        {
          InputPath               = $DATA/in
          InputPrefix             = testpipeline
          InputSuffix             = .edr

          DonePath                = $DATA/done
          DonePrefix              = testpipeline
          DoneSuffix              = .done

          ErrorPath               = $DATA/err
          ErrorPrefix             = testpipeline
          ErrorSuffix             = .err

          TempPrefix              = tmp

          Replace                 = True

          InputDirEmptyTimeout    = 60
        }
      }
    }
  }
}

OUT_DB

The OUT_DB module sends output to the Pipeline Manager database.

See "Sending Output to a Database".

Dependencies

Requires a connection to the Pipeline Manager database.

Registry Entries

Table 86-14 lists the OUT_DB registry entries.

Table 86-14 OUT_DB Registry Entries

Entry Description Mandatory

ControlPath

Specifies the name of the control/configuration directory.

See "About the OUT_DB Module Configuration Files".

Yes

DataConnection

Specifies the connection to the Pipeline Manager database.

Yes

DeleteWithoutDetails

Specifies if an empty output stream should force a rollback of all actions.

Default = True

See "Handling Empty Output Streams".

No

Destination

Specifies the value for the destination field in the header record.

See "Specifying the Destination".

No

DetailTableDefinition

Specifies the name of the file that contains the description of the destination detail table.

See "About the OUT_DB Module Configuration Files".

Yes

FieldDelimiter

Specifies the delimiter between each field needed by the tokenizer.

See "About the OUT_DB Module Configuration Files".

Yes

HeaderTableDefinition

Specifies the name of the file that contains the description of the destination header table.

See "About the OUT_DB Module Configuration Files".

No

NumberOfRows

Specifies the array size for the bulk inserter. A good value is 500.

See "About the OUT_DB Module Configuration Files".

Yes

ParameterFile

Specifies the name of parameter file which contains optional key/value entries

See "Parameter File".

Yes

RowNumAlias

Specifies the alias that is replaced by the inserted rows.

See "About the OUT_DB Module Configuration Files".

Yes

SaveConfigurationFile

Specifies whether to delete the configuration file of each stream.

Default = False

See "About the OUT_DB Module Configuration Files".

No

Source

Specifies the value for the source field in the header record.

See "Specifying the Source".

No

SqlBeginStream

Specifies the name of SQL file that contains an SQL statement.

See "SqlBeginStream".

No

SqlEndStream

Specifies the name of SQL file that contains an SQL statement.

See "SqlEndStream".

No

StreamNameAlias

Specifies the alias that is replaced by the internal stream name value.

See "About the OUT_DB Module Configuration Files".

No

TrailerTableDefinition

Specifies the name of the file that contains the description of the destination trailer table.

See "About the OUT_DB Module Configuration Files".

No

WriteDefaultEdr

Specifies if a default EDR is written in empty data streams.

Default = False

See "Handling Empty Output Streams".

No

Sample Registry

Streams 
{ 
  EdrOutput 
  { 
    StreamDestination       = Database 
    Destination             = CBC21 
    Source                  = D1 
    DataConnection          = integrate.DataPool.Login 
    NumberOfRows            = 500 
    ControlPath             = control 
    FieldDelimiter          = ; 
    RowNumAlias             = __RowNum__ 
    StreamNameAlias         = __StreamName__ 
    SqlBeginStream          = beginStream.sql 
    SqlEndStream            = endStreamNeu.sql 
    ParameterFile           = parameter_out.isc 
    HeaderTableDefinition   = headerTable.dat 
    DetailTableDefinition   = detailTable.dat 
    TrailerTableDefinition  = trailerTable.dat 
    WriteDefaultEdr         = false 
    DeleteWithoutDetails    = true 
    SaveConfigurationFile   = true 
  } 
  Reject 
  { 
    StreamDestination       = File 
    OutputPath              = /data/reject 
    OutputSuffix            = .rej 
    Replace                 = True 
  }
}

Note:

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

OUT_DevNull

The OUT_DevNull module removes EDRs that are not needed by Pipeline Manager. See "Configuring Output of Discarded EDRs".

For more information, see "Discarding and Skipping EDRs".

Sample Registry

OutputCollection
    {
    DevNull
    {
        ModuleName = OUT_DevNull
        Module
        { 
        } 
    }

OUT_GenericStream

The OUT_GenericStream module handles the output stream for rated EDRs. See "Configuring EDR Output Processing".

When you configure the OUT_GenericStream module, you configure the EXT_OutFileManager module to specify file management options. See "EXT_OutFileManager".

Registry Entries

Table 86-15 lists the OUT_GenericStream registry entries.

Table 86-15 OUT_GenericStream Registry Entries

Entry Description Mandatory

AddInvoiceData

When set to True, the output module adds invoice data to each BRM billing record.

Default = False

See "Adding Pipeline Rating Data to an Invoice".

No

DeleteEmptyStream

Specifies to delete empty output streams.

If you run multiple RE Loader processes in parallel, set this option to True. Otherwise, RE Loader attempts to load the empty files.

Default = True

See "Configuring Pipeline Manager to Delete Empty Output Streams".

No

EventType

Specifies the BRM event type that the output file contains, such as /event/delayed/session/gsm.

Mandatory only for RE Loader-related pipelines

Grammar

Specifies the output grammar description file.

Yes

OutputStream

Contains the configuration for the EXT_OutFileManager.

Yes

ProcessType

Specifies which process created the output file and can be set to one of the following values:

  • RATING_PIPELINE

  • EVENT_EXTRACTION_TOOL

  • BACKOUT_PIPELINE

  • RERATING_PIPELINE

  • PIN_TRANSFORM_CDR

Mandatory only for RE Loader-related pipelines

Sequencer

Specifies the Sequencer for performing sequence generation.

This Sequencer must be defined in the SequencerPool section of the registry file.

No

Sample Registry

#--------------------------------------------------------------------
# The /service/telco/gsm/telephony output stream
#--------------------------------------------------------------------
TELOutput
{
  ModuleName = OUT_GenericStream
  ProcessType = RATING_PIPELINE
  EventType = /event/delayed/session/gsm

  Module
  {
    Grammar = ./formatDesc/Formats/Solution42/SOL42_V430_REL_OutGrammar.dsc
    DeleteEmptyStream = True
    Sequencer = SequenceGenerator_1
    OutputStream
      {
      ModuleName = EXT_OutFileManager
      Module
      {
        OutputPath = ./samples/wireless/data/telout
        OutputPrefix = test
        OutputSuffix = .out
        TempPrefix   = tmp.
        TempDataPath    = ./samples/wireless/data/telout
        TempDataPrefix  = tel.tmp.
        TempDataSuffix  = .data
        Replace = TRUE
        }
     }
  }
} # end of TELOutput

Note:

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

OUT_Realtime

The OUT_Realtime module converts data in the pipeline EDR output to flist format. It sends the output to the NET_EM module automatically. You don't need to configure a pointer to the NET_EM module.

You can use an iScript to overwrite the mappings and to add custom mappings. You use the registry file to specify the iScript.

For more information, see "Configuring a Real-Time Discounting Pipeline".

Registry Entries

Table 86-16 lists the OUT_Realtime registry entries.

Table 86-16 OUT_Realtime Registry Entries

Entry Description Mandatory

MappingScript

iScript file name.

No

DoRating

Specifies the pipeline to be used.

Set to False for Discounting/Zoning pipeline.

Set to True for Rerating pipeline.

Yes

Sample Registry Entry

OutputCollection
{
  PcmOutput
  {
    ModuleName = OUT_Realtime
    Module
    {
       DoRating = false
       #MappingScript = <Optional Output IScript>
    }
  }
}

OUT_Reject

The OUT_Reject module writes rejected EDRs to an output stream. The written record is exactly the same as the original input record. See "Configuring Output for Rejected or Duplicate EDRs".

When you configure the OUT_Reject module, you configure the EXT_OutFileManager module to specify file management options. See "EXT_OutFileManager".

Sample Registry

Reject 
{ 
  ModuleName = OUT_Reject 
  Module 
  { 
    OutputStream 
    { 
      ModuleName = EXT_OutFileManager 
      Module 
      { 
        OutputPath = ../output/tel/rej 
        OutputPrefix = Sol42 
        OutputSuffix = rej 
        TempPrefix   = tmp 
        Replace = TRUE 
        DeleteEmptyFile = FALSE 
      } 
    } 
  } 
}

Note:

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

OUT_Serialize

The OUT_Serialize module creates serialized EDR records with base64 encoding.

Dependencies

The INP_Restore module is required to read and restore EDRs serialized by this module.

When you configure this module, you also configure the EXT_OutFileManager module, which manages output files. See "EXT_OutFileManager" in the Infranet documentation for more information about this module.

Registry Entries

Table 86-17 lists the OUT_Serialize registry entries.

Table 86-17 OUT_Serialize Registry Entries

Entry Description Mandatory

DeleteEmptyStream

Specifies whether empty streams should be deleted. Set to True to prevent SEL from attempting to load empty files.

Default = True

Yes

ProcessType

Specifies which process created the output file. If used, sets the HEADER.CREATION_PROCESS field in the EDR to the value specified.

No

EventType

Specifies the Infranet event type that the output file contains, such as /event/delayed/session/gprs. If used, sets the HEADER.EVENT_TYPE field to the values specified.

No

OutputStream

Configures the EXT_OutFileManager.

Yes

Sample Registry

#------------------------------------------------------------
# The serialized EDR output stream
#------------------------------------------------------------
SerEdrOutput
{
  ModuleName = OUT_Serialize
  Module
  {
    DeleteEmptyStream = True
    ProcessType = RECYCLING_PIPELINE
    EventType = /event/delayed/session/gprs

    OutputStream
    {
      ModuleName = EXT_OutFileManager
      Module
      {
        OutputPath = $DATA/out
        OutputPrefix = test
        OutputSuffix = .out

        TempPrefix   = .
        TempDataPath    = $DATA/out
        TempDataPrefix  = tel.tmp.
        TempDataSuffix  = .data

        Replace = TRUE
      }
    }
  }
} # end of SerEdrOutput

Pipeline Dispatcher

Parses CDR files to multiple identical pipelines. This module routes files with a specified filename prefix and suffix from a single input directory to multiple pipelines in round-robin fashion.

Registry Entries

Table 86-18 lists the Pipeline Dispatcher registry entries.

Table 86-18 Pipeline Dispatcher Registry Entries

Entry Value Description Mandatory

DispatcherName

N/A

Specifies the name of the dispatcher. You can use any name, for example, Dispatcher1.

If your system requires multiple dispatchers, create a set of entries for each dispatcher.

N/A

DispatcherName.InputPath

String

Specifies the path of the CDR input directory. For example:

InputPath = ./samples/wireless/data/input

N/A

DispatcherName.InputPrefix

String

Specifies the prefix of all CDR files you want routed. The dispatcher only routes files with the specified prefix and suffix to your pipelines. For example:

InputPrefix = test

N/A

DispatcherName.InputSuffix

String

Specifies the suffix of all CDR files you want routed. The dispatcher only routes files with the specified prefix and suffix to your pipelines. For example:

InputSuffix = .edr

N/A

DispatcherName.TargetPipelines

N/A

Subgroup that lists which pipelines to route your CDR files.

N/A

DispatcherName.TargetPipelines.DestinationPipeline

String

Specifies to which pipelines to route CDR files. Add an entry for each pipeline. For example:

DestinationPipeline = ifw.Pipelines.W_SAMPLE

DestinationPipeline = ifw.Pipelines.W_SAMPLE_2

Important: The pipelines must use a separate input directory from the CDR input files.

N/A

DispatcherName.TargetPipelines.Routing

ROUND_ROBIN

Specifies to use round-robin routing.

Note: The dispatcher uses round-robin routing only.

Yes

Sample Registry

ifw
{
    PipelineDispatcher
    {
        ModuleName = EXT_PipelineDispatcher
        Module
        {
            Dispatcher1
            {
                InputPath = ./samples/wireless/input
                InputPrefix = TAP3
                InputSuffix = .edr
    
                TargetPipelines
                {
                    DestinationPipeline = ifw.Pipelines.Pipeline_1
                    DestinationPipeline = ifw.Pipelines.Pipeline_2
                    Routing = ROUND_ROBIN
                }
            }
        }
    }
}