]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res/res_monitor: Reset in/out sample counts on Monitor start
authorMatthew Jordan <mjordan@digium.com>
Sat, 6 Dec 2014 18:15:20 +0000 (18:15 +0000)
committerMatthew Jordan <mjordan@digium.com>
Sat, 6 Dec 2014 18:15:20 +0000 (18:15 +0000)
When repeatedly starting/stopping a Monitor on a channel, the accumulated
in/out sample counts are never reset to 0. This can cause inadvertent jumps
in the recordings, as the code in the channel core will determine incorrectly
that a jump in the recorded file position should occur. Setting the sample
counts to 0 simply reflects the initial state a Monitor should be in when it
is started, as this is the initial count that would be on the channels at that
time.

ASTERISK-24573 #close
Reported by: Nuno Borges
patches:
  24573.patch uploaded by Nuno Borges (License 6116)

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

res/res_monitor.c

index b86ea109e3414abeb36b3b1a59eae96540d0c613..76c43e1a8c177b7811868f06b920d8e8a19d091f 100644 (file)
@@ -388,6 +388,8 @@ int AST_OPTIONAL_API_NAME(ast_monitor_start)(struct ast_channel *chan, const cha
                } else
                        monitor->write_stream = NULL;
 
+               ast_channel_insmpl_set(chan, 0);
+               ast_channel_outsmpl_set(chan, 0);
                ast_channel_monitor_set(chan, monitor);
                ast_monitor_set_state(chan, AST_MONITOR_RUNNING);
                /* so we know this call has been monitored in case we need to bill for it or something */