From: Richard Mudgett Date: Fri, 22 Jun 2012 22:07:35 +0000 (+0000) Subject: Explicitly check caller hangup in app Queue rather than a polluted res2 value. X-Git-Tag: 1.8.15.0-rc1~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5e54864c5cce3e2069d29dfd65b3d345268ed93b;p=thirdparty%2Fasterisk.git Explicitly check caller hangup in app Queue rather than a polluted res2 value. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@369262 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_queue.c b/apps/app_queue.c index 34703f1478..adedad72a7 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -4698,7 +4698,7 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce if (!res2) { if (qe->parent->memberdelay) { ast_log(LOG_NOTICE, "Delaying member connect for %d seconds\n", qe->parent->memberdelay); - res2 |= ast_safe_sleep(peer, qe->parent->memberdelay * 1000); + res2 = ast_safe_sleep(peer, qe->parent->memberdelay * 1000); } if (!res2 && announce) { if (play_file(peer, announce) < 0) { @@ -4726,8 +4726,8 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce } } } + ast_autoservice_stop(qe->chan); } - res2 |= ast_autoservice_stop(qe->chan); if (ast_check_hangup(peer)) { /* Agent must have hung up */ ast_log(LOG_WARNING, "Agent on %s hungup on the customer.\n", peer->name); @@ -4745,8 +4745,8 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce ast_hangup(peer); ao2_ref(member, -1); goto out; - } else if (res2) { - /* Caller must have hung up just before being connected*/ + } else if (ast_check_hangup(qe->chan)) { + /* 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, member->membername, "ABANDON", "%d|%d|%ld", qe->pos, qe->opos, (long) time(NULL) - qe->start); record_abandoned(qe);