aboutsummaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authorqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-02 18:52:55 +0000
committerqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-02 18:52:55 +0000
commit62bd30d9725c38b364c29ca7363b143d91c07df7 (patch)
tree5a5ca8035335e17343489c85a8f4f5fe60b94f73 /res
parent1ed2a899a5c0c910d9acdf72b3931a50cfa78507 (diff)
Finish up on transferee channel before return on failure.
Issue 10821, patch by Ivan git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@84410 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rw-r--r--res/res_features.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/res/res_features.c b/res/res_features.c
index 0cf317843..e738d1477 100644
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -816,8 +816,11 @@ static int builtin_atxfer(struct ast_channel *chan, struct ast_channel *peer, st
return FEATURE_RETURN_SUCCESS;
}
- if (check_compat(transferer, newchan))
+ if (check_compat(transferer, newchan)) {
+ /* we do mean transferee here, NOT transferer */
+ finishup(transferee);
return -1;
+ };
memset(&bconfig,0,sizeof(struct ast_bridge_config));
ast_set_flag(&(bconfig.features_caller), AST_FEATURE_DISCONNECT);
ast_set_flag(&(bconfig.features_callee), AST_FEATURE_DISCONNECT);
@@ -831,8 +834,10 @@ static int builtin_atxfer(struct ast_channel *chan, struct ast_channel *peer, st
return FEATURE_RETURN_SUCCESS;
}
- if (check_compat(transferee, newchan))
+ if (check_compat(transferee, newchan)) {
+ finishup(transferee);
return -1;
+ };
ast_indicate(transferee, AST_CONTROL_UNHOLD);