From 314d8776dc0adfbc5997f1d42aa735d485ff7d3e Mon Sep 17 00:00:00 2001 From: Naveen Albert <asterisk@phreaknet.org> Date: Thu, 12 Aug 2021 21:02:27 +0000 Subject: [PATCH] app_milliwatt: Timing fix 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 | 23 ++++++++++++++++++----- doc/CHANGES-staging/app_milliwatt.txt | 11 +++++++++++ 2 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 doc/CHANGES-staging/app_milliwatt.txt diff --git a/apps/app_milliwatt.c b/apps/app_milliwatt.c index 64513fe899..1ca66217ab 100644 --- a/apps/app_milliwatt.c +++ b/apps/app_milliwatt.c @@ -40,19 +40,29 @@ /*** 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 index 0000000000..434ace22bb --- /dev/null +++ b/doc/CHANGES-staging/app_milliwatt.txt @@ -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. -- GitLab