[asterisk-bugs] [JIRA] (ASTERISK-26875) app_mixmonitor: Recording out of sync when 183 but no RTP
Kevin Harwell (JIRA)
noreply at issues.asterisk.org
Mon May 22 15:37:45 CDT 2017
[ https://issues.asterisk.org/jira/browse/ASTERISK-26875?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kevin Harwell updated ASTERISK-26875:
-------------------------------------
Target Release Version/s: 13.16.0
> app_mixmonitor: Recording out of sync when 183 but no RTP
> ---------------------------------------------------------
>
> Key: ASTERISK-26875
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-26875
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Applications/app_mixmonitor
> Affects Versions: 13.8.0
> Environment: CentOS6.5X64
> Reporter: Aaron An
> Assignee: Aaron An
> Target Release: 13.16.0
>
>
> My asterisk use MixMonitor to record, and it is randomly out of sync,I try to look for the root cause and find the solution.
> Both side are PJSIP channel.
> The scenario is very simple:
> Asterisk call Alias,Alias answer and then go to the DIALPLAN to start MixMonitor and Dial Bob,Bob response 183 with SDP but no RTP stream feed in time. the record is out of sync.
> just look at the audiohook.c line 180. if other_factory_samples is 0 we never flush the factory although "our_factory_ms - other_factory_ms" may very large.
> ====================audiohook.c=============================
> {noformat}
> our_factory_samples = ast_slinfactory_available(factory);
> our_factory_ms = ast_tvdiff_ms(*rwtime, previous_time) + (our_factory_samples / (audiohook->hook_internal_samp_rate / 1000));
> other_factory_samples = ast_slinfactory_available(other_factory);
> other_factory_ms = other_factory_samples / (audiohook->hook_internal_samp_rate / 1000);
>
> if (ast_test_flag(audiohook, AST_AUDIOHOOK_TRIGGER_SYNC) && other_factory_samples && (our_factory_ms - other_factory_ms > AST_AUDIOHOOK_SYNC_TOLERANCE)) {
> ast_debug(1, "Flushing audiohook %p so it remains in sync\n", audiohook);
> ast_slinfactory_flush(factory);
> ast_slinfactory_flush(other_factory);
> }
> {noformat}
> ====================audiohook.c=============================
> I think it should remove the condition "&& other_factory_samples". I have tested the scenario that out of sync recording, this fix it.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list