@ -1856,6 +1856,7 @@ struct call_queue {
int announcepositionlimit ; /*!< How many positions we announce? */
int announcepositionlimit ; /*!< How many positions we announce? */
int announcefrequency ; /*!< How often to announce their position */
int announcefrequency ; /*!< How often to announce their position */
int minannouncefrequency ; /*!< The minimum number of seconds between position announcements (def. 15) */
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 periodicannouncefrequency ; /*!< How often to play periodic announcement */
int numperiodicannounce ; /*!< The number of periodic announcements configured */
int numperiodicannounce ; /*!< The number of periodic announcements configured */
int randomperiodicannounce ; /*!< Are periodic announcments randomly chosen */
int randomperiodicannounce ; /*!< Are periodic announcments randomly chosen */
@ -2987,6 +2988,7 @@ static void init_queue(struct call_queue *q)
q - > weight = 0 ;
q - > weight = 0 ;
q - > timeoutrestart = 0 ;
q - > timeoutrestart = 0 ;
q - > periodicannouncefrequency = 0 ;
q - > periodicannouncefrequency = 0 ;
q - > periodicannouncestartdelay = - 1 ;
q - > randomperiodicannounce = 0 ;
q - > randomperiodicannounce = 0 ;
q - > numperiodicannounce = 0 ;
q - > numperiodicannounce = 0 ;
q - > relativeperiodicannounce = 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 ) ;
ast_str_set ( & q - > sound_periodicannounce [ 0 ] , 0 , " %s " , val ) ;
q - > numperiodicannounce = 1 ;
q - > numperiodicannounce = 1 ;
}
}
} else if ( ! strcasecmp ( param , " periodic-announce-startdelay " ) ) {
q - > periodicannouncestartdelay = atoi ( val ) ;
} else if ( ! strcasecmp ( param , " periodic-announce-frequency " ) ) {
} else if ( ! strcasecmp ( param , " periodic-announce-frequency " ) ) {
q - > periodicannouncefrequency = atoi ( val ) ;
q - > periodicannouncefrequency = atoi ( val ) ;
} else if ( ! strcasecmp ( param , " relative-periodic-announce " ) ) {
} 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_said = 0 ;
qe . last_pos = 0 ;
qe . last_pos = 0 ;
qe . last_periodic_announce_time = time ( NULL ) ;
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 . last_periodic_announce_sound = 0 ;
qe . valid_digits = 0 ;
qe . valid_digits = 0 ;
if ( join_queue ( args . queuename , & qe , & reason , position ) ) {
if ( join_queue ( args . queuename , & qe , & reason , position ) ) {