diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-11-15 18:06:54 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-11-15 18:06:54 +0000 |
commit | 15cfebbb488dc3c622128e5ec3104e7b61cfa35d (patch) | |
tree | 50abe286c5ac2fe4e84835354f96201e15f95aeb /apps/app_queue.c | |
parent | 1d3503b73ab761222affb97ea48f4ddf1a96d619 (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-x | apps/app_queue.c | 15 |
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; |