diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index dd3d6bb4bb..03fd1cdfc1 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -210,7 +210,8 @@ typedef enum { CFLAG_FLOOR_CHANGE = (1 << 18), CFLAG_VID_FLOOR_LOCK = (1 << 19), CFLAG_JSON_EVENTS = (1 << 20), - CFLAG_LIVEARRAY_SYNC = (1 << 21) + CFLAG_LIVEARRAY_SYNC = (1 << 21), + CFLAG_CONF_RESTART_AUTO_RECORD = (1 << 22) } conf_flag_t; typedef enum { @@ -1457,7 +1458,7 @@ static switch_status_t conference_record_stop(conference_obj_t *conference, swit switch_mutex_lock(conference->member_mutex); for (member = conference->members; member; member = member->next) { if (switch_test_flag(member, MFLAG_NOCHANNEL) && (!path || !strcmp(path, member->rec_path))) { - if (member->rec && member->rec->autorec) { + if (!switch_test_flag(conference, CFLAG_CONF_RESTART_AUTO_RECORD) && member->rec && member->rec->autorec) { stream->write_function(stream, "Stopped AUTO recording file %s (Auto Recording Now Disabled)\n", member->rec_path); conference->auto_record = 0; } else { @@ -7695,6 +7696,8 @@ static void set_cflags(const char *flags, uint32_t *f) *f |= CFLAG_VIDEO_BRIDGE; } else if (!strcasecmp(argv[i], "audio-always")) { *f |= CFLAG_AUDIO_ALWAYS; + } else if (!strcasecmp(argv[i], "restart-auto-record")) { + *f |= CFLAG_CONF_RESTART_AUTO_RECORD; } else if (!strcasecmp(argv[i], "json-events")) { *f |= CFLAG_JSON_EVENTS; } else if (!strcasecmp(argv[i], "livearray-sync")) {