diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-07-15 16:21:41 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-07-15 16:21:41 +0000 |
commit | 478b8682bf322150c5ac8f21be69f762a16bec74 (patch) | |
tree | a389782e2904ce84d454530b5ac4ad7860ba262d /channels | |
parent | 2bbd57c0d681332c9bb23f386052020b0b37ccfc (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-x | channels/chan_agent.c | 14 |
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; } |