[asterisk-users] Asterisk Autodialer
Raimund Sacherer
rs at runsolutions.com
Wed Aug 26 01:58:23 CDT 2009
oh boy,
On Aug 25, 2009, at 10:05 PM, Alex Balashov wrote:
>
> I've never seen that, myself. But I have no trouble believing it.
>
> That problem - along with Asterisk's other scalability quirks - must
> be
> properly managed. More boxes to spread the calls onto and
> underutilising the hardware on each node is a better extreme to tend
> toward than the opposite.
I can tell you, it can and will bring down your machine if not used
*VERY*, *VERY* carefully!
I have not once in my life (and i've done a lot of stuff) seen such a
dangerous beast as the AMI, if it's an API for a developer, who
develops stuff which are intended to be used by implementors, that's
fine, they know what they are doing. But the AMI is dangerous like an
API, but intended to be used by implementors which not necessarly do
have enough background!
I had to rewrite a Click2Call solution to specifically use Locks to
prevent the following situation:
the callcenter queried from a host of webservers our webserver, which
talks via AMI to get the free/occupied info on callagents
if a customer want to be called this was routed as well through the AMI.
The problem is that at Times asterisk locks for some seconds the ami
interface, at times it is when a call setup takes longer, at times it
has nothing to do with call setups at all, it just locked the AMI and
the local apache processes which tried to get answers from the AMI
kept piling up, so at times the Lock got freed and everything went
normal again, but at times the lock took longer, Apache used up all
its possible threads (20 worker-servers a 254 connections) and
asterisk just locked up completely (100% cpu) load of the machine
about 80 or more.
At times the machine was so completely hosed that you could not even
do anything on the local console so you had to cold-reset the machine!
I now have implemented:
* a caching system for occupied requests
* a Lock system so I am sure only ONE thread systemwide can speak at
a given time with the AMI
* changed the call setup from AMI to pbx_spool
In my oppinion a system integrator should not have to mess around with
locks and doing all this debugging and checking, if i have a manager
interface it should happily accept whatever i through at it, and do
internel locking, checking, discarding on problem totally safe on its
own!
so, just be aware of WHAT you are doing with the AMI!
best
Ray
More information about the asterisk-users
mailing list