summaryrefslogtreecommitdiff
path: root/apps/app_queue.c
diff options
context:
space:
mode:
authorOlle Johansson <oej@edvina.net>2013-04-29 13:38:59 +0000
committerOlle Johansson <oej@edvina.net>2013-04-29 13:38:59 +0000
commit465d0f4a22aa38d01e16cc49138d701249de52e4 (patch)
treef9bf03d82254cf56ed2fd2441a3de7fc072a6d7b /apps/app_queue.c
parentfc47a3f6e56149781d117d3b4a39add8e6c2452e (diff)
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 ........ Merged revisions 386794 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@386841 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps/app_queue.c')
-rw-r--r--apps/app_queue.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c
index 9de87892c..887f8f0b0 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -4071,7 +4071,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()
*/
-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;
struct callattempt *o, *start = NULL, *prev = NULL;
@@ -4582,6 +4582,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) {
for (o = start; o; o = o->call_next) {
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);
lpeer = wait_for_answer(qe, outgoing, &to, &digit, numbusies,
ast_test_flag(&(bridge_config.features_caller), AST_FEATURE_DISCONNECT),
- forwardsallowed);
+ forwardsallowed, ringing);
/* The ast_channel_datastore_remove() function could fail here if the
* 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