[asterisk-users] asterisk, phpagi and singleton

Steve Edwards asterisk.org at sedwards.com
Sun Oct 5 13:55:59 CDT 2008


On Sun, 5 Oct 2008, Giedrius Augys wrote:

>   I've this situation: 300+ simultaneous calls and dialplan like this:
> exten => _X.,1,Answer()
> exten => _X.,2,DEADAGI(check_status.php)
> exten => _X.,3,Dial(SIP/other/${NUMBER})
> exten => _X.,4,Hangup
>
> exten => h,1,DEADAGI(cdr.php)
>
> When project is running , I had  a lot of defunct php scripts (I've exceed
> mysql connection limits and so on, deadagi help a bit). The scripts
> check_status.php and cdr.php connects to database to retrieve/store data. So
> one call - 2 connections to database. So I want to do like this: 100
> simultaneous calls , make 200 queries per one mysql connection. WEB
> developers uses singleton to avoid this issue. Maybe somebody has experience
> with singleton and phpagi.
> thanks...

I'm not a "php weenie," but whatever is the cause of your defunct 
processes should be resolved or you are always going to have issues. I'd 
look for open channels, open database connections, improper child process 
handling or improper signal handling.

The first invocation of deadagi() appears to be inappropriate and 
misleading. The channel is not dead at this point. If you were having 
problems when callers hang up, you may not be handling signals correctly.

You can raise the number of connections allowed by MySQL, but this is a 
"band-aid," not the solution. I'm guessing you don't need xxx simultaneous 
connections to the database.

fastagi() would allow you to have a single[ton] connection to the 
database. You can run the fastagi "daemon" on the Asterisk server, the 
MySQL server or any other server.

In the off chance the above is your literal dialplan, you should use "n" 
instead of numbered priorities.

Thanks in advance,
------------------------------------------------------------------------
Steve Edwards      sedwards at sedwards.com      Voice: +1-760-468-3867 PST
Newline                                             Fax: +1-760-731-3000



More information about the asterisk-users mailing list