Merge "app_mixmonitor: Turn on synchronization by default"

pull/18/head
Kevin Harwell 5 years ago committed by Gerrit Code Review
commit 999fdef335

@ -115,10 +115,10 @@
Like with the basic filename argument, if an absolute path isn't given, it will create
the file in the configured monitoring directory.</para>
</option>
<option name="S">
<para>When combined with the <replaceable>r</replaceable> or <replaceable>t</replaceable>
option, inserts silence when necessary to maintain synchronization between the receive
and transmit audio streams.</para>
<option name="n">
<para>When the <replaceable>r</replaceable> or <replaceable>t</replaceable> option is
used, MixMonitor will insert silence into the specified files to maintain
synchronization between them. Use this option to disable that behavior.</para>
</option>
<option name="i">
<argument name="chanvar" required="true" />
@ -358,7 +358,8 @@ enum mixmonitor_flags {
MUXFLAG_BEEP = (1 << 11),
MUXFLAG_BEEP_START = (1 << 12),
MUXFLAG_BEEP_STOP = (1 << 13),
MUXFLAG_RWSYNC = (1 << 14),
MUXFLAG_DEPRECATED_RWSYNC = (1 << 14),
MUXFLAG_NO_RWSYNC = (1 << 15),
};
enum mixmonitor_args {
@ -370,7 +371,8 @@ enum mixmonitor_args {
OPT_ARG_UID,
OPT_ARG_VMRECIPIENTS,
OPT_ARG_BEEP_INTERVAL,
OPT_ARG_RWSYNC,
OPT_ARG_DEPRECATED_RWSYNC,
OPT_ARG_NO_RWSYNC,
OPT_ARG_ARRAY_SIZE, /* Always last element of the enum */
};
@ -387,7 +389,8 @@ AST_APP_OPTIONS(mixmonitor_opts, {
AST_APP_OPTION_ARG('t', MUXFLAG_WRITE, OPT_ARG_WRITENAME),
AST_APP_OPTION_ARG('i', MUXFLAG_UID, OPT_ARG_UID),
AST_APP_OPTION_ARG('m', MUXFLAG_VMRECIPIENTS, OPT_ARG_VMRECIPIENTS),
AST_APP_OPTION_ARG('S', MUXFLAG_RWSYNC, OPT_ARG_RWSYNC),
AST_APP_OPTION_ARG('S', MUXFLAG_DEPRECATED_RWSYNC, OPT_ARG_DEPRECATED_RWSYNC),
AST_APP_OPTION_ARG('n', MUXFLAG_NO_RWSYNC, OPT_ARG_NO_RWSYNC),
});
struct mixmonitor_ds {
@ -975,7 +978,7 @@ static int launch_monitor_thread(struct ast_channel *chan, const char *filename,
}
ast_set_flag(&mixmonitor->audiohook, AST_AUDIOHOOK_TRIGGER_SYNC);
if ((ast_test_flag(mixmonitor, MUXFLAG_RWSYNC))) {
if (!ast_test_flag(mixmonitor, MUXFLAG_NO_RWSYNC)) {
ast_set_flag(&mixmonitor->audiohook, AST_AUDIOHOOK_SUBSTITUTE_SILENCE);
}
@ -1072,6 +1075,11 @@ static int mixmonitor_exec(struct ast_channel *chan, const char *data)
ast_app_parse_options(mixmonitor_opts, &flags, opts, args.options);
if (ast_test_flag(&flags, MUXFLAG_DEPRECATED_RWSYNC)) {
ast_log(LOG_NOTICE, "The synchronization behavior enabled by the 'S' option is now the default"
" and does not need to be specified.\n");
}
if (ast_test_flag(&flags, MUXFLAG_READVOLUME)) {
if (ast_strlen_zero(opts[OPT_ARG_READVOLUME])) {
ast_log(LOG_WARNING, "No volume level was provided for the heard volume ('v') option.\n");

@ -0,0 +1,10 @@
Subject: app_mixmonitor
Master-Only: true
In Asterisk 13.29, a new option flag was added to MixMonitor (the 'S'
option) that when combined with the r() or t() options would inject
silence into these files if audio was going to be written to one and
not that other. This allowed the files specified by r() and t() to
subsequently be mixed outside of Asterisk and be appropriately
synchronized. This behavior is now the default, and a new option has
been added to disable this behavior if desired (the 'n' option).
Loading…
Cancel
Save