mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-25 15:08:53 +00:00
app_queue: Add announce-position-only-up option
Setting this option will cause the Queue application to only announce the caller's position if it has improved since the last time that we announced it. Change-Id: I173a124121422209485b043e2bf784f54242fce6
This commit is contained in:
committed by
George Joseph
parent
63224d5d9c
commit
1078d4f7f6
5
CHANGES
5
CHANGES
@@ -17,6 +17,11 @@ app_queue
|
||||
* 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 ------------
|
||||
------------------------------------------------------------------------------
|
||||
|
@@ -1683,6 +1683,7 @@ struct call_queue {
|
||||
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;
|
||||
@@ -2722,6 +2723,7 @@ static void init_queue(struct call_queue *q)
|
||||
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 */
|
||||
@@ -3171,6 +3173,8 @@ static void queue_set_param(struct call_queue *q, const char *param, const char
|
||||
} 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")) {
|
||||
@@ -3911,6 +3915,11 @@ static int say_position(struct queue_ent *qe, int ringing)
|
||||
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 {
|
||||
|
@@ -345,6 +345,11 @@ monitor-type = MixMonitor
|
||||
;
|
||||
; 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.
|
||||
;
|
||||
|
Reference in New Issue
Block a user