app_queue: Handle the caller being redirected out of a queue bridge
authorSean Bright <sean.bright@gmail.com>
Thu, 9 Mar 2017 17:05:12 +0000 (12:05 -0500)
committerSean Bright <sean.bright@gmail.com>
Wed, 15 Mar 2017 15:31:45 +0000 (11:31 -0400)
commit163e9e53dc7d84dd42721e733b7706c8147bdd27
treec0890b2b6fe1e719b04b649c5b3c9c4a63c7a2d2
parent947f1ebf861254c2544d6f1956ca7f31d1d393f7
app_queue: Handle the caller being redirected out of a queue bridge

A caller can leave the Queue() application after being bridged with a
member in a few ways:

  * Caller or member hangup
  * Caller is transferred somewhere else (blind or atx)
  * Caller is externally redirected elsewhere

The first 2 scenarios are currently handled by subscribing to stasis
messages, but the 3rd is not explicitly covered. If a caller is
redirected away from the Queue() application, the member who was last
bridged with that caller will remain in an "In use" state until the
caller hangs up.

This patch adds handling of the caller leaving the queue via
redirection. We monitor the caller-member bridge, and if the caller is
the one that leaves, we treat it the same as we would a caller hangup.

ASTERISK-26400 #close
Reported by: Etienne Lessard

Change-Id: Iba160907770de5a6c9efeffc9df5a13e9ea75334
apps/app_queue.c