[asterisk-commits] elguero: trunk r419238 - in /trunk: CHANGES apps/app_mixmonitor.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Jul 22 15:01:50 CDT 2014


Author: elguero
Date: Tue Jul 22 15:01:42 2014
New Revision: 419238

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=419238
Log:
apps/app_mixmonitor: Add Options To Play Beep At Start Or Stop

We have a new periodic beep feature but sometimes a user needs some sort of
feedback, without the need to have a periodic beep during the recording, to let
them know that MixMonitor started recording or ended the recording.  The use
case where this patch is being used is when using Dynamic Features to start and
end MixMonitor.

This patch adds an option to play a beep when MixMonitor starts and an option to
play a beep when MixMonitor ends.

ASTERISK-24051 #close
Reported by: Michael L. Young
patches:
  mixmonitor-play-beep-start-stop.diff
                                     uploaded by Michael L. Young (license 5026)

Review: https://reviewboard.asterisk.org/r/3820/

Modified:
    trunk/CHANGES
    trunk/apps/app_mixmonitor.c

Modified: trunk/CHANGES
URL: http://svnview.digium.com/svn/asterisk/trunk/CHANGES?view=diff&rev=419238&r1=419237&r2=419238
==============================================================================
--- trunk/CHANGES (original)
+++ trunk/CHANGES Tue Jul 22 15:01:42 2014
@@ -181,6 +181,13 @@
    pg_stat_activity view and CSV log entries. This setting is configurable
    for res_config_pgsql via the dbappname configuration setting in
    res_pgsql.conf.
+
+MixMonitor
+------------------
+ * New options to play a beep when starting a recording and stopping a recording
+   have been added.  The option "p" will play a beep to the channel that starts
+   the recording.  The option "P" will play a beep to the channel that stops the
+   recording.
 
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 12.4.0 to Asterisk 12.5.0 ------------
@@ -366,7 +373,6 @@
    instances of MixMonitor on a channel.
  * A new option, B(), has been added that will turn on a periodic beep while the
    call is being recorded.
-
 
 Channel Drivers
 -------------------------

Modified: trunk/apps/app_mixmonitor.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_mixmonitor.c?view=diff&rev=419238&r1=419237&r2=419238
==============================================================================
--- trunk/apps/app_mixmonitor.c (original)
+++ trunk/apps/app_mixmonitor.c Tue Jul 22 15:01:42 2014
@@ -119,6 +119,12 @@
 					<option name="i">
 						<argument name="chanvar" required="true" />
 						<para>Stores the MixMonitor's ID on this channel variable.</para>
+					</option>
+					<option name="p">
+						<para>Play a beep on the channel that starts the recording.</para>
+					</option>
+					<option name="P">
+						<para>Play a beep on the channel that stops the recording.</para>
 					</option>
 					<option name="m">
 						<argument name="mailbox" required="true" />
@@ -326,6 +332,8 @@
 	MUXFLAG_UID = (1 << 9),
 	MUXFLAG_VMRECIPIENTS = (1 << 10),
 	MUXFLAG_BEEP = (1 << 11),
+	MUXFLAG_BEEP_START = (1 << 12),
+	MUXFLAG_BEEP_STOP = (1 << 13)
 };
 
 enum mixmonitor_args {
@@ -344,6 +352,8 @@
 	AST_APP_OPTION('a', MUXFLAG_APPEND),
 	AST_APP_OPTION('b', MUXFLAG_BRIDGED),
 	AST_APP_OPTION_ARG('B', MUXFLAG_BEEP, OPT_ARG_BEEP_INTERVAL),
+	AST_APP_OPTION('p', MUXFLAG_BEEP_START),
+	AST_APP_OPTION('P', MUXFLAG_BEEP_STOP),
 	AST_APP_OPTION_ARG('v', MUXFLAG_READVOLUME, OPT_ARG_READVOLUME),
 	AST_APP_OPTION_ARG('V', MUXFLAG_WRITEVOLUME, OPT_ARG_WRITEVOLUME),
 	AST_APP_OPTION_ARG('W', MUXFLAG_VOLUME, OPT_ARG_VOLUME),
@@ -733,6 +743,11 @@
 									"File: %s\r\n",
 									ast_channel_name(mixmonitor->autochan->chan),
 									mixmonitor->filename);
+	ast_channel_lock(mixmonitor->autochan->chan);
+	if (ast_test_flag(mixmonitor, MUXFLAG_BEEP_STOP)) {
+		ast_stream_and_wait(mixmonitor->autochan->chan, "beep", "");
+	}
+	ast_channel_unlock(mixmonitor->autochan->chan);
 
 	ast_audiohook_unlock(&mixmonitor->audiohook);
 
@@ -805,6 +820,11 @@
 		return -1;
 	}
 
+	ast_channel_lock(mixmonitor->autochan->chan);
+	if (ast_test_flag(mixmonitor, MUXFLAG_BEEP_START)) {
+		ast_stream_and_wait(mixmonitor->autochan->chan, "beep", "");
+	}
+	ast_channel_unlock(mixmonitor->autochan->chan);
 
 	mixmonitor_ds->samp_rate = 8000;
 	mixmonitor_ds->audiohook = &mixmonitor->audiohook;
@@ -1164,6 +1184,7 @@
 	if (!ast_channel_datastore_remove(chan, datastore)) {
 		ast_datastore_free(datastore);
 	}
+
 	ast_channel_unlock(chan);
 
 	if (!ast_strlen_zero(beep_id)) {




More information about the asterisk-commits mailing list