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

Modified Files:
        app_queue.c 
Log Message:
Add option to mask certain high frequency events (bug #3707)


Index: app_queue.c
===================================================================
RCS file: /usr/cvsroot/asterisk/apps/app_queue.c,v
retrieving revision 1.132
retrieving revision 1.133
diff -u -d -r1.132 -r1.133
--- app_queue.c 9 Apr 2005 18:58:44 -0000       1.132
+++ app_queue.c 11 Apr 2005 02:04:08 -0000      1.133
@@ -275,6 +275,7 @@
                unsigned int timeoutrestart:1;
                unsigned int announceholdtime:2;
                unsigned int strategy:3;
+               unsigned int maskmemberstatus:1;
        int announcefrequency;          /* How often to announce their position 
*/
        int roundingseconds;            /* How many seconds do we round to? */
        int holdtime;                   /* Current avg holdtime, based on 
recursive boxcar filter */
@@ -424,17 +425,19 @@
                        if (!strcasecmp(sc->dev, cur->interface)) {
                                if (cur->status != sc->state) {
                                        cur->status = sc->state;
-                                       manager_event(EVENT_FLAG_AGENT, 
"QueueMemberStatus",
-                                               "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",
-                                       q->name, cur->interface, cur->dynamic ? 
"dynamic" : "static",
-                                       cur->penalty, cur->calls, 
cur->lastcall, cur->status, cur->paused);
+                                       if (!q->maskmemberstatus) {
+                                               manager_event(EVENT_FLAG_AGENT, 
"QueueMemberStatus",
+                                                       "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",
+                                               q->name, cur->interface, 
cur->dynamic ? "dynamic" : "static",
+                                               cur->penalty, cur->calls, 
cur->lastcall, cur->status, cur->paused);
+                                       }
                                }
                        }
                        cur = cur->next;
@@ -765,17 +768,19 @@
        while(cur) {
                if (member == cur) {
                        cur->status = status;
-                       manager_event(EVENT_FLAG_AGENT, "QueueMemberStatus",
-                               "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",
-                                       q->name, cur->interface, cur->dynamic ? 
"dynamic" : "static",
-                                       cur->penalty, cur->calls, 
cur->lastcall, cur->status, cur->paused);
+                       if (!q->maskmemberstatus) {
+                               manager_event(EVENT_FLAG_AGENT, 
"QueueMemberStatus",
+                                       "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",
+                               q->name, cur->interface, cur->dynamic ? 
"dynamic" : "static",
+                               cur->penalty, cur->calls, cur->lastcall, 
cur->status, cur->paused);
+                       }
                        break;
                }
                cur = cur->next;
@@ -2667,6 +2672,8 @@
                                                        q->leavewhenempty = 
QUEUE_EMPTY_NORMAL;
                                                else
                                                        q->leavewhenempty = 0;
+                                       } else if (!strcasecmp(var->name, 
"eventmemberstatus")) {
+                                               q->maskmemberstatus = 
!ast_true(var->value);
                                        } else if (!strcasecmp(var->name, 
"eventwhencalled")) {
                                                q->eventwhencalled = 
ast_true(var->value);
                                        } else if (!strcasecmp(var->name, 
"reportholdtime")) {

_______________________________________________
Asterisk-Cvs mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-cvs

Reply via email to