Thanks for the comprehensive reply. I have switched to using plain SIP and the experiments continue... Matt On Sat, February 6, 2010 11:11 pm, Derek Smithies wrote:
Sigh. the web pages are wrong.
I have implemented the earlier version of IAX2 inside the opal library. At one stage, I could make a voip call using IAX2 to digiums test server.
The standard IAX2 codebase did not (at one stage) support silence suppression. With silence suppression, the bandwidth usage is halved. Using efficient packing of audio makes a few percent of difference. Doing silence suppression makes 50% of difference to bandwidth.
IAX2 is more efficient? Most(>90%) of the cpu work when doing voip is in the codec. By using a non standard approach (iax2 audio packets) for carrying audio, you will have a minimal gain in effiency (or cpu usage). Remember that iax2 uses the same codecs as in H.323/SIP. Oh - you are right, g711 is a codec, and has trivial cpu cost. However, with g711 any bandwidth you save on the header is negligible compared to the size of the encoded audio block.
Secure? Security protocols (HIP, ZRTP, etc) take years of careful development to get something that works well. I do not recall seeing evidence of years of development going into IAX2 security. Either the author of the security in IAX2 is a pure genius, able to do in days/weeks what other do in years,,,, or the iax2 security is average (at best).
Yes, all the iax2 packets go to the same port. This has huge advantages for getting through firewalls, and setting up firewalls to accept incoming calls. It does (slightly) increase the complexity inside the iax2 code.
===================================
if you want iax2 inside freeswitch, my suggestion is that the opal library needs to have the iax2 code there brought up to spec, and then used (in the same way as the H.323 component of the opal library).