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.

To limit the number of concurrent sessions, you must first configure the session limitation service in pricing and rating:
  1. 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.

  2. 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).
  3. 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).
  4. 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.
  5. Add a post-paid asset balance for the service, for example, add a USSD call initiation session limit balance:
    1. In Balance Instance Creation Policy, select One per Wallet.
    2. 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.
  6. Create a new price component for the voice service:
    • Set Application to usage.
    • Set Service Type to the service type for the voice service.
  7. 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.
  8. 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.

After configuring the USSD session limitation service in pricing and rating, configure the engine as follows:
  1. 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
    
  2. 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
  3. 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?
  4. 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.

Note: You can also use this method to configure a session limit service in pricing and rating for limiting the number of voice sessions. Then, if you answered y to both the following configuration questions:
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.
If you answered y to only the first question, to add a session limit service ID, then one unit of the session limit balance is reserved for CAP voice calls.