Callout Response Data MDCs

Call Control Framework (CCF) holds response data for Mobile Application Part (MAP) callouts and Lightweight Directory Access Protocol (LDAP) callouts for a call or a session in MATRIXX Data Container (MDC) format.

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

Callout Session Information

The callout session information holds the results of a set of prerating queries for different events that happen at the same time, such as the following:
  • When an IDP is received and a MAP callout is required to query location and MNP data.
  • When an LDAP callout is required to retrieve subscriber information.
The callout 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, the combined results of the callout requests for the current message in the following top level fields are logged. This information is used to decide whether the callout successfully retrieves all the required information:
LastResult
LastResult is set for all types of callout request (both MAP and LDAP). It indicates 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 an error in the pricing file configuration for prerating queries. MATRIXX logs details of the configuration the error, such as the same prerating profile being selected more than once by the prerating profile generator for the same session message.
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 was not sent to its destination.
  • 3 — Error means that the last MAP query failed due to a ReturnError component 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 an issue in the MATRIXX platform.
LastMapErrorCode
Set only for MAP callouts. 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 callout request (both MAP and LDAP). It records the number of callout attempts for this message. If the AttemptCount field is not present, it means that either the last time callouts were made for this message, they were all successful, or no callouts 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 includes the previous results fields in single query logs that store the results of each query for one 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 was not 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 prerating profile. If present, after attempting all the callouts for the current profile, processing returns to the profile generator to select another profile even if all the callouts were successful. This allows you to specify more complex logic in further 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.