Correctly detect where a dynamic feature was activated. Before this patch,

the channel which initiated the bridge was always assumed to have been the one
which activated the dynamic feature. This patch corrects this.

(closes issue #11529, reported and patched by nic_bellamy)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@92510 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Mark Michelson 18 years ago
parent b4b34f080d
commit 097b9dc2cf

@ -1059,15 +1059,18 @@ static int ast_feature_interpret(struct ast_channel *chan, struct ast_channel *p
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++) {

Loading…
Cancel
Save