Call Out Response Data MDCs

Call Control Framework (CCF) uses MATRIXX Data Containers (MDCs) to hold response data for Mobile Application Part (MAP) call outs and Lightweight Directory Access Protocol (LDAP) call outs for a call or a session.

CCF stores call out session information for the current message, such as an IDP, ApplyChargingReport message, or a Diameter message for this session.

Call Out Session Information

The call out session information contains the results of a set of pre-rating queries for different pieces of information that were performed at the same time, such as when an IDP is received and a MAP call out is required to query location and MNP data, or when an LDAP call out is required to retrieve subscriber information. The call out session data is structured as follows:
MtxCallOutSessionInfoData {
    unsigned int32 LastResult
    unsigned int32 LastMapResult
    unsigned int32 LastMapErrorCode
    unsigned int32 AttemptCount
    MtxCallOutResponseData CallingCallOutResponse {...}
    MtxCallOutResponseData CalledCallOutResponse {...}
    MtxCallOutResponseData CallOutResponseList {...}
    unsigned int64 UsedActionProfileIdList
    }
In addition to the MtxCallOutResponseData MDCs, it logs the combined results of the call out requests for the current message in the following top level fields, and uses this information to decide if the call out has successfully retrieved all the required information:
LastResult
LastResult is set for all types of call out request (both MAP and LDAP). It holds the combined results of the single queries for this message:
  • 0 — Success means that all the queries were successful.
  • 1 — Fail means that one or more queries was unsuccessful.
  • 2 — Timeout means that one or more queries timed out.
  • 3 — Config error means that there is a problem in the pricing file configuration for pre-rating queries. The details of the problem, such as the same pre-rating profile being selected more than once by the pre-rating profile generator for the same session message, are logged as an error.
LastMapResult
The MAP protocol specific result for the last set of profiles processed, where:
  • 0 — Success means that all the MAP queries were successful.
  • 1 — Timeout means that the last MAP query timed out.
  • 2 — Routing failure means that the last MAP query failed because a TCAP notice primitive was received indicating that the message could not be sent to its destination.
  • 3 — Error means that the last MAP query failed due to a ReturnError component being received in response to the MAP operation.
  • 4 — Aborted means that the last MAP query failed when a TCAP ABORT was received.
  • 5 — Unexpected message means that the last MAP query failed when an unexpected message was received.
  • 6 — System failure means that the last MAP query failed because there was a problem in the MATRIXX platform.
LastMapErrorCode
Set only for MAP call outs. If a ReturnError was received for the last MAP query, the error code is recorded in LastMapErrorCode. Otherwise, this field is not present.
AttemptCount
Set for all types of call out request (both MAP and LDAP). It records the number of call out attempts for this message. If the AttemptCount field is not present, it means that either the last time call outs were made for this message, they were all successful, or no call outs have been made.
When a new ApplyChargingReport message or a new Diameter accounting start or accounting interim message is received, these fields are removed from all the query logs and from the top level fields.
Note: The log data in the MtxCallOutResponseData MDCs also include the above results fields in single query logs that store the results of each query for a single piece of data.

MAP Callout Query for Location and MNP Example

In this example, CCF receives an IDP and the Charging Server determines that a MAP call out request for subscriber location and MNP data is required.
  1. The location query fails with error 34, but the MNP query succeeds. The following call out session information is logged at the top level:
    • AttemptCount = 1.
    • LastResult = 1 (last query for location failed).
    • LastMapErrorCode = 34.
    • LastMapResult = 3 (last MAP query failed).
    If both queries had failed only the details for the last failure would be recorded at the top level.
  2. The location query is retried to a different address, but times out while waiting for a reply. The following call out session information is logged at the top level:
    • AttemptCount = 2.
    • LastResult = 2 (last query for location failed).
    • LastMapErrorCode = NOT PRESENT (because a timeout is different from a return error).
    • LastMapResult = 1 (last MAP query timed out).
  3. The location query is retried again, this time with a successful result. The following call out session information is logged at the top level:
    • AttemptCount = 0 (because there is now a successful result for both queries).
    • LastResult = 0 (success).
    • LastMapErrorCode = NOT PRESENT (because there wasn't an error).
    • LastMapResult = 0 (success).
Now that all the required information has been found, no more call outs are required and the call continues.

LogicalState

The MtxDiamRoMsg.LogicalState field is a signed integer value that is copied from the Next Logical State value specified for the current pre-rating profile. If present, after attempting all the call outs for the current profile, processing returns to the profile generator to select another profile even if all the call outs were successful. This allows you to specify more complex logic in subsequent decisions to select a profile, by passing state information between calls to the generator. For more information about using LogicalState, see the discussion about using profiles with next logical state.