aboutsummaryrefslogtreecommitdiffstats
path: root/res
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-28 14:37:09 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-28 14:37:09 +0000
commitd4ad4bfab726f521d9ebd7c746310dac95e87ebb (patch)
treeb6ffce1b045ea8e48ca21b809a5daaa4a09b13f5 /res
parent4d7ebb763f616faecdf63b38c0a7c38183137adb (diff)
(closes issue #10579)
Reported by: ornati Make sure the called channel during the attended transfer process becomes associated with the calling channel so that the ast_waitfor_* call works properly under epoll. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@81210 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'res')
-rw-r--r--res/res_features.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/res/res_features.c b/res/res_features.c
index 1f01f71c6..88958807a 100644
--- a/res/res_features.c
+++ b/res/res_features.c
@@ -1578,6 +1578,9 @@ static struct ast_channel *ast_feature_request_and_dial(struct ast_channel *call
x = 0;
started = ast_tvnow();
to = timeout;
+
+ ast_poll_channel_add(caller, chan);
+
while (!((transferee && ast_check_hangup(transferee)) && (!igncallerstate && ast_check_hangup(caller))) && timeout && (chan->_state != AST_STATE_UP)) {
struct ast_frame *f = NULL;
@@ -1665,6 +1668,9 @@ static struct ast_channel *ast_feature_request_and_dial(struct ast_channel *call
if (f)
ast_frfree(f);
} /* end while */
+
+ ast_poll_channel_del(caller, chan);
+
} else
ast_log(LOG_NOTICE, "Unable to call channel %s/%s\n", type, (char *)data);
} else {