How to set CPS (call per second) limit?

Hi! I’m need set cps (call per second) limit for outgoing call at each trank. please, tell me how to do it better

I’m not sure there’s a way to do it in the GUI, but you should be able to use the “additional config” stanza like this (the example is for video codecs, but you see the way):

@jcolp might have some insight for us (as a resident Asterisk Guru(r))

There’s nothing built in to set or control calls per second limit. Any such functionality would be written using primitives exposed by Asterisk, such as global variables and associated logic.

I have never tried this module, but maybe it could work for you?

https://wiki.freepbx.org/display/FPG/Outbound+Call+Limiting-Admin+Guide

I think you might be able to hack the third party module, Trunk Balancing:

It hasn’t been touched in years, not sure if it will work in 15 or not.

this module makes a uniform load between several trunks, but I need a little different - limitation by trunk or group of trunks by the number of calls per second

according to the description, it seems like it is not clear whether the restriction is made exactly in a second.

I assume this is a Boiler Room operation and you are seeking to stay below provider imposed thresholds for spam/scam detection. I can’t think of a legit use case for this request.

2 Likes

call center operator. Calling customers with information and alerts. legal enough?

1 Like

Maybe ask Sangoma directly? This seems like the most straightforward solution, if it will work.

What is the CPS rate you are looking at? Because that’s going to be impressive that you are sending all those calls exactly at the same second from agents.

So what is the actual numbers you are looking to limit yourself to?

Well, for example, 6 calls per second from a trunk / trunk group

and where better to ask them? support they have paid

6 CPS?! How many calls are you trying to have at once? That will be a crap ton of calls. Again, how are you going to send 6 calls per second from the PBX? It’s not possible via human interaction, that is a person dialing numbers or hitting redial.

You’re talking about 100+ calls being connected per minute.

Sangoma frequents the forum, but this is not a direct channel to them. I recommend: https://www.sangoma.com/contact-us/

wow i thought call centres might be CPH not CPS

1000 people 15 calls per hour is 4ish CPS ? that’s a large call centre that is very busy. i’m sure the FreePBX team would love to showcase that deployment
not that i care what you do just curious about these digits

i think CPS setting should be part of the GUI because why not

Maths and the actual need for it is why. Everyone seems to fail the maths that are related to this entire process. So let’s look at the numbers, shall we?

If you were to use 100,000 minutes of use in a day with 60% of the calls being answered (which is pretty good) and the call roughly averages 90 seconds (call center avg.). At the end of the day you are looking at the following roughly:

Total Calls Per Day: 111,000 (roughly)
Answered Calls: 66,667 (roughly)
CPS: 2 Calls Per Second (roughly to get those numbers)

So now what will 6 CPS which is 3x’s what I’ve just laid out equal? Way more. With those stats above making it 6 CPS would mean over 450K minutes daily with 300K worth of answered calls.

Please tell me how many average call centers that aren’t attached to some major company are doing that much traffic in their call center(s)? Better yet, please show me any of those that are running FreePBX with that kind of call volume. No one doing that amount of call volume that would require the amount of staff on it is going to turn around and use an FOSS PBX for that. They’ll have a budget for a commercially driven system built for call centers.

yea we said the exact same thing

This calculation is true only for continuous calls and a huge number of employees. But you can consider more realistic options.
For example - Call files are formed at the beginning of the day and you need to fulfill this plan, but do not exceed the established CPS
In general, the idea is not that there will be a continuous flow of calls, but to be able to restrict this flow so as not to exceed either the provider’s restrictions or the capabilities of the operators

That calculation was based on calls that were connected and lasted 90 seconds each. That is what 6 CPS would get you with 60% (300K) of your outbound calls being answered. That also doesn’t include the amount of channels you would need to support this.

1st second: Drop 6 call files into the outgoing directory, Asterisk processes immediately. So now you have 6 calls being dialed out at once. Those calls could take anywhere from 3-30 seconds to be answered/denied/busy whatever.

2nd second: Drop 6 more call files. Now you still have either those original 6 ringing since this is a second later. You now have 12 channels opened.

3rd second: 6 more files. Now at this point you may or may not have the original 6 calls still going, they could be answered/dropped at this point. Even then you still have upwards of 12-18 channels now consumed.

See where this is going? Within 10 seconds, which is about 2 rings worth of time, you will have anywhere from 40-60 channels in a ringing or connected state. So now how long can you maintain that depending on your agent pool, bandwidth and trunk capacity?

But since you’re asking how to limit CPS and you are using callfiles the answer is simple, you limit how many and/or how fast you drop callfiles in the outgoing directory. You could also future date them to fire at a later time.