15 Adding Support for a New Service

This chapter provides an overview of adding a custom service to your Oracle Communications Billing and Revenue Management (BRM) system. It provides an end-to-end survey of the tasks you need to perform from creating service and event storable classes to setting up rating and billing for a new service. Each task in this chapter provides a cross-reference to the document that contains more detailed information.

You may need to perform additional tasks not described in this chapter, depending on your business needs and the type of service you add.

Creating BRM services requires the following:

About BRM Services

A service is a capability that you provide to customers, such as telephony, internet access, and email. BRM comes ready to use with a set of preconfigured services, and you can create your own custom services.

About Supporting a New Service

Before adding a new BRM service, you must understand the details of the service and how it will be implemented. For example, if you offer a wireless telephony service, you might want to track customer logins and provide optional support for add-on services such as text messaging.

To offer a service that is not supported by default in BRM, you may need to perform some of the following tasks to implement the new service:

Creating Storable Classes for Services and Events

To add a new service, first define your service by determining which information you need to track and rate. Then use Storable Class Editor in Developer Center to create new classes and any custom fields required to store custom service attributes.

For information about BRM storable classes, see "Storable Class Definitions" in BRM Developer's Reference.

You can add a new service to BRM by creating a subclass of an existing BRM /service class (for example, /service/telco/gsm/service_subclass) or by creating a new base class (/service/service_type).

You may also need to create other storable classes and custom fields to store information about the new service. For example:

  • To capture rating information for the service, you might need to create a new /event subclass (for example, /event/session/telco/service).

  • To use Pipeline Manager to rate the service usage, you need to create a corresponding delayed event class for any new /event class you added (for example, /event/delayed/session/telco/service).

  • To store custom configurations for a new service, you might need to add fields to or create a subclass of a /config class. For example:

    • To set up provisioning tags for a new Global System for Mobile Communications (GSM) service, create a new /config/telco/gsm/service storable class.

    • To store service-order state changes for devices associated with a new service, create a /config/telco/service_order_state/service storable class.

    • To specify a default reservation amount for a new prepaid service, create a /config/reserve/service storable class.

    • To allow CSRs to adjust events for a new service, add the event type to the /config/adjustment/event object.

  • To collect custom profile information for a new service, create a new /profile subclass. For information about using profiles, see "Using Profile Objects to Collect Customer Profiles".

  • To enable BRM to determine whether a new service meets the requirements of a business profile, create a subclass of the /config/template/service object. See "About Validation Templates" in BRM Managing Customers.

  • To store failed call records for a new service whose events are rated in a pipeline and suspended by Suspense Manager, you might need to create a /suspended_usage/service storable class. You need to create this new subclass only when the fields unique to the new service type are among the queryable or editable fields in suspense. See "Adding /suspended_usage Subclasses With Queryable Fields" in BRM Configuring Pipeline Rating and Discounting.

  • To implement a new service in a branded environment, avoid duplicate service logins by doing one of the following:

    • Create a subclass of the new service storable class to create a unique /service class for each brand.

    • Modify the fm_cust_pol_prep_login.c source file to append the brand domain to the login for the new service.

    See "About Duplicate Service Logins Across Brands" in BRM Managing Customers.

To create storable classes and custom fields for a new service, perform the tasks in "Creating Custom Fields and Storable Classes".

Use Opcode Workbench to create test instances of your new classes. See "Using Opcode Workbench".

Setting Up Rating for a New Service

To enable BRM to rate a new service, you need to set up price list data for the new service, configure Pipeline Manager to rate the new service, and load rated event data into the database.

Setting Up Price List Data for Real-Time Rating

You set up service-specific price list data for real-time rating by using configuration files. You then add the service to a price list by creating products for the new service and adding those products to deals.

For general information about setting up price list data, see "Setting up Price List Data" in BRM Setting Up Pricing and Rating.

Mapping Event Types to a New Service Storable Class

You map a new service to the events that are used to rate the service, including any new events you add for the service.

To map events to a new service type, modify the BRM_Home/sys/data/pricing/example/pin_event_map file, where BRM_Home is the directory in which you installed BRM components. Load the contents of the file into the /config/event_map object by running the load_event_map utility. See "Mapping Event Types to Services" in BRM Setting Up Pricing and Rating.

Defining RUMs for New Service Usage Events

You define ratable usage metrics (RUMs) to charge for events. If a new service requires RUMs that are not already defined, you can define new RUMs.

To define RUMs, modify the pin_rum configuration file and load the contents of the file into the /config/rum object by running the load_pin_rum utility. See "About Setting up RUMs for Real-Time Rating" in BRM Setting Up Pricing and Rating.

Setting Up Provisioning Tags for a New Service

You use product-level provisioning to rate a service differently based on product attributes. You implement product-level provisioning by defining provisioning tags.

You can use provisioning tags to define any kind of attribute. For example, provisioning tags for prepaid services define the following service attributes:

  • Extended rating attributes (ERAs)

  • Supplementary services for a GSM service

  • Bearer services or other service extensions for a telco service

How you define provisioning tags depends on various factors, such as the type of service, whether you need to create new ERAs, and whether you need to use the provisioning tag with discounts. See "Working with Provisioning Tags" in BRM Setting Up Pricing and Rating.

For information about ERAs, see "Working with Extended Rating Attributes" in BRM Setting Up Pricing and Rating.

Defining Impact Categories for a New Service

You use impact categories to apply different balance impacts for the same rate plan based on event attributes, such as call origin and destination.

If you added new service events and require additional impact categories that are not already defined in order to rate those events, define new impact categories by editing the pin_impact_category file and loading the contents of the file into the /config/impact_category object by running the load_pin_impact_category utility. See "Creating Impact Categories" in BRM Setting Up Pricing and Rating.

You assign rates to impact categories when you create your price plans in Pricing Center.

For information about impact categories, see "Using Event Attributes to Define Impact Categories" in BRM Setting Up Pricing and Rating.

Charging for a New Service Based on Custom Event Attributes

If you added a new service event and you want to rate custom attributes of that event or non-event attributes for the new service, modify the PCM_OP_ACT_POL_SPEC_RATES policy opcode and associate the opcode with the event type that it rates. See "About Charging for Custom Events and Attributes" in BRM Setting Up Pricing and Rating.

Defining Custom Resources for a New Service

If a new service requires a resource (such as an aggregation counter resource) that is not already defined, define the resource so that BRM can create a balance for it.

You define resources for both real-time rating and pipeline rating by using Pricing Center. See "Setting up Resources" in BRM Setting Up Pricing and Rating.

Specifying How to Round Resources for New Service Usage Events

You can configure resource rounding for specific types of events. For example, you can round session events differently than you round purchase events. If you do not specify a rounding rule for an event type, BRM uses the default rounding rule.

To specify a rounding rule for an event type you added for a new service, edit the pin_beid file and load the contents of the file into the /config/beid object by running the load_pin_beid utility. See "About Resource Rounding" in BRM Setting Up Pricing and Rating.

Adding a New Service to a Price List

After setting up price list data for a new service, you can create products and add those products to price lists.

You specify the new service type and event types for the new service when defining various price list components, such as the following components:

  • Products:

    • When creating a product.

    • When defining product rates, event maps and multiple RUMs.

    • When defining rollover properties if you added a custom non-currency resource and you want to enable rollover for that resource.

  • Discounts:

    • When creating a discount.

    • When defining discount exclusion rules.

    • When mapping events to a discount model.

  • Deals:

    • When creating a deal.

    • When making deals mutually exclusive.

  • Plans:

    • When creating a plan.

    • When adding deals to a plan.

    • When defining how a plan is upgraded or downgraded to another plan.

    • When creating a subscription group.

    • When setting credit limits and thresholds for a subscription service.

    • When setting resource consumption rules for a subscription service.

    • When creating service-level balance groups.

  • Rate plans:

    • When defining a rate plan.

  • Rate plan selectors:

    • When specifying the service or event fields that determine the rate plan selected.

Use Pricing Center to create price plans that define pricing information for the new service. See "About Creating a Price List" in BRM Setting Up Pricing and Rating.

Configuring Sub-Balances to Track Specific Types Of Usage for a New Service

You can configure BRM keep separate balances for specific types of service usage, such as frequent flyer miles per service instance or free minutes per call session.

To keep separate sub-balances for a new service, configure sub-balances for the service's events in the pin_sub_bal_contributor file and load the contents of the file into the /config/sub_bal_contributor object by running the load_pin_sub_bal_contributor utility. See "About Configuring Sub-Balances" in BRM Setting Up Pricing and Rating.

Setting Up Price List Data for Pipeline Rating

To use Pipeline Manager to rate usage for a new service, you set up service-specific price list data by using the Pipeline Setup Toolbox in Pricing Center.

For general information about setting up pipeline price list data, see "Setting up Pipeline Price List Data" in BRM Setting Up Pricing and Rating.

Defining a New Service

To define a new service for pipeline rating, do the following:

  1. Define the new service by mapping the service attributes to an internal service code.

  2. (Optional) Define service storable classes to define new subsets for a new service, such as quality-of-service (QoS) levels or bandwidth.

  3. Define reference mapping to associate the service with a BRM service type and a usage event type.

Defining Usage Classes and Usage Types

You can define usage classes and usage types to rate usage for a new service based on more specific attributes.

  1. (Optional) Define usage classes to define new network-specific usage scenarios for a new service.

  2. (Optional) Define usage types to define new customer-specific usage scenarios for a new service. You also define usage types for any new ERAs you added for a new service. To implement usage types, you configure the IRL_UsageType iRule.

Mapping Internal Codes to External Data

You map the service code, usage classes, and usage types you defined to the external EDR data.

  1. (Optional) If you'll use a separate pipeline to rate usage for a new service, you might want to create a new map group. You can also add any new usage class maps and service code maps you create to an existing map group. The map group you use must be defined before you can define a usage class map and a service class map.

  2. If you defined a new usage class, define a usage class map to map external EDR data to the new internal usage class.

  3. Define a service code map to map external event data record (EDR) data to the internal service code for a new service and associate the service with usage classes and service classes.

When you configure pipeline modules, you specify the name of the service code map and the usage class map in pipeline module registries.

Defining a Pipeline Rate Plan

After setting up pipeline price list data for a new service, you define a rate plan to specify the usage rates. Set up a pipeline rate plan that corresponds to the real-time rate plan you set up for the new service usage events.

You specify a service code and service class when defining various rate plan components, such as the following:

  • Rate plan configurations.

  • Rate service class (RSC) mapping.

  • APN mapping.

  • Standard and geographical zones.

  • Usage scenario mapping. See "About Usage Scenario Mapping" in BRM Setting Up Pricing and Rating.

  • Interconnect products for roaming.

  • Splitting types for pipeline output streams.

When you create products, you map the pipeline rate plan to a delayed event type (for example, /event/delayed/session/telco/gsm).

Configuring Pipeline Manager to Process Events for a New Service

You configure Pipeline Manager to rate usage for a new service by configuring pipeline input and output processing.

Configuring Pipeline Manager Input Processing for New Service Usage Events

Perform this task if you'll use Pipeline Manager to rate new or customized events for a new service.

If the CDRs or authentication, authorization, and accounting (AAA) requests you process for a new service include information that has no corresponding fields in the appropriate default EDR container description, you must modify the description to accommodate the custom data. See "Modifying and Loading the EDR Container Description" in BRM Setting Up Pricing and Rating.

If you modify the EDR container description, you must also modify the appropriate input grammar and mapping files in order to process the new fields. For more information, see "Setting up an Input Mapping File" and "Setting up an Input Grammar File" in BRM Configuring Pipeline Rating and Discounting.

For information about Pipeline Manager input processing, see "Configuring EDR Input Processing" in BRM Configuring Pipeline Rating and Discounting.

Configuring Pipeline Manager Service-Mapping Modules

If you used Pricing Center to create a new service code map or usage class map for a new service type, do the following:

  • Specify the name of the service code map in the FCT_ServiceCodeMap registry.

  • Specify the name of the usage class map in the FCT_UsageClassMap registry.

If you defined new usage types, configure the IRL_UsageType iRule to set usage types in EDRs based on mapping files that you configure.

See "Setting up Pipeline Price List Data" in BRM Setting Up Pricing and Rating.

Configuring a Pipeline Manager Output Stream for New Service Usage Events

You configure a rated-event output stream for each service type; for example, one output stream for /event/delayed/session/gsm events and another for /event/delayed/session/gprs events. If you create a subclass of an existing event type (such as /event/session/gsm/subclass), you can use the output stream for the parent class, or you can create a new output stream.

To configure an output stream for a new service type:

Configuring Prepaid-Postpaid Convergence

If you optimized BRM for prepaid and postpaid convergence and you added a new usage event for a new service, specify the new event type in the registry file of the convergent output stream module (CONV_TelOutput). This module is an instance of the OUT_GenericStream module.

Enabling Object Auditing for New Service Objects

You must perform this task when you add a new GSM service. You can also perform this task for other types of new services if you wish to audit changes to fields unique to the new service.

You enable object auditing so that BRM can audit changes to BRM objects.

If you use BRM wireless managers, such as Account Synchronization Data Manager (DM) and GSM Manager, make sure you have installed all wireless managers, and then run the pin_history_on utility to enable object auditing for the new service objects. See "Manually Configuring Object Auditing" in BRM Installation Guide.

Configuring Suspension and Recycling Of New Service Usage Events

Perform this task if you use BRM suspense and recycling features.

  • If you set up a service-specific pipeline to rate new service usage events, configure the pre-recycling pipeline module that routes EDRs to the pipeline that rated them:

    • If you use the IRL_PipelineSplitting module, edit the IRL_PipelineSplitting.data file to associate the name of the pipeline that rated the new service with an output stream.

    • If you use the FCT_AccountRouter module for multiple database schemas, associate the name of the pipeline that rated the new service and its output stream in the module registry.

    See "Configuring a Pre-Recycling Pipeline" in BRM Configuring Pipeline Rating and Discounting.

  • If you use BRM Suspense Manager, you can use Suspense Management Center to edit and correct event fields for failed EDRs that have been suspended. If you added unique fields to a new /service storable class and you want to be able to query and edit those fields, you create a /suspended_usage/service object (see "Creating Storable Classes for Services and Events") and determine the fields that are editable based on that subclass. Add the editable fields to the pin_suspense_editable_flds file and load the contents of the file into the /config/suspense_editable_flds object by running the load_pin_suspense_editable_flds utility. See "Planning and Setting Up Your Database for Suspense Manager" in BRM Configuring Pipeline Rating and Discounting.

Configuring the Real-Time Rerating Pipeline for Rerating Custom Events

Perform these tasks if you will use the real-time rerating pipeline for rerating custom events:

Adding Database Partitions for New Service Usage Events

If you use a partitioned database and you created a new service usage event, add database partitions for the event.

If you use Pipeline Manager to rate events for the new service, be sure to add partitions for delayed events also. See "Partitioning Tables" in BRM System Administrator's Guide.

Loading Rated Events for a New Service into the Database

If you rate usage for a new service, you need to load rated usage events into the database.

Loading Real-Time Rated Usage Events into the BRM Database

Perform this task if you rate new service usage events in real time and you use Universal Event (UE) Loader to load the events in batches.

To collect usage data from batch files for a new service, use Universal Event Mapper to create a template that translates data in the event log file into the data captured by billable events. See "Creating an Event Import Template" in BRM Setting Up Pricing and Rating.

For information about UE Mapper and UE Loader, see "About Rating Events Created by External Sources" in BRM Setting Up Pricing and Rating.

Loading Pipeline-Rated Usage Events into the BRM Database

Perform this task if you use Pipeline Manager to rate usage for a new service.

Use Rated Event (RE) Loader to load events for a new service that are rated in a pipeline into the BRM database. Set up a processing directory for the new events and configure RE Loader and the RE Loader batch handler to load the events from that directory.

If a new service object includes new fields, you might also need to modify the RE Loader pre-processing script and create new control files.

See "Adding New Event Types for RE Loader to Load" in BRM Configuring Pipeline Rating and Discounting.

Setting Up Billing for a New Service

You can collect revenue assurance data for a new service and bill customers for using the service.

Setting Up Bill Items for a New Service

Perform this task if you'll use Pipeline Manager to rate an event type that you added for a new service.

To bill for service usage rated by Pipeline Manager, configure BRM to pre-create service-level bill items. (See "How Pipeline Manager Assigns Delayed Events to Items" in BRM Configuring Pipeline Rating and Discounting.)

To set up service-level bill items, associate the new service type and its usage events with an /item/misc object by modifying the config_item_tags and config_item_types files. Load the contents of these files into the /config/item_tags and /config/item_types objects by running the load_config_item_tags and load_config_item_types utilities. See "About Assigning Custom Bill Items to Events" in BRM Configuring and Running Billing.

Collecting Revenue Assurance Data for New Service Usage

To collect revenue assurance data for a new service, modify the racustom.properties file to include the new service type. This makes the service searchable from Revenue Assurance Center. See "Customizing Revenue Assurance Center" in BRM Collecting Revenue Assurance Data.

Setting Up Account Creation for a New Service

To successfully create accounts for your new service, you may need to first customize the PCM_OP_CUST_POL_PREP_INHERITED policy opcode to prepare the inherited information for an extended subclass.

You can also write a new policy to implement custom functionality. See "Adding and Modifying Policy Facilities Modules".

Setting Up Business Profiles for a New Service

If you use business profiles and you want to specify rules that determine whether a new service meets the requirements of a business profile, modify the pin_business_profile.xml file to configure a validation template for the new service type. Load the contents of the file into the /config/business_profile object by running the load_pin_business_profile utility. See "Managing Business Profiles" in BRM Managing Customers.

Optional Support for a New Service

This section describes some optional ways you can configure BRM to support a new service.

Synchronizing Data for a New Service with External Applications

Business events capture information needed by external applications or internal BRM components. Business events are used by BRM EAI Manager to ensure data synchronization across applications.

You can add events for a new service to a business event to synchronize any data that the service's event might change. To add an event to a business event, modify the Payload Generator EM configuration file (payloadconfig.xml). See "About Publishing Additional Business Events".

For information about EAI Manager, see "Integrating BRM with Enterprise Applications".

Mapping Devices to a New Service

Perform this task if the new service requires a device such as a SIM card, phone number, or voucher.

To associate a new service with a device, add the service type to your device permit map file (such as pin_device_permit_map_num) and load the file into the /config/device_permit_map object by running the load_pin_device_permit_map utility. See "Defining Device-to-Service Associations".

You can associate services to the following types of devices or to custom device types that you create:

  • APNs (access point names)

  • IP addresses

  • Telephone numbers

  • SIM cards

  • Vouchers

For information about managing devices and creating new device types, see "Managing Devices with BRM".

Extending Customer Center to Display a New Service

You can add elements for a new service to the Customer Center interface. For example:

  • Add custom fields to existing panels.

  • Create a new service panel.

  • Add Help topics and information for new fields and panels.

  • Add a new service to the list of services available in the Search panel.

See "Customizing the Customer Center Interface".

If you add a new service and you use the Services Framework Manager client, you also use BRM Configurator and JBuilder to customize Customer Center telco components. See "About Customizing the Services Framework Manager Client" in BRM Telco Integration.

Providing Access to a New Service on the Web

Perform this task if you use Self-Care Manager to provide customers with self-care access to services on the Web.

To provide access to information about a new service on the Self-Care Manager home page, customize the Self-Care Manager interface by using the Customer Center SDK. See "Customizing the Self-Care Manager Interface".

Generating Usage Reports for a New Service

If you create a subclass of an existing BRM /service storable class, you can run and analyze usage reports for the new service. See "Running BRM Reports" in BRM Reports.

For information about BRM reports, see "About BRM Reports".