49.7. Appendix - IAX protocol

IAX is the Inter Asterisk eXchange protocol used by Asterisk, a PBX open source server from Digium. It provides control and transmission of any type of streaming media over Internet Protocol (IP) networks, including video, but is targeted primarily at the control of IP voice calls.

IAX now most commonly refers to IAX2, the Version 2 of the IAX protocol. The original IAX protocol has been deprecated almost universally in favor of IAX2; subsequent references to IAX, in this tutorial, refer to Version 2.

The primary design goals for the IAX protocol are: minimize bandwidth usage for both control and media with specific emphasis on individual voice calls and provide native support for Network Address Translation (NAT).

IAX is a peer-to-peer media and signaling protocol; the signaling component is similar to the Session Initiation Protocol (SIP). With respect to media, sequencing and timing information is included in IAX frames.

The basic design approach for IAX multiplexes signaling and multiple media streams over a single User Datagram Protocol (UDP) association between two Internet hosts. In this facet of its design, it's actually two protocols in one, a protocol for signaling sessions and a protocol for transporting the actual media streams themselves. This approach differs from the overall architecture of other IETF-based protocols that separate the control (SIP) and media stream (RTP/RTCP) components using different protocols. Because signaling and media share the same UDP port number (4569), IAX does not suffer from the NAT traversal problems associated with SIP.

[Tip]Tip

Interesting links: The IAX protocol.