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
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 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.
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 wasn't 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
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.