mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-25 15:08:53 +00:00
app_queue.c: Emit unpause reason with PauseQueueMember event.
Fixes #395
This commit is contained in:
@@ -7798,6 +7798,9 @@ static void set_queue_member_pause(struct call_queue *q, struct member *mem, con
|
|||||||
if (paused && !ast_strlen_zero(reason)) {
|
if (paused && !ast_strlen_zero(reason)) {
|
||||||
ast_copy_string(mem->reason_paused, reason, sizeof(mem->reason_paused));
|
ast_copy_string(mem->reason_paused, reason, sizeof(mem->reason_paused));
|
||||||
} else {
|
} else {
|
||||||
|
/* We end up filling this in again later (temporarily) but we need it
|
||||||
|
* empty for now so that the intervening code - specifically
|
||||||
|
* dump_queue_members() - has the correct view of things. */
|
||||||
mem->reason_paused[0] = '\0';
|
mem->reason_paused[0] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7816,10 +7819,22 @@ static void set_queue_member_pause(struct call_queue *q, struct member *mem, con
|
|||||||
"Queue:%s_avail", q->name);
|
"Queue:%s_avail", q->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
ast_queue_log(q->name, "NONE", mem->membername, (paused ? "PAUSE" : "UNPAUSE"),
|
if (!paused && !ast_strlen_zero(reason)) {
|
||||||
"%s", S_OR(reason, ""));
|
/* Because we've been unpaused with a 'reason' we need to ensure that
|
||||||
|
* that reason is emitted when the subsequent PauseQueueMember event
|
||||||
|
* is raised. So temporarily set it on the member and clear it out
|
||||||
|
* again right after. */
|
||||||
|
ast_copy_string(mem->reason_paused, reason, sizeof(mem->reason_paused));
|
||||||
|
}
|
||||||
|
|
||||||
|
ast_queue_log(q->name, "NONE", mem->membername, paused ? "PAUSE" : "UNPAUSE",
|
||||||
|
"%s", mem->reason_paused);
|
||||||
|
|
||||||
publish_queue_member_pause(q, mem);
|
publish_queue_member_pause(q, mem);
|
||||||
|
|
||||||
|
if (!paused) {
|
||||||
|
mem->reason_paused[0] = '\0';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int set_member_paused(const char *queuename, const char *interface, const char *reason, int paused)
|
static int set_member_paused(const char *queuename, const char *interface, const char *reason, int paused)
|
||||||
|
Reference in New Issue
Block a user