* PAUSEALL/UNPAUSEALL now sets the pause reason in the queue_log if it has
been defined.
+ * A new option, "announce-position-only-up," has been added that, when set to
+ yes, causes position announcements to only be played when the caller's
+ queue position has improved since the last time that we annouced their
+ position. This default is no.
+
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 14.6.0 to Asterisk 14.7.0 ------------
------------------------------------------------------------------------------
unsigned int timeoutrestart:1;
unsigned int announceholdtime:2;
unsigned int announceposition:3;
+ unsigned int announceposition_only_up:1; /*!< Only announce position if it has improved */
int strategy:4;
unsigned int realtime:1;
unsigned int found:1;
q->announcefrequency = 0;
q->minannouncefrequency = DEFAULT_MIN_ANNOUNCE_FREQUENCY;
q->announceholdtime = 1;
+ q->announceposition_only_up = 0;
q->announcepositionlimit = 10; /* Default 10 positions */
q->announceposition = ANNOUNCEPOSITION_YES; /* Default yes */
q->roundingseconds = 0; /* Default - don't announce seconds */
} else {
q->announceposition = ANNOUNCEPOSITION_NO;
}
+ } else if (!strcasecmp(param, "announce-position-only-up")) {
+ q->announceposition_only_up = ast_true(val);
} else if (!strcasecmp(param, "announce-position-limit")) {
q->announcepositionlimit = atoi(val);
} else if (!strcasecmp(param, "periodic-announce")) {
return 0;
}
+ /* Only announce if the caller's queue position has improved since last time */
+ if (qe->parent->announceposition_only_up && qe->last_pos_said <= qe->pos) {
+ return 0;
+ }
+
if (ringing) {
ast_indicate(qe->chan,-1);
} else {
;
; announce-round-seconds = 10
;
+; Only announce the caller's position if it has improved since the last announcement.
+; The default value is no.
+;
+; announce-position-only-up = yes
+;
; Use these sound files in making position/holdtime announcements. The
; defaults are as listed below -- change only if you need to.
;