Limiting Concurrent Callback Sessions
You can limit the number of concurrent Unstructured Supplementary Service Data (USSD) callback sessions on a subscriber basis, for example, you can set the limit to one session per subscriber.
You can configure the USSD callback service to allow a limited number of callback sessions per subscriber at one time. For example, if you configure the service to allow only one callback session
at a time and the subscriber tries to make another callback call while the first call is in progress, the second call fails. The message sent back to the USSD callback service has
AuthResult=83
in the CallStartResult field.
- In pricing, add a new service context type to the service type for the voice service for the USSD call
initiation session limit service, for example, initiation_limit.
Note the ID of the new service context type. You use this ID when configuring MATRIXX Engine.
- Add an Unsigned Integer
Equalizer normalizer template that normalizes on the service type (one that is
based on the
MultiServiceList.ServiceId
field in the MtxDiamRoMsg MDC). - Add a new normalizer that uses the normalizer template you created in the previous step. The normalizer table should normalize on the service ID for the USSD call initiation session limit service (initiation_limit).
- Create a new decision table (ussd_decision_table) and add the new normalizer created in the previous step. Add a row for the new service type context.
- Add a post-paid asset
balance for the service, for example, add a USSD call initiation session limit
balance:
- In Balance Instance Creation Policy, select One per Wallet.
- Add a new threshold with
the following values:
- Value Type is absolute.
- Value is 1.
- Threshold Type is Credit Limit.
Note: You can specify a limit that is greater than one by specifying a different value for the threshold in the Value field. - Create a new price component
for the voice service:
- Set Application to usage.
- Set Service Type to the service type for the voice service.
- Add a rate table for the
USSD call initiation session limit to the new price component:
- Set Balance Impact to Total Usage Charges for the USSD call initiation session limit balance.
- Add the decision table created in step 4.
- Add a fixed charge of 1 for the call initiation limit row.
- Edit the purchase offers for
the voice service:
- Add the new balance.
- Add the new pricing component to the voice service offer.
For more information about pricing and rating, see MATRIXX Pricing and Rating. For more information about configuring pricing and rating, see My MATRIXX Help.
- For each voice service for which you want to use session limits, ensure the answer to the following create_config.info question is
n:
Do you want to add a session limit service id in the vcs_service calls service?n
- Change the answer to the following create_config.info question to y:
Do you want to add a call initiation session limit service id in the vcs_service calls service?y
- Specify the ID of the service context type for the new USSD call initiation session limit service when you answer this question:
What call initiation session limit service id do you want for the vcs_service calls service?
- You must restart MATRIXX Engine for the configuration changes to take effect.
When the subscriber makes a USSD callback call, CCF reserves one unit of the special USSD call initiation session limit balance in addition to the money and other resources it reserves. When the call ends or fails, this unit is released (0 units have been used). If the subscriber tries to make another callback call while the first call is in progress, the second callback fails because one unit of the special USSD call initiation session limitation balance is already reserved. The CallStartResult in the message sent back to the USSD callback service has AuthResult=83.
Do you want to add a session limit service id in the vcs_service calls service?y
Do you want to add a call initiation session limit service id in the vcs_service calls
service?y
- If the call is a USSD callback call, then CCF reserves one unit of the USSD call initiation session limit balance.
- If the call is not a USSD callback call, then CCF reserves one unit of the session limit balance.