46 Configuring Your System for Dropped Calls and Continuation Calls

This chapter explains how to configure your Oracle Communications Billing and Revenue Management (BRM) system to support dropped calls and continuation calls. For more information about dropped calls and continuation calls, see "About Finding Dropped Calls and Continuation Calls".

Setting Up Your System to Identify Dropped Calls and Continuation Calls

To set up your system to identify dropped calls and continuation calls, perform these tasks:

  1. Creating the Dropped Calls ERA

  2. Configuring Batch Rating to Find Dropped Calls and Continuation Calls

  3. Configuring Real-Time Rating to Find Dropped Calls and Continuation Calls

Creating the Dropped Calls ERA

You create the dropped calls extended rating attribute (ERA) by editing the BRM_Home/sys/data/config/pin_config_provisioning_tags_droppedcall.xml file. You then load the file into the database's /config/provisioning_tag object by using the load_config_provisioning_tags utility.

The pin_config_provisioning_tags_droppedcall.xml file specifies the services to which the provisioning tag applies, the opcodes to run when a customer purchases or cancels a product or discount that contains the tag, and the fields to pass in the opcode's input flist.

For the dropped calls ERA, you pass the following fields in Table 46-1 to the PCM_OP_SUBSCRIPTION_PROVISION_ERA opcode:

Table 46-1 Dropped Calls ERA Fields

XML Field Description

MAX_TIME_TO_CONTINUATION_CALL

Specifies the allowable duration, in seconds, between a dropped call and a continuation call. The duration specifies the time between the end of a dropped call and the start of the continuation call. For example, if a dropped call ends at 10 a.m. and the MAX_TIME_TO_CONTINUATION_CALL is 300 (5 minutes), the continuation call starting timestamp must be between 10:00:00 and 10:04:59, inclusive.

If you do not specify a value, there's no time limit between the dropped call and the continuation call, as long as they both occur within the same billing cycle.

MAX_INTERVENING_CALLS

Specifies the allowable number of intermediate calls between a dropped call and a continuation call. For example, if you specify 0, BRM checks the customer's first call after the dropped call only.

If you do not specify a value, BRM allows an infinite number of calls between the dropped call and the continuation call.

SAME_CALLED_PARTY

Specifies whether the continuation call must be to the same called number as the dropped call or if it can be to another number.

0 = The continuation call can be to any number.

1 = The continuation call must be to the same number as the dropped call. That is, it must have the same B number.

If you do not specify a value, BRM requires the same called number.


If you do not specify any profile values, the dropped calls feature requires only that the continuation call be made to the same number as the dropped call and that the call occurs within the same billing cycle as the dropped call.

For more information on how to edit the pin_config_provisioning_tags_droppedcall.xml file, see "Working with Provisioning Tags" in BRM Setting Up Pricing and Rating.

Important:

The dropped call promotional description is included in the BRM_Home/sys/msgs/eradescr/era_descr.en_US file. Customer Center cannot display the dropped call ERA until you reload the era_descr.en_US file with the load_localized_strings utility. See "load_localized_strings" in BRM Developer's Guide.

Sample pin_config_provisioning_tags_droppedcall.xml File

The following sample pin_config_provisioning_tags_droppedcall.xml file specifies that when a customer purchases a GSM telephony service, BRM calls the PCM_OP_SUBSCRIPTION_PROVISION_ERA opcode with the following information in the input flist:

  • The customer's account and service POIDs

  • The service profile ERA name set to DROPPED_CALL

  • MAX_TIME_TO_CONTINUATION_CALL set to 600 seconds

  • MAX_INTERVENING_CALLS set to 10

  • SAME_CALLED_PARTY set to 1

The opcode then creates a /profile/serv_extrating object that stores a service-level profile ERA named DROPPED_CALL. When the customer cancels the GSM telephony service, the opcode deletes the /profile/serv_extrating object.

<BusinessConfiguration xmlns="http://www.portal.com/schemas/BusinessConfig"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.portal.com/schemas/BusinessConfig 
 business_configuration.xsd">
    <ProvisioningTagConfiguration>
      <ProvisioningTagList>
        <ProvisioningTag name="DroppedCall">
          <PermittedTypes>/service/telco/gsm/telephony</PermittedTypes>
          <OpcodeList>
            <OpcodeName>PCM_OP_SUBSCRIPTION_PROVISION_ERA</OpcodeName>
            <OpcodeNumber>9066</OpcodeNumber>
            <OpcodeMode>0</OpcodeMode>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_POID</OpcodeParamName>
                <OpcodeParamValue>0.0.0.0 /profile/serv_extrating -1</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_FLAGS</OpcodeParamName>
                <OpcodeParamValue>0</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_ACCOUNT_OBJ</OpcodeParamName>
                <OpcodeParamValue>$ACCOUNT$</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_SERVICE_OBJ</OpcodeParamName>
                <OpcodeParamValue>$SERVICE$</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_NAME</OpcodeParamName>
                <OpcodeParamValue>DROPPED_CALL</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_INHERITED_INFO.PIN_FLD_EXTRATING.PIN_FLD_REFERENCE_COUNT</OpcodeParamName>
                <OpcodeParamValue>1</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_INHERITED_INFO.PIN_FLD_DATA_ARRAY[0].PIN_FLD_NAME</OpcodeParamName>
                <OpcodeParamValue>MAX_INTERVENING_CALLS</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_INHERITED_INFO.PIN_FLD_DATA_ARRAY[0].PIN_FLD_VALUE</OpcodeParamName>
                <OpcodeParamValue>10</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_INHERITED_INFO.PIN_FLD_DATA_ARRAY[1].PIN_FLD_NAME</OpcodeParamName>
                <OpcodeParamValue>SAME_CALLED_PARTY</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_INHERITED_INFO.PIN_FLD_DATA_ARRAY[1].PIN_FLD_VALUE</OpcodeParamName>
                <OpcodeParamValue>1</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_INHERITED_INFO.PIN_FLD_DATA_ARRAY[2].PIN_FLD_NAME</OpcodeParamName>
                <OpcodeParamValue>MAX_TIME_TO_CONTINUATION_CALL</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_INHERITED_INFO.PIN_FLD_DATA_ARRAY[2].PIN_FLD_VALUE</OpcodeParamName>
                <OpcodeParamValue>600</OpcodeParamValue>
            </OpcodeParamsList>
        </OpcodeList>

        <OpcodeList>
            <OpcodeName>PCM_OP_SUBSCRIPTION_PROVISION_ERA</OpcodeName>
            <OpcodeNumber>9066</OpcodeNumber>
            <OpcodeMode>1</OpcodeMode>

            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_POID</OpcodeParamName>
                <OpcodeParamValue>0.0.0.0 /profile/serv_extrating -1</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_FLAGS</OpcodeParamName>
                <OpcodeParamValue>0</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_ACCOUNT_OBJ</OpcodeParamName>
                <OpcodeParamValue>$ACCOUNT$</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_SERVICE_OBJ</OpcodeParamName>
                <OpcodeParamValue>$SERVICE$</OpcodeParamValue>
            </OpcodeParamsList>
            <OpcodeParamsList>
                <OpcodeParamName>PIN_FLD_NAME</OpcodeParamName>
                <OpcodeParamValue>DROPPED_CALL</OpcodeParamValue>
            </OpcodeParamsList>
        </OpcodeList>

    </ProvisioningTag>
    </ProvisioningTagList>
    </ProvisioningTagConfiguration>
    </BusinessConfiguration>

Configuring Batch Rating to Find Dropped Calls and Continuation Calls

To set up batch rating to find dropped calls and continuation calls, configure the FCT_DroppedCall module to run after the FCT_Account module. See "FCT_DroppedCall" in BRM Configuring Pipeline Rating and Discounting.

When you configure the FCT_DroppedCall module, you specify the following:

Specifying the EDR Fields for Finding Dropped Calls

You specify the EDR field for identifying dropped calls by using the CheckField registry section. This section lists the EDR field name and its permissible values.

Note:

Only one EDR field can be used to identify a dropped call.

The CheckField section uses the following format:

CheckField
{
  Name = EDR_field
  Value = Field_value
}

Use the CheckField.Name entry to specify the EDR field name, such as DETAIL.CALL_COMPLETION_INDICATOR, and use the CheckField.Value entry to specify the EDR value, such as 1. If more than one value qualifies an EDR as a dropped call, enter multiple values separated by a comma (,) with no spaces; for example: 5,6,7. BRM interprets the comma as a Boolean OR value.

Specifying the EDR Fields for Identifying Continuation Calls

By default, the FCT_DroppedCall module writes the following dropped call EDR fields to memory and uses them to identify a continuation call:

  • DETAIL.A_NUMBER

  • DETAIL.B_NUMBER

    Note:

    This field is used only if you specified that continuation calls must be to the same called number as the dropped call. See "About the Criteria for Finding Dropped Calls".
  • DETAIL.CHARGING_END_TIMESTAMP

  • DETAIL.CUST_A.BILL_NEXT_DATE

An EDR is flagged as a continuation call if its EDR field values match those of the dropped call EDR.

You can use additional EDR fields to identify continuation calls by using the WrittenFields registry section. You list the EDR fields to write to memory by using dummy key values, such as 1 and 2, as shown below:

WrittenFields
{
  1 = EDR_field
  2 = EDR_field
  3 = EDR_field
}

Mapping Dropped Call Fields to Continuation Call Fields

By default, the FCT_DroppedCall module does not enrich the continuation call EDR. You can add information from the dropped call EDR to the continuation call EDR by using the AddedFields registry section. This section maps dropped call EDR fields to continuation call EDR fields.

Important:

When you map a dropped call EDR field to a continuation call EDR field, both fields must have the same data type. You can find a field's data type by reading the container description file (container.dsc).

The AddedFields section uses the following format:

AddedFields
{
  Fieldx
  {
    ContinuationCallField = EDR_Field
    DroppedCallField = EDR_Field
  }
}

Each Fieldx section maps one dropped call EDR field to one continuation call EDR field. You create a Fieldx section for each pair of EDR fields that you want to map. For example, to map three EDR pairs, create a Field1 section, a Field2 section, and a Field3 section.

Configuring Real-Time Rating to Find Dropped Calls and Continuation Calls

To configure real-time rating to find dropped calls and continuation calls, perform these tasks:

  1. Specify the termination causes that qualify as a dropped call. See "Specifying the Termination Causes for Dropped Calls".

  2. Specify how BRM identifies continuation calls. See "Specifying the Rules for Finding Continuation Calls".

Specifying the Termination Causes for Dropped Calls

BRM stores a call session's termination cause in the PIN_FLD_TERMINATE_CAUSE field of the /active_session object. For each service type that supports dropped calls, you must specify which field values qualify as a dropped call by editing a service-specific pin_telco_aaa_params.xml file. You then load the file into the BRM database's /config/aaa/gsm/xxx object by running the load_pin_telco_aaa_params utility.

For more information, see "load_pin_telco_aaa_params".

Table 46-2 lists the pin_telco_aaa_params.xml file to use for each service type and the configuration object in which the data is stored. You can find these files in the BRM_Home/sys/data/config directory.

Table 46-2 pin_telco_aaa_params.xml File

Service Type Service-Specific pin_telco_aaa_params.xml File Configuration Object

GSM data

pin_telco_gsm_data_aaa_params.xml

/config/aaa/gsm/data

GSM fax

pin_telco_gsm_fax_aaa_params.xml

/config/aaa/gsm/fax

GSM SMS

pin_telco_gsm_sms_aaa_params.xml

/config/aaa/gsm/sms

GSM telephony

pin_telco_gsm_telephony_aaa_params.xml

/config/aaa/gsm/telephony

Custom service types

pin_telco_aaa_params.xml

/config/aaa


To specify the termination causes that qualify as a dropped call, perform these tasks for each service type that supports dropped calls:

  1. Open the appropriate service-specific pin_telco_aaa_params.xml file in a text editor.

  2. Edit the DroppedCallCause XML entry. This entry specifies the PIN_FLD_TERMINATE_CAUSE field values that qualify as a dropped call. Add a DroppedCallCause entry for each value that qualifies as a dropped call.

    <TerminationCauseInfo>
       <DroppedCallCause>4</DroppedCallCause>
    </TerminationCauseInfo>
    <TerminationCauseInfo>
       <DroppedCallCause>5</DroppedCallCause>
    </TerminationCauseInfo>
    

    Note:

    The values correspond to the 3GPP circuit switch (32.005) and packet switch (32.015) codes.
  3. Save and close the file.

  4. Load the file into the BRM database by using the load_pin_telco_aaa_params utility:

    load_pin_telco_aaa_params -f pin_telco_aaa_params_file 
    

    where pin_telco_aaa_params_file is the name and location of the service-specific pin_telco_aaa_params.xml file. The file name must include the .xml extension.

  5. Stop and restart the Connection Manager (CM). See "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

To verify that the data loaded correctly, display the service-specific /config/aaa/gsm/xxx object by using the Object Browser, or use the robj command with the testnap utility. See "Reading an Object and Writing Its Contents to a File" in BRM Developer's Guide.

Specifying the Rules for Finding Continuation Calls

When BRM authorizes or ends a prepaid call, the BRM AAA opcodes determine if the current call is a continuation call by calling the PCM_OP_TCF_AAA_DETECT_CONTINUATION_CALL helper opcode at the TAG_SESSION processing stage.

The PCM_OP_TCF_AAA_DETECT_CONTINUATION_CALL helper opcode calls, at the MATCH_CONTINUOUS_CALL processing stage, the policy opcode(s) specified in the /config/opcodemap/tcf object. By default, /config/opcodemap/tcf is configured to call the PCM_OP_TCF_AAA_POL_MATCH_CONTINUATION_CALL policy opcode. The policy opcode contains the default logic and criteria for finding continuation calls.

  • To control which opcodes call the helper opcode and the service types that are supported, modify the pin_config_opcodemap_tcf file. See "Configuring BRM to Call the Helper Opcode".

  • To change the criteria for finding continuation calls, create a custom policy opcode and configure PCM_OP_TCF_AAA_DETECT_CONTINUATION_CALL to call your custom policy opcode at the MATCH_CONTINUOUS_CALL processing stage. See "Specifying the rules for finding continuation calls".

Configuring BRM to Call the Helper Opcode

By default, the following opcodes call the PCM_OP_TCF_AAA_DETECT_CONTINUATION_CALL helper opcode at the TAG_SESSION processing stage when processing GSM telephony events:

  • PCM_OP_TCF_AAA_AUTHORIZE

  • PCM_OP_TCF_AAA_STOP_ACCOUNTING

You can modify which opcodes call the helper opcode or support additional service types by editing the pin_config_opcodemap_tcf configuration file. However, if you do modify which opcodes call the helper opcode, you must configure both the opcode that creates the /active_session object and the stop accounting opcode to call PCM_OP_TCF_AAA_DETECT_CONTINUATION_CALL at the TAG_SESSION processing stage. Although the /active_session object can be created by any Services Framework AAA opcode, the object is created only once and is reused by the other Services Framework AAA opcodes. BRM identifies dropped calls when the /active_session object is created and deletes redundant /active_session objects when the session ends.

Important:

If you configure only PCM_OP_TCF_AAA_STOP_ACCOUNTING to call the helper opcode, you must set the /config/aaa/gsm/xxx object's DeletedFlag to True.

To modify the opcodes or service types, perform these tasks:

  1. Open the BRM_Home/sys/data/config/pin_config_opcodemap_tcf configuration file in a text editor.

  2. (Optional) Configure an opcode to call a helper opcode by editing the Framework_Opcode line. For example, to configure PCM_OP_TCF_AAA_REAUTHORIZE to call a helper opcode, set Framework_Opcode to PCM_OP_TCF_AAA_REAUTHORIZE.

    #Framework_Opcode: PCM_OP_TCF_AAA_REAUTHORIZE
    #Processing_Stage: TAG_SESSION
    #Opcode_Map:/service/telco/gsm/telephony, PCM_OP_TCF_AAA_DETECT_CONTINUATION_CALL
    
  3. (Optional) Add an Opcode_Map line for each service type that supports the dropped calls feature. For example, to configure PCM_OP_TCF_AAA_STOP_ACCOUNTING to call PCM_OP_TCF_AAA_DETECT_CONTINUATION_CALL when processing GPRS services, add the following line:

    Framework_Opcode: PCM_OP_TCF_AAA_STOP_ACCOUNTING
    Processing_Stage: TAG_SESSION
    Opcode_Map:/service/telco/gsm/telephony, PCM_OP_TCF_AAA_DETECT_CONTINUATION_CALL
    Opcode_Map:/service/telco/gprs, PCM_OP_TCF_AAA_DETECT_CONTINUATION_CALL
    
  4. Save and close the file.

  5. Load the file into the BRM database by using the load_aaa_config_opcodemap_tcf utility:

    load_aaa_config_opcodemap_tcf -i|-f pin_config_opcodemap_tcf
    

    Note:

    To replace the entire contents of the /config/opcodemap/tcf object, use the -f parameter. To append data to the object, use the -i parameter.
  6. Stop and restart the CM. See "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

To verify that the opcode mappings were loaded correctly, display the /config/opcodemap/tcf object by using the Object Browser, or use the robj command with the testnap utility. See "Reading an Object and Writing Its Contents to a File" in BRM Developer's Guide.

Customizing the Criteria for Finding Continuation Calls

To change the criteria for finding continuation calls, you must create a custom policy opcode. The policy opcode can examine specific flist fields, determine whether an event meets the criteria for a continuation call, and then return to the helper opcode the PIN_FLD_RESULT output flist field set to the following:

  • 0 to indicate that the current call is not a continuation call.

  • 1 to indicate that the current call is a continuation call.

  • 2 to indicate that the current call is not a continuation call because the maximum time duration or maximum number of intermediate calls between a dropped call and a continuation call was exceeded.

For information on creating custom policy opcodes, see "Writing a Custom Facilities Module" in BRM Developer's Guide.

  • You must then configure BRM to call your custom policy opcode, either after or instead of the PCM_OP_TCF_AAA_POL_MATCH_CONTINUATION_CALL policy opcode.

To configure the helper opcode to call your custom policy opcode at the MATCH_CONTINUOUS_CALL processing stage, perform these tasks:

  1. Open the BRM_Home/sys/data/config/pin_config_opcodemap_tcf configuration file in a text editor.

  2. Change the Opcode_Map line to reference your custom opcode. For example, to call PCM_OP_YOUR_CUSTOM_OPCODE, enter the following:

    Framework_Opcode: PCM_OP_TCF_AAA_DETECT_CONTINUATION_CALL
    Processing_Stage: MATCH_CONTINUOUS_CALL
    Opcode_Map:/service/telco, PCM_OP_YOUR_CUSTOM_OPCODE
    Opcode_Map:/service/telco/gsm, PCM_OP_YOUR_CUSTOM_OPCODE
    

    Note:

    Make sure you add an Opcode_Map line for each service type that supports the dropped calls feature.
  3. Save and close the file.

  4. Load the file into the BRM database by using the load_aaa_config_opcodemap_tcf utility:

    load_aaa_config_opcodemap_tcf -i|-f pin_config_opcodemap_tcf
    

    Note:

    To replace the entire contents of the /config/opcodemap/tcf object, use the -f parameter. To append data to the object, use the -i parameter.
  5. Stop and restart the CM. See "Starting and Stopping the BRM System" in BRM System Administrator's Guide.

To verify that the opcode mappings were loaded correctly, display the /config/opcodemap/tcf object by using the Object Browser, or use the robj command with the testnap utility. See "Reading an Object and Writing Its Contents to a File" in BRM Developer's Guide.

Purging Old Call Data from Memory

To purge old /active_session objects from IMDB Cache or the BRM database, use the following command:

pin_clean_asos -object "object_type" [-expiration_time number_of_hours] [-state state_value]

For more information, see "pin_clean_asos" in BRM System Administrator's Guide.

To purge old call data from pipeline memory and the dropped calls data file, use the RemoveLimit semaphore file entry:

ifw.Pipelines.ALL_RATE.Functions.FunctionPool.DroppedCall.RemoveLimit = 7

For more information, see "FCT_DroppedCall" in BRM Configuring Pipeline Rating and Discounting.