Example Pricing Configuration to Handle Callout Errors
This example shows how you can configure pricing to detect and handle an error in the Mobile Application Part (MAP) callout pricing logic.
What Happens When a MAP Callout Fails
If a MAP callout fails, or times out, then the service logic makes another call to the pricing logic to allow an attempt to handle the problem. When this happens, the service logic enhances the message with information about the failure that the pricing logic uses to identify and deal with the problem.
LM_ERROR 23449|23494 2018-05-05 12:30:45.642136 [charging_server_1:1:1:1(5052.49743)] |
CHRG-Charging:charging_task:RatingContext::getSubsInfoQueryActions: Pricing configuration for call out incorrect.
Repeated use of same action (ActionProfile:1) within same session Message.
What Action to Take
- Configuring another pricing component for detecting the error.
- Denying the call if an error is detected and then attempting to apply charging logic.
The corrected configuration checks the number of callouts that have been made already for the enriched session message. The charging logic then checks for the results of any callouts and denies the call if a failure is detected.
Overview of Example Pricing Configuration
The following overview summarizes the pricing configuration used in this example.
- A prerating profile is configured that has one prerating callout action assigned to it. The callout action is configured to query Mobile Number Portability (MNP) information for a subscriber where the query source for the subscriber ID is the Called Station ID. For details, see the example configuration in Prerating MNP Profile.
- The prerating generator is configured to check the destination of the call and the number of callout attempts by using the following two normalizers:
- MNP Callout Check
- MAP Callout Attempt Count
For details, see the example configuration in Prerating MAP Callout Generator.
- The first pricing component in the charging logic is used to confirm the callout result and deny the call if there was a failure in the callout. If no
callout was made, or a successful callout was reported, then charging logic continues as usual.
For details of the example configuration to confirm the results, see Results Validation.
Normalizers and Normalizer Templates
Normalizer Name | Normalizer Template | Algorithm | Normalization Algorithm |
---|---|---|---|
MNP Callout Check | DiamRoMsg CalledStation Template | phonePattern | Phone Number Pattern Match |
MAP Callout Attempt Count | MAP Callout Attempt Count Template | numberEqual | Unsigned Integer Equality |
MAP Last Result | MAP Last Result Template | numberEqual | Unsigned Integer Equality |
MNP Value Check | MNP Value Check Template | StringEqual | String Match |
Prerating MNP Profile
Field | Set To |
---|---|
Name | MNP MAP Callout Action |
Description | v2+ ATI MNP |
Query Frequency | Initial Only |
Info Query Flags | Ask MNP Info |
Preferred Domain | Circuit Switched |
Call Out Type | MAP v2+ ATI |
Query Source | Called Station ID |
Use Query Source For Destination | Not set |
Timeout In Milliseconds | 5000 |
Routing Indicator | Route on SSN |
Subsystem Number | 222 |
Global Title Type | 4 |
Global Title Address | 96895001006 |
Translation Type | 0 |
Numbering Plan | 1 |
Nature of Address | 4 |
Prerating MAP Callout Generator
- The MNP Callout Check normalizer
- The MAP Callout Attempt normalizer
- MNP — If the CalledStationId value matches a prefix defined in the normalizer table, then a MAP callout to check for MNP might be required.
- Not MNP — This is the default result. Unless the CalledStationId value matches one of the predefined prefixes, MNP is not checked, no callout is made,
and processing passes through to charging. Note: If the CalledStationId is not present, this also results in Not MNP. In this case processing passes straight through to charging. Charging treats the absence of a called party as an error and handles the call accordingly, for example, by terminating the call.
Field | Value |
---|---|
Name | MNP Callout Check |
Normalization Template | DiamRoMsg CalledStation Template |
Normalization Algorithm
|
Phone Number Pattern Match |
Value If Field Not Present | Not MNP |
Default | Not MNP |
MDC Fields |
|
Rows | |
Name | Value |
Not MNP | 968950115* |
Not MNP | 968220015* |
MNP | 9689* |
MNP | 9687* |
MNP | 9682* |
Field | Value |
---|---|
Name | MAP Callout Attempt Count |
Normalization Template | MAP Callout Attempt Template |
Normalization Algorithm | Unsigned Integer Equality |
Value If Field Not Present | 1st Attempt |
Default | All Attempts Failed |
MDC Fields |
|
Rows | |
Name | Value |
Ist Attempt | 0 |
2nd Attempt | 1 |
All Attempts Failed | 2 |
Prerating MNP Generator Query Table and Prerating MNP Query Decision Table show how the prerating generator combines the results of the two normalizers in a decision table. If this is the first attempt and the result of the MNP Callout Check normalizer is MNP, then the MNP Profile is selected and a MAP callout request for MNP information is performed.
Field | Value | |
---|---|---|
Name | Pre-Rating_MNP_Table | |
Description | Check destination and earlier results | |
Default Result | SKIP |
MAP Callout Attempt Count Result | MNP Callout Check Result | Prerating Profile |
---|---|---|
1st Attempt | MNP | MNP Profile |
1st Attempt | Not MNP | SKIP |
2nd Attempt | MNP | SKIP |
2nd Attempt | Not MNP | SKIP |
All Attempts Failed | MNP | SKIP |
All Attempts Failed | Not MNP | SKIP |
Results Validation
- In this example the MAP Last Result normalizer is configured to confirm the callout results by checking whether the callout was successful or whether
it failed.
For example configuration details, see MAP Last Result Normalizer.
- The first pricing component of the charging logic is configured to use the MAP Last Result normalizer to deny the call if there was a
failure in the callout. If no callout was made, or a successful callout was reported, then charging logic continues as normal.
For example configuration details, see Pricing Component Rate Table.
- If the first pricing component validates that a successful callout has been made, then the MNP Value Check normalizer is used to check
the callout result. In this example, the normalizer is used to determine whether the call is OnNet or OffNet. The normalizer could be combined with other normalizers for
calculating appropriate charging.
For example configuration details, see MNP Value Check Normalizer.
MAP Last Result Normalizer
Field | Value |
---|---|
Name | MAP Last Result |
Normalization Template | MAP Last Result Template |
Normalization Algorithm | Unsigned Integer Equality |
Value If Field Not Present | Not Present |
Default | Not Present |
MDC Fields |
|
Rows | |
Name | Value |
Success | 0 |
Error | 1 |
Timeout | 2 |
Repeated Use of Same Profile | 3 |
Pricing Component Rate Table
Field | Value |
---|---|
Name | MAP Callout Failure Handling DT |
Balance Impact | United States dollar Balance |
Units | None |
Quantity Definition | Usage Quantity |
Default Beat | 1 Second |
Default Formula | SKIP |
MAP Last Result Normalizer - Result | Formula |
---|---|
Error | DENIAL: 1 |
Timeout | DENIAL: 1 |
Repeated Use of Same Profile | DENIAL: 1 |
MNP Value Check Normalizer
Field | Value |
---|---|
Name | MNP Value Check |
Normalization Template | MNP Value Check Template |
Normalization Algorithm | String Match |
Value If Field Not Present | Not Specified |
Default | Unexpected |
Match Prefix/Suffix | Prefix |
Case Sensitive | Yes |
MDC Fields |
|
Rows | |
Name | Value |
Onnet | D12 |
Onnet | D13 |
Onnet | D95 |
Onnet | b12 |
Onnet | b13 |
Onnet | b20 |
Offnet | D11 |
Offnet | D15 |
Offnet | D21 |