Index
[]AMD CPUsapplicationsAsteriskasterisk programaudioauthentication
Index
[]bandwidthBIOSbit resolution, analog wave samplesbitratesbuffering outputbusy destination
Index
[]call waitingCaller IDchannelscircuitscompilingconferencingconfigurationconsolecontextsCPUsCVS
Index
[]dial tonedigital signalsDigium cardsdirectories
Index
[]electrical regulationsextensions
Index
[]FXO (Foreign eXchange Office)FXS (Foreign eXchange Service)FXS (Foreign eXchange Station)
Index
[]gcc compiler
Index
[]hardwareZapataZaptelhobby systems
Index
[]incoming callsIntel CPUsinterfacesinterferenceinternal contextInternational Telecommunication Union (ITU)IP (Internet Protocol)IP addressesIRQs (Interrupt Requests)
Index
[]
Index
[]kernels
Index
[]large systemslatencylegacy telecommunications equipmentLinux
Index
[]m-law companding algorithmmake programMakefilemediamedium systemsmodemsmodulesmotherboardsMP3music on hold
Index
[]namingNAT (Network Address Translation)Nortel
Index
[]outbound callsoutput buffering
Index
[]packet-basedpasswordsPCI hardwareperformanceperipheralsPerlPHPportsprocessorspromptsPython
Index
[]
Index
[]regular expressions
Index
[]scripts, AGIsecurityserverssignaling methodssignaling protocolssmall systemssound files (pre-recorded)source code (Asterisk)symbolic link to Linux kernel sources
Index
[]$ (dollar sign)${ }/usr/src/ directory[ ] (square brackets)| (pipe character)
Index
[]TCP transport-layer protocoltelecommunications systemstelephonythree-way callingtimeoutstoll fraudtrunking
Index
[]UDP transport-layer protocolUPSs (Uninterruptible Power Supplies)
Index
[]variables
Index
[]wctdm driver
Index
[]
Index
[]
Index
[]ZapataZaptelzonedata.c fileztdummy driver
A.1. IAX
The IAX configuration file ( iax.conf ) contains all of the configuration information Asterisk needs to create and manage IAX protocol channels. The sections in the file are separated by headings, which are formed by a word framed in square brackets ( [] ). The name in the brackets will be the name of the channel, with one notable exception: the [general] section, which is not a channel, is the area where global protocol parameters are defined.
This section examines the various general and channel-specific settings for iax.conf . We will define each parameter, and then give an example of its use. Certain options may have several valid arguments. These arguments are listed beside the option, separated with the pipe symbol ( | ). For example, bandwidth=low|medium|high means that the bandwidth option accepts one of the values low , medium , or high as its argument.
You can insert comments anywhere in the iax.conf file, by preceding the comment text with the semicolon character ( ; ). Everything to the right of the semicolon will be ignored. Feel free to use comments liberally.
A.1.1. General IAX Settings
The first non-comment line in your iax.conf file must be the heading [general] . The parameters in this section will apply to all connections using this protocol, unless defined differently in a specific channel's definition. Since some of these settings can be defined on a per-channel basis, we have identified settings that are always global with the tag "(global)" and those that can optionally be configured for individual channels with the tag "(channel)." If you define a channel parameter under the [general] section, you do not need to define it in each channel; its value becomes the default. Keep in mind that setting a parameter in the [general] section does not prevent you from setting it differently for specific channels; it merely makes this setting the default. Also keep in mind that not defining these parameters may, in some cases, cause a system default to be used instead.
Here are the parameters that you can configure:
accountcode ( channel )
The account code can be defined on a per-user basis. If defined, this account code will be assigned to a call record whenever no specific user account code is set. The accountcode name configured will be used as the filename.csv in the /var/log/asterisk/cdr-csv/ directory to store Call Detail Records (CDRs) for the user/peer/friend.
accountcode=iax-username
allow and disallow ( channel )
Specific codecs can be allowed or disallowed, limiting codec use to those preferred by the system designer. allow and disallow can also be defined on a per-channel basis. Keep in mind that allow statements in the [general] section will carry over to each of the channels, unless you reset with a disallow=all . Codec negotiation is attempted in the order in which the codecs are defined. Best practice suggests that you define disallow=all , followed by explicit allow statements for each codec you wish to use. If nothing is defined, allow=all is assumed.
disallow=all allow=ulaw allow=gsm allow=ilbc
amaflags ( channel )
Automatic Message Accounting (AMA) is defined in the Telcordia Family of Documents listed under FR-AMA-1. These documents specify standard mechanisms for generation and transmission of CDRs. You can specify one of four AMA flags to apply to all IAX connections.
amaflags=default|omit|billing|documentation
authdebug ( global )
You can minimize the amount of authorization debugging by disabling it with authdebug=no . Authorization debugging is enabled by default if not explicitly disabled.
authdebug=no
autokill ( global )
To minimize the danger of stalling when a host is unreachable, you can set autokill to yes to specify that any new connection should be torn down if an ACK is not received within 2,000 ms. (This is obviously not advised for hosts with high latency.) Alternatively, you can replace yes with the number of milliseconds to wait before considering a peer unreachable. autokill configures the wait for all IAX2 peers, but you can configure it differently for individual peers with the use of the qualify command.
autokill=1500
bandwidth ( channel )
bandwidth is a shortcut that may help you get around using disallow=all and multiple allow statements to specify which codecs to use. The valid options are:
high
Allows all codecs (G.723.1, GSM, ulaw, alaw, G.726, ADPCM, slinear, LPC10, G.729, Speex, iLBC).
medium
Allows all codecs except slinear, ulaw, and alaw.
low
Allows all medium codecs except G.726 and ADPCM.
bandwidth=low|medium|high
bindport and bindaddr (global)
These optional parameters allow you to control the IP interface and port on which you wish to accept IAX connections. If omitted, the port will be set to 4569, and all IP addresses in your Asterisk system will accept incoming IAX connections. If multiple bind addresses are configured, only the defined interfaces will accept IAX connections. The address 0.0.0.0 tells Asterisk to listen on all interfaces.
bindport=4569 bindaddr=192.168.0.1
codecpriority ( channel )
The codecpriority option controls which end of an inbound call leg will have priority over the negotiation of codecs. If set in the [general] section, the selected options will be inherited by all user entries in the channel configuration file; however, they can be defined in the individual user entries for more granular control. If set in both the [general] and user sections, the user entry will override that which is configured in the [general] section. If this parameter is not configured, the value defaults to host .