From 71ca1b54cb094026f8b8d65a3ea0b3caf1e6ead4 Mon Sep 17 00:00:00 2001
From: Matthias Nick <mnick@digium.com>
Date: Fri, 4 Dec 2009 15:38:33 +0000
Subject: [PATCH] Merged revisions 233014 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r233014 | mnick | 2009-12-04 09:17:03 -0600 (Fri, 04 Dec 2009) | 11 lines

  Warning message gets displayed only once

  Added additional field 'int display_inband_dtmf_warning', which when set to '1' displays the warning ('Inband DTMF is not supported on codec %s. Use RFC2833'), and when set to '0' doesn't display the warning. Otherwise you would get hundreds of warnings every second.

  (closes issue #15769)
  Reported by: falves11
  Patches:
  	patch_15769_14.txt uploaded by mnick (license 874)
  Tested by: mnick, falves11
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@233046 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 main/dsp.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/main/dsp.c b/main/dsp.c
index b3c87ddec5..ca30dad14b 100644
--- a/main/dsp.c
+++ b/main/dsp.c
@@ -385,6 +385,7 @@ struct ast_dsp {
 	int digitmode;
 	int faxmode;
 	int dtmf_began;
+	int display_inband_dtmf_warning;
 	float genergy;
 	int mute_fragments;
 	fragment_t mute_data[5];
@@ -1334,7 +1335,10 @@ struct ast_frame *ast_dsp_process(struct ast_channel *chan, struct ast_dsp *dsp,
 		}
 		break;
 	default:
-		ast_log(LOG_WARNING, "Inband DTMF is not supported on codec %s. Use RFC2833\n", ast_getformatname(af->subclass.codec));
+		/*Display warning only once. Otherwise you would get hundreds of warnings every second */
+		if (dsp->display_inband_dtmf_warning)
+			ast_log(LOG_WARNING, "Inband DTMF is not supported on codec %s. Use RFC2833\n", ast_getformatname(af->subclass.codec));
+		dsp->display_inband_dtmf_warning = 0;
 		return af;
 	}
 
@@ -1504,6 +1508,7 @@ struct ast_dsp *ast_dsp_new(void)
 		dsp->faxmode = DSP_FAXMODE_DETECT_CNG;
 		/* Initialize digit detector */
 		ast_digit_detect_init(&dsp->digit_state, dsp->digitmode & DSP_DIGITMODE_MF);
+		dsp->display_inband_dtmf_warning = 1;
 		/* Initialize initial DSP progress detect parameters */
 		ast_dsp_prog_reset(dsp);
 		/* Initialize fax detector */
-- 
GitLab