diff options
author | automerge <automerge@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-02-28 19:22:31 +0000 |
---|---|---|
committer | automerge <automerge@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-02-28 19:22:31 +0000 |
commit | 6a43f8f4233644160d5d55bd50a497d975aa4a38 (patch) | |
tree | 9b9b284273e9528b4c90f258bf9bf69f583e5a87 /channels | |
parent | a523098ed5c3b8c6e21db128b4b3745c324f2f50 (diff) |
automerge commit
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2-netsec@57138 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_agent.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c index 2c84b8f10..9084cb09a 100644 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -793,6 +793,8 @@ static int agent_hangup(struct ast_channel *ast) } else if (!p->loginstart) { p->loginchan[0] = '\0'; p->logincallerid[0] = '\0'; + if (persistent_agents) + dump_agents(); } } else if (p->dead) { ast_mutex_lock(&p->chan->lock); @@ -805,9 +807,16 @@ static int agent_hangup(struct ast_channel *ast) } } ast_mutex_unlock(&p->lock); + /* Only register a device state change if the agent is still logged in */ - if (p->loginstart) + if (!p->loginstart) { + p->loginchan[0] = '\0'; + p->logincallerid[0] = '\0'; + if (persistent_agents) + dump_agents(); + } else { ast_device_state_changed("Agent/%s", p->agent); + } if (p->pending) { ast_mutex_lock(&agentlock); |