mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +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.
This commit is contained in:
		| @@ -1801,6 +1801,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; | ||||
|  | ||||
| @@ -8068,6 +8071,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)) { | ||||
| @@ -9900,6 +9908,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 */ | ||||
| @@ -9928,6 +9937,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); | ||||
|   | ||||
| @@ -82,6 +82,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