summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/app_chanspy.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/apps/app_chanspy.c b/apps/app_chanspy.c
index 553cfb4ff..c781f37a6 100644
--- a/apps/app_chanspy.c
+++ b/apps/app_chanspy.c
@@ -435,7 +435,12 @@ static int spy_generate(struct ast_channel *chan, void *data, int len, int sampl
return -1;
}
- f = ast_audiohook_read_frame(&csth->spy_audiohook, samples, AST_AUDIOHOOK_DIRECTION_BOTH, AST_FORMAT_SLINEAR);
+ if (ast_test_flag(chan, OPTION_READONLY)) {
+ /* Option 'o' was set, so don't mix channel audio */
+ f = ast_audiohook_read_frame(&csth->spy_audiohook, samples, AST_AUDIOHOOK_DIRECTION_READ, AST_FORMAT_SLINEAR);
+ } else {
+ f = ast_audiohook_read_frame(&csth->spy_audiohook, samples, AST_AUDIOHOOK_DIRECTION_BOTH, AST_FORMAT_SLINEAR);
+ }
ast_audiohook_unlock(&csth->spy_audiohook);