Quality Based Routing

Last updated by FlySIP SoftSwitch on July 19, 2016 20:39

Overview

Each vendor connection can be automatically monitored on two parameters - ACD (average call duration) and ASR (average success rate). You can choose to monitor one of them or both. When one of the measured parameters passes your defined threshold then the connection can either be demoted to lowest priority, blocked, or no action except an alert email will be sent to the switch administrator. When both of the measured parameters ("Quality Monitoring = "ACD and ASR") raises above your threshold then the connection quality is considered as good.

Measuring of the quality is done using the "Statistics Window" which consists of a configurable number of calls.


Then system waits for the "Retry Interval, sec" and when connection become unblocked (after N seconds) system sends to it the batch of calls and based on this batch of calls, system makes a decision about connection quality.


The statistics window will be purged after the connection's quality has changed from bad to good based on the count of successful calls in the retry batch.
The new "Statistics window" will start gathering the statistic starting from the first call in the "Retry Batch" collection, that showed good quality of this connection and further.


Custom case 1:
Bad quality action: block
Retry batch value = 250 calls
Retry Interval = 1800 seconds
Connection is being used by 500 simultaneous sessions when the block action gets applied to any new call.
The retry interval starts from this moment, though the we do not kill the existing sessions.
After 250 calls have successfully finished, the system calculates the quality (ASR or ACD) and if the quality gets better the connection could be unblocked immediately.
Otherwise the block record would be added to the connection_quality_stats and the connection stays in a block state.

Custom case 2:

Bad quality action: Make last in routing
Retry batch value = 250 calls
Retry Interval = 1800 seconds

Connection is being used by 500 simultaneous sessions when the block action gets applied to any new call.

The retry interval starts from this moment, though the we do not kill the existing sessions.

After 250 calls have successfully finished, the system calculates the quality (ASR or ACD) and if the quality gets better the connection could be placed on its place immediately.

Otherwise the block record would be added to the connection_quality_stats and the connection stays on its place.

At the same time having this connection last in routing it can terminate some part of the traffic (depending on the huntstop configuration and routing policy).

If this connection terminates 250 calls for the time less then 1800 seconds, system recalculates the quality of the connection using this batch even if the retry interval hasn't expired yet.

Connection Quality Recovery Algorithm


A bad quality connection is fully or partially disabled, so it is difficult to evaluate its current quality. To prevent indefinite blocking of a connection, the quality of a bad connections is periodically tested be sending a small percentage of calls to that connection. If the calls succeed, and the quality of that connection rises above the defined threshold then the "Bad Quality Action" will be reverted.

Quality Monitoring Tunable's


The Edit Vendor Connection form contains the following options that you can set manually.

  • ACD Threshold - The Average Call Duration that is measured only for calls with non-zero duration, measured in seconds, When the ACD drops below this value then the connection is treated as bad, and the "Bad Quality Action" is executed.
  • ASR Threshold - The Average Success Rate threshold expressed as a percentage which describes the correlation between Total count of calls and non-zero duration calls. When the ASR precentage drops below this value then the connection is treated as bad, and the "Bad Quality Action" is executed.
  • Statistics Window - The number of calls used to calculate the ACD and ASR metrics. ACD & ASR will be calculated on the last N calls made to the given connection. The Statistics window is shifted when the new call comes. Example: if the window is 5 calls, either ASR or ACD is calculated for those 5 calls. Once the 6th call comes, the ASR or ACD is recalculated for the calls from 2nd till 6th, the same thing happens when 7th call comes (from 3rd till 7th call are used to measure the new value)
  • Retry Interval - Number of seconds after which the switch will start sending a "Retry" calls to determine if the connection's health has improved from bad to good.
  • Retry Batch - Number of calls to send as "tests" to test if the health of the connection has improved from bad to good
  • Bad Quality Action - When the chosen metric drops below the defined threshold, you can have one of the following actions take place
    • Make Last In Routing - The Vendor connection will be dropped to lowest priority in the associated routing group(s). Retry calls will be sent after the 'Retry Interval' timer has elapsed, the connection will be temporary returned to its normal place in routing. If the Retry calls succeed, and the quality metric rises above the threshold, the connection priority will be returned to its previous position in routing on permanent basis, until the quality goes down again.
    • Block - The Vendor connection will be blocked. Retry calls will be sent after the 'Retry Interval' timer has elapsed, the block will be removed temporary. If the Retry calls succeed, and the quality metric rises above the threshold, the block will be removed fully until the quality goes down again.
    • Notify Only - No action will be taken, but the root user of the switch will be notified via email that is configured in his preferences.
  • Notify On Status Change - This causes a messages to be sent to the e-mail address of the root customer on each change of the status of a connection. The messages are sent only on real not temporary status changes.