summaryrefslogtreecommitdiff
path: root/channels/chan_agent.c
diff options
context:
space:
mode:
authorKevin P. Fleming <kpfleming@digium.com>2005-10-13 21:59:25 +0000
committerKevin P. Fleming <kpfleming@digium.com>2005-10-13 21:59:25 +0000
commit7734cca1c2544cb9da3f27af08ec467c41c8e28b (patch)
treeed3fe3e199867b03011132cfff46c54315ae64ab /channels/chan_agent.c
parenta74e947c59848f1fd72cd5a629262b25a6ab2f06 (diff)
properly display connected channel name in 'agents' manager action for non-callback agents (issue #5235)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6766 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_agent.c')
-rwxr-xr-xchannels/chan_agent.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index 1f5a34cff..ea910c73e 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -1399,16 +1399,7 @@ static int action_agents(struct mansession *s, struct message *m)
/* Set a default status. It 'should' get changed. */
status = "AGENT_UNKNOWN";
- if(p->chan) {
- loginChan = p->loginchan;
- if(p->owner && p->owner->_bridge) {
- talkingtoChan = p->chan->cid.cid_num;
- status = "AGENT_ONCALL";
- } else {
- talkingtoChan = "n/a";
- status = "AGENT_IDLE";
- }
- } else if(!ast_strlen_zero(p->loginchan)) {
+ if (!ast_strlen_zero(p->loginchan)) {
loginChan = p->loginchan;
talkingtoChan = "n/a";
status = "AGENT_IDLE";
@@ -1416,6 +1407,15 @@ static int action_agents(struct mansession *s, struct message *m)
snprintf(chanbuf, sizeof(chanbuf), " %s (Confirmed)", p->loginchan);
loginChan = chanbuf;
}
+ } else if (p->chan) {
+ loginChan = ast_strdupa(p->chan->name);
+ if (p->owner && p->owner->_bridge) {
+ talkingtoChan = p->chan->cid.cid_num;
+ status = "AGENT_ONCALL";
+ } else {
+ talkingtoChan = "n/a";
+ status = "AGENT_IDLE";
+ }
} else {
loginChan = "n/a";
talkingtoChan = "n/a";
@@ -2175,10 +2175,9 @@ static int action_agent_callback_login(struct mansession *s, struct message *m)
}
ast_mutex_lock(&p->lock);
login_state = 1; /* Successful Login */
- ast_copy_string(p->loginchan, exten, sizeof(p->loginchan));
if (ast_strlen_zero(context))
- snprintf(p->loginchan, sizeof(p->loginchan), "%s", exten);
+ ast_copy_string(p->loginchan, exten, sizeof(p->loginchan));
else
snprintf(p->loginchan, sizeof(p->loginchan), "%s@%s", exten, context);