28 About Twin Talk Enabler

This chapter describes how to install, configure and use Oracle Communications Billing and Revenue Management (BRM) Twin Talk Enabler to offer twin talk services to your customers.

Before you read this document, you should read "About managing prepaid services and extended rating attributes" in BRM Telco Integration.

About Twin Talk Enabler

Twin Talk Enabler allows you to use BRM to rate and bill your customers' twin talk service usage.

Note:

Twin Talk Enabler uses batch pipeline rating. Real-time rating is not supported for rating twin talk service usage.

A twin talk service allows subscribers to direct usage charges for outbound calls to a primary or secondary account, such as a business or personal account. For example, if a company issues an employee a mobile phone with twin talk service enabled, the employee can use the phone to make business and personal calls.

You set up the service so that usage charges for each type of call are directed to the correct account. For example, you can configure the twin talk service so that if the subscriber dials two pound signs (##) as a suffix to the outbound number, the usage charges for the call are directed to the customer's personal (secondary) account. If no suffix is dialed, BRM assumes it is a business call, and the business (primary) account is charged.

Note:

Only usage fees can be charged to a secondary account. One-time, monthly fees and other non-usage fees are always charged to the primary account.

You can configure other criteria that determine the account to charge, such as time of day or day of week. For example, calls made during business hours could be charged to the subscriber's business account, and calls made outside these hours could be charged to the subscriber's personal account.

About Configuring Services for Primary and Secondary Accounts

This document describes how to set up twin talk secondary accounts that use:

  • The same service that the primary account uses.

  • A different (secondary) service.

    Note:

    Oracle recommends that you configure secondary accounts to use the same service that the primary account uses, since it involves far fewer configuration steps.

Data Flow Overview

A system configured for twin talk service includes a custom iScript placed just before the FCT_Account module in the pipeline. This custom iScript does the following:

Note:

The name and location of the iScript file are configurable in the registry file. This document uses the sample iScript file ISC_TwinTalkEnabler.isc in the Pipeline_Home/iScriptLib/iScriptLib_Standard directory. Pipeline_Home is the directory where you installed Pipeline Manager.
  1. Checks each incoming EDR for twin talk attributes.

    Note:

    Twin talk attributes are typically associated with the A or B number, but you can associate the attributes with any EDR field depending on your requirements. This document assumes that the twin talk attributes are associated with the B number unless otherwise noted.
  2. If a twin talk attribute exists, uses an EDR field, such as the A number, together with the enabler functions to retrieve twin talk account or service profiles.

  3. If a twin talk account or service profile is found, returns ERAs such as time of day and the affected account.

    Note:

    The ISC_TwinTalkEnabler.isc iScript defines the selection criteria to select the secondary account.
  4. If a secondary account is determined:

    • Replaces the INTERN_A_NUMBER_ZONE value in the EDR with the login ID of the secondary account.

      Note:

      • By default, the service/telco/gsm/telephony, /sms, and /data services are configured to use the A_NUMBER value to retrieve customer details. In this case, your iScript can replace the A_NUMBER value with a new secondary account login ID. There is no need to change the INTERN_A_NUMBER_ZONE value.

      • The sample iScript (ISC_TwinTalkEnabler.isc) changes the INTERN_SERVICE_CODE and INTERN_A_NUMBER_ZONE values.

    • If the primary and secondary accounts use different services, replaces the INTERN_SERVICE_CODE value in the EDR with the service code of the secondary account.

  5. Passes the EDR to the next module in the pipeline.

    The replaced account values in the EDR cause the secondary account to be charged.

If no twin talk accounts or service profiles are found, or no secondary account is selected by the ISC_TwinTalkEnabler.isc iScript, the EDR is passed to the next module without any changes and the primary account is charged.

For more information on custom iScript behavior, see "Creating an iScript to Support Twin Talk".

Twin Talk Enabler Components

Twin Talk Enabler includes the following components:

  • Two new Twin Talk Enabler functions (getServExtRating and getAcctExtRating). You use these functions in the custom iScript.

  • A sample wireless application that includes:

    • A sample custom iScript (Pipeline_Home/iScriptLib/iScriptLib_Standard/ISC_TwinTalkEnabler.isc). This iScript determines which account should be charged and updates the ERA fields accordingly by using account- or service-level twin talk profiles returned by Twin Talk Enabler functions.

    • An updated sample wireless registry file (Pipeline_Home/conf/wireless.reg).

Configuring a Twin Talk Service

To configure a twin talk service, follow the steps in these sections:

  1. Configuring BRM for Twin Talk

  2. Configuring Pipeline Manager for Twin Talk

  3. Configuring Twin Talk Pricing

  4. Creating an iScript to Support Twin Talk

Configuring BRM for Twin Talk

To configure BRM for twin talk, follow the steps in these sections:

Important:

Perform steps 1, 2, and 3 only if secondary accounts use a secondary service.
  1. (For secondary service only) Defining a Twin Talk Service Type

  2. (For secondary service only) Configuring and Loading Twin Talk Event Mappings

  3. (For secondary service only) Configuring and Loading Twin Talk Billing Items

  4. Creating and Loading Twin Talk Extended Rating Attributes Names

  5. Configuring and Loading Twin Talk Provisioning Tags

  6. Create Aliases to be Used by Secondary Accounts

Defining a Twin Talk Service Type

Define a service to be used only for twin talk service, for example:

  • /service/twin

  • /service/telco/gsm/voicetwintalk

  • /service/telco/gsm/smstwintalk

See "Adding Support For A New Service" in BRM Developer's Guide.

Configuring and Loading Twin Talk Event Mappings

To configure twin talk event map information:

  1. Open the event map configuration file (event_map_config_file) that you used to configure your telco service.

  2. Add the following lines to map the twin talk service to events. Use this format:

    /service/twintalk_service
     : /event/session/telco/gsm                   : Event description
     : /event/delayed/session/telco/gsm           : Event description
    

    For example:

    /service/telco/gsm/voicetwintalk
     : /event/session/telco/gsm                   : Real Time Telco GSM Session
     : /event/delayed/session/telco/gsm           : Delayed Telco GSM Session
    

    Important:

    Be sure to add the twin talk event mapping text to the event map file you used to configure your telco services.
  3. Save the file.

  4. Load the event map by using the load_event_map utility:

    load_event_map event_map_config_file
    

For more information, see "load_event_map" in BRM Setting Up Pricing and Rating.

Configuring and Loading Twin Talk Billing Items

To configure twin talk custom bill items:

  1. Open the custom bill item tags configuration file (BRM_Home/sys/data/pricing/example/config_item_tags.xml) and define a tag for the new service. BRM_Home is the directory where you installed BRM components. For example:

    <ItemTagElement>
       <ItemTag>twintalk</ItemTag>
       <EventType>/event/*</EventType>
       <ServiceType>/service/telco/gsm/twintalk</ServiceType>
    </ItemTagElement>
    
  2. Save the file.

  3. Load the configuration item tags by using the load_config_item_tags utility.

    load_config_item_tags config_item_tags.xml
    
  4. Open the custom bill item types configuration file (BRM_Home/sys/data/pricing/example/config_item_types.xml) and define a type for the item. For example:

    <ItemTypeElement>
       <ItemTag>twintalk</ItemTag>
       <ItemDescription>twintalk</ItemDescription>
       <ItemType precreate="true" type="cumulative">/item/misc</ItemType>
    </ItemTypeElement>
    
  5. Save the file.

  6. Load the configuration item types by using the load_config_item_types utility:

    load_config_item_types config_item_types.xml
    

Creating and Loading Twin Talk Extended Rating Attributes Names

When you create IDs, names and descriptions for twin talk extended rating attributes (ERAs), you edit the era_descr.en_US sample file in the BRM_Home/sys/msgs/eradescr directory. The following sample entry defines a twin talk account ERA in the provisioning tags section of the file:

[]  STR
        ID = 30 ;
        VERSION = 1 ;
        STRING = "TWINTALK_ACCOUNT" ;
END
STR
        ID = 31 ;
        VERSION = 1 ;
        STRING = "To enable Twin Talk Account provisioning tags." ;
END

For more information, see "About managing prepaid services and extended rating attributes" in BRM Telco Integration

After you customize the file, you use the load_localized_strings utility to load the contents of the era_descr.locale file into the /strings object.

Note:

Default ERA names and descriptions are loaded when you install GSM Manager. You need to load them again only if you customize them.

When you run the load_localized_strings utility, use this command:

load_localized_strings era_descr.locale

Note:

If you're loading a localized version of this file, use the correct file extension for your locale. For a list of file extensions, see "Locale Names" in BRM Developer's Guide.

For information on loading the era_descr.locale file, see "Loading Localized or Customized Strings" in BRM Developer's Guide. For information on creating new strings for this file, see "Creating New Strings and Customizing Existing Strings" in BRM Developer's Guide.

Configuring and Loading Twin Talk Provisioning Tags

To configure twin talk provisioning tags:

  1. Open the provisioning tags configuration file that you used to configure your telco service.

    Caution:

    If you don't use the configuration file you used to configure your telco service, you might lose configuration information when you load the file with the load_pin_telco_tags utility. For more information, see "load_pin_telco_tags" in BRM Telco Integration.
  2. Add the appropriate provisioning tags. The following sample entry specifies the provisioning tag TWINTALK_ACCOUNT:

    account_era "TWINTALK_ACCOUNT" "30" "31"
    

    Note:

    • If you are using the same service for both the primary and secondary accounts, add the new twin talk provisioning tags to the configuration for your existing primary service.

    • If you are creating a new service for twin talk, add the required provisioning tags for the new services (in addition to the primary service).

  3. Save the file.

  4. Load the provisioning tags by using the load_pin_telco_tags utility:

    load_pin_telco_tags prov_tags_config_file
    

    If you are using the same service for primary and secondary twin talk accounts, this utility updates the service configuration object, for example, /config/telco/gsm/telephony.

    If you are creating a new service for twin talk, this utility creates a service configuration object, for example /config/telco/gsm/voicetwintalk, for the new service.

For more information, see "About managing prepaid services and extended rating attributes" and "load_pin_telco_tags" in BRM Telco Integration.

Create Aliases to be Used by Secondary Accounts

Use the PCM_OP_CUST_SET_LOGIN opcode to create aliases.

For more information, see "Creating Secondary Accounts with a Different (Twin Talk) Service".

Configuring Pipeline Manager for Twin Talk

Note:

This section only applies if secondary accounts use a secondary service.

To configure Pipeline Manager to support twin talk services, start Pricing Center and follow the steps in these sections:

  1. Activating Twin Talk in the Pipeline Manager Registry

  2. Defining the Twin Talk Service

  3. Mapping the Twin Talk Service to a Usage Event

  4. Defining the EDR Container

  5. Setting Up a Rate Plan for the Twin Talk Service

Activating Twin Talk in the Pipeline Manager Registry

  1. Open the registry file (Pipeline_Home/conf/wireless.reg) with a text editor such as vi.

  2. If this is a new installation, or you aren't using a pre-existing registry file, go to the TwinTalkPlugIn section and change the Active parameter to True.

    Note:

    Use the sample registry (Pipeline_Home/conf/wireless.reg) when you start the pipeline.
  3. If you are using a pre-existing registry file, copy the TwinTalkPlugIn section from the Pipeline_Home/conf/wireless.reg file to your pre-existing registry file. Put the text just before the FCT_Account section. See "Sample Registry Entry for Twin Talk".

Defining the Twin Talk Service

To define the twin talk service:

  1. In Pricing Center, choose View - Pipeline Setup Toolbox - Product and Service - Service.

  2. In the Service window, add a record for the twin talk service. For example:

    • In the Service Code column, specify TTK.

    • In the and PIN Service Type column, specify /service/twintalk_service.

Mapping the Twin Talk Service to a Usage Event

To map the twin talk service to a usage event:

  1. In Pricing Center, choose View - Pipeline Setup Toolbox - Product and Service - Reference mapping.

  2. In the Reference Mapping window, add a reference map record. For example:

    • In the Reference Object column, specify /service/twintalk_service.

    • In the Reference Parameter column, specify /event/delayed/session/telco/gsm.

Defining the EDR Container

To define the EDR container:

  1. In Pricing Center, choose Pipeline Setup Tools - EDR - EDR Container Description.

  2. Select the ALL_RATE EDR container description record and click Edit.

    Note:

    ALL_RATE is the default pipeline name configured in the wireless.reg file during installation.
  3. Go to the Alias Mapping tab.

  4. Add a record that describes the EDR container. For example:

    • In the Reference column, specify UniData_CustA.

    • In the Key column, specify TTK.

      Note:

      This value must match the one you specified for Service Code in step 2 of "Defining the Twin Talk Service".
    • In the Field ID column, specify DETAIL.INTERN_A_NUMBER_ZONE.

    For more information, see "Adding Customer Balance Impact Data to EDRs" in BRM Setting Up Pricing and Rating.

Setting Up a Rate Plan for the Twin Talk Service

To set up a rate plan for the twin talk service:

  1. In Pricing Center, choose View - Pipeline Toolbox - Rate Plan.

  2. Add a new rate plan. For the code field, specify an appropriate code, such as TwinTalk.

For more information on configuring pricing information, see Pricing Center Help.

Configuring Twin Talk Pricing

Important:

This section only applies if you are creating secondary accounts with secondary services.

To configure a price list to include twin talk service:

  1. Start Pricing Center, create a product that includes the twin talk service:

    1. In the Event Map section of the General Product Info tab, add a new row.

    2. Specify Delayed Telco GSM Session in the Event column.

    3. Specify the rate plan you created in "Setting Up a Rate Plan for the Twin Talk Service".

  2. Create a deal and a plan for the twin talk product.

  3. Add the plan to your plan list.

    For more information on adding services to a price list, see Pricing Center Help.

Creating an iScript to Support Twin Talk

To create a customized iScript to support your twin talk service.

  1. Add the following line to your iScript to include the ERA extension interface:

    use IXT_Era;
    
  2. Configure the registry name of the DAT_AccountBatch module by using the setDAT_AccountModule() function in the BEGIN function in the iScript.

For general twin talk iScript requirements, see "Data Flow Overview".

For a sample Twin Talk Enabler iScript file, see Pipeline_Home/iScriptLib/iScriptLib_Standard/ISC_TwinTalkEnabler.isc.

For general information on creating custom iScripts, see "Creating iScripts and iRules" in BRM Developer's Guide.

About Using the onDetailEdr Function to Implement Your Twin Talk Logic

Use the onDetailEdr function in your iScript to implement your twin talk logic. This function:

  1. Uses the getServExtRating() or getAcctExtRating() functions to retrieve the twin talk ERAs.

  2. If the string "##" is in the A number, this function determines the secondary account by searching for required ERAs, for example, OVERRIDE_ACCT.

    • If the required twin talk ERAs are found, this function uses them to determine a twin talk (secondary) account login and service and substitutes these values for those in the corresponding EDR Container fields.

    • If twin talk ERAs are not found or no secondary account is selected in the twin talk iScript, the EDR is passed to the next module and usage is charged to the to primary account.

  3. If the string "##" is not in the A number, this function searches for time-of-day ERAs, such as AM_ACCT,000 and PM_ACCT,001). Depending on the time of usage and the ERAs found, this function determines a twin talk (secondary) account login and service and substitutes these values for those in the corresponding EDR container fields.

Any secondary account identified by the onDetailEdr function is subsequently charged for this usage.

Sample Registry Entry for Twin Talk

This example registry text shows how to specify an iScript called ISC_TwinTalkEnabler.isc:

TwinTalkPlugIn
            {
              ModuleName = FCT_IScript
              Module
              {
                Active = True
                Source = FILE
                Scripts
                {
                  TwinTalkIScript
                  {
                   FileName = ./iScriptLib/iScriptLib_Standard/ISC_TwinTalkEnabler.isc
                  }
                }
              }

Creating Twin Talk Accounts

To create primary and secondary twin talk accounts:

  1. Start Customer Center.

  2. Create a primary account with a product, such as Standard GSM, that includes a primary service such as /service/gsm/telephony.

  3. Associate a SIM Card and Number, such as 004912345678, with the service.

  4. Create the secondary account by using one of the following methods, depending on your iScript logic and ERAs for the TWINTALK profile:

Creating Secondary Accounts with a Different (Twin Talk) Service

To create secondary accounts that use a different (twin talk) service:

  1. In Customer Center, create a secondary account with the secondary (twin talk) service such as /service/telco/gsm/twintelephony.

    Note:

    You don't need to associate Sim Card and Number to the secondary account by using Customer Center.
  2. Use the PCM_OP_CUST_SET_LOGIN opcode to associate the number with the secondary account:

    0 PIN_FLD_POID                        POID [0] 0.0.0.1 /account XXXXX 0
    0 PIN_FLD_END_T                     TSTAMP [0] (1100093374) 10/11/2004 18:59:34:000 PM
    0 PIN_FLD_OP_CORRELATION_ID            STR [0] "2:CT1255:UnknownProgramName:0:AWT-
      EventQueue-0:59:1092287278:0:root.0.0.0.1::user1:123456789"
    0 PIN_FLD_PROGRAM_NAME                 STR [0] "fm_num_pol_util.c"
    0 PIN_FLD_SERVICE_OBJ                 POID [0] 0.0.0.1 
      /service/telco/gsm/voicetwintalk YYYYYY 0
    0 PIN_FLD_START_T                   TSTAMP [0] (1100093374) 10/11/2004 18:59:34:000 PM
    0 PIN_FLD_LOGINS                     ARRAY [0] allocated 1, used 1
    1     PIN_FLD_ALIAS_LIST             ARRAY [1] allocated 1, used 1
    2         PIN_FLD_NAME                 STR [0] "ZZZZZZ"
    

    Where:

    • XXXXX is the account POID of the secondary account.

    • YYYYY is the service POID of the service associated with the secondary account.

    • ZZZZZ is the alias (also called the login or number), such as 004912345678001, 004912345678002, and so forth.

  3. Repeat steps 1 and 2 until all secondary accounts are created.

Creating Secondary Accounts that Use the Same Service as the Primary Account

To create a secondary account that uses the same service as the primary account:

  1. Create a number, for example, 004912345678001, with service TEL, by using Number Administration Center.

  2. Create the secondary account with the service used by the primary account by using Customer Center.

    Note:

    • Use the number created in Step 1.

    • You don't need to associate a SIM with the secondary account.

    • The login ID of the secondary account is the A number plus a suffix. The A number is the A number of the primary account, and the suffix is one of the ERA values configured for the twin talk profile in the primary account. For example, if 0049100053 is the A number for the primary account and 001 is the value configured for OVERRIDE_ACCT ERA in the TWINTALK profile, then the login ID for the secondary account would be 0049100053001.

    • The secondary account can be any account depending on your iScript logic and the ERAs for the TWINTALK profile. If a customer has more than one secondary account, your iScript logic should determines which secondary account to select depending on the configured ERAs.

  3. Repeat Steps 1 and 2 until all secondary accounts are created.

Twin Talk iScript Functions

This section describes the new Twin Talk Enabler iScript functions.

getServExtRating

Retrieves service-level ERAs.

This function returns the attribute-value pair array for a service ERA based on the identifying service, such as the mobile telephone number.

Syntax

BAS::String& getServExtRating( const BAS::String& key,
  const ::String& svcCode,
  const BAS::String& era,
  const BAS::DateTime& date);

Parameters

  • key - The account login for which ERA is required, such as IMSI, MSISDN, ip address, login name, and so forth

  • svcCode - The service code

  • era - The ERA name

  • date - The usage datestamp

Return Value

This function returns a string containing all the attributes of the requested ERA in attribute-value CSV format.

Example

The following list shows some examples of returned TWINTALK ERA name-value pairs:

  • AM_ACCT,000

  • PM_ACCT,001

  • OVERRIDE_ACCT,002

  • TOD_AM_BEGIN,12:00AM

  • TOD_AM_END,8:00AM

  • TOD_PM_BEGIN,5:00PM

  • TOD_PM_END,5:00PM

  • TOD_BUS_BEGIN,8:00AM

  • TOD_BUS_END,5:00PM

getAcctExtRating

Retrieves account-level ERAs.

This function returns the attribute-value pair array for an account ERA based on the identifying service, such as the mobile telephone number.

Syntax

BAS::String& getAcctExtRating( const BAS::String& key,
  const BAS::String& svcCode,
  const BAS::String& era,
  const BAS::DateTime& date);

Parameters

  • key - The account login for which ERA is required, such as IMSI, MSISDN, ip address, login name, and so forth

  • svcCode - The service code

  • era - The ERA name

  • date - The usage datestamp

Return Value

This function returns a string containing all the attributes of the requested ERA in attribute-value CSV format.

Example

The following list shows some examples of returned TWINTALK ERA name-value pairs:

  • AM_ACCT,000

  • PM_ACCT,001

  • OVERRIDE_ACCT,002

  • TOD_AM_BEGIN,12:00AM

  • TOD_AM_END,8:00AM

  • TOD_PM_BEGIN,5:00PM

  • TOD_PM_END,5:00PM

  • TOD_BUS_BEGIN,8:00AM

  • TOD_BUS_END,5:00PM