From d81d206148b349b68c6a70b36dbfd312d09a24e4 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Tue, 3 Jun 2008 21:22:52 +0000 Subject: [PATCH] Adding two new queue log events. The ADDMEMBER event is logged when a dynamic realtime queue member is added to the queue, and the REMOVEMEMBER event is logged when a dynamic realtime member is removed. Since no calling channel is associated with these events the string "REALTIME" is placed where the channel's unique id is normally placed. (closes issue #12774) Reported by: atis Patches: queue_log_rt_members.patch uploaded by atis (license 242) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@120166 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- CHANGES | 5 +++++ apps/app_queue.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/CHANGES b/CHANGES index caa63d558f..f28b8ea0e0 100644 --- a/CHANGES +++ b/CHANGES @@ -481,6 +481,11 @@ Queue changes position announced if their position is less than what is specified by announce-position-limit. If announce-position is set to "more" then callers beyond the position specified by announce-position-limit will be told that their are more than announce-position-limit callers waiting. + * Two new queue log events have been added. An ADDMEMBER event will be logged + when a realtime queue member is added and a REMOVEMEMBER event will be logged + when a realtime queue member is removed. Since there is no calling channel associated + with these events, the string "REALTIME" is placed where the channel's unique id + is typically placed. MeetMe Changes -------------- diff --git a/apps/app_queue.c b/apps/app_queue.c index c50549120f..fe9be2c143 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -1358,6 +1358,7 @@ static void rt_handle_member_record(struct call_queue *q, char *interface, const m->realtime = 1; ast_copy_string(m->rt_uniqueid, rt_uniqueid, sizeof(m->rt_uniqueid)); add_to_interfaces(m->state_interface); + ast_queue_log(q->name, "REALTIME", m->interface, "ADDMEMBER", "%s", ""); ao2_link(q->members, m); ao2_ref(m, -1); m = NULL; @@ -1542,6 +1543,7 @@ static struct call_queue *find_queue_by_name_rt(const char *queuename, struct as mem_iter = ao2_iterator_init(q->members, 0); while ((m = ao2_iterator_next(&mem_iter))) { if (m->dead) { + ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", ""); ao2_unlink(q->members, m); remove_from_interfaces(m->state_interface); q->membercount--; @@ -1649,6 +1651,7 @@ static void update_realtime_members(struct call_queue *q) mem_iter = ao2_iterator_init(q->members, 0); while ((m = ao2_iterator_next(&mem_iter))) { if (m->dead) { + ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", ""); ao2_unlink(q->members, m); remove_from_interfaces(m->state_interface); q->membercount--;