diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index 434805705c..cba36648b4 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -812,6 +812,8 @@ static void process_al(al_handle_t *al, void *data, switch_size_t datalen, int r static void conference_cdr_del(conference_member_t *member) { + if (!member->cdr_node) return; + if (member->channel) { switch_channel_get_variables(member->channel, &member->cdr_node->var_event); } @@ -826,6 +828,8 @@ static void conference_cdr_add(conference_member_t *member) switch_caller_profile_t *cp; switch_channel_t *channel; + if (zstr(member->conference->log_dir) && (member->conference->cdr_event_mode == CDRE_NONE)) return; + np = switch_core_alloc(member->conference->pool, sizeof(*np)); np->next = member->conference->cdr_nodes; @@ -857,6 +861,8 @@ static void conference_cdr_rejected(conference_obj_t *conference, switch_channel conference_cdr_reject_t *rp; switch_caller_profile_t *cp; + if (zstr(conference->log_dir) && (conference->cdr_event_mode == CDRE_NONE)) return; + rp = switch_core_alloc(conference->pool, sizeof(*rp)); rp->next = conference->cdr_rejected;