]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
app_milliwatt: Timing fix
authorNaveen Albert <asterisk@phreaknet.org>
Thu, 12 Aug 2021 21:02:27 +0000 (21:02 +0000)
committerKevin Harwell <kharwell@digium.com>
Thu, 19 Aug 2021 16:18:00 +0000 (11:18 -0500)
The Milliwatt application uses incorrect tone timings
that cause it to play the 1004 Hz tone constantly.

This adds an option to enable the correct timing
behavior, so that the Milliwatt application can
be used for milliwatt test lines. The default behavior
remains unchanged for compatability reasons, even
though it is incorrect.

ASTERISK-29575 #close

Change-Id: I73ccc6c6fcaa31931c6fff3b85ad1805b2ce9d8c

apps/app_milliwatt.c
doc/CHANGES-staging/app_milliwatt.txt [new file with mode: 0644]

index 64513fe899b44f51ee39f824005b56c172429270..1ca66217abd4319308d8d2cfd129f45d0f88c4a8 100644 (file)
 /*** DOCUMENTATION
        <application name="Milliwatt" language="en_US">
                <synopsis>
-                       Generate a Constant 1004Hz tone at 0dbm (mu-law).
+                       Generates a 1004 Hz test tone at 0dbm (mu-law).
                </synopsis>
                <syntax>
                        <parameter name="options">
                                <optionlist>
+                                       <option name="m">
+                                               <para>Generate a 1004 Hz Milliwatt test tone at 0dbm, with a
+                                               1 second silent interval. This option must be specified
+                                               if you are using this for a milliwatt test line.</para>
+                                       </option>
                                        <option name="o">
-                                               <para>Generate the tone at 1000Hz like previous version.</para>
+                                               <para>Generate a constant tone at 1000 Hz like previous version.</para>
                                        </option>
                                </optionlist>
                        </parameter>
                </syntax>
                <description>
-                       <para>Previous versions of this application generated the tone at 1000Hz.  If for
+                       <para>Generates a 1004 Hz test tone.</para>
+                       <para>By default, this application does not provide a Milliwatt test tone. It simply
+                       plays a 1004 Hz tone, which is not suitable for performing a milliwatt test.
+                       The <literal>m</literal> option should be used so that a real Milliwatt test tone
+                       is provided. This will include a 1 second silent interval every 10 seconds.</para>
+                       <para>Previous versions of this application generated a constant tone at 1000 Hz. If for
                        some reason you would prefer that behavior, supply the <literal>o</literal> option to get the
                        old behavior.</para>
                </description>
@@ -155,8 +165,11 @@ static int milliwatt_exec(struct ast_channel *chan, const char *data)
        if (!ast_strlen_zero(options) && strchr(options, 'o')) {
                return old_milliwatt_exec(chan);
        }
-
-       res = ast_playtones_start(chan, 23255, "1004/1000", 0);
+       if (!ast_strlen_zero(options) && strchr(options, 'm')) {
+               res = ast_playtones_start(chan, 23255, "1004/9000,0/1000", 0);
+       } else {
+               res = ast_playtones_start(chan, 23255, "1004/1000", 0);
+       }
 
        while (!res) {
                res = ast_safe_sleep(chan, 10000);
diff --git a/doc/CHANGES-staging/app_milliwatt.txt b/doc/CHANGES-staging/app_milliwatt.txt
new file mode 100644 (file)
index 0000000..434ace2
--- /dev/null
@@ -0,0 +1,11 @@
+Subject: app_milliwatt
+
+The Milliwatt application's existing behavior is
+incorrect in that it plays a constant tone, which
+is not how digital milliwatt test lines actually
+work.
+
+An option is added so that a proper milliwatt test
+tone can be provided, including a 1 second silent
+interval every 10 seconds. However, for compatability
+reasons, the default behavior remains unchanged.