[Asterisk-cvs] asterisk/channels chan_agent.c,1.133,1.134

kpfleming at lists.digium.com kpfleming at lists.digium.com
Sat May 14 22:42:47 CDT 2005


Update of /usr/cvsroot/asterisk/channels
In directory mongoose.digium.com:/tmp/cvs-serv736/channels

Modified Files:
	chan_agent.c 
Log Message:
add counters to 'show agents' CLI command (bug #4232)


Index: chan_agent.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_agent.c,v
retrieving revision 1.133
retrieving revision 1.134
diff -u -d -r1.133 -r1.134
--- chan_agent.c	21 Apr 2005 06:02:43 -0000	1.133
+++ chan_agent.c	15 May 2005 02:48:16 -0000	1.134
@@ -1434,7 +1434,9 @@
 	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 @@
 				} 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;
 }
 




More information about the svn-commits mailing list