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
- 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.
MtxCallOutSessionInfoData {
unsigned int32 LastResult
unsigned int32 LastMapResult
unsigned int32 LastMapErrorCode
unsigned int32 AttemptCount
MtxCallOutResponseData CallingCallOutResponse {...}
MtxCallOutResponseData CalledCallOutResponse {...}
MtxCallOutResponseData CallOutResponseList {...}
unsigned int64 UsedActionProfileIdList
}
- 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.
MAP Callout Query for Location and MNP Example
- 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).
- 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).
- 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).
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.