Session Monitor Event Detail Record

The session monitor Event Detail Records (EDRs) record usage amounts reported for the session contexts within a session at the defined time intervals by session and time with configurable periods relative to the session start, while EDRs for aggregated usage events are generated every hour, every day, every month, or on the bill cycle.

MtxSessionMonitorEvent reports partial session usage at a configurable interval relative to the session start time. One MtxSessionMonitorEvent is generated per session containing the total usage for each rating group, for the configured interval.

MtxSessionMonitorEvent is also generated at the end of the session. Each MtxSessionMonitorEvent has a SessionId, serviceTypeId, SessionMonitor interval start time and end time, and a list of Session Context Usage Quantity Records. Each record defines the ContextId, UsageQuantityType, QuantityUnit and MsgAmount.

MtxServiceTypeObject has the option to indicate if MtxSessionMonitorEvents should generate for the ServiceType. If this option is selected then SessionMonitorIntervalUnit, for example daily or hourly, and SessionMonitorInterval can be configured on the ServiceType. SessionMonitor events are generated and processed in the background.

Service Type Configuration

By default, the MtxSessionMonitorEvents are not generated. Configuration of a service type, MtxServiceTypeObject, allows events, MtxSessionMonitorEvents, to be generated at configured intervals to report accumulated usage quantity during each interval. The intervals are defined as multiples of time units, for example hour, day, month, since session start time. Interval cannot be negative. The value of the ServiceTypeObject flag SuppressUsageEventWithNoImpact has no impact on whether Session Monitor Events are generated.

The fields SessionMonitorEventTypeObjectId and SessionMonitorEventFieldMapArray on the MtxServiceTypeObject are for use in adding custom fields to the SessionMonitor Events.

Custom MDC derived from MtxSessionMonitorEvent could be defined for the Event Type Object specified by SessionMonitorEventTypeObjectId. Also, the Custom MDC could be used as the destination of the Event Field Mapping specified by SessionMonitorEventFieldMapArray. The Source Container Name must be one of the following MDCs or an descendant of it:
  • MtxChargingSessionExtension
  • MtxSubscriberObject
  • MtxGroupObject
  • MtxDeviceObject
  • MtxUserObject
  • MtxUserObjectExtension

The descendants of the above MDCs can also be Source.

The existing Session Field Mapping defined in ServiceTypeObject copies all the fields needed in Event Field Mapping for Usage events as well as SessionMonitor events.

Event Time and Session

In cases of high loads, if session monitor events cannot be generated at the predefined frequency, the subsequent session monitor EDR for the session is the interval amount defined in the ServiceTypeObject from the last event.

For example, if events are to be generated every hour, session starts at 1:05 pm. An event for the interval from 1:05 pm to 2:05 pm will not be generated until 2:07 pm. In this case the delayed event records usage from 1:05 pm to 2:07 pm and the next session monitor event will report usage from 2:07 pm to 3:07 pm tentatively.

When service type definition is changed, whether SessionMonitor events are generated, or frequency SessionMonitor events are generated, the existing open charging sessions generate Session monitor events per the configuration in the service type definition at the current session start time. The new sessions use the updated information from the service type definition.

For example, an event being generated is changed from every 2 hours to every 3 hours, or, an event being generated is disabled, in the middle of the charging session, then, the current charging session continues to generate events every 2 hours. Once the current session ends, subsequent charging sessions generate events every 3 hours, or, does not generate any session monitor events.