From b42d4f8a3c0630f89dd357b97da31d16a76cbfdb Mon Sep 17 00:00:00 2001 From: Tinet-mucw Date: Fri, 30 Aug 2024 13:45:32 +0800 Subject: [PATCH] app_chanspy.c: resolving the issue with audiohook direction read ChanSpy(${channel}, qEoS): When chanspy spy the direction read, reading frame is often failed when reading direction read audiohook. because chanspy only read audiohook direction read; write_factory_ms will greater than 100ms soon, then ast_slinfactory_flush will being called, then direction read will fail. Resolves: #861 (cherry picked from commit f6467274230daf008ffa4f66517e458cf50fc155) --- apps/app_broadcast.c | 1 + apps/app_chanspy.c | 1 + 2 files changed, 2 insertions(+) diff --git a/apps/app_broadcast.c b/apps/app_broadcast.c index de4b81db31..7ab646af03 100644 --- a/apps/app_broadcast.c +++ b/apps/app_broadcast.c @@ -249,6 +249,7 @@ static int start_spying(struct ast_autochan *autochan, const char *spychan_name, ast_debug(1, "Attaching spy channel %s to %s\n", spychan_name, ast_channel_name(autochan->chan)); if (ast_test_flag(flags, OPTION_READONLY)) { + ast_audiohook_set_frame_feed_direction(audiohook, AST_AUDIOHOOK_DIRECTION_READ); ast_set_flag(audiohook, AST_AUDIOHOOK_MUTE_WRITE); } else { ast_set_flag(audiohook, AST_AUDIOHOOK_TRIGGER_SYNC); diff --git a/apps/app_chanspy.c b/apps/app_chanspy.c index bc799e64d9..f6907a5e03 100644 --- a/apps/app_chanspy.c +++ b/apps/app_chanspy.c @@ -570,6 +570,7 @@ static int start_spying(struct ast_autochan *autochan, const char *spychan_name, spychan_name, ast_channel_name(autochan->chan)); if (ast_test_flag(flags, OPTION_READONLY)) { + ast_audiohook_set_frame_feed_direction(audiohook, AST_AUDIOHOOK_DIRECTION_READ); ast_set_flag(audiohook, AST_AUDIOHOOK_MUTE_WRITE); } else { ast_set_flag(audiohook, AST_AUDIOHOOK_TRIGGER_SYNC);