All pastes #753877 Raw Edit

Miscellany

public text v1 · immutable
#753877 ·published 2007-10-29 16:58 UTC
rendered paste body
Index: build_tools/cflags.xml
===================================================================
--- build_tools/cflags.xml	(revision 87121)
+++ build_tools/cflags.xml	(working copy)
@@ -32,3 +32,24 @@
 			<defaultenabled>yes</defaultenabled>
 		</member>
 	</category>
+	<category name="MENUSELECT_BUSYDETECT_CFLAGS" displayname="Busy Detector Flags" positive_output="yes" remove_on_change="main/dsp.o main/asterisk">
+		<member name="BUSYDETECT_MARTIN" displayname="Default new busy detection routine">
+			<defaultenabled>yes</defaultenabled>
+			<conflict>BUSYDETECT</conflict>
+		</member>
+		<member name="BUSYDETECT" displayname="Old busy detection routine">
+			<conflict>BUSYDETECT_MARTIN</conflict>
+			<defaultenabled>no</defaultenabled>
+		</member>
+		<member name="BUSYDETECT_TONEONLY" displayname="Enable additional comparision of only the tone duration not the silence part">
+			<conflict>BUSYDETECT_COMPARE_TONE_AND_SILENCE</conflict>
+			<defaultenabled>no</defaultenabled>
+		</member>
+		<member name="BUSYDETECT_COMPARE_TONE_AND_SILENCE" displayname="Assume that tone and silence has the same duration">
+			<conflict>BUSYDETECT_TONEONLY</conflict>
+			<defaultenabled>no</defaultenabled>
+		</member>
+		<member name="BUSYDETECT_DEBUG" displayname="Allow additional WARNING for every time the busy detection routine is executed, enable only if you need to do some debugging">
+			<defaultenabled>no</defaultenabled>
+		</member>
+	</category>
Index: build_tools/make_buildopts_h
===================================================================
--- build_tools/make_buildopts_h	(revision 87121)
+++ build_tools/make_buildopts_h	(working copy)
@@ -7,7 +7,7 @@
  */
 
 END
-TMP=`${GREP} MENUSELECT_CFLAGS menuselect.makeopts | sed 's/MENUSELECT_CFLAGS\=//g' | sed 's/-D//g'`
+TMP=`${GREP} '^MENUSELECT_.*CFLAGS=' menuselect.makeopts | sed 's/^MENUSELECT_.*CFLAGS\=//g' | sed 's/-D//g'`
 for x in ${TMP}; do
      echo "#define ${x} 1"
 done
Index: channels/chan_zap.c
===================================================================
--- channels/chan_zap.c	(revision 87121)
+++ channels/chan_zap.c	(working copy)
@@ -9926,6 +9926,29 @@
 			ast_cli(fd, "Propagated Conference: %d\n", tmp->propconfno);
 			ast_cli(fd, "Real in conference: %d\n", tmp->inconference);
 			ast_cli(fd, "DSP: %s\n", tmp->dsp ? "yes" : "no");
+			ast_cli(fd, "Busy Detection %s\n", tmp->busydetect ? "yes" : "no" );
+			if (tmp->busydetect) {
+				ast_cli(fd, "\tBusy Detector: ");
+#ifdef BUSYDETECT
+				ast_cli(fd, "BUSYDETECT ");
+#endif
+#ifdef BUSYDETECT_MARTIN
+				ast_cli(fd, "BUSYDETECT_MARTING ");
+#endif
+#ifdef BUSYDETECT_TONEONLY
+				ast_cli(fd, "BUSYDETECT_TONEONLY ");
+#endif
+#ifdef BUSYDETECT_COMPARE_TONE_AND_SILECE
+				ast_cli(fd, "BUSYDETECT_COMPARE_TONE_AND_SILECE ");
+#endif
+#ifdef BUSYDETECT_DEBUG
+				ast_cli(fd, "BUSYDETECT_DEBUG ");
+#endif
+				ast_cli(fd, "\n");
+				ast_cli(fd, "\tBusy Count: %d\n", tmp->busycount);
+				ast_cli(fd, "\tBusy Pattern: %d,%d\n", tmp->busy_tonelength, tmp->busy_quietlength);
+			}
+
 			ast_cli(fd, "Relax DTMF: %s\n", tmp->dtmfrelax ? "yes" : "no");
 			ast_cli(fd, "Dialing/CallwaitCAS: %d/%d\n", tmp->dialing, tmp->callwaitcas);
 			ast_cli(fd, "Default law: %s\n", tmp->law == ZT_LAW_MULAW ? "ulaw" : tmp->law == ZT_LAW_ALAW ? "alaw" : "unknown");
Index: main/dsp.c
===================================================================
--- main/dsp.c	(revision 87295)
+++ main/dsp.c	(working copy)
@@ -59,7 +59,9 @@
 #include "asterisk/ulaw.h"
 #include "asterisk/alaw.h"
 #include "asterisk/utils.h"
+#include "asterisk/options.h"
 
+
 /*! Number of goertzels for progress detect */
 enum gsamp_size {
 	GSAMP_SIZE_NA = 183,			/*!< North America - 350, 440, 480, 620, 950, 1400, 1800 Hz */
@@ -186,9 +188,15 @@
 #define BELL_MF_RELATIVE_PEAK	12.6    /* 11dB */
 #endif
 
-#if !defined(BUSYDETECT_MARTIN) && !defined(BUSYDETECT) && !defined(BUSYDETECT_TONEONLY) && !defined(BUSYDETECT_COMPARE_TONE_AND_SILENCE)
+#ifndef BUSYDETECT_MARTIN
+#ifndef BUSYDETECT
 #define BUSYDETECT_MARTIN
+#warning You didn't selected BUSYDETECT_MARTIN or BUSYDETECT option via make menuselect
 #endif
+#endif
+#if defined(BUSYDETECT_TONEONLY) && defined(BUSYDETECT_COMPARE_TONE_AND_SILENCE)
+#error You cant use BUSYDETECT_TONEONLY together with BUSYDETECT_COMPARE_TONE_AND_SILENCE
+#endif
 
 typedef struct {
 	float v2;
@@ -1335,9 +1343,11 @@
 	/* If we know the expected busy tone length, check we are in the range */
 	if (res && (dsp->busy_tonelength > 0)) {
 		if (abs(avgtone - dsp->busy_tonelength) > (dsp->busy_tonelength*BUSY_PAT_PERCENT/100)) {
-#if 0
-			ast_log(LOG_NOTICE, "busy detector: avgtone of %d not close enough to desired %d\n",
+#ifdef BUSYDETECT_DEBUG
+			if (option_debug>200) {
+				ast_log(LOG_WARNING, "busy detector: avgtone of %d not close enough to desired %d\n",
 						avgtone, dsp->busy_tonelength);
+			}
 #endif
 			res = 0;
 		}
@@ -1346,18 +1356,29 @@
 	/* If we know the expected busy tone silent-period length, check we are in the range */
 	if (res && (dsp->busy_quietlength > 0)) {
 		if (abs(avgsilence - dsp->busy_quietlength) > (dsp->busy_quietlength*BUSY_PAT_PERCENT/100)) {
-#if 0
-			ast_log(LOG_NOTICE, "busy detector: avgsilence of %d not close enough to desired %d\n",
+#ifdef BUSYDETECT_DEBUG
+			if (option_debug>200) {
+				ast_log(LOG_WARNING, "busy detector: avgsilence of %d not close enough to desired %d\n",
 						avgsilence, dsp->busy_quietlength);
+			}
 #endif
 			res = 0;
 		}
 	}
 #endif
 #ifndef BUSYDETECT_TONEONLY
-#if 1
-	if (res)
-		ast_log(LOG_DEBUG, "ast_dsp_busydetect detected busy, avgtone: %d, avgsilence %d\n", avgtone, avgsilence);
+#ifdef BUSYDETECT_DEBUG
+	if (option_debug>200) {
+		if (res) {
+			ast_log(LOG_WARNING, "ast_dsp_busydetect detected busy, avgtone: %d, avgsilence %d\n", avgtone, avgsilence);
+		} else {
+			ast_log(LOG_WARNING, "busy detector: FAILED with avgtone: %d, avgsilence %d\n", avgtone, avgsilence);
+		}
+	} else {
+		if (res) {
+			ast_log(LOG_DEBUG, "ast_dsp_busydetect detected busy, avgtone: %d, avgsilence %d\n", avgtone, avgsilence);
+		}
+	}
 #endif
 #endif
 	return res;
Index: configs/zapata.conf.sample
===================================================================
--- configs/zapata.conf.sample	(revision 87121)
+++ configs/zapata.conf.sample	(working copy)
@@ -460,6 +460,10 @@
 ; silence (as many countries do), consider defining the
 ; -DBUSYDETECT_COMPARE_TONE_AND_SILENCE option.
 ;
+; To further detect wich hangup tone is your telco provider sending is usefull
+; to use the ztmonitor utility to record the audio main/dsp.c is receiving
+; after the caller hangup
+;
 ; Use a polarity reversal to mark when a outgoing call is answered by the
 ; remote party.
 ;