[asterisk-commits] tilghman: trunk r88183 - /trunk/main/pbx.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Nov 1 18:26:36 CDT 2007


Author: tilghman
Date: Thu Nov  1 18:26:35 2007
New Revision: 88183

URL: http://svn.digium.com/view/asterisk?view=rev&rev=88183
Log:
Modify WaitExten to include an optional dialtone
Closes issue #10783

Modified:
    trunk/main/pbx.c

Modified: trunk/main/pbx.c
URL: http://svn.digium.com/view/asterisk/trunk/main/pbx.c?view=diff&rev=88183&r1=88182&r2=88183
==============================================================================
--- trunk/main/pbx.c (original)
+++ trunk/main/pbx.c Thu Nov  1 18:26:35 2007
@@ -68,6 +68,7 @@
 #include "asterisk/stringfields.h"
 #include "asterisk/event.h"
 #include "asterisk/module.h"
+#include "asterisk/indications.h"
 
 /*!
  * \note I M P O R T A N T :
@@ -106,9 +107,11 @@
 });
 
 #define WAITEXTEN_MOH		(1 << 0)
+#define WAITEXTEN_DIALTONE	(1 << 1)
 
 AST_APP_OPTIONS(waitexten_opts, {
 	AST_APP_OPTION_ARG('m', WAITEXTEN_MOH, 0),
+	AST_APP_OPTION_ARG('d', WAITEXTEN_DIALTONE, 0),
 });
 
 struct ast_context;
@@ -5760,9 +5763,15 @@
 	
 	if (ast_test_flag(&flags, WAITEXTEN_MOH) && !opts[0] ) {
 		ast_log(LOG_WARNING, "The 'm' option has been specified for WaitExten without a class.\n"); 
-	} else if (ast_test_flag(&flags, WAITEXTEN_MOH))
+	} else if (ast_test_flag(&flags, WAITEXTEN_MOH)) {
 		ast_indicate_data(chan, AST_CONTROL_HOLD, opts[0], strlen(opts[0]));
-
+	} else if (ast_test_flag(&flags, WAITEXTEN_DIALTONE)) {
+		const struct ind_tone_zone_sound *ts = ast_get_indication_tone(chan->zone, "dial");
+		if (ts)
+			ast_playtones_start(chan, 0, ts->data, 0);
+		else
+			ast_tonepair_start(chan, 350, 440, 0, 0);
+	}
 	/* Wait for "n" seconds */
 	if (args.timeout && (s = atof(args.timeout)) > 0)
 		 ms = s * 1000.0;
@@ -5786,6 +5795,8 @@
 
 	if (ast_test_flag(&flags, WAITEXTEN_MOH))
 		ast_indicate(chan, AST_CONTROL_UNHOLD);
+	else if (ast_test_flag(&flags, WAITEXTEN_DIALTONE))
+		ast_playtones_stop(chan);
 
 	return res;
 }




More information about the asterisk-commits mailing list