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:-
And thats all there is to it.