]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Adding two new queue log events. The ADDMEMBER event is logged when
authorMark Michelson <mmichelson@digium.com>
Tue, 3 Jun 2008 21:22:52 +0000 (21:22 +0000)
committerMark Michelson <mmichelson@digium.com>
Tue, 3 Jun 2008 21:22:52 +0000 (21:22 +0000)
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
apps/app_queue.c

diff --git a/CHANGES b/CHANGES
index caa63d558fc182eb9225f61b7ab02135b7b509b2..f28b8ea0e0df12ea15b3ee71cebd273f536674f4 100644 (file)
--- 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
 --------------
index c50549120f4fbad3cb17dede517a5e9696d6d5a3..fe9be2c143133479545b63e2c397260336255ccf 100644 (file)
@@ -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--;