mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	file.c: missing "custom" sound files should not generate warning logs
With `sounds_search_custom_dir = yes` we first look to see if a sound file is present in the "custom" sound directory before looking in the standard sound directories. We should not be issuing a WARNING log message if a sound cannot be found in the "custom" directory. Resolves: https://github.com/asterisk/asterisk/issues/1170
This commit is contained in:
		
							
								
								
									
										26
									
								
								main/file.c
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								main/file.c
									
									
									
									
									
								
							| @@ -787,13 +787,8 @@ static int fileexists_core(const char *filename, const char *fmt, const char *pr | |||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
| struct ast_filestream *ast_openstream(struct ast_channel *chan, const char *filename, const char *preflang) | static struct ast_filestream *openstream_internal(struct ast_channel *chan, | ||||||
| { | 	const char *filename, const char *preflang, int asis, int quiet) | ||||||
| 	return ast_openstream_full(chan, filename, preflang, 0); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| struct ast_filestream *ast_openstream_full(struct ast_channel *chan, |  | ||||||
| 	const char *filename, const char *preflang, int asis) |  | ||||||
| { | { | ||||||
| 	/* | 	/* | ||||||
| 	 * Use fileexists_core() to find a file in a compatible | 	 * Use fileexists_core() to find a file in a compatible | ||||||
| @@ -822,7 +817,9 @@ struct ast_filestream *ast_openstream_full(struct ast_channel *chan, | |||||||
| 	if (!fileexists_core(filename, NULL, preflang, buf, buflen, file_fmt_cap) || | 	if (!fileexists_core(filename, NULL, preflang, buf, buflen, file_fmt_cap) || | ||||||
| 		!ast_format_cap_has_type(file_fmt_cap, AST_MEDIA_TYPE_AUDIO)) { | 		!ast_format_cap_has_type(file_fmt_cap, AST_MEDIA_TYPE_AUDIO)) { | ||||||
|  |  | ||||||
| 		ast_log(LOG_WARNING, "File %s does not exist in any format\n", filename); | 		if (!quiet) { | ||||||
|  | 			ast_log(LOG_WARNING, "File %s does not exist in any format\n", filename); | ||||||
|  | 		} | ||||||
| 		ao2_ref(file_fmt_cap, -1); | 		ao2_ref(file_fmt_cap, -1); | ||||||
| 		return NULL; | 		return NULL; | ||||||
| 	} | 	} | ||||||
| @@ -845,6 +842,17 @@ struct ast_filestream *ast_openstream_full(struct ast_channel *chan, | |||||||
| 	return NULL; | 	return NULL; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | struct ast_filestream *ast_openstream(struct ast_channel *chan, const char *filename, const char *preflang) | ||||||
|  | { | ||||||
|  | 	return openstream_internal(chan, filename, preflang, 0, 0); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | struct ast_filestream *ast_openstream_full(struct ast_channel *chan, | ||||||
|  | 	const char *filename, const char *preflang, int asis) | ||||||
|  | { | ||||||
|  | 	return openstream_internal(chan, filename, preflang, asis, 0); | ||||||
|  | } | ||||||
|  |  | ||||||
| struct ast_filestream *ast_openvstream(struct ast_channel *chan, | struct ast_filestream *ast_openvstream(struct ast_channel *chan, | ||||||
| 	const char *filename, const char *preflang) | 	const char *filename, const char *preflang) | ||||||
| { | { | ||||||
| @@ -1307,7 +1315,7 @@ int ast_streamfile(struct ast_channel *chan, const char *filename, | |||||||
| 	if (ast_opt_sounds_search_custom && !is_absolute_path(filename)) { | 	if (ast_opt_sounds_search_custom && !is_absolute_path(filename)) { | ||||||
| 		memset(custom_filename, 0, sizeof(custom_filename)); | 		memset(custom_filename, 0, sizeof(custom_filename)); | ||||||
| 		snprintf(custom_filename, sizeof(custom_filename), "custom/%s", filename); | 		snprintf(custom_filename, sizeof(custom_filename), "custom/%s", filename); | ||||||
| 		fs = ast_openstream(chan, custom_filename, preflang); | 		fs = openstream_internal(chan, filename, preflang, 0, 1); /* open stream, do not warn for missing files */ | ||||||
| 		if (fs) { | 		if (fs) { | ||||||
| 			tmp_filename = custom_filename; | 			tmp_filename = custom_filename; | ||||||
| 			ast_debug(3, "Found file %s in custom directory\n", filename); | 			ast_debug(3, "Found file %s in custom directory\n", filename); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user