summaryrefslogtreecommitdiff
path: root/res/res_monitor.c
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2014-12-06 18:16:49 +0000
committerMatthew Jordan <mjordan@digium.com>2014-12-06 18:16:49 +0000
commit49aa87e17cd1959d79672807697813009cf6da75 (patch)
tree452d3fa59d03cd199ff285f803915f1157e9b67b /res/res_monitor.c
parent0cdb71aae961c8610121b135451b3a7474d7433c (diff)
res/res_monitor: Reset in/out sample counts on Monitor start
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) ........ Merged revisions 429031 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 429032 from http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged revisions 429033 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@429034 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_monitor.c')
-rw-r--r--res/res_monitor.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/res/res_monitor.c b/res/res_monitor.c
index 7f1fa4116..872f565f0 100644
--- a/res/res_monitor.c
+++ b/res/res_monitor.c
@@ -402,6 +402,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 */