diff --git a/main/audiohook.c b/main/audiohook.c index 3e233fa2a10e118a239bbe7460b4f6a9a1ed4bc3..71b357494bf87651afaebb97d21d216340d42177 100644 --- a/main/audiohook.c +++ b/main/audiohook.c @@ -1009,13 +1009,16 @@ static struct ast_frame *audio_audiohook_write_list(struct ast_channel *chan, st audiohook_list_set_hook_rate(audiohook_list, audiohook, &internal_sample_rate); /* * Feed in frame to manipulation. - * - * XXX FAILURES ARE IGNORED XXX - * If the manipulation fails then the frame will be returned in its original state. - * Since there are potentially more manipulator callbacks in the list, no action should - * be taken here to exit early. */ - audiohook->manipulate_callback(audiohook, chan, middle_frame, direction); + if (!audiohook->manipulate_callback(audiohook, chan, middle_frame, direction)) { + /* + * XXX FAILURES ARE IGNORED XXX + * If the manipulation fails then the frame will be returned in its original state. + * Since there are potentially more manipulator callbacks in the list, no action should + * be taken here to exit early. + */ + middle_frame_manipulated = 1; + } ast_audiohook_unlock(audiohook); } AST_LIST_TRAVERSE_SAFE_END;