aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-07-15 16:21:41 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-07-15 16:21:41 +0000
commit478b8682bf322150c5ac8f21be69f762a16bec74 (patch)
treea389782e2904ce84d454530b5ac4ad7860ba262d /channels
parent2bbd57c0d681332c9bb23f386052020b0b37ccfc (diff)
make 'Agents' manager action conform to protocol (bug #4723)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6141 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_agent.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index cdc98a321..972003ba7 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -1326,14 +1326,20 @@ static int powerof(unsigned int v)
/*--- action_agents: Manager routine for listing channels */
static int action_agents(struct mansession *s, struct message *m)
{
+ char *id = astman_get_header(m,"ActionID");
+ char idText[256] = "";
struct agent_pvt *p;
char *username = NULL;
char *loginChan = NULL;
char *talkingtoChan = NULL;
char *status = NULL;
+ if (id && !ast_strlen_zero(id))
+ snprintf(idText, sizeof(idText) ,"ActionID: %s\r\n", id);
+ astman_send_ack(s, m, "Agents will follow");
ast_mutex_lock(&agentlock);
p = agents;
+ ast_mutex_lock(&s->lock);
while(p) {
ast_mutex_lock(&p->lock);
@@ -1381,12 +1387,18 @@ static int action_agents(struct mansession *s, struct message *m)
"LoggedInChan: %s\r\n"
"LoggedInTime: %ld\r\n"
"TalkingTo: %s\r\n"
+ "%s"
"\r\n",
- p->agent,p->name,status,loginChan,p->loginstart,talkingtoChan);
+ p->agent,p->name,status,loginChan,p->loginstart,talkingtoChan,idText);
ast_mutex_unlock(&p->lock);
p = p->next;
}
ast_mutex_unlock(&agentlock);
+ ast_cli(s->fd, "Event: AgentsComplete\r\n"
+ "%s"
+ "\r\n",idText);
+ ast_mutex_unlock(&s->lock);
+
return 0;
}