]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Modify how Playtones() is used in Milliwatt() to resolve gain issue.
authorRussell Bryant <russell@russellbryant.com>
Sat, 1 Aug 2009 10:59:05 +0000 (10:59 +0000)
committerRussell Bryant <russell@russellbryant.com>
Sat, 1 Aug 2009 10:59:05 +0000 (10:59 +0000)
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/branches/1.4@209838 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_milliwatt.c

index b63771c380e02fbb214c4d2be905196eff8fbb50..e9266a6835de83c48dca40c4f7a087ffd6b598ee 100644 (file)
@@ -38,6 +38,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include <string.h>
 #include <unistd.h>
 #include <errno.h>
+#include <limits.h>
 
 #include "asterisk/lock.h"
 #include "asterisk/file.h"
@@ -46,6 +47,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/pbx.h"
 #include "asterisk/module.h"
 #include "asterisk/utils.h"
+#include "asterisk/indications.h"
 
 static char *app = "Milliwatt";
 
@@ -145,7 +147,6 @@ static int old_milliwatt_exec(struct ast_channel *chan)
 static int milliwatt_exec(struct ast_channel *chan, void *data)
 {
        const char *options = data;
-       struct ast_app *playtones_app;
        struct ast_module_user *u;
        int res = -1;
 
@@ -156,12 +157,7 @@ static int milliwatt_exec(struct ast_channel *chan, void *data)
                goto exit_app;
        }
 
-       if (!(playtones_app = pbx_findapp("Playtones"))) {
-               ast_log(LOG_ERROR, "The Playtones application is required to run Milliwatt()\n");
-               goto exit_app;
-       }
-
-       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);