Customizing Non-Usage Events

You can map any operation (such as a recurring charge or grant) for an object (subscriber, group, device) to an event (such as a custom MyStatusChangeEvent) and define the fields to be included in the Event Detail Record (EDR).

For example, consider a custom MATRIXX Data Container (MDC), CsrBalanceAdjustEvent that has a field csr_name, that extends MtxBalanceAdjustEvent. You can include the csr_name field in EDRs by mapping the operation balance_adjust_subscriber to the custom CsrBalanceAdjustEvent EDR. You must follow the procedure described in this section to include the custom field in EDRs.

When you create a service type definition, you can specify the fields that are included in EDRs in Event Field Mappings in My MATRIXX for the usage event associated with that service type. The process for including custom fields from non-usage events in an EDR is slightly different.

Perform the following steps to customize non-usage events and add fields to EDRs.
  1. During MATRIXX Engine configuration, create a custom MDC that extends a non-usage event.
  2. In My MATRIXX, create an event and field mapping.
    1. In Event Types:
      1. Create an event based on the custom MDC.
      2. Create a field mapping that maps incoming fields to an event type MDC.
    2. In Event Mappings:
      1. Edit an event mapping (such as recurring_subscriber) and map the same event to that operation type.
      2. To include the custom fields in EDRs, set Create Event to true.
For example, consider the following event type definition:
  • ID: 32
  • Path: MtxRecurringEvent | CustomRecurringEvent
  • Name
  • MtxNormalizedEventType
  • ContainerName
  • TypeId
  • Application
The base MDC for CustomRecurringEvent is MtxRecurringEvent. The event mapping is:
  • ID: 2
  • Op: recurring_subscriber
  • Event Type Id: 32
  • Create Event: true
Non-usage EDRs can be generated when an object (device, subscriber, or group) is created or its status changes. The following code shows an example of a status change event in an EDR for a status_change_group operation mapped to the base MtxStatusChangeEvent.
<MtxStatusChangeEvent>
    <StatusBefore>1</StatusBefore>
    <DescriptionBefore>Active</DescriptionBefore>
    <StatusAfter>2</StatusAfter>
    <DescriptionAfter>Inactive</DescriptionAfter>
    <IsSysInit>0</IsSysInit>
    <ObjectId>0:1:5:1084</ObjectId>
    <ExternalId>group externalId</ExternalId>
    <EventTypeArray>
        <value>15</value>
    </EventTypeArray>
    <InitiatorId>0:1:5:1084</InitiatorId>
    <InitiatorExternalId>group externalId</InitiatorExternalId>
    <Flags>1</Flags>
    <WalletId>0:1:5:1085</WalletId>
    <EventTime>2012-02-12T12:20:12.021120Z</EventTime>
    <EventId>0:1:52:847</EventId>
</MtxStatusChangeEvent>