The Inter-Asterisk Exchange Protocol, currently in its second revision, is a signaling protocol for VoIP networks, just like SIP and H.323. It provides endpoint and trunk signaling like those protocols, too. The chief difference between IAX and the other signaling families is that IAX doesn't implement RTP as the packetizing mechanism. Instead, IAX has its own way of packaging encoded voice.
IAX is also NAT-proof, so dozens or hundreds of simultaneous calls from behind a masquerading firewall will function correctly, just as HTTP does.
IAX is implemented in a far-simpler and less application-exhaustive manner than SIP and H.323. It is really intended just for telephony applications, while H.323 and especially SIP, include far more extensibility. IAX is therefore much more compact; complete implementations have been done with as little as 64 kb of object code.
While a complete cycle of registration, call signaling, voice transmission, and tear-down can use several TCP and UDP ports and connections with SIP or H.323, IAX handles all of these functions using a single UDP port. When the IAX client (endpoint) registers with the IAX server or proxy, this UDP port is utilized. When a call is placed, this same port is utilized. When voice transmission occurs, this port is utilized once again. The way IAX distinguishes between registration, signaling, and voice packets is by including headers and metadata in each packet that defines what the packet's purpose is and whether it has a payload attached.
The IAX protocol documentation describes the order of these header and metadata elements as control frames , metaframes, and information elements, each with an IAX-specific syntax. IAX isn't encoded using ASCII or ASN.1, either. Instead, It uses a purely a proprietary performance-oriented binary-encoding scheme.
Unlike SIP and H.323, IAX is not a standards recommendation, but rather an independent protocol created by Mark Spencer, founder of Digium. Though proprietary, the specification for IAX is open and has been embraced by the VoIP community. As such, it is quite well-implemented in Digium's products. Asterisk, the open source softPBX, implements it fully, and Digium manufactures an ATA that is IAX based. A hardphone is also in the works. Refer to Table 7-2 for a list of the key characteristics of IAX.