Merged revisions 209838 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Sat, 1 Aug 2009 11:02:07 +0000 (11:02 +0000)
committerRussell Bryant <russell@russellbryant.com>
Sat, 1 Aug 2009 11:02:07 +0000 (11:02 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r209838 | russell | 2009-08-01 05:59:05 -0500 (Sat, 01 Aug 2009) | 13 lines

  Modify how Playtones() is used in Milliwatt() to resolve gain issue.

  When Milliwatt() was changed internally to use Playtones() so that the proper
  tone was used, it introduced a drop in gain in the output signal.  So, use
  the playtones API directly and specify a volume argument such that the output
  matches the gain of the original Milliwatt() code.

  (closes issue #15386)
  Reported by: rue_mohr
  Patches:
        issue_15386.rev2.diff uploaded by russell (license 2)
  Tested by: rue_mohr
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@209839 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_milliwatt.c

index aa7a118..b6d9403 100644 (file)
@@ -32,6 +32,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/module.h"
 #include "asterisk/channel.h"
 #include "asterisk/pbx.h"
+#include "asterisk/indications.h"
 
 /*** DOCUMENTATION
        <application name="Milliwatt" language="en_US">
@@ -142,19 +143,13 @@ static int old_milliwatt_exec(struct ast_channel *chan)
 static int milliwatt_exec(struct ast_channel *chan, const char *data)
 {
        const char *options = data;
-       struct ast_app *playtones_app;
        int res = -1;
 
        if (!ast_strlen_zero(options) && strchr(options, 'o')) {
                return old_milliwatt_exec(chan);
        }
 
-       if (!(playtones_app = pbx_findapp("Playtones"))) {
-               ast_log(LOG_ERROR, "The Playtones application is required to run Milliwatt()\n");
-               return -1;
-       }
-
-       res = pbx_exec(chan, playtones_app, "1004/1000");
+       res = ast_playtones_start(chan, 23255, "1004/1000", 0);
 
        while (!res) {
                res = ast_safe_sleep(chan, 10000);