Merged revisions 323754 via svnmerge from
authorTerry Wilson <twilson@digium.com>
Wed, 15 Jun 2011 18:23:20 +0000 (18:23 +0000)
committerTerry Wilson <twilson@digium.com>
Wed, 15 Jun 2011 18:23:20 +0000 (18:23 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r323754 | twilson | 2011-06-15 13:21:52 -0500 (Wed, 15 Jun 2011) | 23 lines

  Merged revisions 323733 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2

  ................
    r323733 | twilson | 2011-06-15 13:13:00 -0500 (Wed, 15 Jun 2011) | 16 lines

    Merged revisions 323732 via svnmerge from
    https://origsvn.digium.com/svn/asterisk/branches/1.4

    ........
      r323732 | twilson | 2011-06-15 13:06:24 -0500 (Wed, 15 Jun 2011) | 9 lines

      Fix DYNAMIC_FEATURES

      DYNAMIC_FEATURES were broken by a recent DTMF change. This patch makes
      sure that dynamic features are also checked when deciding whether or not
      to pass DTMF through or store it for interpreting.

      (closes issue ASTERISK-17914)
      Reported by: vrban
    ........
  ................
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@323760 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/features.c

index 34c8847..7281181 100644 (file)
@@ -2898,8 +2898,12 @@ int ast_feature_detect(struct ast_channel *chan, struct ast_flags *features, con
 
 /*! \brief Check if a feature exists */
 static int feature_check(struct ast_channel *chan, struct ast_flags *features, char *code) {
+       char *chan_dynamic_features;
+       ast_channel_lock(chan);
+       chan_dynamic_features = ast_strdupa(S_OR(pbx_builtin_getvar_helper(chan, "DYNAMIC_FEATURES"),""));
+       ast_channel_unlock(chan);
 
-       return feature_interpret_helper(chan, NULL, NULL, code, 0, NULL, features, FEATURE_INTERPRET_CHECK, NULL);
+       return feature_interpret_helper(chan, NULL, NULL, code, 0, chan_dynamic_features, features, FEATURE_INTERPRET_CHECK, NULL);
 }
 
 static void set_config_flags(struct ast_channel *chan, struct ast_channel *peer, struct ast_bridge_config *config)