diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-02-14 04:54:39 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-02-14 04:54:39 +0000 |
commit | 9522b33e8839a4e64c8098961df656750ba92c2e (patch) | |
tree | fce221ee703a88c319b32446e1bac4c572dc403f /channels | |
parent | bea18a5764a901d12edefb551ac5e60ce775f6f2 (diff) |
Add logging of agent login/logoff
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@2162 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rwxr-xr-x | channels/chan_agent.c | 6 |
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); |