# Asterisk Project : Asterisk 13 Configuration_features

Created by wikibot on Aug 08, 2014

# Features Configuration

This configuration documentation is for functionality provided by `features`.

## features.conf

### globals

#### Configuration Option Reference

Option Name | Type | Default Value | Regular Expression | Description
--- | --- | --- | --- | ---
`featuredigittimeout` | `Custom` | `1000` | `false` | Milliseconds allowed between digit presses when entering a feature code.
`courtesytone` | `Custom` |  | `false` | Sound to play when automon or automixmon is activated
`recordingfailsound` | `Custom` |  | `false` | Sound to play when automon or automixmon is attempted but fails to start
`transferdigittimeout` | `Custom` | `3` | `false` | Seconds allowed between digit presses when dialing a transfer destination
`atxfernoanswertimeout` | `Custom` | `15` | `false` | Seconds to wait for attended transfer destination to answer
`atxferdropcall` | `Custom` | `0` | `false` | Hang up the call entirely if the attended transfer fails
`atxferloopdelay` | `Custom` | `10` | `false` | Seconds to wait between attempts to re-dial transfer destination
`atxfercallbackretries` | `Custom` | `2` | `false` | Number of times to re-attempt dialing a transfer destination
`xfersound` | `Custom` | `beep` | `false` | Sound to play to during transfer and transfer-like operations.
`xferfailsound` | `Custom` | `beeperr` | `false` | Sound to play to a transferee when a transfer fails
`atxferabort` | `Custom` | `*1` | `false` | Digits to dial to abort an attended transfer attempt
`atxfercomplete` | `Custom` | `*2` | `false` | Digits to dial to complete an attended transfer
`atxferthreeway` | `Custom` | `*3` | `false` | Digits to dial to change an attended transfer into a three-way call
`atxferswap` | `Custom` | `*4` | `false` | Digits to dial to toggle who the transferrer is currently bridged to during an attended transfer
`pickupexten` | `Custom` | `*8` | `false` | Digits used for picking up ringing calls
`pickupsound` | `Custom` |  | `false` | Sound to play to picker when a call is picked up
`pickupfailsound` | `Custom` |  | `false` | Sound to play to picker when a call cannot be picked up

#### Configuration Option Descriptions

##### atxferdropcall

When this option is set to `no`, then Asterisk will attempt to re-call the transferrer if the call to the transfer target fails. If the call to the transferrer fails, then Asterisk will wait atxferloopdelay milliseconds and then attempt to dial the transfer target again. This process will repeat until atxfercallbackretries attempts to re-call the transferrer have occurred.

When this option is set to `yes`, then Asterisk will not attempt to re-call the transferrer if the call to the transfer target fails. Asterisk will instead hang up all channels involved in the transfer.

##### xfersound

This sound will play to the transferrer and transfer target channels when an attended transfer completes. This sound is also played to channels when performing an AMI `Bridge` action.

##### atxferabort

This option is only available to the transferrer during an attended transfer operation. Aborting a transfer results in the transfer being cancelled and the original parties in the call being re-bridged.

##### atxfercomplete

This option is only available to the transferrer during an attended transfer operation. Completing the transfer with a DTMF sequence is functionally equivalent to hanging up the transferrer channel during an attended transfer. The result is that the transfer target and transferees are bridged.

##### atxferthreeway

This option is only available to the transferrer during an attended transfer operation. Pressing this DTMF sequence will result in the transferrer, the transferees, and the transfer target all being in a single bridge together.

##### atxferswap

This option is only available to the transferrer during an attended transfer operation. Pressing this DTMF sequence will result in the transferrer swapping which party he is bridged with. For instance, if the transferrer is currently bridged with the transfer target, then pressing this DTMF sequence will cause the transferrer to be bridged with the transferees.

##### pickupexten

In order for the pickup attempt to be successful, the party attempting to pick up the call must either have a namedpickupgroup in common with a ringing party's namedcallgroup or must have a pickupgroup in common with a ringing party's callgroup.

### featuremap

DTMF options that can be triggered during bridged calls

#### Configuration Option Reference

Option Name | Type | Default Value | Regular Expression | Description
--- | --- | --- | --- | ---
`atxfer` | `Custom` |  | `false` | DTMF sequence to initiate an attended transfer
`blindxfer` | `Custom` | `#` | `false` | DTMF sequence to initiate a blind transfer
`disconnect` | `Custom` | `*` | `false` | DTMF sequence to disconnect the current call
`parkcall` | `Custom` |  | `false` | DTMF sequence to park a call
`automon` | `Custom` |  | `false` | DTMF sequence to start or stop monitoring a call
`automixmon` | `Custom` |  | `false` | DTMF sequence to start or stop mixmonitoring a call

#### Configuration Option Descriptions

##### atxfer

The transferee parties will be placed on hold and the transferrer may dial an extension to reach a transfer target. During an attended transfer, the transferrer may consult with the transfer target before completing the transfer. Once the transferrer has hung up or pressed the atxfercomplete DTMF sequence, then the transferees and transfer target will be bridged.

##### blindxfer

The transferee parties will be placed on hold and the transferrer may dial an extension to reach a transfer target. During a blind transfer, as soon as the transfer target is dialed, the transferrer is hung up.

##### disconnect

Entering this DTMF sequence will cause the bridge to end, no matter the number of parties present

##### parkcall

The parking lot used to park the call is determined by using either the PARKINGLOT channel variable or a configured value on the channel (provided by the channel driver) if the variable is not present. If no configured value on the channel is present, then `"default"` is used. The call is parked in the next available space in the parking lot.

##### automon

This will cause the channel that pressed the DTMF sequence to be monitored by the `Monitor` application. The format for the recording is determined by the TOUCH_MONITOR_FORMAT channel variable. If this variable is not specified, then `wav` is the default. The filename is constructed in the following manner:

prefix-timestamp-filename

where prefix is either the value of the TOUCH_MONITOR_PREFIX channel variable or `auto` if the variable is not set. The timestamp is a UNIX timestamp. The filename is either the value of the TOUCH_MONITOR channel variable or the callerID of the channels if the variable is not set.

##### automixmon

Operation of the automixmon is similar to the {{ automon }} feature, with the following exceptions: TOUCH_MIXMONITOR is used in place of TOUCH_MONITOR TOUCH_MIXMONITOR_FORMAT is used in place of TOUCH_MIXMONITOR There is no equivalent for TOUCH_MONITOR_PREFIX. `"auto"` is always how the filename begins.

### applicationmap

Section for defining custom feature invocations during a call

#### Configuration Option Reference

Option Name | Type | Default Value | Regular Expression | Description
--- | --- | --- | --- | ---
`.*` | `Custom` |  | `true` | A custom feature to invoke during a bridged call

#### Configuration Option Descriptions

##### .*

Each item listed here is a comma-separated list of parameters that determine how a feature may be invoked during a call

Example:

eggs = *5,self,Playback(hello-world),default

This would create a feature called `eggs` that could be invoked during a call by pressing the `*5`. The party that presses the DTMF sequence would then trigger the `Playback` application to play the `hello-world` file. The application invocation would happen on the party that pressed the DTMF sequence since `self` is specified. The other parties in the bridge would hear the `default` music on hold class during the playback.

In addition to the syntax outlined in this documentation, a backwards-compatible alternative is also allowed. The following applicationmap lines are functionally identical:

eggs = *5,self,Playback(hello-world),default

eggs = *5,self,Playback,hello-world,default

eggs = *5,self,Playback,"hello-world",default

### featuregroup

Groupings of items from the applicationmap

#### Configuration Option Reference

Option Name | Type | Default Value | Regular Expression | Description
--- | --- | --- | --- | ---
`.*` | `Custom` |  | `true` | Applicationmap item to place in the feature group

#### Configuration Option Descriptions

##### .*

Each item here must be a name of an item in the applicationmap. The argument may either be a new DTMF sequence to use for the item or it may be left blank in order to use the DTMF sequence specified in the applicationmap. For example:

eggs => *1

bacon =>

would result in the applicationmap items `eggs` and `bacon` being in the featuregroup. The former would have its default DTMF trigger overridden with `*1` and the latter would have the DTMF value specified in the applicationmap.

### Import Version

This documentation was imported from Asterisk Version SVN-branch-13-r420538