At the 2nd Village Telco workshop we noticed IAX2 calls didn't work on the MP01, e.g. the call had really messed up audio. IAX2 is a handy protocol as it can pass through firewalls easily.
I tried the following IAX2 calls (all GSM codec):
1/ IP04 to MP01 FXS port
2/ IP04 to MP01 "Echo application", this removes the FXS port.
3/ IP04 to Nanostation 2 running Asterisk with an "Echo application".
In all three cases the audio would start breaking up then the loadav would climb very high (like 35). It takes about 2 minutes to occur on (3), but occurs immediately on (1). I see messages on the Asterisk CLI
like:
CLI> [Jan 1 01:28:28] NOTICE[659]: chan_iax2.c:6521 socket_read: Out of
idle IAX2 threads for I/O, pausing!
Googling only finds reference to this problems from 2007, I am still sorting thru the threads. We are using Asterisk 1.4.11 on the MP01.
This link:
http://lists.digium.com/pipermail/asterisk-bugs/2007-October/004513.html
Suggests it might be fixed in 1.4.12
I have seen a very similar problem when load testing the IP04. Once a certain number of IAX2 calls are placed (I think it was 8 or 16 calls on
the IP04), some sort of CPU load threshold gets hit and the same messages occur. SIP tends to handle more calls on the IP04, and doesn't fall over like IAX2.
So I think IAX2 has sensitivity to CPU load and perhaps delay. In the tests above it took longer to die with (3) than (1) & (2), probably
because of lower CPU load. The problem doesn't occur on x86 boxes much as they are much more powerful.