I have setup Asterisk 13 certified version. my requirement is to handle more than 120 concurrent calls.
I use AMI to capture events and transfer informatino based on these events to the computer consoles of the agents(ie console associated with each sip phone extn). this works fine with load testing done with Star Trinity SIP tester tool, used to generate and land calls. I am using a queue to get the calls routed to free extns.). I am also using 120 extns (on the SIP tester) to handle 120 parallel calls, so the queue should not be heavily loaded anyways. the following is my obeservation
- 100,000 calls of 10 sec duration were generated with around 12 calls per second. so approximately 120 parallel calls exist at all times.
- a queue is implemented with all 120 extns added to the queue. the queue routes the calls to the extns.
- a separate PHP script runs on the same asterisk server, catching AMI events. when i get Dial begin, dialend and hangup events, I pass it own to the respective console via another socket, so the incoming callerid, and other details are displayed to the agent on his console.
- the mixmonitor applicatino is also called at the dialend:answer event through AMI, and the file path of the voice recording file is also passed to the respective console. I am not using the dialplan to call MinMonitor, since i will come to know which extension the call was routed only in the dialend event and i need that information to create the recording filename and pass it to the corresponding console.
- out of the 100,000 calls, all the calls were entered the queue, and answered by one of the extensions. this is verified in the MAster.csv file and queue_log file.
- but around 50 audio files were missing from the monitor folder. there is no pattern or order found in the missing files except that they where placed around 30 or 40th posistion in the queue initially
- there are no errors logged in the messages file, but there are lots of warning messages of stasis taskprocessor reached 500 again. this is also seen in the CLI.
- I assume the MixMonitor spawns separate thereads for recording and somewhere it fails.
- i tried for lesser loads like 80 parallel calls, then i have less files missing and when i increase to 140 parallel calls, i have more files missing.
- the SIP tester software also records that all 100,000 calls have been received. so the problem is only the missing voice recording files. The SIP signaling seems to have completed correctly in all cases.
As i have a requirement of handling 120 parallel calls (4 PRI lines). Can you offer some help or hints how i can solve this. esp is there any trace to know if the AMI command to MixMonitor succeeded?
an unrelated question:
I may not require all the AMI events to be sent to my PHP script. I understand, it is possible to specify filters in the manager.conf file. Just curios to know the performance penalty and how it will affect the other modules in asterisk if I enable some filters. i.e.
- whether it is more efficient to allow asterisk manager to send all events without filtering and i will use in my PHP script only those events which I need
- or i put relevant whitelist filter, so that asterisk manager will filter those events and sent only those events to my PHP script. then i dont have to do any filtering.
thanks you in advance for the support.