mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 12:16:00 +00:00
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
This commit is contained in:
@@ -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);
|
||||
|
Reference in New Issue
Block a user