aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_queue.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-01-29 22:42:40 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-01-29 22:42:40 +0000
commitc32d3fd7c93415d53e6657a994174630960f548b (patch)
tree99c006db5546045e7d89f056aca7e91d6d204176 /apps/app_queue.c
parent772e5d4831003007ad337094c3dcb0749140f51e (diff)
Add more manager events in queue (if enabled) (bug #3454)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4920 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_queue.c')
-rwxr-xr-xapps/app_queue.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c
index b8a0baa62..4f5b174c5 100755
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -1557,6 +1557,14 @@ static int try_calling(struct queue_ent *qe, char *options, char *announceoverri
/* Agent must have hung up */
ast_log(LOG_WARNING, "Agent on %s hungup on the customer. They're going to be pissed.\n", peer->name);
ast_queue_log(queuename, qe->chan->uniqueid, peer->name, "AGENTDUMP", "%s", "");
+ if (ast_test_flag(qe->parent, QUEUE_FLAG_EVENTWHENCALLED)) {
+ manager_event(EVENT_FLAG_AGENT, "AgentDump",
+ "Queue: %s\r\n"
+ "Uniqueid: %s\r\n"
+ "Channel: %s\r\n"
+ "Member: %s\r\n",
+ queuename, qe->chan->uniqueid, peer->name, member->interface);
+ }
ast_hangup(peer);
return -1;
}
@@ -1594,6 +1602,15 @@ static int try_calling(struct queue_ent *qe, char *options, char *announceoverri
ast_channel_sendurl( peer, url );
}
ast_queue_log(queuename, qe->chan->uniqueid, peer->name, "CONNECT", "%ld", (long)time(NULL) - qe->start);
+ if (ast_test_flag(qe->parent, QUEUE_FLAG_EVENTWHENCALLED)) {
+ manager_event(EVENT_FLAG_AGENT, "AgentConnect",
+ "Queue: %s\r\n"
+ "Uniqueid: %s\r\n"
+ "Channel: %s\r\n"
+ "Member: %s\r\n"
+ "Holdtime: %ld\r\n",
+ queuename, qe->chan->uniqueid, peer->name, member->interface, (long)time(NULL) - qe->start);
+ }
strncpy(oldcontext, qe->chan->context, sizeof(oldcontext) - 1);
strncpy(oldexten, qe->chan->exten, sizeof(oldexten) - 1);
time(&callstart);
@@ -1613,8 +1630,30 @@ static int try_calling(struct queue_ent *qe, char *options, char *announceoverri
ast_queue_log(queuename, qe->chan->uniqueid, peer->name, "TRANSFER", "%s|%s", qe->chan->exten, qe->chan->context);
} else if (qe->chan->_softhangup) {
ast_queue_log(queuename, qe->chan->uniqueid, peer->name, "COMPLETECALLER", "%ld|%ld", (long)(callstart - qe->start), (long)(time(NULL) - callstart));
+ if (ast_test_flag(qe->parent, QUEUE_FLAG_EVENTWHENCALLED)) {
+ manager_event(EVENT_FLAG_AGENT, "AgentComplete",
+ "Queue: %s\r\n"
+ "Uniqueid: %s\r\n"
+ "Channel: %s\r\n"
+ "Member: %s\r\n"
+ "HoldTime: %ld\r\n"
+ "TalkTime: %ld\r\n"
+ "Reason: caller\r\n",
+ queuename, qe->chan->uniqueid, peer->name, member->interface, (long)(callstart - qe->start), (long)(time(NULL) - callstart));
+ }
} else {
ast_queue_log(queuename, qe->chan->uniqueid, peer->name, "COMPLETEAGENT", "%ld|%ld", (long)(callstart - qe->start), (long)(time(NULL) - callstart));
+ if (ast_test_flag(qe->parent, QUEUE_FLAG_EVENTWHENCALLED)) {
+ manager_event(EVENT_FLAG_AGENT, "AgentComplete",
+ "Queue: %s\r\n"
+ "Uniqueid: %s\r\n"
+ "Channel: %s\r\n"
+ "HoldTime: %ld\r\n"
+ "TalkTime: %ld\r\n"
+ "Reason: agent\r\n",
+ queuename, qe->chan->uniqueid, peer->name, (long)(callstart - qe->start), (long)(time(NULL) - callstart));
+ }
+
}
if(bridge != AST_PBX_NO_HANGUP_PEER)