From 789a8be69959f6680574e32df0bbc5860d204dba Mon Sep 17 00:00:00 2001 From: Mark Spencer <markster@digium.com> Date: Tue, 19 Aug 2003 21:14:16 +0000 Subject: [PATCH] Create/dial channel if availability is on callback channel git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1379 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_agent.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/channels/chan_agent.c b/channels/chan_agent.c index 0ebfdb337f..85dd349c0d 100755 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -707,7 +707,21 @@ static int check_availability(struct agent_pvt *newlyavailable, int needlock) if (!p->abouttograb && p->pending && ((p->group && (newlyavailable->group & p->group)) || !strcmp(p->agent, newlyavailable->agent))) { ast_log(LOG_DEBUG, "Call '%s' looks like a winner for agent '%s'\n", p->owner->name, newlyavailable->agent); /* We found a pending call, time to merge */ - chan = agent_new(newlyavailable, AST_STATE_DOWN); + if (strlen(newlyavailable->loginchan)) { + /* Adjustable agent */ + newlyavailable->chan = ast_request("Local", AST_FORMAT_SLINEAR, newlyavailable->loginchan); + if (newlyavailable->chan) { + if (agent_call(newlyavailable->chan, newlyavailable->loginchan, 0)) + ast_log(LOG_WARNING, "Call failed on channel '%s'\n", newlyavailable->chan->name); + chan = agent_new(p, AST_STATE_DOWN); + } else { + ast_log(LOG_WARNING, "I didn't expect to ever get here...\n"); + ast_mutex_unlock(&p->lock); + p = p->next; + continue; + } + } else + chan = agent_new(newlyavailable, AST_STATE_DOWN); parent = p->owner; p->abouttograb = 1; ast_mutex_unlock(&p->lock); -- GitLab