Inter-Asterisk eXchange: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Disambig link using AWB
Line 1: Line 1:
'''IAX''' is the '''Inter-Asterisk eXchange [[Communications protocol|protocol]]''' used by [[Asterisk PBX|Asterisk]], an open source [[PBX]] [[server]] from [[Digium]]. It is used to enable [[VoIP]] connections between Asterisk servers, and between servers and clients that also use the '''IAX protocol'''.
'''IAX''' is the '''Inter-Asterisk eXchange [[Communications protocol|protocol]]''' used by [[Asterisk PBX|Asterisk]], an open source [[PBX]] [[Server (computing)|server]] from [[Digium]]. It is used to enable [[VoIP]] connections between Asterisk servers, and between servers and clients that also use the '''IAX protocol'''.


IAX now most commonly refers to IAX2, the second version of the IAX protocol. The original IAX protocol has been [[deprecated]] almost universally in favor of IAX2.
IAX now most commonly refers to IAX2, the second version of the IAX protocol. The original IAX protocol has been [[deprecated]] almost universally in favor of IAX2.
Line 6: Line 6:
IAX2 is a very robust and full-featured yet simple protocol. It is agnostic to [[codec]]s and number of streams, meaning that it can be used as a transport for virtually any type of data. This capability will be useful as [[videophone]]s become common.
IAX2 is a very robust and full-featured yet simple protocol. It is agnostic to [[codec]]s and number of streams, meaning that it can be used as a transport for virtually any type of data. This capability will be useful as [[videophone]]s become common.


IAX2 uses a single [[User Datagram Protocol|UDP]] data stream. usually on port 4569, to communicate between endpoints, both for [[signal (information theory)|signaling]] and data. The voice traffic is transmitted in-band, making IAX2 easier to [[firewall (networking)|firewall]] and more likely to work behind [[network address translation]]. This is in contrast to [[SIP]], which uses an out-of-band [[Real-time_Transport_Protocol|RTP]] stream to deliver information.
IAX2 uses a single [[User Datagram Protocol|UDP]] data stream. usually on port 4569, to communicate between endpoints, both for [[signal (information theory)|signaling]] and data. The voice traffic is transmitted in-band, making IAX2 easier to [[firewall (networking)|firewall]] and more likely to work behind [[network address translation]]. This is in contrast to [[SIP]], which uses an out-of-band [[Real-time Transport Protocol|RTP]] stream to deliver information.


IAX2 supports [[trunking]], [[multiplexing]] channels over a single link. When [[trunking]], data from multiple calls are merged into a single set of [[packet]]s, meaning that one [[Internet Protocol|IP]] datagram can deliver information for more than one call, reducing the effective IP overhead without creating additional latency. This is a big advantage for [[VoIP]] users, where IP headers are large percentage of the [[bandwidth]] usage.
IAX2 supports [[trunking]], [[multiplexing]] channels over a single link. When [[trunking]], data from multiple calls are merged into a single set of [[packet]]s, meaning that one [[Internet Protocol|IP]] datagram can deliver information for more than one call, reducing the effective IP overhead without creating additional latency. This is a big advantage for [[VoIP]] users, where IP headers are large percentage of the [[bandwidth]] usage.
Line 16: Line 16:
The primary goals for IAX were to minimize bandwidth used in media transmissions, with particular attention drawn to control and individual voice calls, and to provide native support for [[NAT]] (Network Address Translation) transparency.
The primary goals for IAX were to minimize bandwidth used in media transmissions, with particular attention drawn to control and individual voice calls, and to provide native support for [[NAT]] (Network Address Translation) transparency.


The basic structure of IAX is that it multiplexes signalling and multiple media streams over a single [[User_Datagram_Protocol|UDP]] (user datagram protocol) stream between two computers. IAX is a binary protocol, designed to reduce overhead especially in regards to voice streams. Bandwidth efficiency in some places is sacrificed in exchange for bandwidth efficiency for individual voice calls.
The basic structure of IAX is that it multiplexes signalling and multiple media streams over a single [[User Datagram Protocol|UDP]] (user datagram protocol) stream between two computers. IAX is a binary protocol, designed to reduce overhead especially in regards to voice streams. Bandwidth efficiency in some places is sacrificed in exchange for bandwidth efficiency for individual voice calls.


==IAX Clients==
==IAX Clients==
Line 30: Line 30:
* [http://www.ietf.org/internet-drafts/draft-guy-iax-01.txt "IAX: Inter-Asterisk eXchange Version 2" protocol specification] [http://www.eguy.org/presentations/2006 (& updates)]
* [http://www.ietf.org/internet-drafts/draft-guy-iax-01.txt "IAX: Inter-Asterisk eXchange Version 2" protocol specification] [http://www.eguy.org/presentations/2006 (& updates)]
* [http://www.ietf.org/internet-drafts/draft-guy-enumiax-00.txt IANA Registration for IAX Enumservice]
* [http://www.ietf.org/internet-drafts/draft-guy-enumiax-00.txt IANA Registration for IAX Enumservice]



[[Category:VoIP protocols]]
[[Category:VoIP protocols]]

Revision as of 10:12, 4 April 2006

IAX is the Inter-Asterisk eXchange protocol used by Asterisk, an open source PBX server from Digium. It is used to enable VoIP connections between Asterisk servers, and between servers and clients that also use the IAX protocol.

IAX now most commonly refers to IAX2, the second version of the IAX protocol. The original IAX protocol has been deprecated almost universally in favor of IAX2.

Basic properties

IAX2 is a very robust and full-featured yet simple protocol. It is agnostic to codecs and number of streams, meaning that it can be used as a transport for virtually any type of data. This capability will be useful as videophones become common.

IAX2 uses a single UDP data stream. usually on port 4569, to communicate between endpoints, both for signaling and data. The voice traffic is transmitted in-band, making IAX2 easier to firewall and more likely to work behind network address translation. This is in contrast to SIP, which uses an out-of-band RTP stream to deliver information.

IAX2 supports trunking, multiplexing channels over a single link. When trunking, data from multiple calls are merged into a single set of packets, meaning that one IP datagram can deliver information for more than one call, reducing the effective IP overhead without creating additional latency. This is a big advantage for VoIP users, where IP headers are large percentage of the bandwidth usage.

The Creation of IAX

The IAX2 Protocol or Inter-Asterisk Exchange Protocol was created by Mark Spencer for Asterisk for VoIP signalling. The protocol sets up internal sessions and these sessions can use whichever codec they want for voice transmission. The Inter-Asterisk Exchange protocol essentially provides control and transmission of streaming media over IP (Internet Protocol) networks. IAX is extremely flexible and can be used with any type of streaming media including video however it is mainly designed for control of IP voice calls. IAX’s design was based on many common control and transmission standards today including Session Initiation Protocol (SIP, which is the most common), Media Gateway Control Protocol (MGCP) and Real-time Transfer Protocol (RTP).

The Goals of IAX

The primary goals for IAX were to minimize bandwidth used in media transmissions, with particular attention drawn to control and individual voice calls, and to provide native support for NAT (Network Address Translation) transparency.

The basic structure of IAX is that it multiplexes signalling and multiple media streams over a single UDP (user datagram protocol) stream between two computers. IAX is a binary protocol, designed to reduce overhead especially in regards to voice streams. Bandwidth efficiency in some places is sacrificed in exchange for bandwidth efficiency for individual voice calls.

IAX Clients

IAXClient - http://iaxclient.sourceforge.net/

Kiax - http://kiax.sourceforge.net (for Linux)

Diax - http://www.laser.com/dante/diax/diax.html (for Windows)

LoudHush - http://www.loudhush.ro/ (for Mac OS X)

External links