The first question most people are thinking at this point is "Why do you
need another VoIP protocol? Why didn't you just use SIP or H.323?"
Well, the answer is a fairly complicated one, but in a nutshell it's like
this... Asterisk is intended as a very flexible and powerful
communications tool. As such, the primary feature we need from a VoIP
protocol is the ability to meet our own goals with Asterisk, and one with
enough flexibility that we could use it as a kind of laboratory for
inventing and implementing new concepts in the field. Neither H.323 or
SIP fit the roles we needed, so we developed our own protocol, which,
while not standards based, provides a number of advantages over both SIP
and H.323, some of which are:
- Interoperability with NAT/PAT/Masquerade firewalls
- IAX seamlessly interoperates through all sorts of NAT and PAT
and other firewalls, including the ability to place and
receive calls, and transfer calls to other stations.
- High performance, low overhead protocol
- When running on low-bandwidth connections, or when running
large numbers of calls, optimized bandwidth utilization is
imperative. IAX uses only 4 bytes of overhead
- Internationalization support
- IAX transmits language information, so that remote PBX
content can be delivered in the native language of the
calling party.
- Remote dialplan polling
- IAX allows a PBX or IP phone to poll the availability of a
number from a remote server. This allows PBX dialplans to
be centralized.
- Flexible authentication
- IAX supports cleartext, md5, and RSA authentication,
providing flexible security models for outgoing calls and
registration services.
- Multimedia protocol
- IAX supports the transmission of voice, video, images, text,
HTML, DTMF, and URL's. Voice menus can be presented in both
audibly and visually.
- Call statistic gathering
- IAX gathers statistics about network performance (including
latency and jitter, as well as providing end-to-end latency
measurement.
- Call parameter communication
- Caller*ID, requested extension, requested context, etc are
all communicated through the call.
- Single socket design
- IAX's single socket design allows up to 32768 calls to be
multiplexed.
While we value the importance of standards based (i.e. SIP) call handling,
hopefully this will provide a reasonable explanation of why we developed
IAX rather than starting with SIP.
lmadsen
2010-01-14