Asterisk IAX channels
New in Asterisk v1.2.0: The naming convention for IAX channels has changed in a minor way such that the call number follows a "-" rather than a "/" character.
As of january 2004, IAX is now the same as IAX2. The old version is now labeled IAX1. For backwards
compability, the source for IAX1 is still in the source tree and compilation can be enabled in the Makefile.
For more information on the protocol, see IAX2.
IAXtel from Dec. 2003 only supports IAX2.
IAX2 can be used to
Channels are configured in iax.conf and used in extensions.conf
Channel NamingThe format of an IAX channel name used for an outgoing connection is:
- <user>: UserID on remote peer, or name of client configured in iax.conf (optional)
- <secret>: Password (optional). Alternatively it can be the filename of an RSA key, without the trailing extension (.key or .pub), and enclosed in [square brackets], like this: [thefilename]
- <peer>: Name of server to connect to
- <portno>: Port number for connection on server (optional)
- <exten>: Extension in the remote Asterisk server (optional)
- <context>: Context to use in the remote Asteriskserver (optional)
- <options>: The only option available is 'a' meaning 'request autoanswer'
Example outgoing channel names:
- IAX/mark:asdf@myserver/6275@default — Call to "myserver" using "mark" as username and "asdf" as password, and requesting extension 6275 in default context
- IAX/iaxphone/s/a — Call to "iaxphone" requesting immediate answer.
- IAXfirstname.lastname@example.org — Call Digium
- IAX/john:[johnrsa]@somewhere.com — Call to somewhere.com, using "john" as a username and an RSA key for authentication.
The format of an IAX channel name used for an incoming connection is simply:
- <username>: the username, if known
- <host>: the apparent host connecting
- <callno>: the local call number
Example incoming channel names:
- IAX[email@example.com]/14 — Call number 14 from user "mark" at 192.168.0.1
- IAX[192.168.10.1]/13 — Call 13 from 192.168.10.1
TrunkingIAX Trunking needs support of a hardware timer. See Asterisk timer for more information.
IAX Trunking allows multiple voice streams to share a single "trunk" to another server, reducing overhead created by IP packets. Basically after 4 concurrent calls you start seeing a per packet savings when trunking is enabled.
Use experience (early 2005): "A long time ago i tried to make one big iax2 trunk for one of my customers, i soon changed this to several small trunks. (bandwith doesnt rise all that much if you use 2 trunks instead of 1.) Asterisk didnt seem to like my big trunk very much (i don't remember how big it was, but probably over 100 calls). I think, but am not sure, that with a lot of calls inside the trunk, some calls seemed to go suddenly go outside of the trunk in one or more directions, bursts of error messages appeared on the cli etc." The user settled for ~60 calls/trunk and had that working fine.
i didnt investigate it a lot more, my problems went away with splitting them up in smaller trunks.
There is a new jitter buffer implementation in Asterisk 1.2. This new jitter buffer has a feature that enables trunk time stamps to be sent within the trunked stream. This enables the use of the jitter buffer with a trunked IAX2 connection (previously impossible). However, enabling trunk time stamps in a trunk connection to an older version of asterisk causes problems including one-way audio. See The New Jitter Buffer in Asterisk by Steve Kann for more info.
DTMF issues: The IAX jitterbuffer is known to cause DTMF recognition troubles (1.2, 1.4), so set jitterbuffer=no if you experience trouble.
Jitter buffer debugging
In order to obtain information on the current state of the jitter buffer, enter on the console:
iax2 set debug jb
iax2 set debug jb off
to disable jb debugging. Whenever frames are leaving the jitter buffer, a letter is printed (letter: event, action):
G: growing jitter buffer, interpolating last frame
o: not a voice frame, forwarding it to the decoder
v: early or late voice frame, forwarding it to the decoder
V: voice frame, forwarding it to the decoder
l: late voice frame, too late to play so it's dropped
L: lost frame, interpolating last frame
s: shrinking jb, frame lost
S: shrinking jb, no frame lost
- Intl. success stories of benj with IAX beating SIP in problematic infrastructures
- Asterisk readme iax: Readme.iax from the standard distribution
- Asterisk iax rsa auth: About RSA authentication for IAX2 connections
- Asterisk config iax.conf: Configuration file for IAX connectivity
- Asterisk handbook
- Asterisk security
- Asterisk channels: Overview of Asterisk channels
- Asterisk IAX media path: Native bridging of IAX calls
- IAX: The IAX protocol
- Asterisk RealTime IAX
- IAX2 trunking statistics
- IAX load balancer
- Important thing to look at if you get one way audio problem with Asterisk 1.4.10 and FreePBX 2.3.0
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+