]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Play periodic prompst for first call in a call queue
authorOlle Johansson <oej@edvina.net>
Mon, 29 Apr 2013 08:36:15 +0000 (08:36 +0000)
committerOlle Johansson <oej@edvina.net>
Mon, 29 Apr 2013 08:36:15 +0000 (08:36 +0000)
Review: https://reviewboard.asterisk.org/r/2263/

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

CHANGES
apps/app_queue.c

diff --git a/CHANGES b/CHANGES
index 6b7595912907e562ba7356c01c148f811857daaf..d28c989b782e8ab8f6af0c471cb8e7030901e865 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -8,6 +8,15 @@
 ===
 ======================================================================
 
+------------------------------------------------------------------------------
+--- Functionality changes since Asterisk 1.8.19.1 ----------------------------
+------------------------------------------------------------------------------
+
+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 ----------------------------
 ------------------------------------------------------------------------------
index 0f6d3e5efa3c60d6d25dd7fd2909b71d34c21867..bb96bcd91186122ddad1b0f282d70469c6eb7447 100644 (file)
@@ -3607,7 +3607,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;
@@ -4087,6 +4087,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);
@@ -4833,7 +4843,7 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
        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