I have written a Fast AGI application which does the remote database lookup, logging and few other things. My server is a preforking server which is already running on a remote system waiting for the call from Asterisk.
Here is my extension.conf:
exten => _1,1,Answer()
exten => _1,n,AGI(agi://192.168.0.1:8080)
I need some fundamental clarification: The server I am using for Fast AGI is a blocking server and when the call comes to Asterisk, Asterisk immediately hands it over to Fast AGI server and than all the activities are done by the application running on that Fast AGI server till the application ends. And only than the control again comes in extension.conf for hangup.
Is this a advisable solution when it comes to reducing load from Asterisk server. Will this allow Asterisk to handle more calls?
The processing my application does in significant. It store the data into remote database and logs every activity user does on his mobile like pressing DTMF. This log than helps me to know why the users are failing to understand a particular IVR call flow. Because the application is processor bound not the network bound I am thinking that a prefork or a multi threaded server will be useful compared to Asynchronous server.? What is your take on it?
Is there any way to bring Apache Web server in place of my Fast AGI server? Apache 2 is an Preforking based MPM server and obviously will be better then my Fast AGI server. As anybody worked on it? May be some web service based server etc?