mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-16 09:52:24 +00:00
app_queue.c: Add new global 'log_unpause_on_reason_change'
In many asterisk-based systems, the pause reason is used to separate
pauses by type,and logically, changing the reason defines two intervals
that should be accounted for separately. The introduction of a new
option allows me to separate the intervals of operator inactivity in
the log by the event of unpausing.
UserNote: Add new global option 'log_unpause_on_reason_change' that
is default disabled. When enabled cause addition of UNPAUSE event on
every re-PAUSE with reason changed.
(cherry picked from commit c982efaceb
)
This commit is contained in:
committed by
Asterisk Development Team
parent
c6527945c7
commit
bff8884629
@@ -1742,6 +1742,9 @@ static int force_longest_waiting_caller;
|
||||
/*! \brief queues.conf [general] option */
|
||||
static int log_caller_id_name;
|
||||
|
||||
/*! \brief queues.conf [general] option */
|
||||
static int log_unpause_on_reason_change;
|
||||
|
||||
/*! \brief name of the ringinuse field in the realtime database */
|
||||
static char *realtime_ringinuse_field;
|
||||
|
||||
@@ -7935,6 +7938,11 @@ static void set_queue_member_pause(struct call_queue *q, struct member *mem, con
|
||||
if (mem->paused == paused) {
|
||||
ast_debug(1, "%spausing already-%spaused queue member %s:%s\n",
|
||||
(paused ? "" : "un"), (paused ? "" : "un"), q->name, mem->interface);
|
||||
if (log_unpause_on_reason_change && paused) {
|
||||
if (!ast_strings_equal(mem->reason_paused, reason)) {
|
||||
ast_queue_log(q->name, "NONE", mem->membername, "UNPAUSE", "%s", "Auto-Unpause");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mem->realtime && !ast_strlen_zero(mem->rt_uniqueid)) {
|
||||
@@ -9715,6 +9723,7 @@ static void queue_reset_global_params(void)
|
||||
negative_penalty_invalid = 0;
|
||||
log_membername_as_agent = 0;
|
||||
force_longest_waiting_caller = 0;
|
||||
log_unpause_on_reason_change = 0;
|
||||
}
|
||||
|
||||
/*! Set the global queue parameters as defined in the "general" section of queues.conf */
|
||||
@@ -9743,6 +9752,9 @@ static void queue_set_global_params(struct ast_config *cfg)
|
||||
if ((general_val = ast_variable_retrieve(cfg, "general", "force_longest_waiting_caller"))) {
|
||||
force_longest_waiting_caller = ast_true(general_val);
|
||||
}
|
||||
if ((general_val = ast_variable_retrieve(cfg, "general", "log_unpause_on_reason_change"))) {
|
||||
log_unpause_on_reason_change = ast_true(general_val);
|
||||
}
|
||||
/* Apply log-caller-id-name in the same place as other global settings */
|
||||
if ((general_val = ast_variable_retrieve(cfg, "general", "log-caller-id-name"))) {
|
||||
log_caller_id_name = ast_true(general_val);
|
||||
|
@@ -75,6 +75,11 @@ monitor-type = MixMonitor
|
||||
;
|
||||
;force_longest_waiting_caller = no
|
||||
;
|
||||
; Add unpause event to queue log in case of pause send twice with different reason code.
|
||||
;
|
||||
;log_unpause_on_reason_change = no
|
||||
;
|
||||
;
|
||||
;[markq]
|
||||
;
|
||||
; A sample call queue
|
||||
|
Reference in New Issue
Block a user