]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Explicitly check caller hangup in app Queue rather than a polluted res2 value.
authorRichard Mudgett <rmudgett@digium.com>
Fri, 22 Jun 2012 22:09:29 +0000 (22:09 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Fri, 22 Jun 2012 22:09:29 +0000 (22:09 +0000)
........

Merged revisions 369262 from http://svn.asterisk.org/svn/asterisk/branches/1.8

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@369263 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c

index 47198292185b55643d7d0f4574f5bb0050063539..f54aa1b3229550afdd9783d7bdeda8ceefdd61a2 100644 (file)
@@ -4784,7 +4784,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) {
@@ -4812,8 +4812,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);
@@ -4831,8 +4831,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);