summaryrefslogtreecommitdiff
path: root/res/res_monitor.c
diff options
context:
space:
mode:
Diffstat (limited to 'res/res_monitor.c')
-rw-r--r--res/res_monitor.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/res/res_monitor.c b/res/res_monitor.c
index 045fa6aa7..5482f549c 100644
--- a/res/res_monitor.c
+++ b/res/res_monitor.c
@@ -689,11 +689,13 @@ static int start_monitor_exec(struct ast_channel *chan, const char *data)
snprintf(tmp, sizeof(tmp), "%s/%s.%s", urlprefix, args.fname_base,
((strcmp(args.format, "gsm")) ? "wav" : "gsm"));
ast_channel_lock(chan);
- if (!ast_channel_cdr(chan) && !(chan_cdr = ast_cdr_alloc())) {
- ast_channel_unlock(chan);
- return -1;
+ if (!ast_channel_cdr(chan)) {
+ if (!(chan_cdr = ast_cdr_alloc())) {
+ ast_channel_unlock(chan);
+ return -1;
+ }
+ ast_channel_cdr_set(chan, chan_cdr);
}
- ast_channel_cdr_set(chan, chan_cdr);
ast_cdr_setuserfield(chan, tmp);
ast_channel_unlock(chan);
}