diff --git a/apps/app_mixmonitor.c b/apps/app_mixmonitor.c index 7176de91a0..dbefb300ba 100644 --- a/apps/app_mixmonitor.c +++ b/apps/app_mixmonitor.c @@ -97,8 +97,9 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") @@ -390,6 +391,8 @@ static void copy_to_voicemail(struct mixmonitor *mixmonitor, char *ext) { struct vm_recipient *recipient = NULL; struct ast_vm_recording_data recording_data; + char filename[PATH_MAX]; + if (ast_string_field_init(&recording_data, 512)) { ast_log(LOG_ERROR, "Failed to string_field_init, skipping copy_to_voicemail\n"); return; @@ -415,6 +418,12 @@ static void copy_to_voicemail(struct mixmonitor *mixmonitor, char *ext) ast_app_copy_recording_to_vm(&recording_data); } + /* Delete the source file */ + snprintf(filename, sizeof(filename), "%s.%s", mixmonitor->filename, ext); + if (remove(filename)) { + ast_log(LOG_ERROR, "Failed to delete recording source file %s\n", filename); + } + /* Free the string fields for recording_data before exiting the function. */ ast_string_field_free_memory(&recording_data); }