Dynamic features are very useful for allowing users access to custom features during calls. These can be loaded individually via the dialplan, but in freepbx based solutions this will mean a bit of hacking of the dialplan using overides and making sure all still works afterwards, or as a global varible.
The easiest way is to load them as a global as is done with apprecord, But if you want to add lots of features then you will have to use a Application Map group. This is done by editing the features_applicationmap_custom.conf file so it looks like below for example, at the top are your application maps then your group
testfeature => #9,callee,Playback,tt-monkeys
calleehangup => #8,callee,Hangup()
callerhangup => #7,caller,Hangup()
[mymapgroup]
testfeature => #9
calleehangup => #8
callerhangup => #7
apprecord => *1
DO NOT FORGET to add the apprecord to your group.
You then need to edit the globals_custom.conf file and add a line like below
DYNAMIC_FEATURES => mymapgroup
Then reload asterisk and issue the command “features show”
Dynamic Feature Default Current
--------------- ------- -------
callerhangup no def #7
calleehangup no def #8
testfeature no def #9
apprecord no def *1
Feature Groups:
---------------
===> Group: mymapgroup
===> --> apprecord (*1,caller,Macro,one-touch-record)
===> --> callerhangup (#7)
===> --> calleehangup (#8)
and to check that they are loaded as a global variable do “dialplan show globals” and near or at the top you will see:-
DYNAMIC_FEATURES=mymapgroup
And thats all there is to it.