Adding support for storing the queue log entries in a realtime backend.

(closes issue , reported and patched by sergee)

Thank you very much to sergee for adding this new feature!



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@94782 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.0
Mark Michelson 18 years ago
parent add967dccf
commit 00d848c94e

@ -384,6 +384,7 @@ Logger changes
command to be run after rotation. This is primarily useful with
rotatestrategry=rotate, to allow a limit on the number of logfiles kept
and to ensure that the oldest log file gets deleted.
* Added realtime support for the queue log
Miscellaneous
-------------

@ -59,4 +59,5 @@
;queues => odbc,asterisk
;queue_members => odbc,asterisk
;musiconhold => mysql,asterisk
;queue_log => mysql,aasterisk

@ -418,18 +418,34 @@ void ast_queue_log(const char *queuename, const char *callid, const char *agent,
va_list ap;
char qlog_msg[8192];
int qlog_len;
if (qlog) {
char time_str[16];
if (ast_check_realtime("queue_log")) {
va_start(ap, fmt);
qlog_len = snprintf(qlog_msg, sizeof(qlog_msg), "%ld|%s|%s|%s|%s|", (long)time(NULL), callid, queuename, agent, event);
vsnprintf(qlog_msg + qlog_len, sizeof(qlog_msg) - qlog_len, fmt, ap);
vsnprintf(qlog_msg, sizeof(qlog_msg), fmt, ap);
va_end(ap);
snprintf(time_str, sizeof(time_str), "%ld", (long)time(NULL));
ast_store_realtime("queue_log", "time", time_str,
"callid", callid,
"queuename", queuename,
"agent", agent,
"event", event,
"data", qlog_msg,
NULL);
} else {
if (qlog) {
va_start(ap, fmt);
qlog_len = snprintf(qlog_msg, sizeof(qlog_msg), "%ld|%s|%s|%s|%s|", (long)time(NULL), callid, queuename, agent, event);
vsnprintf(qlog_msg + qlog_len, sizeof(qlog_msg) - qlog_len, fmt, ap);
va_end(ap);
}
AST_RWLIST_RDLOCK(&logchannels);
if (qlog) {
fprintf(qlog, "%s\n", qlog_msg);
fflush(qlog);
}
AST_RWLIST_UNLOCK(&logchannels);
}
AST_RWLIST_RDLOCK(&logchannels);
if (qlog) {
fprintf(qlog, "%s\n", qlog_msg);
fflush(qlog);
}
AST_RWLIST_UNLOCK(&logchannels);
}
static int rotate_file(const char *filename)

Loading…
Cancel
Save