20 Adding Support for a New Service

Learn how to add a custom service to your Oracle Communications Billing and Revenue Management (BRM) system.

Topics in this document:

About Adding Support for a New Service

This document provides an overview of adding a custom service to your BRM system. It provides an end-to-end survey of the tasks you must perform from creating service and event storable classes to setting up rating and billing for a new service. Each task provides a cross-reference to the document that contains more detailed information.

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

Creating BRM services requires the following:

  • Knowledge of programming in C or C++.

  • A good understanding of the following BRM components:

    • BRM system architecture.

    • Storable classes and flists (field lists).

    • Opcodes and the Portal Information Network (PIN) library routines.

    • BRM error handling.

About BRM Services

A service is a capability that you provide to customers, such as telephony, broadband 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 Service and Event Storable Classes

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

You can add a new service to BRM by creating a subclass of an existing BRM service storable class (for example, /service/telco/gsm/service_subclass) or by creating a new base storable 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).

  • For offline charging, you must create a corresponding delayed event storable class for any new /event storable 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 storable 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 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.

  • To store failed call records for a new service whose events are suspended by Suspense Manager, you might need to create a /suspended_usage/service storable class. You must create this new subclass only when the fields unique to the new service type are among the queryable or editable fields in suspense.

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 storable classes.

Setting Up Rating for a New Service

To enable BRM to rate a new service, you must set up pricing data for the new service and configure Rated Event Loader to load rated event data into the database.

Setting Up Pricing Data for Online Rating

You set up service-specific pricing data for online rating by using configuration files. You then add the service to your product offerings by creating charge offers for the new service and adding those charge offers to bundles.

Mapping Event Types to a New Service Storable Class

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

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 yet defined, you can define new RUMs.

Setting Up Provisioning Tags for a New Service

You use charge-offer provisioning to rate a service differently based on charge offer attributes. You implement charge-offer 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 must create new ERAs, and whether you must use the provisioning tag with discounts.

Defining Impact Categories for a New Service

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

You assign charges to impact categories when you create your pricing components in PDC.

Defining Custom Balance Elements for a New Service

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

You define balance elements in PDC.

Specifying How to Round Balance Impacts for New Service Usage Events

You can configure balance impact rounding for specific types of events. For example, you can round balance impacts of session events differently than you round balance impacts of 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, use PDC.

Adding a New Service to Your Product Offerings

After setting up pricing data for a new service, you can create charge offers and add them to your product offerings.

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

  • Charge offers:

    • When creating a charge offer.

    • When defining rollover properties if you added a custom noncurrency balance element and you want to enable rollover for that balance element.

  • Discounts:

    • When creating a discount.

    • When defining discount exclusion rules.

    • When mapping events to a discount.

  • Bundles:

    • When creating a bundle.

    • When making bundles mutually exclusive.

  • Packages:

    • When creating a package.

    • When adding bundles to a package.

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

    • When creating a service group.

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

    • When setting sub-balance consumption rules for a subscription service.

    • When creating service-level balance groups.

  • Charges:

    • When defining a charge.

  • Charge selectors:

    • When specifying the service or event fields that determine which charge is selected.

Use PDC to create pricing components that define pricing information for the new service.

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 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.

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.

Loading Rated Events for a New Service into the Database

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

Use Rated Event (RE) Loader to load events for a new service 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.

Setting Up Billing for a New Service

To bill for service usage, configure BRM to pre-create service-level bill items.

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.

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 "About System and Policy Opcodes".

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.

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 "About Enterprise Application Integration (EAI) Manager".

Mapping Devices to a New Service

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

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".

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.