21 Working with Extended Rating Attributes

This chapter describes how to use extended rating attributes (ERAs) in your Oracle Communications Billing and Revenue Management (BRM) system and describes how BRM rates events using ERAs.

Topics in this document:

About Extended Rating Attributes

Extended rating attributes (ERAs) provide special rates or discounts based on a specific attribute of a service or account, such as a telephone number. For example, you use ERAs to offer special friends and family rates or a birthday discount.

You can create two types of ERAs:

  • Service-level: An ERA that is used with a specific service, such as a telco service. Special rates for friends and family and closed user group telephone calls are examples of service-level ERAs.

    Note:

    A service-level ERA can be assigned to a service that represents a subscription so that it applies to all services associated with a customer's subscription.

  • Account-level: An ERA that can be used with any service (for example, a birthday discount).

You create an ERA by adding it to a provisioning tag.

ERAs must be configured with specific data for each customer. For example, to set up a birthday discount, you must specify the customer's birthday.

You configure ERAs in Customer Center, where ERAs are called promotions. ERAs you configure are stored as profiles.

For more information about ERAs, see:

About Multiple ERA Lists

For some types of ERAs, such as friends and family, you can create multiple lists for the same ERA. Each list is identified as a label in the BRM system. This enables you to set up rating and discounting to select the rate or discount based on the label name.

For example, you can design a friends and family ERA for a GSM telephony service that charges different rates for friends and family using the labels in Table 21-1:

Table 21-1 Example Labels and Rates

ERA Label Rate

MYFAMILY

1 cent per minute

MYFRIENDS

2 cents per minute

You include labels when you define the ERA in a provisioning tag.

You use price selectors, discount selectors, or charge selectors to specify different rates or discounts for each label.

About Configuring ERAs in Customer Center

Use Customer Center to configure an ERA for an individual customer. When a customer purchases a charge offer or discount that includes a provisioning tag with an ERA, that ERA is displayed in Customer Center as a promotion. You specify values for the ERA on the Promotion tab.

When you configure an ERA in Customer Center, the values are stored in one of these profile objects:

  • /profile/serv_extrating for a service-level ERA

  • /profile/acct_extrating for an account-level ERA

    Note:

    • Even though an account is qualified to use ERAs, you do not have to implement them in the account.

    • BRM does not validate any data entered when configuring ERAs (for example, telephone numbers for the friends and family discount). To create validation rules for these entries, edit the PCM_OP_CUST_POL_PREP_PROFILE policy opcode.

    • ERA codes are defined in Pipeline Manager configuration files. The types of values you enter in Customer Center depends on how you configure the ERAs in Pipeline Manager. For example, if the ERA is configured to match a telephone number in an event, you would enter telephone numbers in Customer Center.

    • When configuring ERAs in Customer Center, use only uppercase letters, ASCII 7-bit punctuation, and no spaces.

About Sharing ERAs

You can share the ERA values you configure for one service with other services by using profile sharing groups. For example, you can share the same list of phone numbers for a friends and family ERA among all the customers whose phone numbers are included in the list.

You can share service-level ERAs only.

Creating ERAs

This section is an overview of the main steps you take to create an ERA.

Each of the following steps is a separate task. Use the links for detailed information about each task:

  1. Create a provisioning tag. ERAs are defined in provisioning tags, which you can create in a few different ways.

  2. Define how the ERA is rated. For example, an ERA can be rated based on the usage type or on the ERA label name.

  3. Add the ERA's provisioning tag to a charge offer or discount offer.

  4. Add the name and description to the ERA description file. The name and description appears in Customer Center. For provisioning tags created with the provisioning tag framework, you must take additional steps to set up the name and description. See "Customizing ERA Names and Descriptions for Client Applications".

  5. Configure the ERA for an individual customer. See "About Configuring ERAs in Customer Center".

  6. (Optional) Create a profile sharing group to share the ERA configuration with other accounts or services. See "About Sharing ERAs".

    Note:

    You can share service-level ERAs only.

Creating Friends and Family ERAs

BRM has built-in support for friends and family ERAs. This feature enables you to create an ERA with multiple lists, each containing phone numbers, APN addresses, email addresses, or other values. You can also use profile sharing to share a friends and family ERA with multiple services.

Following is a description of the steps for creating a friends and family ERA. Use the links for more detailed information about carrying out each task:

  1. Create a provisioning tag.

    Create a provisioning tag with a service-level ERA called FRIENDS_FAMILY and one or more labels, which are ERA lists. The labels are optional, but they give you the flexibility to define multiple lists for an ERA and to use the label name as a rule for model selectors or charge selectors.

    You create the provisioning tag in different ways depending on its service:

    • For any service, you can use the provisioning tag framework. This involves defining the tag in the pin_config_provisioning_tags.xml file.

      The definition of the tag includes one or more opcodes that are run when the provisioning tag is purchased. For ERAs, you can use PCM_OP_SUBSCRIPTION_PROVISION_ERA. This opcode creates a /profile object for the ERA.

    • For telco services, use the Provisioning Tags application, or modify and load the service-specific version of the pin_telco_tags file.

      Note:

      For telco services, you cannot use the provisioning tag framework to include supplementary services and service extensions in the same provisioning tag with the ERA.

  2. Enable pin_notify entries.

    1. Uncomment the following entries in the pin_notify file:

      3788   0     /event/group/sharing/profiles/create 
      3788   0     /event/group/sharing/profiles/modify 
      
    2. Load the pin_notify file and restart the Connection Manager (CM).

  3. For pipeline rating, configure the ISC_ProfileAnalyzer iScript if needed.

    ISC_ProfileAnalyzer matches a value in an EDR, such as a phone number, with lists in the friends and family ERA. It then adds the names of ERA labels that include that value to the EDR.

    By default, this iScript analyzes an ERA named FRIENDS_FAMILY that uses a GSM telephony service. You can customize the iScript to handle a different service or ERA name.

    To enable ISC_ProfileAnalyzer, configure the FCT_iScript module and set the Active entry to True.

    Note:

    For rerating, ISC_ProfileAnalyzer must be enabled. The default registry file is BRM_home/conf/wirelessRealtime.reg.

    See "Customizing Pipeline Rating for Friends and Family ERAs".

  4. For pipeline rating, create a price selector or discount selector.

    For pipeline events, use a price or discount selector to specify different rates or discounts for different ERA labels. See "Using ERAs with Multiple Lists".

  5. Create a charge offer or discount offer that includes the provisioning tag.

    For a charge offer, include the charge with the price selector or charge selector you defined. For a discount, include the discount selector you defined.

    Note:

    • You cannot use provisioning tags created with the Services Framework Manager with discounts.

    • Use the provisioning tag framework to create an ERA that you want to add directly to a discount.

  6. Add the names and descriptions to the ERA description file.

    Names and descriptions from this file are displayed in Customer Center and Provisioning Tags. See "Customizing ERA Names and Descriptions for Client Applications".

  7. Enter values for the friends and family promotion for a specific customer who purchases a charge offer or discount offer with the friends and family provisioning tag.

    Note:

    If you do not add name-value pairs for friends and family ERAs, DAT_AccountBatch does not load the friends and family ERAs into the pipeline memory at startup.

    Promotion is the term used for ERA in Customer Center. For example, for a telephony service, you would configure the promotion by entering phone numbers. For other services, you would enter the values relevant for the service, such as APN or email addresses.

    If the ERA contains multiple lists, you configure each list in Customer Center.

  8. To share ERA lists between accounts, create a profile sharing group.

  9. (Optional) Create a profile sharing group to share the friends and family lists with other accounts or services.

    Note:

    You can share service-level ERAs only.

    When you configure a promotion in Customer Center, the values are stored in a profile. You can share that profile with services owned by accounts that own a charge offer or discount offer with the same ERA.

    Note:

    Typically, you would set up rating or discounting to use either the ERA label name with a model selector or the usage type. If you are using ERA labels and model selectors, you should comment out the IRL_UsageType iRule from the registry.

Sample Friends and Family Provisioning Tag

This is sample XML code for a provisioning tag that creates a friends and family ERA for an email service.

This code would be added to the pin_config_provisioning_tags.xml file:

<ProvisioningTag name="FRIENDS_FAMILY">

            <PermittedTypes>/service/email</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_ACCOUNT_OBJ</OpcodeParamName>
                    <OpcodeParamValue>$ACCOUNT$</OpcodeParamValue>
                </OpcodeParamsList>

                <OpcodeParamsList>
                    <OpcodeParamName>PIN_FLD_FLAGS</OpcodeParamName>
                    <OpcodeParamValue>0</OpcodeParamValue>
                </OpcodeParamsList>

                <OpcodeParamsList>
                    <OpcodeParamName>PIN_FLD_SERVICE_OBJ</OpcodeParamName>
                    <OpcodeParamValue>$SERVICE$</OpcodeParamValue>
                </OpcodeParamsList>

                <OpcodeParamsList>
                    <OpcodeParamName>PIN_FLD_NAME</OpcodeParamName>
                    <OpcodeParamValue>FRIENDS_FAMILY</OpcodeParamValue>
                </OpcodeParamsList>

                <OpcodeParamsList>
                    <OpcodeParamName>PIN_FLD_INHERITED_INFO.PIN_FLD_EXTRATING.PIN_FLD_LABEL</OpcodeParamName>
                    <OpcodeParamValue>MYFRIENDS</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_ACCOUNT_OBJ</OpcodeParamName>
                    <OpcodeParamValue>$ACCOUNT$</OpcodeParamValue>
                </OpcodeParamsList>

                <OpcodeParamsList>
                    <OpcodeParamName>PIN_FLD_FLAGS</OpcodeParamName>
                    <OpcodeParamValue>1</OpcodeParamValue>
                </OpcodeParamsList>

                <OpcodeParamsList>
                    <OpcodeParamName>PIN_FLD_SERVICE_OBJ</OpcodeParamName>
                    <OpcodeParamValue>$SERVICE$</OpcodeParamValue>
                </OpcodeParamsList>

                <OpcodeParamsList>
                    <OpcodeParamName>PIN_FLD_NAME</OpcodeParamName>
                    <OpcodeParamValue>FRIENDS_FAMILY</OpcodeParamValue>
                </OpcodeParamsList>

                <OpcodeParamsList>
                    <OpcodeParamName>PIN_FLD_INHERITED_INFO.PIN_FLD_EXTRATING.PIN_FLD_LABEL</OpcodeParamName>
                    <OpcodeParamValue>MYFRIENDS</OpcodeParamValue>
                </OpcodeParamsList>
            </OpcodeList>

</ProvisioningTag> 

Note:

The PCM_OP_SUBSCRIPTION_PROVISION_ERA opcode is specified twice, once with OpcodeMode and PIN_FLD_FLAGS set to 0 to run at purchase time and once with OpcodeMode and PIN_FLD_FLAGS set to 1 to run at cancel time. This opcode requires using either 0 or 1 for these values.

To create an ERA with a second list, add two more <OpcodeList> blocks using the same opcode and the same values, except for a different value for PIN_FLD_INHERITED_INFO.PIN_FLD_EXTRATING.PIN_FLD_LABEL. Do the same if you want additional lists for the ERA.

Using ERAs with Multiple Lists

You can have multiple rates or discounts for an ERA with multiple ERA labels. An ERA label is an individual list of values, such as phone numbers or email addresses. A single ERA can have multiple ERA labels.

For example, a friends and family ERA can have separate lists for friends and family, each with a different rate. During rating or discounting, BRM chooses the correct rate based on the label name.

Using Model Selectors for ERAs

You can use price or discount selectors to define different rates or discounts for each ERA label in an ERA. Create model selector rules based on the PROFILE_LABEL_LIST EDR field. For each ERA label name, you can specify a different price or discount. During rating or discounting, Pipeline Manager matches a value in the EDR such as a phone number with the values in the ERA labels.

Model selectors also rank the price or discounts. If the EDR matches more than one ERA label, the first pricing whose rule matches a label in the EDR is used.

In the following example, a friends and family ERA has two labels, MYFAMILY and MYFRIENDS. Each label is associated with a different pricing through a price selector, as shown in Table 21-2:

Table 21-2 Example of Friends and Family ERA

Rank DETAIL.PROFILE_LABEL_LIST Pricing

1

*MYFAMILY*

1_cent_per_min

2

*MYFRIENDS*

2_cent_per_min

Note:

To use a discount with a discount selector for a telco service, use the provisioning tag framework to create the tag with the ERA. You cannot use provisioning tags created with the Services Framework Manager with discounts.

Using Charge Selectors for ERAs

You can define different rates for each ERA label in an ERA for real-time rating by using charge selectors. To do this, use the event attribute EVENT.PIN_FLD_PROFILE_LABEL_LIST in the charge selector matrix.

In the following example, a friends and family ERA has two labels, MYFAMILY and MYFRIENDS. Each label is associated with a different rate through a charge selector, as shown in Table 21-3:

Table 21-3 Charges for ERAs

Row EVENT.PIN_FLD_PROFILE_LABEL_LIST Charge Impact Category

1

*MYFAMILY*

1_cent_per_min

Default

2

*MYFRIENDS*

2_cent_per_min

Default

About Rating Based on Friends and Family ERAs

This section describes how BRM rates events with friends and family ERAs. For general information about ERAs, see "About Extended Rating Attributes". For information about working with multiple ERA lists, see "Using ERAs with Multiple Lists".

In both real-time rating and pipeline rating, the following occurs:

  • If a predefined value in an event or EDR matches a value in an ERA, the names of the ERA and ERA labels are added to the event or EDR.

  • If a charge selector or model selector has been defined based on the ERA label name, that selector is used to determine the rate. If an event has multiple labels, the charge selector or model selector also determines which label has priority.

  • By default, friends and family ERAs are rated for telco services, but through customization they can be used and rated for any service.

For more information, see:

Real-Time Rating for Friends and Family ERAs

Friends and family ERAs can be rated based on either the ERA name, which is specified as the usage type, or the ERA label name.

In real-time rating, if a particular event attribute matches a value in a friends and family ERA, the ERA is added to the event's usage type field, and the ERA label is added to the event's ERA label field. An event can match more than one friends and family label.

Using the ERA label name enables you to use different rates for different values within the same ERA. For example, you can use labels to charge different rates for calls to friends and calls to families by defining a charge selector. Using the usage type, you can charge a single rate for all friends and family calls.

Following is a summary of the real-time rating process for events with friend and family ERAs. This section contains information specific to friends and family ERAs.

  1. The PCM_OP_RATE_POL_PRE_RATING policy opcode calls the PCM_OP_RATE_POL_PROCESS_ERAS policy opcode, which in turn calls PCM_OP_RATE_GET_ERAS.

  2. PCM_OP_RATE_GET_ERAS retrieves the valid ERAs for an event, including ERAs for the event's account, service, and shared profiles. The retrieved information includes the ERA name, label names, label values, and validity dates.

  3. The PCM_OP_RATE_POL_PROCESS_ERAS policy opcode compares certain predefined event fields to the values for the ERA or ERAs valid for the event.

    By default, PCM_OP_RATE_POL_PROCESS_ERAS is configured to work with a GSM service and to compare values in the PIN_FLD_CALLING_FROM and PIN_FLD_CALLED_TO fields.

    PCM_OP_RATE_POL_PROCESS_ERAS can be easily configured to work with a GPRS service. In that case, it compares values in the PIN_FLD_ANI and PIN_FLD_DN fields.

    Note:

    Using the PCM_OP_RATE_POL_PROCESS_ERAS policy opcode with services other than GSM and GPRS requires more extensive customization.

  4. If a number in the PIN_FLD_CALLED_TO field matches a value in one or more of the friends and family ERA labels, PCM_OP_RATE_POL_PROCESS_ERAS adds the following to the event:

    • The ERA name to the PIN_FLD_USAGE_TYPE field. For a friends and family ERA, the name FF is added.

    • The ERA label name or names to the PIN_FLD_PROFILE_LABEL_LIST field. The names are added as they were defined in the ERA (for example, MYFRIENDS and MYFAMILY). Multiple names are separated by a comma, unless you specified a different separator by customizing the opcode.

The charge or discount for the event is then calculated based on the value of either the PIN_FLD_USAGE_TYPE or PIN_FLD_PROFILE_LABEL_LIST field.

If a charge selector was used, the rating engine uses it to find the correct rate. For a friends and family ERA, typically the charge selector would use the PIN_FLD_PROFILE_LABEL_LIST event field to map to different rates. For example, you could have a different rate for each ERA label.

Prioritizing Rates for ERAs in Real-Time Rating

The charge selector also ranks the charges. If the event matches more than one ERA label, the rating engine evaluates the rates in order of their rank in the charge selector and chooses the first rate that matches a label in the EDR.

The charge selector matches ERA labels within a list of multiple labels by using the In List matching type. This must be selected when you create the charge selector. The rating engine then treats PIN_FLD_PROFILE_LABEL_LIST or whichever fields you include in the charge selector as a list and parses it accordingly, using a separator you specify.

In the following example, the friends and family ERA has two labels, MYFAMILY and MYFRIENDS. Each label is associated with a different rate through a charge selector, as shown in Table 21-4:

Table 21-4 Charges and Multiple Labels

Row EVENT.PIN_FLD_PROFILE_LABEL_LIST Charge Impact Category

1

*MYFAMILY*

1_cent_per_min

Default

2

*MYFRIENDS*

2_cent_per_min

Default

If an event's PIN_FLD_PROFILE_LABEL_LIST is MYFAMILY, the rating engine chooses the 1_cent_per_min charge. If PIN_FLD_PROFILE_LABEL_LIST contains the value MYFAMILY, MYFRIENDS, the rating engine again chooses the 1_cent_per_min charge. Both charges are matched, but 1_cent_per_min has higher priority.

Customizing Real-Time Rating for Friends and Family ERAs

You can customize the PCM_OP_RATE_POL_PROCESS_ERAS policy opcode to do the following:

  • Add a service type, so you can rate ERAs for services other than telco services.

    To do this, modify the fm_rate_pol_proc_eras_set_era_name() function.

    To add a new service type, copy the existing code for SERVICE_TELEPHONY. To add a new service type, copy the code. In the copied code, change the service type, and change the PIN_FLD_CALLING_FROM and PIN_FLD_CALLED_TO fields to the appropriate fields for the new service type.

    This is an excerpt from the default version of fm_rate_pol_process_eras.c showing the code you must copy and modify:

    if(svc && !strncmp(svc,SERVICE_TELEPHONY,strlen(SERVICE_TELEPHONY))) {
      column_flistp = PIN_FLIST_ELEM_GET(e_flistp,PIN_FLD_CALL, rec_id, 1, ebufp);
      if(column_flistp) {
        a_num = PIN_FLIST_FLD_GET( column_flistp, PIN_FLD_ANI, 1, ebufp );
        b_num = PIN_FLIST_FLD_GET( column_flistp, PIN_FLD_DNIS, 1, ebufp );
    }
    
  • Change the separator character used to separate multiple label names in the PIN_FLD_PROFILE_LABEL_LIST field. Comma is the default. You specify this character in the CM_OP_RATE_POL_PROCESS_ERAS policy opcode and in the charge selector. Specify the same character in both places.

Pipeline Rating for Friends and Family ERAs

In pipeline rating, if ERA labels are used and a particular EDR field matches a value in a friends and family list, the ISC_ProfileAnalyzer iScript adds the ERA label to the EDR. An EDR can match more than one friends and family label. You set up a price or discount selector to select a price or discount based on the ERA label name. See "Using Model Selectors for ERAs".

If the IRL_UsageType iRule has been configured for ERAs, and a usage type set up in Pricing Center or PCC, the ERA name (not the label name) is added to the EDR's usage type field.

Typically, you would set up rating or discounting to use either the ERA label name with a model selector or the usage type. If you are using ERA labels and model selectors, you should comment out the IRL_UsageType iRule from the registry.

Following is a summary of the pipeline rating and discounting process for events with friend and family ERAs:

  1. At startup, DAT_AccountBatch gets ERA and shared profile information from the BRM database and stores it in memory.

  2. When a CDR is rated, DAT_AccountBatch determines the ERAs or profile sharing group that applies to the CDR, filters out the profiles specified in the ProfilesNotLoadedIntoEdr registry entry, and sends the remaining profile information to the FCT_Account module.

  3. FCT_Account adds ERA and shared profile data to the EDR.

  4. The ISC_ProfileLabel iScript calls the search method in DAT_AccountBatch to determine if any of the profiles that were filtered contains a value that matches the EDR field value. See "Improving Pipeline Rating Performance for Events with ERAs".

    If there's a match, ISC_ProfileLabel does the following:

    1. Parses the ERA labels returned by the search method and populates them into the DETAIL.PROFILE_LABEL_LIST EDR field.

    2. Populates the DETAIL.USAGE_TYPE EDR field based on the matching ERAs found.

  5. For the profiles not specified in the ProfilesNotLoadedIntoEdr registry entry, the following occurs:

    1. ISC_ProfileAnalyzer iscript analyzes the profiles and determines if any of the profiles contains a value that matches the EDR field value. If there is a match, the ERA label is added to the DETAIL.PROFILE_LABEL_LIST field in the EDR container.

      By default, ISC_ProfileAnalyzer analyzes ERA profiles named FRIENDS_FAMILY for the service codes TEL (for GSM telephony) or SMS, by comparing the value of the DETAIL.B_NUMBER (called number) EDR field to the values in the ERA. You can customize ISC_ProfileAnalyzer to analyze other ERA profiles and service types. See "Customizing Pipeline Rating for Friends and Family ERAs".

  6. The IRL_UsageType iRule adds the usage type to the DETAIL.USAGE_TYPE field in the EDR container if the conditions in the IRL_UsageType.irl file are met. For a friends and family ERA, the name added to USAGETYPE is FF.

  7. For rating, FCT_MainRating finds the correct pricing for calculating the charge as follows:

    • If there is an ERA name in the USAGETYPE field, FCT_MainRating uses that ERA to rate the event.

    • If one or more ERA labels are listed in PROFILE_LABEL_LIST, FCT_MainRating chooses pricing using the rules in the price selector.

  8. For discounting, FCT_DiscountAnalysis finds the correct discount to calculate the discount, using the values in the PROFILE_LABEL_LIST EDR field and the rules in the discount selector.

    The FCT_Discount module applies the discount after FCT_DiscountAnalysis determines the discount to use.

Prioritizing Rates and Discounts for ERAs in Pipeline Rating

The price or discount selector ranks the price or discounts. If the EDR matches more than one ERA label, Pipeline Manager evaluates the price or discounts in order of ranking and chooses the first price or discount whose rule matches a label in the EDR.

In the following example, the friends and family ERA has two labels, MYFAMILY and MYFRIENDS. Each label is associated with a different pricing through a price selector, as shown in Table 21-5:

Table 21-5 Price Selector

Rank DETAIL.PROFILE_LABEL_LIST Pricing

1

*MYFAMILY*

1_cent_per_min

2

*MYFRIENDS*

2_cent_per_min

If an EDR's DETAIL.PROFILE_LABEL_LIST is MYFAMILY, the rating module chooses the 1_cent_per_min pricing. If DETAIL.PROFILE_LABEL_LIST contains the value MYFAMILY, MYFRIENDS, FCT_MainRating again chooses the 1_cent_per_min pricing. Both pricings are matched, but 1_cent_per_min has higher priority.

Improving Pipeline Rating Performance for Events with ERAs

When Pipeline Manager processes a call detail record (CDR), all the ERA profiles (owned or shared) that apply to the CDR are loaded into the event data record (EDR) container. However, some accounts may own a large number of ERA profiles or share a large number of ERA profiles in a profile sharing group. The populating of a large number of profiles into the EDR container may result in performance degradation. For example, when a Friends and Family profile sharing group contains a large number of ERA profiles that are shared with accounts in a hierarchy, all the shared profiles in the group are populated into the EDR container during CDR processing of the member accounts. In this example, the population of all the shared profiles into the EDR containers for each account in the hierarchy results in performance degradation.

When you have accounts that own or share a large number of ERA profiles, you can use the DAT_AccountBatch registry entry, ProfilesNotLoadedIntoEdr, to specify the profiles to be filtered. When a CDR is rated, if the value in the EDR field matches a value in one or more ERA profiles in the ProfilesNotLoadedIntoEdr registry entry, the ISC_ProfileLabel iScript loads only the ERA labels into the EDR container.

To configure batch pipeline rating to filter ERA profiles:

  1. Set the DAT_AccountBatch module registry entry ProfilesNotLoadedIntoEdr to the profiles that should be filtered. You can specify any number of profiles separated by a comma.

    For example:

    ProfilesNotLoadedIntoEdr {FRIENDS_FAMILY, DISCOUNTBUNDLE} 
    
  2. Configure the ISC_ProfileLabel iScript.

Customizing Pipeline Rating for Friends and Family ERAs

You customize pipeline rating for friends and family ERAs by customizing the ISC_ProfileAnalyzer and ISC_ProfileLabel iScripts.

By default, ISC_ProfileAnalyzer and ISC_ProfileLabel analyzes ERAs named FRIENDS_FAMILY for the service codes TEL (for GSM telephony) or SMS, comparing the value of the DETAIL.B_NUMBER (called number) field in the EDR to the ERA values.

To use ISC_ProfileAnalyzer and ISC_ProfileLabel with other services and ERAs, add an ELSE IF block to the onDetailEdr function. The default version of ISC_ProfileAnalyzer includes this example for adding a GPRS service:

else
if (edrServiceType == "GPRS")
{
   compareString = edrString(DETAIL.ASS_GPRS_EXT.APN_ADDRESS,0);
   compProfName  = "FRIENDS_FAMILY";
}

This block includes the entries shown in Table 21-6:

Table 21-6 Entries for GPRS Service

String Description

edrServiceType

The service code.

compareString

The EDR field to compare to the ERA.

compProfName

The name of the ERA to analyze to compare to the EDR field.

Then you edit this information in the registry:

  • Service type: Change TEL to the new service code.

  • Profile name: Change FRIENDS_FAMILY to a different ERA name if needed.

  • Separator: Change a comma to another character to separate multiple label names in EDRs, if needed.

Customizing ERA Names and Descriptions for Client Applications

You customize ERA names and descriptions that are displayed on the Promotion tab in Customer Center by editing the era_descr.en_US file in the BRM_home/sys/msgs/eradescr directory. You can localize this file.

Note:

For ERAs defined in telco provisioning tags, the names and descriptions are also used in the Provisioning Tags application.

This file includes entries for ERA names and descriptions that are identified by ID numbers. Each name and description must have a unique ID number.

You define the ID numbers differently depending on how the ERAs are defined:

  • For ERAs defined in telco provisioning tags, the ID numbers must match the ID numbers used in pin_telco_tags_gsm or other pin_telco_tags files that you edit when configuring ERAs.

    For example, this is the entry for the SPECIAL_DAY account-level ERA in the pin_telco_tags_gsm file:

    account_era  "SPECIAL_DAY"  2  3
    
  • For ERAs defined using the provisioning tag framework, you include each ID in the customized.properties file in the Customer Center SDK. You also must include the name of the ERA in the provisioning tag definition.

    See "Creating Names and Descriptions for ERAs Defined in the Provisioning Tag Framework".

The following example shows the name and description of the Special Day ERA in the era_descr.en_US file:

ID = 2 ;
VERSION = 1 ;
STRING = "Special Day" ;

ID = 3 ;
VERSION = 1 ;
STRING = "This option gives discounts on calls made on your birthday. An account can have only one Birthday. To give this promotion, enter the word BIRTHDAY in the Name field, and enter the customer's birthday in the Value field." ;

When you add or change ERA names and descriptions, you might also need to provide more detailed information for your CSRs. For example, you could provide a list of valid entries for the Customer Type ERA and instructions on when to use each entry.

After you customize the file, use the load_localized_strings utility to load the contents of the era_descr.en_US file, or a localized version of the file, into the /strings object.

To load the contents of era_descr.en_US, use this command:

load_localized_strings era_descr.en_US 

Note:

  • ERA label names are not included in the era_descr.en_US file and cannot be localized.

  • Default ERA names and descriptions are loaded when you install a service manager. You must load them again only if you customize them.

  • If you're loading a localized version of this file, use the correct file extension for your locale.

Creating Names and Descriptions for ERAs Defined in the Provisioning Tag Framework

If you define an ERA using the provisioning tag framework, use the following procedure to create a name and description that appears in Customer Center:

  1. Add the name and description to the era_descr.en_US file and to any other localized versions of the ERA description file you are using.

    For information, see "Customizing ERA Names and Descriptions for Client Applications".

    Note:

    • You must use a unique ID number for each name and description you add.

    • You must use the same ID number for the same ERA in each localized version of the ERA description file.

  2. Load the names and descriptions using the load_localized_strings utility.

    See "Customizing ERA Names and Descriptions for Client Applications".

  3. Configure the ERA in the provisioning tag framework as follows:

    • Configure the provisioning tag to call the PCM_OP_SUBSCRIPTION_PROVISION_ERA opcode during purchase and cancel modes.

    • Specify the ERA name in the PIN_FLD_NAME parameter for the opcode. For example, for a friends and family ERA, specify FRIENDS_FAMILY in the provisioning tags configuration file.

    • Set the PIN_FLD_STR_VAL parameter to 12, 13 so that the profile name and profile description are localized and are stored in the /string object.