Introducing the log message unique call identifiers feature

Log messages will now display a call number that they are tied to (ordered for calls
based on when they started). This feature is made to be minimally invasive without
requiring changes to many of the existing log messages. These IDs  won't show up for
verbose messages on CLI (but they will in log files) This is currently in phase II
of production, see more about this feature on the wiki --
https://wiki.asterisk.org/wiki/display/AST/Unique+Call-ID+Logging

Review: https://reviewboard.asterisk.org/r/1823/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@360787 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jonathan Rose
2012-03-29 20:01:20 +00:00
parent d501c2ea2d
commit 655a8d4420
9 changed files with 265 additions and 14 deletions

View File

@@ -240,6 +240,7 @@ static const char * const mixmonitor_spy_type = "MixMonitor";
struct mixmonitor {
struct ast_audiohook audiohook;
struct ast_callid *callid;
char *filename;
char *filename_read;
char *filename_write;
@@ -395,6 +396,10 @@ static void mixmonitor_free(struct mixmonitor *mixmonitor)
ast_free(mixmonitor->name);
ast_free(mixmonitor->post_process);
}
if (mixmonitor->callid) {
ast_callid_unref(mixmonitor->callid);
}
ast_free(mixmonitor);
}
}
@@ -440,6 +445,11 @@ static void *mixmonitor_thread(void *obj)
int errflag = 0;
struct ast_format format_slin;
/* Keep callid association before any log messages */
if (mixmonitor->callid) {
ast_callid_threadassoc_add(mixmonitor->callid);
}
ast_verb(2, "Begin MixMonitor Recording %s\n", mixmonitor->name);
fs = &mixmonitor->mixmonitor_ds->fs;
@@ -674,6 +684,9 @@ static void launch_monitor_thread(struct ast_channel *chan, const char *filename
return;
}
/* reference be released at mixmonitor destruction */
mixmonitor->callid = ast_read_threadstorage_callid();
ast_pthread_create_detached_background(&thread, NULL, mixmonitor_thread, mixmonitor);
}