Application Map and Dynamic Features

Features Asterisk 18+ -- Last reviewed 2026-03-29 features applicationmap dtmf featuremap configuration Found this useful? Upvote it. ×

Application Map and Dynamic Features

The [applicationmap] in features.conf lets you define custom DTMF sequences that trigger applications during an active bridged call. Combined with the [featuremap] for built-in features, this gives callers and agents in-call controls like transfers, recording, and custom actions.

Built-In Feature Map (features.conf)

[general]
transferdigittimeout => 3
pickupexten = *8
featuredigittimeout = 1000
atxfernoanswertimeout = 15
atxferdropcall = no
atxfercallbackretries = 2

[featuremap]
blindxfer => #1          ; Blind transfer (requires T/t in Dial options)
disconnect => *0         ; Disconnect call (requires H/h in Dial options)
automon => *1            ; One-touch Monitor recording (requires W/w)
atxfer => *2             ; Attended transfer (requires T/t)
parkcall => #72          ; Park the call (requires K/k)
automixmon => *3         ; One-touch MixMonitor recording (requires X/x)

Custom Application Map (features.conf)

[applicationmap]
; Syntax: name => dtmf,activate_on,Application,args[,moh_class]
testfeature => #9,peer,Playback,tt-monkeys
announce_time => *0,self,SayUnixTime
record_toggle => *4,self,MixMonitor,${UNIQUEID}.wav,b

Enabling Dynamic Features in Dialplan

[internal]
exten => _1XXX,1,NoOp(Internal call with dynamic features)
 same => n,Set(__DYNAMIC_FEATURES=testfeature#announce_time#record_toggle)
 same => n,Dial(PJSIP/${EXTEN},30,Ttx)
 same => n,Hangup()

How it works

  1. [featuremap]: Configures DTMF sequences for Asterisk's built-in bridged-call features. Each feature requires specific Dial() options: T/t for transfers (caller/callee), W/w for Monitor, X/x for MixMonitor, K/k for parking, H/h for disconnect.
  2. [applicationmap]: Defines custom features. The syntax is name => dtmf_sequence,activate_on,Application,arguments. activate_on is self (run on the pressing channel) or peer (run on the other channel).
  3. DYNAMIC_FEATURES: This channel variable enables specific application map entries for a call. Multiple features are separated by #. The double underscore __ prefix causes the variable to inherit to both the calling and called channels.
  4. Dial options: Features only work during bridged calls (after both sides answer). The Dial() option letters enable the built-in feature categories. Without the right option letter, the DTMF sequence will pass through as audio, not trigger the feature.
  5. MOH class: The optional last field in an application map entry specifies music on hold to play to the idle channel while the feature executes. Useful for features that take time (like Playback).

Tips

User Notes

No notes yet. Be the first to contribute a tip or example.

Contribute a note

Share a tip, gotcha, or practical example. Keep it under 2000 characters. No questions (use the Asterisk community forums for support). Wrap code in backticks.

Moderated before publishing. Email never shown.

Related Snippets