Play periodic prompts for first call in a call queue

Review: https://reviewboard.asterisk.org/r/2263/
........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@386794 65c4cc65-6c06-0410-ace0-fbb531ad65f3
changes/61/61/1
Olle Johansson 12 years ago
parent bf9fe01359
commit aa676fbb84

@ -11,6 +11,15 @@
--- Functionality changes from Asterisk 10 to Asterisk 11 -------------------- --- Functionality changes from Asterisk 10 to Asterisk 11 --------------------
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
App_queue
---------
* App_queue will now play periodic announcements for the caller that
holds the first position in the queue while waiting for answer.
------------------------------------------------------------------------------
--- Functionality changes since Asterisk 1.8.12.0 ----------------------------
------------------------------------------------------------------------------
Build System Build System
------------------- -------------------
* The Asterisk build system will now build and install a shared library * The Asterisk build system will now build and install a shared library

@ -4089,7 +4089,7 @@ static void rna(int rnatime, struct queue_ent *qe, char *interface, char *member
* *
* \todo eventually all call forward logic should be intergerated into and replaced by ast_call_forward() * \todo eventually all call forward logic should be intergerated into and replaced by ast_call_forward()
*/ */
static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callattempt *outgoing, int *to, char *digit, int prebusies, int caller_disconnect, int forwardsallowed) static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callattempt *outgoing, int *to, char *digit, int prebusies, int caller_disconnect, int forwardsallowed, int ringing)
{ {
const char *queue = qe->parent->name; const char *queue = qe->parent->name;
struct callattempt *o, *start = NULL, *prev = NULL; struct callattempt *o, *start = NULL, *prev = NULL;
@ -4588,6 +4588,16 @@ skip_frame:;
} }
} }
/* Make a position announcement, if enabled */
if (qe->parent->announcefrequency) {
say_position(qe, ringing);
}
/* Make a periodic announcement, if enabled */
if (qe->parent->periodicannouncefrequency) {
say_periodic_announcement(qe, ringing);
}
if (!*to) { if (!*to) {
for (o = start; o; o = o->call_next) { for (o = start; o; o = o->call_next) {
rna(orig, qe, o->interface, o->member->membername, 1); rna(orig, qe, o->interface, o->member->membername, 1);
@ -5378,7 +5388,7 @@ static int try_calling(struct queue_ent *qe, const struct ast_flags opts, char *
ring_one(qe, outgoing, &numbusies); ring_one(qe, outgoing, &numbusies);
lpeer = wait_for_answer(qe, outgoing, &to, &digit, numbusies, lpeer = wait_for_answer(qe, outgoing, &to, &digit, numbusies,
ast_test_flag(&(bridge_config.features_caller), AST_FEATURE_DISCONNECT), ast_test_flag(&(bridge_config.features_caller), AST_FEATURE_DISCONNECT),
forwardsallowed); forwardsallowed, ringing);
/* The ast_channel_datastore_remove() function could fail here if the /* The ast_channel_datastore_remove() function could fail here if the
* datastore was moved to another channel during a masquerade. If this is * datastore was moved to another channel during a masquerade. If this is
* the case, don't free the datastore here because later, when the channel * the case, don't free the datastore here because later, when the channel

Loading…
Cancel
Save