mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-20 20:44:20 +00:00
app_queue: periodic announcement configurable start time.
This newly introduced periodic-announce-startdelay makes it possible to configure the initial start delay of the first periodic announcement after which periodic-announce-frequency takes over. ASTERISK-30437 #close Change-Id: Ia79984b6377ef78f167ad9ea2ac084bec29955d0 Signed-off-by: Jaco Kroon <jaco@uls.co.za>
This commit is contained in:
committed by
Friendly Automation
parent
bbec5d1a99
commit
3fd0b65bae
@@ -1856,6 +1856,7 @@ struct call_queue {
|
||||
int announcepositionlimit; /*!< How many positions we announce? */
|
||||
int announcefrequency; /*!< How often to announce their position */
|
||||
int minannouncefrequency; /*!< The minimum number of seconds between position announcements (def. 15) */
|
||||
int periodicannouncestartdelay; /*!< How long into the queue should the periodic accouncement start */
|
||||
int periodicannouncefrequency; /*!< How often to play periodic announcement */
|
||||
int numperiodicannounce; /*!< The number of periodic announcements configured */
|
||||
int randomperiodicannounce; /*!< Are periodic announcments randomly chosen */
|
||||
@@ -2987,6 +2988,7 @@ static void init_queue(struct call_queue *q)
|
||||
q->weight = 0;
|
||||
q->timeoutrestart = 0;
|
||||
q->periodicannouncefrequency = 0;
|
||||
q->periodicannouncestartdelay = -1;
|
||||
q->randomperiodicannounce = 0;
|
||||
q->numperiodicannounce = 0;
|
||||
q->relativeperiodicannounce = 0;
|
||||
@@ -3445,6 +3447,8 @@ static void queue_set_param(struct call_queue *q, const char *param, const char
|
||||
ast_str_set(&q->sound_periodicannounce[0], 0, "%s", val);
|
||||
q->numperiodicannounce = 1;
|
||||
}
|
||||
} else if (!strcasecmp(param, "periodic-announce-startdelay")) {
|
||||
q->periodicannouncestartdelay = atoi(val);
|
||||
} else if (!strcasecmp(param, "periodic-announce-frequency")) {
|
||||
q->periodicannouncefrequency = atoi(val);
|
||||
} else if (!strcasecmp(param, "relative-periodic-announce")) {
|
||||
@@ -8613,6 +8617,10 @@ static int queue_exec(struct ast_channel *chan, const char *data)
|
||||
qe.last_pos_said = 0;
|
||||
qe.last_pos = 0;
|
||||
qe.last_periodic_announce_time = time(NULL);
|
||||
if (qe.parent->periodicannouncestartdelay >= 0) {
|
||||
qe.last_periodic_announce_time += qe.parent->periodicannouncestartdelay;
|
||||
qe.last_periodic_announce_time -= qe.parent->periodicannouncefrequency;
|
||||
}
|
||||
qe.last_periodic_announce_sound = 0;
|
||||
qe.valid_digits = 0;
|
||||
if (join_queue(args.queuename, &qe, &reason, position)) {
|
||||
|
Reference in New Issue
Block a user