aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authormnicholson <mnicholson@f38db490-d61c-443f-a65b-d21fe96a405b>2009-11-09 16:28:31 +0000
committermnicholson <mnicholson@f38db490-d61c-443f-a65b-d21fe96a405b>2009-11-09 16:28:31 +0000
commitd41ff717eba49172eb00bc15d72903c1bc0dae5f (patch)
treeaaa40c2e99c78775d8af21bd824d466099e9a7e3 /apps
parent01492b431e44c93b5c6439d9eef1c8fe69a20a17 (diff)
Add the 'relative-periodic-announce' option to app_queue to allow for calculating the time of announcments from the end of the previous announcment rather than from the beginning.
(closes issue #15260) Reported by: tonils git-svn-id: http://svn.digium.com/svn/asterisk/trunk@228947 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r--apps/app_queue.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c
index bdbb91560..c0b32ff90 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -930,6 +930,7 @@ struct call_queue {
unsigned int maskmemberstatus:1;
unsigned int realtime:1;
unsigned int found:1;
+ unsigned int relativeperiodicannounce:1;
enum empty_conditions joinempty;
enum empty_conditions leavewhenempty;
int announcepositionlimit; /*!< How many positions we announce? */
@@ -1720,6 +1721,8 @@ static void queue_set_param(struct call_queue *q, const char *param, const char
}
} else if (!strcasecmp(param, "periodic-announce-frequency")) {
q->periodicannouncefrequency = atoi(val);
+ } else if (!strcasecmp(param, "relative-periodic-announce")) {
+ q->relativeperiodicannounce = ast_true(val);
} else if (!strcasecmp(param, "random-periodic-announce")) {
q->randomperiodicannounce = ast_true(val);
} else if (!strcasecmp(param, "retry")) {
@@ -3029,7 +3032,10 @@ static int say_periodic_announcement(struct queue_ent *qe, int ringing)
}
/* update last_periodic_announce_time */
- qe->last_periodic_announce_time = now;
+ if (qe->parent->relativeperiodicannounce)
+ time(&qe->last_periodic_announce_time);
+ else
+ qe->last_periodic_announce_time = now;
/* Update the current periodic announcement to the next announcement */
if (!qe->parent->randomperiodicannounce) {