]> git.ipfire.org Git - thirdparty/asterisk.git/commit
app_queue: Fix Attended transfer hangup with removing pending member.
authorCao Minh Hiep <chiep@infinitalk.co.jp>
Thu, 6 Sep 2018 02:14:12 +0000 (11:14 +0900)
committerCao Minh Hiep <chiep@infinitalk.co.jp>
Thu, 27 Sep 2018 01:04:06 +0000 (20:04 -0500)
commit958727cece22bf7722b24c3d671c978294a86973
treee7ea0441272a646b80d4d5de49bad98652dbfdac
parent94ef074cc77f517fd0efa3b2fdda12b71a48538a
app_queue: Fix Attended transfer hangup with removing pending member.

This issue related to setting of holdtime, announcements, member delays.
It works well if we set the member delays to "0" and no announcements
and no holdtime.This issue will happen if we set member delays to "1",
"2"... or announcements or holdtime and hangs up the call during
processing it.

And here is the reason:
(At the step of answering a phone.)
It takes care any holdtime, announcements, member delays,
or other options after a call has been answered if it exists.

Normally, After the call has been aswered,
and we wait for the processing one of the cases of the member delays
or hold time or announcements finished, "if (ast_check_hangup(peer))"
will be not executed, then queue will be updated at update_queue().
Here, pending member will be removed.

However, after the call has been aswered,
if we hangs up the call during one of the cases of the member delays
or hold time or announcements, "if (ast_check_hangup(peer))"
will be executed.
outgoing = NULL and at hangupcalls, pending members will not be removed.

* This fixed patch will remove the pending member from container
before hanging up the call with outgoing is NULL.

ASTERISK-27920

Reported by: Cao Minh Hiep
Tested by: Cao Minh Hiep

Change-Id: Ib780fbf48ace9d2d8eaa1270b9d530a4fc14c855
apps/app_queue.c