IAX stands for Inter-Asterisk eXchange, a native VoIP protocol developed for Asterisk, the free and open source PBX project. IAX now most commonly refers to IAX2, the second version of the IAX protocol. The original IAX protocol has been deprecated in favor of IAX2. IETF information on the IAX2 protocol can be found at http://www.ietf.org/internet-drafts/draft-guy-iax-05.txt. General information on IAX2 can be found at http://en.wikipedia.org/wiki/Inter-Asterisk_eXchange
IAX vs SIP
IAX competes with SIP as a Voice over IP protocol. While SIP is more common, SIP calls rely on a two step process. SIP initiates the call over port 5060 (tcp and udp) and then hands over the call to Real Time Streaming Protocol, which typically runs on port 554 (tcp and udp). IAX on the other hand runs on UDP port 4569 and carries both signaling and call on the same port. So, if the phone rings, it will work. SIP, on the other hand may successfully establish the initiation, but may fail with the RTSP part (rings, but can't hear the other party). Given the nature of NAT and mesh topologies in the case of any school, IAX is more favorable over SIP for doing VOIP on XO-1.
An existing IAX client projects that can be sugarized to deliver a IAX client:
- MozIAX, a Firefox extension http://moziax.mozdev.org/
- kiax for *nix and Windows http://sourceforge.net/projects/kiax
- ZoIPer for Windows, Mac, Linux http://www.zoiper.com/
- Add more here...
If we have a bunch of XO-1 in a school running an IAX client each, they will need to talk to an Asterisk server. This can be run on the schoolserver, but may not be wise, given the school server has a significant load with Squid and ejabberd. We could possibly run Asterisk on an XO. Astlinux ( http://www.astlinux.org) is a Linux distro that is designed to run on several platforms including the Soekris family of single board computers. Soekris specs are quite similar to an XO-1. Astlinux 0.48 runs in 64 MB storage and 128 MB RAM. If Astlinux can be made to run on an XO-1, we would have a PBX on an embedded platform. See a HOWTO at http://www.voipplanet.com/backgrounders/article.php/3645586
A simple HOWTO for VoIP using Asterisk http://opensource.sfsu.edu/node/325