diff options
Diffstat (limited to 'res')
-rw-r--r-- | res/res_features.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/res/res_features.c b/res/res_features.c index 819481e8b..cbdd57aaa 100644 --- a/res/res_features.c +++ b/res/res_features.c @@ -1958,8 +1958,13 @@ int ast_bridge_call(struct ast_channel *chan,struct ast_channel *peer,struct ast ast_channel_lock(chan); ast_copy_string(chan->exten, save_exten, sizeof(chan->exten)); chan->priority = save_prio; - if (bridge_cdr) - chan->cdr = swapper; + if (bridge_cdr) { + if (chan->cdr == bridge_cdr) { + chan->cdr = swapper; + } else { + bridge_cdr = NULL; + } + } ast_set_flag(chan, AST_FLAG_BRIDGE_HANGUP_RUN); ast_channel_unlock(chan); /* protect the lastapp/lastdata against the effects of the hangup/dialplan code */ |