summaryrefslogtreecommitdiff
path: root/channels/chan_agent.c
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2004-02-14 04:54:39 +0000
committerMark Spencer <markster@digium.com>2004-02-14 04:54:39 +0000
commit2a31c9113698832dd7c35f9fa9b459911aada0cb (patch)
treefce221ee703a88c319b32446e1bac4c572dc403f /channels/chan_agent.c
parentf49d75994ec67db532708aae4ae7fced1fd1b507 (diff)
Add logging of agent login/logoff
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2162 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_agent.c')
-rwxr-xr-xchannels/chan_agent.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index fd21df6ab..04a4e68c1 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -1117,8 +1117,10 @@ static int __login_exec(struct ast_channel *chan, void *data, int callbackmode)
struct agent_pvt *p;
struct localuser *u;
struct timeval tv;
+ time_t start;
char user[AST_MAX_AGENT];
char pass[AST_MAX_AGENT];
+ char agent[AST_MAX_AGENT] = "";
char xpass[AST_MAX_AGENT] = "";
char *errmsg;
char info[512];
@@ -1291,6 +1293,9 @@ static int __login_exec(struct ast_channel *chan, void *data, int callbackmode)
"Agent: %s\r\n"
"Channel: %s\r\n",
p->agent, chan->name);
+ time(&start);
+ snprintf(agent, sizeof(agent), "Agent/%s", p->agent);
+ ast_queue_log("NONE", chan->uniqueid, agent, "AGENTLOGIN", "%s", chan->name);
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "Agent '%s' logged in (format %s/%s)\n", p->agent,
ast_getformatname(chan->readformat), ast_getformatname(chan->writeformat));
@@ -1360,6 +1365,7 @@ static int __login_exec(struct ast_channel *chan, void *data, int callbackmode)
ast_mutex_unlock(&p->lock);
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "Agent '%s' logged out\n", p->agent);
+ ast_queue_log("NONE", chan->uniqueid, agent, "AGENTLOGOFF", "%s|%ld", chan->name, (long)(time(NULL) - start));
manager_event(EVENT_FLAG_AGENT, "Agentlogoff",
"Agent: %s\r\n",
p->agent);