diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-13 21:59:25 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-13 21:59:25 +0000 |
commit | 27e10bbabdfb0d0694aa321fd0f3b4fcc78956e2 (patch) | |
tree | ed3fe3e199867b03011132cfff46c54315ae64ab /channels/chan_agent.c | |
parent | d3afe5d8d47938d746b711881fe27cdd1a138bdd (diff) |
properly display connected channel name in 'agents' manager action for non-callback agents (issue #5235)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6766 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_agent.c')
-rwxr-xr-x | channels/chan_agent.c | 23 |
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); |