diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-05-15 02:48:16 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-05-15 02:48:16 +0000 |
commit | 593a3886ae6fdb500c093d28fb4bc7c8d2e7de68 (patch) | |
tree | 45d8583272cef5fad043d26955ddff84a3625cdd /channels/chan_agent.c | |
parent | 85466027b8f6ea36220cd804a6a63a984d909ffd (diff) |
add counters to 'show agents' CLI command (bug #4232)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5660 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_agent.c')
-rwxr-xr-x | channels/chan_agent.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c index 46427e2cb..a330764a1 100755 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -1434,7 +1434,9 @@ static int agents_show(int fd, int argc, char **argv) char location[AST_MAX_BUF] = ""; char talkingto[AST_MAX_BUF] = ""; char moh[AST_MAX_BUF]; - + int count_agents = 0; /* Number of agents configured */ + int online_agents = 0; /* Number of online agents */ + int offline_agents = 0; /* Number of offline agents */ if (argc != 2) return RESULT_SHOWUSAGE; ast_mutex_lock(&agentlock); @@ -1458,24 +1460,33 @@ static int agents_show(int fd, int argc, char **argv) } else { strncpy(talkingto, " is idle", sizeof(talkingto) - 1); } + online_agents++; } else if (!ast_strlen_zero(p->loginchan)) { snprintf(location, sizeof(location) - 20, "available at '%s'", p->loginchan); talkingto[0] = '\0'; + online_agents++; if (p->acknowledged) strncat(location, " (Confirmed)", sizeof(location) - strlen(location) - 1); } else { strncpy(location, "not logged in", sizeof(location) - 1); talkingto[0] = '\0'; + offline_agents++; } if (!ast_strlen_zero(p->moh)) snprintf(moh, sizeof(moh), " (musiconhold is '%s')", p->moh); ast_cli(fd, "%-12.12s %s%s%s%s\n", p->agent, username, location, talkingto, moh); + count_agents++; } ast_mutex_unlock(&p->lock); p = p->next; } ast_mutex_unlock(&agentlock); + if ( !count_agents ) { + ast_cli(fd, "No Agents are configured in %s\n",config); + } else { + ast_cli(fd, "%d agents configured [%d online , %d offline]\n",count_agents, online_agents, offline_agents); + } return RESULT_SUCCESS; } |