aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_queue.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-11-15 18:06:54 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-11-15 18:06:54 +0000
commit15cfebbb488dc3c622128e5ec3104e7b61cfa35d (patch)
tree50abe286c5ac2fe4e84835354f96201e15f95aeb /apps/app_queue.c
parent1d3503b73ab761222affb97ea48f4ddf1a96d619 (diff)
Generate new QueueMemberAdded and QueueMemberRemoved events
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4258 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_queue.c')
-rwxr-xr-xapps/app_queue.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c
index 0b086732e..0a97cdf46 100755
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -1536,6 +1536,7 @@ static struct member * create_queue_node( char * interface, int penalty )
strncpy(cur->loc, tmp, sizeof(cur->loc) - 1);
} else
ast_log(LOG_WARNING, "No location at interface '%s'\n", interface);
+ cur->status = ast_device_state(interface);
}
return( cur ) ;
@@ -1564,6 +1565,10 @@ static int remove_from_queue(char *queuename, char *interface)
}
}
}
+ manager_event(EVENT_FLAG_AGENT, "QueueMemberRemoved",
+ "Queue: %s\r\n"
+ "Location: %s/%s\r\n",
+ q->name, last_member->tech, last_member->loc);
free(last_member);
res = RES_OKAY;
} else {
@@ -1595,6 +1600,16 @@ static int add_to_queue(char *queuename, char *interface, int penalty)
new_member->dynamic = 1;
new_member->next = q->members;
q->members = new_member;
+ manager_event(EVENT_FLAG_AGENT, "QueueMemberAdded",
+ "Queue: %s\r\n"
+ "Location: %s/%s\r\n"
+ "Membership: %s\r\n"
+ "Penalty: %d\r\n"
+ "CallsTaken: %d\r\n"
+ "LastCall: %ld\r\n"
+ "Status: %d\r\n",
+ q->name, new_member->tech, new_member->loc, new_member->dynamic ? "dynamic" : "static",
+ new_member->penalty, new_member->calls, new_member->lastcall, new_member->status);
res = RES_OKAY;
} else {
res = RES_OUTOFMEMORY;