diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-02-18 05:03:01 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-02-18 05:03:01 +0000 |
commit | bf6afaf5cb615f1468b79d9bc184e5aeea66b489 (patch) | |
tree | 874ead56c9191e60f40f6380bb7f195435fdf62e /channels/chan_agent.c | |
parent | 091201c2187c59a97d3b2477a360fa8b0dae999b (diff) |
Add event for agentlogoff from CLI (bug #3611)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5047 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_agent.c')
-rwxr-xr-x | channels/chan_agent.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c index 842616feb..481485c28 100755 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -1314,7 +1314,8 @@ static int agent_logoff_cmd(int fd, int argc, char **argv) { struct agent_pvt *p; char *agent = argv[2] + 6; - + long logintime; + if (argc < 3 || argc > 4) return RESULT_SHOWUSAGE; if (argc == 4 && strcasecmp(argv[3], "soft")) @@ -1330,6 +1331,15 @@ static int agent_logoff_cmd(int fd, int argc, char **argv) ast_softhangup(p->chan, AST_SOFTHANGUP_EXPLICIT); } } + logintime = time(NULL) - p->loginstart; + p->loginstart = 0; + + manager_event(EVENT_FLAG_AGENT, "Agentcallbacklogoff", + "Agent: %s\r\n" + "Loginchan: %s\r\n" + "Logintime: %ld\r\n", + p->agent, p->loginchan, logintime); + ast_queue_log("NONE", "NONE", agent, "AGENTCALLBACKLOGOFF", "%s|%ld|%s", p->loginchan, logintime, "CommandLogoff"); p->loginchan[0] = '\0'; ast_cli(fd, "Logging out %s\n", agent); break; |