[Asterisk-cvs] asterisk/apps app_queue.c,1.131,1.132

markster at lists.digium.com markster at lists.digium.com
Sat Apr 9 14:06:37 CDT 2005


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

Modified Files:
	app_queue.c 
Log Message:
Add member/queue filters to queuestatus manager command (bug #3995)


Index: app_queue.c
===================================================================
RCS file: /usr/cvsroot/asterisk/apps/app_queue.c,v
retrieving revision 1.131
retrieving revision 1.132
diff -u -d -r1.131 -r1.132
--- app_queue.c	9 Apr 2005 18:43:04 -0000	1.131
+++ app_queue.c	9 Apr 2005 18:58:44 -0000	1.132
@@ -2883,6 +2883,8 @@
 	time_t now;
 	int pos;
 	char *id = astman_get_header(m,"ActionID");
+	char *queuefilter = astman_get_header(m,"Queue");
+	char *memberfilter = astman_get_header(m,"Member");
 	char idText[256] = "";
 	struct ast_call_queue *q;
 	struct queue_ent *qe;
@@ -2899,57 +2901,60 @@
 		ast_mutex_lock(&q->lock);
 
 		/* List queue properties */
-		if(q->callscompleted > 0)
-			sl = 100*((float)q->callscompletedinsl/(float)q->callscompleted);
-		ast_mutex_lock(&s->lock);
-		ast_cli(s->fd, "Event: QueueParams\r\n"
+		if (ast_strlen_zero(queuefilter) || !strcmp(q->name, queuefilter)) {
+			if(q->callscompleted > 0)
+				sl = 100*((float)q->callscompletedinsl/(float)q->callscompleted);
+			ast_mutex_lock(&s->lock);
+			ast_cli(s->fd, "Event: QueueParams\r\n"
+						"Queue: %s\r\n"
+						"Max: %d\r\n"
+						"Calls: %d\r\n"
+						"Holdtime: %d\r\n"
+						"Completed: %d\r\n"
+						"Abandoned: %d\r\n"
+						"ServiceLevel: %d\r\n"
+						"ServicelevelPerf: %2.1f\r\n"
+						"Weight: %d\r\n"
+						"%s"
+						"\r\n",
+							q->name, q->maxlen, q->count, q->holdtime, q->callscompleted,
+							q->callsabandoned, q->servicelevel, sl, q->weight, idText);
+			/* List Queue Members */
+			for (mem = q->members; mem; mem = mem->next) {
+				if (ast_strlen_zero(memberfilter) || !strcmp(mem->interface, memberfilter)) {
+					ast_cli(s->fd, "Event: QueueMember\r\n"
+						"Queue: %s\r\n"
+						"Location: %s\r\n"
+						"Membership: %s\r\n"
+						"Penalty: %d\r\n"
+						"CallsTaken: %d\r\n"
+						"LastCall: %ld\r\n"
+						"Status: %d\r\n"
+						"Paused: %d\r\n"
+						"%s"
+						"\r\n",
+							q->name, mem->interface, mem->dynamic ? "dynamic" : "static",
+							mem->penalty, mem->calls, mem->lastcall, mem->status, mem->paused, idText);
+				}
+			}
+			/* List Queue Entries */
+			pos = 1;
+			for (qe = q->head; qe; qe = qe->next) {
+				ast_cli(s->fd, "Event: QueueEntry\r\n"
 					"Queue: %s\r\n"
-					"Max: %d\r\n"
-					"Calls: %d\r\n"
-					"Holdtime: %d\r\n"
-					"Completed: %d\r\n"
-					"Abandoned: %d\r\n"
-					"ServiceLevel: %d\r\n"
-					"ServicelevelPerf: %2.1f\r\n"
-					"Weight: %d\r\n"
+					"Position: %d\r\n"
+					"Channel: %s\r\n"
+					"CallerID: %s\r\n"
+					"CallerIDName: %s\r\n"
+					"Wait: %ld\r\n"
 					"%s"
-					"\r\n",
-						q->name, q->maxlen, q->count, q->holdtime, q->callscompleted,
-						q->callsabandoned, q->servicelevel, sl, q->weight, idText);
-
-		/* List Queue Members */
-		for (mem = q->members; mem; mem = mem->next) 
-			ast_cli(s->fd, "Event: QueueMember\r\n"
-				"Queue: %s\r\n"
-				"Location: %s\r\n"
-				"Membership: %s\r\n"
-				"Penalty: %d\r\n"
-				"CallsTaken: %d\r\n"
-				"LastCall: %ld\r\n"
-				"Status: %d\r\n"
-				"Paused: %d\r\n"
-				"%s"
-				"\r\n",
-					q->name, mem->interface, mem->dynamic ? "dynamic" : "static",
-					mem->penalty, mem->calls, mem->lastcall, mem->status, mem->paused, idText);
-
-		/* List Queue Entries */
-
-		pos = 1;
-		for (qe = q->head; qe; qe = qe->next) 
-			ast_cli(s->fd, "Event: QueueEntry\r\n"
-				"Queue: %s\r\n"
-				"Position: %d\r\n"
-				"Channel: %s\r\n"
-				"CallerID: %s\r\n"
-				"CallerIDName: %s\r\n"
-				"Wait: %ld\r\n"
-				"%s"
-				"\r\n", 
-					q->name, pos++, qe->chan->name, 
-					qe->chan->cid.cid_num ? qe->chan->cid.cid_num : "unknown",
-					qe->chan->cid.cid_name ? qe->chan->cid.cid_name : "unknown",
-					(long)(now - qe->start), idText);
+					"\r\n", 
+						q->name, pos++, qe->chan->name, 
+						qe->chan->cid.cid_num ? qe->chan->cid.cid_num : "unknown",
+						qe->chan->cid.cid_name ? qe->chan->cid.cid_name : "unknown",
+						(long)(now - qe->start), idText);
+			}
+		}
 		ast_mutex_unlock(&s->lock);
 		ast_mutex_unlock(&q->lock);
 	}




More information about the svn-commits mailing list