mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-16 09:46:22 +00:00
Properly differentiate between caller and agent hangups (bug #3578)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5018 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1557,7 +1557,7 @@ static int try_calling(struct queue_ent *qe, char *ooptions, char *announceoverr
|
||||
}
|
||||
}
|
||||
res2 |= ast_autoservice_stop(qe->chan);
|
||||
if (res2) {
|
||||
if (peer->_softhangup) {
|
||||
/* Agent must have hung up */
|
||||
ast_log(LOG_WARNING, "Agent on %s hungup on the customer. They're going to be pissed.\n", peer->name);
|
||||
ast_queue_log(queuename, qe->chan->uniqueid, peer->name, "AGENTDUMP", "%s", "");
|
||||
@@ -1570,6 +1570,13 @@ static int try_calling(struct queue_ent *qe, char *ooptions, char *announceoverr
|
||||
queuename, qe->chan->uniqueid, peer->name, member->interface);
|
||||
}
|
||||
ast_hangup(peer);
|
||||
goto out;
|
||||
} else if (res2) {
|
||||
/* Caller must have hung up just before being connected*/
|
||||
ast_log(LOG_NOTICE, "Caller was about to talk to agent on %s but the caller hungup.\n", peer->name);
|
||||
ast_queue_log(queuename, qe->chan->uniqueid, peer->name, "ABANDON", "%d|%d|%ld", qe->pos, qe->opos, (long)time(NULL) - qe->start);
|
||||
record_abandoned(qe);
|
||||
ast_hangup(peer);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user