summaryrefslogtreecommitdiff
path: root/channels/chan_agent.c
diff options
context:
space:
mode:
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);