User Rating: 5 / 5

Star Active Star Active Star Active Star Active Star Active

So, again. In my last article related to how to work around the crappy surcharges some greedy carriers are imposing I describe how to extend the call to a minimum of 6 seconds when the caller hangs up first. This is very useful in a class-5 PBX, but it is not enough. Another surcharge that carriers are innovating is the cancellation ratio; you may get a surcharge if a certain percentage of your calls in a given period of time exceeds a threshold.

Possible Scenarios

This is really difficult to avoid, for starters, think of a ring group that points to a mix of extensions and cellphone numbers (make it worst, some extensions have a call forward to cellphones). When a call arrives, all the endpoints and cellphones will ring; when someone answers every other call is cancelled rising right away your cancellation ratio. Also if you have a teenager you may know that they do not always answer the phone, 10 to 20 lost calls just to find out they forgot to they put it on mute.

Any of these possible scenarios or any other you may have rises your cancellation ratio, therefore your surcharges. I will describe a technique I have implemented in the next LCR for FusionPBX 1.3.0 release.

My Solution: Adding a Smart Delay

The principle of the solution is easy. I propose to add a delay that will hold before connecting to any carrier. That given delay must be smart and dynamic. Users who have a low cancellation ration shouldn't be punished for those who do.

So, let's get back to the old good days of school and remember the statistic courses, more specific the standard deviation.

standard deviation diagram

I propose that the given delay should be the mean + two times the standard deviation. This would give the 97.7% of probability that the caller historic waits while waiting before deciding to cancel the call.

For example, let's pretend my telephone number has the following statistics in the last month:

  • an average waiting of 5 seconds, and
  • a standard deviation of 15 seconds.

My smart delay would be 35 seconds. Because the statistics show I am can wait for that time before cancelling a call, the wait should be passed unnoticed. In the meantime, I should be listening to the local ring-back tone.

Tips to Deploy This Workaround

The first one I could give you is to get the LCR for FusionPBX, I have successfully added it and it will be released in the 1.3.0 version. If you want to do it for yourselves, take in mind:

  • don't use a fixed delay, make it dynamic, even the same source changes its habits along time;
  • use something to discriminate between users. You may use the account code, the caller id number, or the source IP variables. It really depends on your scenario. Personally, I selected the caller id number.
  • make sure you send the ring-back tone somehow. A dead-air silence will give you customer drama. You don't want that.
  • define a threshold before applying the policy, 15% is a good start. If someone calls for the very first time to the cellphone to make a test, because they are clean, they shouldn't be punished.

Good luck!

blog comments powered by Disqus


Read about IT, Migration, Business, Money, Marketing and other subjects.

Some subjects: FusionPBX, FreeSWITCH, Linux, Security, Canada, Cryptocurrency, Trading.