IAX stands for Inter-Asterisk eXchange protocol. The IAX protocol is most commonly used to link Asterisk systems together. IAX uses a single port for call signaling and transmission of a VoIP audio stream. Where SIP uses multiple different ports for signalling and audio traffic. This single port configuration allows for easier management of securing the VoIP network. IAX default port configuration is UDP port (4569). The PBX allows configuration of IAX trunks and IAX extensions, (note that the IAX protocol for phones and endpoint devices is limited and not currently widely adopted). The IAX Settings module defines the rules that your PBX will use to establish IAX connections to other devices and servers.
The term IAX is used ambiguously. The technology used is IAX2 but no one uses IAX1 so it is generically referred to as IAX
- From the top menu click Settings
- In the drop down click Asterisk IAX Settings
This section defines which codecs will be available for codec priority rules and for the IAX to connect
Check the desired codecs and all others will be disabled unless explicitly enabled in a device or trunks configurations. Drag to re-order.
G.711-u-law (64 Kbps, used in US). Using this codec will give the best voice quality, since it is the same codec used by the PSTN network. It takes more bandwidth than other codecs, up to 84 Kpbs including all the UDP and IP overhead.
G.711-a-law (64 Kbps, used in Europe). a-law provides more dynamic range as opposed to ulaw.
13kbps 9full rate, 20ms frame size
G.722.1 annex C, licensed from Polycom
Not recommended, voice signal is clear but sounds robotic
2.15 to 44.2 Kbps, flexible opensource codec, consumes large amounts of CPU
48/56/64 Kbpx ADPCM 7Khz audio bandwidth
Adaptive Differential Pulse Code Modulations
G.722.1, Siren7 is licensed from Polycom
5.3/6.3 Kbpx, 30ms frame size, use of this codec requires licensing
16 bit Signed Linear PCM
16/24/32/40 Kbps (Asterisk only supports 32 kbps,) like g.711 it has its origins in the PSTN network
8 Kbpx, 10ms frame size, may require a license unless using pass-thru
15 Kbps, 20ms frame size and 13.3 Kbps, 30ms frame size
Asterisk specific version of G.726
Controls the codec negotiation of an inbound IAX call. This option is inherited to all user entities. It can also be defined in each user entity separately, which will override the setting here. The valid values are:
Consider the host’s preferred order ahead of the caller’s.
Consider the caller’s preferred order ahead of the host’s.
Disable the consideration of codec preference altogether. (This was the original behaviour before preferences were added).
Same as disabled, only do not consider capabilities if the requested format is not available. The call will only be accepted if the requested format is available.
Specify bandwidth of low, medium, or high to control which codecs are used in general
This section allows you to disable or enable video support and define which video codecs will be used by the system.
Check to enable or disable video support and select desired codecs when enabled.
most commonly used format for HD video
an enhanced version of H.263 with better video quality
lower bit rates designed for video conferencing
basically obsolete, but remains for backwards-compatibility mode in some video conferencing systems and some types of internet video
Define the minimum and maximum length of time that IAX peers can request as a registration expiration interval (in seconds).
- minregexpire - default 60
- maxregexpire - default 3600
Jitter Buffer Settings
This section allows you to disable or enable the jitter buffer. You can adjust several parameters relating to the jitter buffer. The jitter buffer’s function is to compensate for varying network delay. The jitter buffer works for INCOMING audio – the outbound audio will be dejittered by the jitter buffer at the other end.
This is where you enable or disable the jitter buffer.
Force Jitter Buffer
Enable or Disable. Forces the use of a jitter buffer on the receive side of an IAX channel. Normally the jitter buffer will not be used if receiving a jittery channel. It will send it off to another channel, such as a SIP channel, to an endpoint where there is typically a jitter buffer at the far end. This will force the use of the jitter buffer before sending the stream on. This is not typically desired as it adds additional latency into the stream.
Jitter Buffer Size
- maxjitterbuffer - default 200, max length of the jitterbuffer in milliseconds
- resyncthreshold - default 1000. When the jitter buffer notices a significant change in delay that continues over a few frames, it will resync, assuming that the change in delay was caused by a timestamping mix-up. The threshold for noticing a change in delay is measured as twice the measured jitter plus this resync threshold. Resyncing can be disabled by setting this parameter to -1.
The maximum number of interpolation frames the jitter buffer should return in a row. Since some clients do not send CNG/DTX frames to indicate silence, the jitter buffer will assume silence has begun after returning this many interpolations. This prevents interpolating throughout a long silence.
Advanced General Settings
This is the default language for a channel.
The IP address to bind to and listen for calls on the bind port. If set to 0.0.0.0, Asterisk will listen on all addresses. To bind to multiple IP addresses or ports, use the “Other IAX Settings” field below where you can put a setting such as “bindaddr=192.168.10.100:4555.” It is recommended to leave this blank.
Local incoming UDP port that Asterisk will bind to and is listed for IAX messages. The IAX standard is “4569” and in most cases this is what you want. It is recommended to leave this blank.
Delay Auth Rejects
Enable or Disable. For increased security against brute force password attacks, enable this to delay the sending of authentication. Reject for REGREQ or AUTHREP if there is a password.
Other IAX Settings
You may set any other IAX setting not present here that is allowed to be configured in the General section of IAX.conf. There will be no error checking against these settings, so check them carefully. They should be entered as “[setting] = [value]” in the available boxes. Click the “Add” field box to add additional fields. Blank boxes will be deleted when submitted.
Make sure to press the “Submit” button when done. The PBX IAX connections will now be defined by the settings in this module.