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
This commit is contained in:
Mark Michelson 2008-06-03 21:22:52 +00:00
parent 3f47cf6101
commit d81d206148
2 changed files with 8 additions and 0 deletions

View File

@ -481,6 +481,11 @@ Queue changes
position announced if their position is less than what is specified by announce-position-limit. 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 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. 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 MeetMe Changes
-------------- --------------

View File

@ -1358,6 +1358,7 @@ static void rt_handle_member_record(struct call_queue *q, char *interface, const
m->realtime = 1; m->realtime = 1;
ast_copy_string(m->rt_uniqueid, rt_uniqueid, sizeof(m->rt_uniqueid)); ast_copy_string(m->rt_uniqueid, rt_uniqueid, sizeof(m->rt_uniqueid));
add_to_interfaces(m->state_interface); add_to_interfaces(m->state_interface);
ast_queue_log(q->name, "REALTIME", m->interface, "ADDMEMBER", "%s", "");
ao2_link(q->members, m); ao2_link(q->members, m);
ao2_ref(m, -1); ao2_ref(m, -1);
m = NULL; 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); mem_iter = ao2_iterator_init(q->members, 0);
while ((m = ao2_iterator_next(&mem_iter))) { while ((m = ao2_iterator_next(&mem_iter))) {
if (m->dead) { if (m->dead) {
ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", "");
ao2_unlink(q->members, m); ao2_unlink(q->members, m);
remove_from_interfaces(m->state_interface); remove_from_interfaces(m->state_interface);
q->membercount--; q->membercount--;
@ -1649,6 +1651,7 @@ static void update_realtime_members(struct call_queue *q)
mem_iter = ao2_iterator_init(q->members, 0); mem_iter = ao2_iterator_init(q->members, 0);
while ((m = ao2_iterator_next(&mem_iter))) { while ((m = ao2_iterator_next(&mem_iter))) {
if (m->dead) { if (m->dead) {
ast_queue_log(q->name, "REALTIME", m->interface, "REMOVEMEMBER", "%s", "");
ao2_unlink(q->members, m); ao2_unlink(q->members, m);
remove_from_interfaces(m->state_interface); remove_from_interfaces(m->state_interface);
q->membercount--; q->membercount--;