I would like to rate-limit outbound calling, keeping the call processing limited to twenty (20) calls per second. If more than twenty (20) calls are attempted, only twenty (20) are processed, the remaining calls are queued and the next twenty (20) are placed a second later. FIFO
I have a service provider that will shut down the SIP trunk if it receives more than twenty (20) outbound calls in one (1) second. This is a toll-fraud prevention mechanism, the service provider will not change it.
The trunk supports over a hundred channels, so
call-limit is not an acceptable solution. I would like the calls to be placed, waiting a second or two (2) is acceptable.
I can control this using a predictive dialer, but I do not have control over regular users. So I am looking for a way to rate-limit at the trunk itself.
Does anyone have an idea how to accomplish this?
I considered an AGI, somehow queuing each request, putting the request into a FIFO queue, than releasing 20 per second back to the dailplan, where the outbound dial command is next in the context. Easier said, than done!
Any help or suggestions would be appreciated.