Readd removed ability to allow listening to one side of the call in app_chanspy
authorJeff Peeler <jpeeler@digium.com>
Thu, 15 Oct 2009 15:57:14 +0000 (15:57 +0000)
committerJeff Peeler <jpeeler@digium.com>
Thu, 15 Oct 2009 15:57:14 +0000 (15:57 +0000)
(Option o)

(closes issue #15675)
Reported by: john8675309
Patches:
      issue15675patchtrunk.txt uploaded by dbrooks (license 790)
Tested by: jgutierrez on users list:
 http://lists.digium.com/pipermail/asterisk-users/2009-October/239155.html

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@224178 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_chanspy.c

index 553cfb4..c781f37 100644 (file)
@@ -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);