From 5dd3ceaef5f1f9e96df39d09ea7907acae8c7c6b Mon Sep 17 00:00:00 2001 From: Naveen Albert Date: Wed, 13 Aug 2025 09:01:03 -0400 Subject: [PATCH] app_chanspy: Add option to not automatically answer channel. Add an option for ChanSpy and ExtenSpy to not answer the channel automatically. Most applications that auto-answer by default already have an option to disable this behavior if unwanted. Resolves: #1358 UserNote: ChanSpy and ExtenSpy can now be configured to not automatically answer the channel by using the 'N' option. --- apps/app_chanspy.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/app_chanspy.c b/apps/app_chanspy.c index 5e7c273835..adcd72df20 100644 --- a/apps/app_chanspy.c +++ b/apps/app_chanspy.c @@ -132,6 +132,9 @@ + @@ -289,6 +292,9 @@ + @@ -408,6 +414,7 @@ enum { OPTION_UNIQUEID = (1 << 19), /* The chanprefix is a channel uniqueid or fully specified channel name. */ OPTION_LONG_QUEUE = (1 << 20), /* Allow usage of a long queue to store audio frames. */ OPTION_INTERLEAVED = (1 << 21), /* Interleave the Read and Write frames in the output frame. */ + OPTION_NOANSWER = (1 << 22), /* Do not automatically answer the channel */ }; enum { @@ -432,6 +439,7 @@ AST_APP_OPTIONS(spy_opts, { AST_APP_OPTION_ARG('g', OPTION_GROUP, OPT_ARG_GROUP), AST_APP_OPTION('l', OPTION_LONG_QUEUE), AST_APP_OPTION_ARG('n', OPTION_NAME, OPT_ARG_NAME), + AST_APP_OPTION('N', OPTION_NOANSWER), AST_APP_OPTION('o', OPTION_READONLY), AST_APP_OPTION('q', OPTION_QUIET), AST_APP_OPTION_ARG('r', OPTION_RECORD, OPT_ARG_RECORD), @@ -999,8 +1007,9 @@ static int common_exec(struct ast_channel *chan, struct ast_flags *flags, ast_channel_unlock(chan); } - if (ast_channel_state(chan) != AST_STATE_UP) + if (!ast_test_flag(flags, OPTION_NOANSWER) && ast_channel_state(chan) != AST_STATE_UP) { ast_answer(chan); + } ast_channel_set_flag(chan, AST_FLAG_SPYING);