Inter-Asterisk eXchange (IAX) is a
communications protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics (computer science), sem ...
native to the
Asterisk
The asterisk ( ), from Late Latin , from Ancient Greek , , "little star", is a Typography, typographical symbol. It is so called because it resembles a conventional image of a star (heraldry), heraldic star.
Computer scientists and Mathematici ...
private branch exchange
A business telephone system is a telephone system typically used in business environments, encompassing the range of technology from the key telephone system (KTS) to the private branch exchange (PBX).
A business telephone system differs from ...
(PBX) software, and is supported by a few other
softswitches, PBX systems, and
softphones. It is used for transporting
voice over IP
Voice over Internet Protocol (VoIP), also known as IP telephony, is a set of technologies used primarily for voice communication sessions over Internet Protocol (IP) networks, such as the Internet. VoIP enables voice calls to be transmitted as ...
telephony sessions
between servers and to terminal devices.
The original IAX protocol is
deprecated and has been superseded by a second version, commonly called IAX2. The IAX2 protocol was published as an
informational (non-standards-track) RFC 5456 by discretion of the RFC Editor in February 2010.
Basic properties
IAX is a binary-encoded
voice over Internet protocol
Voice over Internet Protocol (VoIP), also known as IP telephony, is a set of technologies used primarily for voice communication sessions over Internet Protocol (IP) networks, such as the Internet. VoIP enables Voice call, voice calls to be tran ...
(VoIP) that is used for streaming media, but is primarily designed for IP voice calls.
IAX uses a single
User Datagram Protocol
In computer networking, the User Datagram Protocol (UDP) is one of the core communication protocols of the Internet protocol suite used to send messages (transported as datagrams in Network packet, packets) to other hosts on an Internet Protoco ...
(UDP) data stream and
port number, by default 4569, between endpoints for both session
signaling and media payloads. This feature provides benefits for traversing
network address translators at network boundaries, as it simplifies
firewall configuration. Other VoIP protocols typically use independent channels for signaling and media, such as the
Session Initiation Protocol (SIP),
H.323, and the
Media Gateway Control Protocol (MGCP), which carry media with the
Real-time Transport Protocol (RTP).
IAX supports
trunking,
multiplexing channels over a single link. When
trunking, data from multiple sessions are merged into a single stream of
packets between two endpoints, reducing the IP overhead. This is advantageous in VoIP transmissions, in which IP headers use a large fraction of
bandwidth.
IAX2 supports native encryption of both control and media streams using
AES-128.
Origin
Both versions of the IAX protocol were created by
Mark Spencer and much of the development was carried out in the Asterisk open-source community.
Goals
The primary goals for IAX are to minimize bandwidth used in media transmissions, and to provide native
network address translation
Network address translation (NAT) is a method of mapping an IP address space into another by modifying network address information in the IP header of packets while they are in transit across a traffic Router (computing), routing device. The te ...
(NAT) transparency. It was intended to be easy to use behind
firewalls.
Drawbacks
* Awkward extensibility: Due to the lack of a generic extension mechanism, new features have to be added in the protocol specification, which makes the protocol less flexible than
H.323,
SIP, and
MGCP.
* Vulnerability: Older implementations of IAX2 were vulnerable to resource exhaustion DoS attack methods that are available to the public. While no solutions existed for these issues, the best practices included limiting UDP port access to specific trusted IP addresses. Internet-facing IAX2 ports are considered vulnerable and should be monitored closely. The
fuzzer used to detect these application vulnerabilities was posted on
milw0rm. and is included in the ''VoIPer'' development tree. These issues were briefly mentioned in the IAX RFC 5456 on page 94. This flaw does not exist in up-to-date installations.
References
External links
* IAX: Inter-Asterisk eXchange Version 2
* IANA Registration for Enumservice 'iax'
*
{{DEFAULTSORT:Inter-Asterisk Exchange
VoIP protocols
Asterisk (PBX)
Application layer protocols