Nope, I'm an idiot. Here's the patch :P
On Thu, 22 Jan 2004, Bill Hamel waxed:
Hi Chris,
This sounds what I am looking for, many thanks !
Also, I do not see an attachment, the patch that is :)
I dont know if the list strips attachments, perhaps send it to my email address
[EMAIL PROTECTED]
Thanks again,
-bh
Quoting C. Maj [EMAIL PROTECTED]:
I attached a patch I've been using to show the # of agents
(members) and callers on a per queue basis. It adds a new
manager command, AgentQueues. It returns on the manager
interface the following for each queue:
Queue: queuename
Agents: #
Callers: #
There's another manager command, QueueStatus, that might be
what your are looking for. There's also Queues but that
is a PITA to parse. Fine if you just want to display it in
a text widget or something.
--Chris
--
Chris Maj cmaj_hat_freedomcorpse_hot_info
Pronunciation Guide: Maj == May
Fingerprint: 43D6 799C F6CF F920 6623 DC85 C8A3 CFFE F0DE C146
___
Asterisk-Users mailing list
[EMAIL PROTECTED]
http://lists.digium.com/mailman/listinfo/asterisk-users
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users
--
This message has been scanned for viruses and
dangerous content by The CCIS.net MailScanner, and is
believed to be clean.
--
This message has been scanned for viruses and
dangerous content by the Bugs.Hamel.Net MailScanner,
and appears to be clean.
--
Chris Maj cmaj_hat_freedomcorpse_hot_info
Pronunciation Guide: Maj == May
Fingerprint: 43D6 799C F6CF F920 6623 DC85 C8A3 CFFE F0DE C146
--- ../../../../asterisk/asterisk/apps/app_queue.c 2004-01-06 16:45:20.0
-0500
+++ app_queue.c 2004-01-22 11:05:49.0 -0500
@@ -1403,6 +1403,57 @@
return RESULT_SUCCESS;
}
+static int agent_queues_show(int fd, int argc, char **argv)
+{
+ struct ast_call_queue *q;
+ struct queue_ent *qe;
+ struct member *mem;
+ time_t now;
+ char max[80];
+int agents=0;
+int callers=0;
+
+ time(now);
+ if (argc != 2)
+ return RESULT_SHOWUSAGE;
+ ast_mutex_lock(qlock);
+ q = queues;
+ if (!q) {
+ ast_mutex_unlock(qlock);
+ ast_cli(fd, No queues.\n);
+ return RESULT_SUCCESS;
+ }
+ while(q) {
+ ast_mutex_lock(q-lock);
+ if (q-maxlen)
+ snprintf(max, sizeof(max), %d, q-maxlen);
+ else
+ strcpy(max, unlimited);
+ ast_cli(fd, Queue: %s\r\n, q-name);
+ if (q-members) {
+mem = q-members;
+while (mem) {
+mem = mem-next;
+agents++;
+}
+}
+ ast_cli(fd, Agents: %d\r\n, agents);
+ if (q-head) {
+qe = q-head;
+while (qe) {
+qe = q-next;
+callers++;
+}
+}
+ ast_cli(fd, Callers: %d\r\n, callers);
+ ast_mutex_unlock(q-lock);
+ q = q-next;
+ }
+ ast_mutex_unlock(qlock);
+ ast_cli(fd, \n);
+ return RESULT_SUCCESS;
+}
+
/* JDG: callback to display queues status in manager */
static int manager_queues_show( struct mansession *s, struct message *m )
{
@@ -1410,6 +1461,11 @@
return queues_show( s-fd, 2, a );
} /* /JDG */
+static int manager_agent_queues_show( struct mansession *s, struct message *m )
+{
+ char *a[] = { show, agentqueues };
+ return agent_queues_show( s-fd, 2, a );
+}
/* Dump queue status */
static int manager_queues_status( struct mansession *s, struct message *m )
@@ -1473,6 +1529,7 @@
ast_cli_unregister(cli_show_queues);
ast_manager_unregister( Queues );
ast_manager_unregister( QueueStatus );
+ ast_manager_unregister( AgentQueues );
return ast_unregister_application(app);
}
@@ -1484,6 +1541,7 @@
ast_cli_register(cli_show_queues);
ast_manager_register( Queues, 0, manager_queues_show, Queues );
ast_manager_register( QueueStatus, 0, manager_queues_status, Queue
Status );
+ ast_manager_register( AgentQueues, 0, manager_agent_queues_show,
AgentQueues );
// [PHM 06/26/03]
ast_register_application(app_aqm, aqm_exec, app_aqm_synopsis,
app_aqm_descrip) ;