diff options
author | mnicholson <mnicholson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-11-09 16:28:31 +0000 |
---|---|---|
committer | mnicholson <mnicholson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-11-09 16:28:31 +0000 |
commit | d41ff717eba49172eb00bc15d72903c1bc0dae5f (patch) | |
tree | aaa40c2e99c78775d8af21bd824d466099e9a7e3 /apps/app_queue.c | |
parent | 01492b431e44c93b5c6439d9eef1c8fe69a20a17 (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/app_queue.c')
-rw-r--r-- | apps/app_queue.c | 8 |
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) { |