Index: res/res_features.c =================================================================== --- res/res_features.c (revision 92423) +++ res/res_features.c (working copy) @@ -1059,15 +1059,18 @@ struct ast_flags features; int res = FEATURE_RETURN_PASSDIGITS; struct ast_call_feature *feature; - const char *dynamic_features=pbx_builtin_getvar_helper(chan,"DYNAMIC_FEATURES"); + char *dynamic_features; char *tmp, *tok; - if (sense == FEATURE_SENSE_CHAN) + if (sense == FEATURE_SENSE_CHAN) { ast_copy_flags(&features, &(config->features_caller), AST_FLAGS_ALL); - else + dynamic_features = pbx_builtin_getvar_helper(chan, "DYNAMIC_FEATURES"); + } else { ast_copy_flags(&features, &(config->features_callee), AST_FLAGS_ALL); + dynamic_features = pbx_builtin_getvar_helper(peer, "DYNAMIC_FEATURES"); + } if (option_debug > 2) - ast_log(LOG_DEBUG, "Feature interpret: chan=%s, peer=%s, sense=%d, features=%d\n", chan->name, peer->name, sense, features.flags); + ast_log(LOG_DEBUG, "Feature interpret: chan=%s, peer=%s, sense=%d, features=%d dynamic=%s\n", chan->name, peer->name, sense, features.flags, dynamic_features); ast_rwlock_rdlock(&features_lock); for (x = 0; x < FEATURES_COUNT; x++) {