summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2005-02-18 05:03:01 +0000
committerMark Spencer <markster@digium.com>2005-02-18 05:03:01 +0000
commitf8aa020b3f9e3679d2e0e2051c42ad669a8582c2 (patch)
tree874ead56c9191e60f40f6380bb7f195435fdf62e /channels
parentf320936bbbc3057b8e8af60e40a021779a154e6a (diff)
Add event for agentlogoff from CLI (bug #3611)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5047 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_agent.c12
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;