MAP Callout Process
Call Control Framework (CCF) can process Mobile Application Part (MAP) callout requests for CAP and Diameter sessions.
MAP Callout Processing
When the Charging Server receives a TCAP or Diameter message, the Charging Server can determine that a MAP callout request must be performed to retrieve more information about a subscriber session, such as mobile number portability information.
- Callout session information
- The callout session information stores the combined results of the callouts for a single message. When a successful combined result is recorded in the top level of the callout session information, no further callouts are required.
- Query log session data
- The query log for a session stores the history of all the callouts for this session, including when they were made and what the results were.
- Single query log data
- Each single query log stores the callout history for a specific piece of information.
- Decision tables
- Decision tables use information from the pricing database to select a callout profile.
- PreRating profile
- PreRating profiles are configured during pricing configuration. PreRating profile configuration determines, for a service, when to make a MAP callout and what type of MAP callout to make.
For each message that the Charging Server handles for a session, pricing can select a PreRating profile based on the configured decision table logic. When the callout is performed, the results of the query are recorded in single query logs for each piece of subscriber information. Each query log has the status of the most recent callout attempt for that piece of subscriber information. This information includes the number of attempts that have been made and the result and time of the most recent single callout.
- The single query log results data.
- The callout response data.
- Other information in the message.
For information about PreRating profiles, see the discussion about PreRating profiles in My MATRIXX.
How Query Log Data is Used
The query log has the following structure:
MtxCallOutQueryLogData QueryLog {
MtxSingleCallOutQueryLogData LocationSessionQueryLog {
unsigned int32 CallOutType
unsigned int32 LastSessionMsgId
unsigned int32 LastResult
unsigned int32 LastMapResult
unsigned int32 LastMapErrorCode
datetime LastQueryTime
unsigned int32 AttemptCount }
MtxSingleCallOutQueryLogData StateSessionQueryLog {
unsigned int32 CallOutType
unsigned int32 LastSessionMsgId
unsigned int32 LastResult
unsigned int32 LastMapResult
unsigned int32 LastMapErrorCode
datetime LastQueryTime
unsigned int32 AttemptCount }
MtxSingleCallOutQueryLogData ImeiSessionQueryLog {
unsigned int32 CallOutType
unsigned int32 LastSessionMsgId
unsigned int32 LastResult
unsigned int32 LastMapResult
unsigned int32 LastMapErrorCode
datetime LastQueryTime
unsigned int32 AttemptCount }
MtxSingleCallOutQueryLogData ServiceInfoQueryLog {
unsigned int32 CallOutType
unsigned int32 LastSessionMsgId
unsigned int32 LastResult
unsigned int32 LastMapResult
unsigned int32 LastMapErrorCode
datetime LastQueryTime
unsigned int32 AttemptCount }
MtxSingleCallOutQueryLogData RoutingOrRedirectInfoQueryLog {
unsigned int32 CallOutType
unsigned int32 LastSessionMsgId
unsigned int32 LastResult
unsigned int32 LastMapResult
unsigned int32 LastMapErrorCode
datetime LastQueryTime
unsigned int32 AttemptCount }
MtxSingleCallOutQueryLogData MnpInfoSessionQueryLog {
unsigned int32 CallOutType
unsigned int32 LastSessionMsgId
unsigned int32 LastResult
unsigned int32 LastMapResult
unsigned int32 LastMapErrorCode
datetime LastQueryTime
unsigned int32 AttemptCount }
}
Business logic determines whether a MAP callout was successful or whether to repeat the callout. This logic is based on the query log data returned in the MtxSingleCallOutQueryLogData MDC for each piece of subscriber information (single callout request).
- Initial — The results for the first session message are used in all future session messages and no further MAP callouts are required for that information.
- Every — The MAP callout is performed for each session message. If the sessionMsgId and the LastSessionMsgId are the same, then no further MAP callouts are required.
- Age — The results returned from the initial MAP callout are used for each session message until a configured maximum age in seconds is reached. Then a new MAP callout is required.
If the most recent MAP callout was unsuccessful and the current pricing callout configuration requests it, the MAP callout is repeated. The query requests only subscriber information that has not been found already and updates only the single query log MDCs for the requested data.
For information about the MDCs used for storing callout response data, including the MtxCallOutQueryLogData MDC, see the discussion about callout response data MDCs.
For information about configuring MAP callout query parameters, including the query frequency, see the discussion about configuring PreRating queries in My MATRIXX.