mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +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:
		| @@ -1839,6 +1839,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 */ | ||||
| @@ -2967,6 +2968,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; | ||||
| @@ -3423,6 +3425,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")) { | ||||
| @@ -8522,6 +8526,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