mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-06 04:30:28 +00:00
Add option to mask certain high frequency events (bug #3707)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5444 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -275,6 +275,7 @@ struct ast_call_queue {
|
||||
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,6 +425,7 @@ static void *changethread(void *data)
|
||||
if (!strcasecmp(sc->dev, cur->interface)) {
|
||||
if (cur->status != sc->state) {
|
||||
cur->status = sc->state;
|
||||
if (!q->maskmemberstatus) {
|
||||
manager_event(EVENT_FLAG_AGENT, "QueueMemberStatus",
|
||||
"Queue: %s\r\n"
|
||||
"Location: %s\r\n"
|
||||
@@ -437,6 +439,7 @@ static void *changethread(void *data)
|
||||
cur->penalty, cur->calls, cur->lastcall, cur->status, cur->paused);
|
||||
}
|
||||
}
|
||||
}
|
||||
cur = cur->next;
|
||||
}
|
||||
ast_mutex_unlock(&q->lock);
|
||||
@@ -765,6 +768,7 @@ static int update_status(struct ast_call_queue *q, struct member *member, int st
|
||||
while(cur) {
|
||||
if (member == cur) {
|
||||
cur->status = status;
|
||||
if (!q->maskmemberstatus) {
|
||||
manager_event(EVENT_FLAG_AGENT, "QueueMemberStatus",
|
||||
"Queue: %s\r\n"
|
||||
"Location: %s\r\n"
|
||||
@@ -776,6 +780,7 @@ static int update_status(struct ast_call_queue *q, struct member *member, int st
|
||||
"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 @@ static void reload_queues(void)
|
||||
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")) {
|
||||
|
@@ -137,11 +137,18 @@ persistentmembers = yes
|
||||
; leavewhenempty = yes
|
||||
;
|
||||
;
|
||||
; Asterisk can generate AgentCalled events when an agent is rung, if this is turned on
|
||||
; (may generate a LOT of extra manager events)
|
||||
; If this is set to yes, the following manager events will be generated:
|
||||
; AgentCalled, AgentDump, AgentConnect, AgentComplete
|
||||
; (may generate some extra manager events, but probably ones you want)
|
||||
;
|
||||
; eventwhencalled = yes
|
||||
;
|
||||
; If this is set to no, the following manager events will be generated:
|
||||
; QueueMemberStatus
|
||||
; (may generate a WHOLE LOT of extra manager events)
|
||||
;
|
||||
; eventmemberstatusoff = no
|
||||
;
|
||||
; If you wish to report the caller's hold time to the member before they are connected
|
||||
; to the caller, set this to yes.
|
||||
;
|
||||
|
Reference in New Issue
Block a user