From bc5950c4ce6436c973eb91025a9f4e4e58b63b37 Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Tue, 28 Aug 2007 14:37:09 +0000
Subject: [PATCH] (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: https://origsvn.digium.com/svn/asterisk/trunk@81210 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 res/res_features.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/res/res_features.c b/res/res_features.c
index 1f01f71c64..88958807a3 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 {
-- 
GitLab