Skip to content
Snippets Groups Projects
Commit b5438876 authored by Sean Bright's avatar Sean Bright
Browse files

Use a properly allocated channel for substitution in cdr_manager.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196622 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 5518c1b1
No related branches found
No related tags found
No related merge requests found
......@@ -127,7 +127,6 @@ static int manager_log(struct ast_cdr *cdr)
char strAnswerTime[80] = "";
char strEndTime[80] = "";
char buf[CUSTOM_FIELDS_BUF_SIZE];
struct ast_channel dummy;
if (!enablecdr)
return 0;
......@@ -146,9 +145,14 @@ static int manager_log(struct ast_cdr *cdr)
buf[0] = 0;
/* Custom fields handling */
if (customfields != NULL && ast_str_strlen(customfields)) {
memset(&dummy, 0, sizeof(dummy));
dummy.cdr = cdr;
pbx_substitute_variables_helper(&dummy, ast_str_buffer(customfields), buf, sizeof(buf) - 1);
struct ast_channel *dummy = ast_channel_alloc(0, 0, "", "", "", "", "", 0, "Substitution/%p", cdr);
if (!dummy) {
ast_log(LOG_ERROR, "Unable to allocate channel for variable substitution.\n");
return 0;
}
dummy->cdr = ast_cdr_dup(cdr);
pbx_substitute_variables_helper(dummy, ast_str_buffer(customfields), buf, sizeof(buf) - 1);
ast_channel_release(dummy);
}
manager_event(EVENT_FLAG_CDR, "Cdr",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment