IAX protocol
simplifies VoIP Connections
One reason analog telephones are still around is that you
can buy an inexpensive model, plug it in and begin making
calls right away. When was the last time you were able to
do that with a new IP phone? Most VoIP protocols are hard
to configure in certain environments, making it difficult
to get many new VoIP products working out of the box.
After Mark Spencer created Asterisk, the open source PBX,
he started to see how this lack of simplicity could be a huge
barrier to the VoIP market. In response, he created a new
protocol called IAX.
The goals for this new protocol were to minimize the necessary
bandwidth for signaling and media, and provide internal support
for network address translation (NAT ) transparency, all while
remaining extensible for future enhancements. No extra configuration
is necessary to coerce IAX to traverse NAT firewalls.
Instead of using Real-time Protocol (RTP), IAX uses User
Datagram Protocol (UDP ) over a single Internet port (Port
4569) to transmit and receive signaling and media. IAX easily
traverses firewalls and uses much less overhead than RTP.
IAX can triple the number of calls sent through a single megabit
when using the G.729 compression codec. For example, pairing
G.729 with the IAX protocol allows at least 103 calls to be
sent over 1M bit of bandwidth.
Rather than parsing text commands, IAX uses binary-only data
because this is the natural way for machines to communicate
with each other.
The IAX protocol responses are sent back to wherever they
came from rather than having to negotiate a foreign IP address.
Because it constantly sends ping-pong queries, if the line
suddenly goes dead, the IAX device will realize this in less
than a minute.
All signaling takes place within a consistent Layer 2 data
link layer. Dual-tone multi-frequency tones are always sent
through the same path as the rest of the signaling data and
so are reliably retransmitted on the other end.

The IAX protocol transmits audio packets with only 4 bytes
of header each and commands use of very little bandwidth.
For multiple calls, IAX trunking reduces the overhead of each
channel by combining data from several channels into one packet,
reducing not only the number of headers but also the number
of packets. This is important for wireless networks.
Better yet, the IAX protocol is so simple and straightforward
that the entire IP stack, IAX stack, TDM interface, echo cancellation
and caller ID generation has been implemented in an analog
terminal adapter (ATA). An ATA device includes an Ethernet
jack and a phone jack, and converts any analog phone to an
IP phone. An IAX ATA device can be built using only an 8-bit
microprocessor, 4K bytes of RAM and 64K bytes of internal
flash memory. In the near future, someone could build a low cost
IP phone using inexpensive parts such as these.
Future product presence
The IAX protocol is being extended to include encryption
and intercom functionality. Although all implementations are
the same, the major obstacle now for IAX's acceptance by vendors
seems to be its lack of a documented standard. However, many
contributors are working to create a standard, and anyone
can volunteer to contribute to the cause.
Even without a documented standard, a number of vendors have
created new IAX-compatible products or extended their current
products through IAX support.
The traditional analog public switched telephone network
service is reliable because it is so simple that there is
very little that can go wrong. The goal behind the engineering
of IAX is to make VoIP equally simple, so that one day even
the least technical employees in your office can plug in an
inexpensive IP phone and start making calls on it right away.
|