Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 firewallsIAX - IAX2 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 IAX2 uses only 4 bytes of overhead.
  • Internationalization supportIAX – IAX2 transmits language information, so that remote PBX content can be delivered in the native language of the calling party.
  • Remote dialplan pollingIAX – IAX2 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 authenticationIAX – IAX2 supports cleartext, md5MD5, and RSA authentication, providing flexible security models for outgoing calls and registration services.
  • Multimedia protocolIAX – IAX2 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 gatheringIAX – IAX2 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 designIAX – IAX2'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 IAX2 rather than starting with SIP.