mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 20:04:50 +00:00
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
This commit is contained in:
@@ -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++) {
|
||||
|
Reference in New Issue
Block a user