[asterisk-commits] russell: branch russell/events r59219 - in /team/russell/events: ./ apps/ cha...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Mon Mar 26 12:19:10 MST 2007


Author: russell
Date: Mon Mar 26 14:19:09 2007
New Revision: 59219

URL: http://svn.digium.com/view/asterisk?view=rev&rev=59219
Log:
Merged revisions 59181,59183,59190-59191,59196,59201,59203-59205,59208,59210-59211,59214,59216,59218 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
r59181 | kpfleming | 2007-03-22 18:39:26 -0500 (Thu, 22 Mar 2007) | 10 lines

Merged revisions 59180 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59180 | kpfleming | 2007-03-22 16:34:22 -0700 (Thu, 22 Mar 2007) | 2 lines

remove variables that are no longer used (--enable-dev-mode is good, developers should be using it)

........

................
r59183 | kpfleming | 2007-03-22 18:41:37 -0500 (Thu, 22 Mar 2007) | 10 lines

Merged revisions 59182 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59182 | kpfleming | 2007-03-22 16:40:01 -0700 (Thu, 22 Mar 2007) | 2 lines

don't allow string input to overrun the buffer to hold it

........

................
r59190 | murf | 2007-03-23 11:17:57 -0500 (Fri, 23 Mar 2007) | 17 lines

Merged revisions 59188 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r59188 | murf | 2007-03-23 10:09:01 -0600 (Fri, 23 Mar 2007) | 9 lines

Merged revisions 59186 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r59186 | murf | 2007-03-23 09:57:26 -0600 (Fri, 23 Mar 2007) | 1 line

Added a few words in the Macro doc strings about the behavior of macros with hangups (et al.), as per 9337
........

................

................
r59191 | file | 2007-03-23 11:41:18 -0500 (Fri, 23 Mar 2007) | 2 lines

Update modules.txt to new loader. (issue #9358 reported by eliel)

................
r59196 | file | 2007-03-23 20:42:11 -0500 (Fri, 23 Mar 2007) | 18 lines

Merged revisions 59195 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r59195 | file | 2007-03-23 21:39:44 -0400 (Fri, 23 Mar 2007) | 10 lines

Merged revisions 59194 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r59194 | file | 2007-03-23 21:35:49 -0400 (Fri, 23 Mar 2007) | 2 lines

Only try to handle a response if it has a response code.

........

................

................
r59201 | file | 2007-03-26 10:20:17 -0500 (Mon, 26 Mar 2007) | 10 lines

Merged revisions 59200 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59200 | file | 2007-03-26 11:16:29 -0400 (Mon, 26 Mar 2007) | 2 lines

Have ast_copy_string magically appear in the aelparse binary! DONT_OPTIMIZE should now work once again.

........

................
r59203 | nadi | 2007-03-26 10:59:56 -0500 (Mon, 26 Mar 2007) | 12 lines

Merged revisions 59202 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59202 | nadi | 2007-03-26 17:25:53 +0200 (Mo, 26 Mär 2007) | 4 lines

* mISDN >= 1.2 provides a dsp pipeline for i.e. echo cancellation modules, make chan_misdn use it.
* add a check for linux/mISDNdsp.h to configure.ac and update the autogenerated files: 'configure', 'autoconfig.h.in'
  (the 'configure' script was not in sync with the latest configure.ac, so the diff is a bit bigger than expected).

........

................
r59204 | mattf | 2007-03-26 11:46:07 -0500 (Mon, 26 Mar 2007) | 2 lines

Small API related SS7 updates.

................
r59205 | mattf | 2007-03-26 11:48:29 -0500 (Mon, 26 Mar 2007) | 3 lines

Fix bug in which parameter type we are passing.  This shouldn't be a problem 
since both types are the same underneath.

................
r59208 | russell | 2007-03-26 12:51:27 -0500 (Mon, 26 Mar 2007) | 15 lines

Merged revisions 59207 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59207 | russell | 2007-03-26 12:45:55 -0500 (Mon, 26 Mar 2007) | 7 lines

The AUDIORTPQOS and VIDEORTPQOS variables are not fully functional in some
because they get set in sip_hangup.  So, there are common situations where
the variables will not be available in the dialplan at all.  So, this patch
provides an alternate method for getting to this information by introducing
AUDIORTPQOS and VIDEORTPQOS dialplan functions.
(issue #9370, patch by Corydon76, with some testing by blitzrage)

........

................
r59210 | murf | 2007-03-26 12:56:26 -0500 (Mon, 26 Mar 2007) | 9 lines

Merged revisions 59206 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59206 | murf | 2007-03-26 11:38:29 -0600 (Mon, 26 Mar 2007) | 1 line

A fix for the flex input files, DONT_COMPILE, and STANDALONE_AEL
........

................
r59211 | russell | 2007-03-26 12:57:50 -0500 (Mon, 26 Mar 2007) | 9 lines

Merged revisions 59209 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59209 | russell | 2007-03-26 12:53:07 -0500 (Mon, 26 Mar 2007) | 1 line

Rename the new dialplan functions to match the variable name
........

................
r59214 | file | 2007-03-26 13:14:33 -0500 (Mon, 26 Mar 2007) | 10 lines

Merged revisions 59213 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59213 | file | 2007-03-26 14:13:06 -0400 (Mon, 26 Mar 2007) | 2 lines

Make SpeechBackground obey the digit timeout value.

........

................
r59216 | russell | 2007-03-26 13:29:10 -0500 (Mon, 26 Mar 2007) | 11 lines

Merged revisions 59215 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59215 | russell | 2007-03-26 13:28:29 -0500 (Mon, 26 Mar 2007) | 3 lines

Fix some codec negotiation problems when CallerID support is not enabled in SLA.
(issue #9308, reported by twilson)

........

................
r59218 | russell | 2007-03-26 13:34:41 -0500 (Mon, 26 Mar 2007) | 12 lines

Merged revisions 59217 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r59217 | russell | 2007-03-26 13:33:50 -0500 (Mon, 26 Mar 2007) | 4 lines

Somehow the code for building the email for voicemail got out of sync.  This
change makes a few tweaks to get 1.4 in sync with trunk.
(issue #9301)

........

................

Modified:
    team/russell/events/   (props changed)
    team/russell/events/apps/app_macro.c
    team/russell/events/apps/app_meetme.c
    team/russell/events/apps/app_speech_utils.c
    team/russell/events/channels/chan_misdn.c
    team/russell/events/channels/chan_sip.c
    team/russell/events/channels/chan_zap.c
    team/russell/events/channels/misdn/Makefile
    team/russell/events/channels/misdn/chan_misdn_config.h
    team/russell/events/channels/misdn/isdn_lib.c
    team/russell/events/channels/misdn/isdn_lib.h
    team/russell/events/channels/misdn_config.c
    team/russell/events/configure
    team/russell/events/configure.ac
    team/russell/events/doc/modules.txt
    team/russell/events/include/asterisk/autoconfig.h.in
    team/russell/events/include/asterisk/rtp.h
    team/russell/events/main/ast_expr2.fl
    team/russell/events/main/ast_expr2f.c
    team/russell/events/main/rtp.c
    team/russell/events/pbx/ael/ael.flex
    team/russell/events/pbx/ael/ael_lex.c

Propchange: team/russell/events/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Propchange: team/russell/events/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Mar 26 14:19:09 2007
@@ -1,1 +1,1 @@
-/trunk:1-59177
+/trunk:1-59218

Modified: team/russell/events/apps/app_macro.c
URL: http://svn.digium.com/view/asterisk/team/russell/events/apps/app_macro.c?view=diff&rev=59219&r1=59218&r2=59219
==============================================================================
--- team/russell/events/apps/app_macro.c (original)
+++ team/russell/events/apps/app_macro.c Mon Mar 26 14:19:09 2007
@@ -61,6 +61,11 @@
 "will be returned at the location of the Goto.\n"
 "If ${MACRO_OFFSET} is set at termination, Macro will attempt to continue\n"
 "at priority MACRO_OFFSET + N + 1 if such a step exists, and N + 1 otherwise.\n"
+"Extensions: While a macro is being executed, it becomes the current context.\n"
+"            This means that if a hangup occurs, for instance, that the macro\n"
+"            will be searched for an 'h' extension, NOT the context from which\n"
+"            the macro was called. So, make sure to define all appropriate\n"
+"            extensions in your macro! (Note: AEL does not use macros)\n"
 "WARNING: Because of the way Macro is implemented (it executes the priorities\n"
 "         contained within it via sub-engine), and a fixed per-thread\n"
 "         memory stack allowance, macros are limited to 7 levels\n"

Modified: team/russell/events/apps/app_meetme.c
URL: http://svn.digium.com/view/asterisk/team/russell/events/apps/app_meetme.c?view=diff&rev=59219&r1=59218&r2=59219
==============================================================================
--- team/russell/events/apps/app_meetme.c (original)
+++ team/russell/events/apps/app_meetme.c Mon Mar 26 14:19:09 2007
@@ -3486,6 +3486,8 @@
 	char *tech, *tech_data;
 	struct ast_dial *dial;
 	struct sla_ringing_station *ringing_station;
+	const char *cid_name = NULL, *cid_num = NULL;
+	enum ast_dial_result res;
 
 	if (!(dial = ast_dial_create()))
 		return -1;
@@ -3499,8 +3501,25 @@
 		return -1;
 	}
 
-	if (ast_dial_run(dial, sla.attempt_callerid ? ringing_trunk->trunk->chan : NULL, 1) 
-		!= AST_DIAL_RESULT_TRYING) {
+	if (!sla.attempt_callerid && !ast_strlen_zero(ringing_trunk->trunk->chan->cid.cid_name)) {
+		cid_name = ast_strdupa(ringing_trunk->trunk->chan->cid.cid_name);
+		free(ringing_trunk->trunk->chan->cid.cid_name);
+		ringing_trunk->trunk->chan->cid.cid_name = NULL;
+	}
+	if (!sla.attempt_callerid && !ast_strlen_zero(ringing_trunk->trunk->chan->cid.cid_num)) {
+		cid_num = ast_strdupa(ringing_trunk->trunk->chan->cid.cid_num);
+		free(ringing_trunk->trunk->chan->cid.cid_num);
+		ringing_trunk->trunk->chan->cid.cid_num = NULL;
+	}
+
+	res = ast_dial_run(dial, ringing_trunk->trunk->chan, 1);
+	
+	if (cid_name)
+		ringing_trunk->trunk->chan->cid.cid_name = ast_strdup(cid_name);
+	if (cid_num)
+		ringing_trunk->trunk->chan->cid.cid_num = ast_strdup(cid_num);
+	
+	if (res != AST_DIAL_RESULT_TRYING) {
 		struct sla_failed_station *failed_station;
 		ast_dial_destroy(dial);
 		if (!(failed_station = ast_calloc(1, sizeof(*failed_station))))
@@ -3942,6 +3961,7 @@
 	struct ast_conference *conf;
 	struct ast_flags conf_flags = { 0 };
 	struct sla_trunk_ref *trunk_ref = args->trunk_ref;
+	const char *cid_name = NULL, *cid_num = NULL;
 
 	if (!(dial = ast_dial_create())) {
 		ast_mutex_lock(args->cond_lock);
@@ -3960,7 +3980,24 @@
 		return NULL;
 	}
 
-	dial_res = ast_dial_run(dial, sla.attempt_callerid ? trunk_ref->chan : NULL, 1);
+	if (!sla.attempt_callerid && !ast_strlen_zero(trunk_ref->chan->cid.cid_name)) {
+		cid_name = ast_strdupa(trunk_ref->chan->cid.cid_name);
+		free(trunk_ref->chan->cid.cid_name);
+		trunk_ref->chan->cid.cid_name = NULL;
+	}
+	if (!sla.attempt_callerid && !ast_strlen_zero(trunk_ref->chan->cid.cid_num)) {
+		cid_num = ast_strdupa(trunk_ref->chan->cid.cid_num);
+		free(trunk_ref->chan->cid.cid_num);
+		trunk_ref->chan->cid.cid_num = NULL;
+	}
+
+	dial_res = ast_dial_run(dial, trunk_ref->chan, 1);
+
+	if (cid_name)
+		trunk_ref->chan->cid.cid_name = ast_strdup(cid_name);
+	if (cid_num)
+		trunk_ref->chan->cid.cid_num = ast_strdup(cid_num);
+
 	if (dial_res != AST_DIAL_RESULT_TRYING) {
 		ast_mutex_lock(args->cond_lock);
 		ast_cond_signal(args->cond);

Modified: team/russell/events/apps/app_speech_utils.c
URL: http://svn.digium.com/view/asterisk/team/russell/events/apps/app_speech_utils.c?view=diff&rev=59219&r1=59218&r2=59219
==============================================================================
--- team/russell/events/apps/app_speech_utils.c (original)
+++ team/russell/events/apps/app_speech_utils.c Mon Mar 26 14:19:09 2007
@@ -669,7 +669,7 @@
 					if (chan->stream != NULL) {
 						ast_stopstream(chan);
 						/* Change timeout to be 5 seconds for DTMF input */
-						timeout = 5;
+						timeout = (chan->pbx && chan->pbx->dtimeout) ? chan->pbx->dtimeout : 5;
 						time(&start);
 						started = 1;
 					}

Modified: team/russell/events/channels/chan_misdn.c
URL: http://svn.digium.com/view/asterisk/team/russell/events/channels/chan_misdn.c?view=diff&rev=59219&r1=59218&r2=59219
==============================================================================
--- team/russell/events/channels/chan_misdn.c (original)
+++ team/russell/events/channels/chan_misdn.c Mon Mar 26 14:19:09 2007
@@ -302,9 +302,6 @@
 
 static int tracing = 0 ;
 
-static char **misdn_key_vector=NULL;
-static int misdn_key_vector_size=0;
-
 /* Only alaw and mulaw is allowed for now */
 static int prefformat =  AST_FORMAT_ALAW ; /*  AST_FORMAT_SLINEAR ;  AST_FORMAT_ULAW | */
 
@@ -354,7 +351,11 @@
 int add_in_calls(int port);
 
 
+#ifdef MISDN_1_2
+static int update_pipeline_config(struct misdn_bchannel *bc);
+#else
 static int update_ec_config(struct misdn_bchannel *bc);
+#endif
 
 
 
@@ -1022,7 +1023,11 @@
 			"  --> activated: %d\n"
 			"  --> state: %s\n"
 			"  --> capability: %s\n"
+#ifdef MISDN_1_2
+			"  --> pipeline: %s\n"
+#else
 			"  --> echo_cancel: %d\n"
+#endif
 			"  --> notone : rx %d tx:%d\n"
 			"  --> bc_hold: %d\n",
 			help->ast->name,
@@ -1035,7 +1040,11 @@
 			bc->active,
 			bc_state2str(bc->bc_state),
 			bearer2str(bc->capability),
-			bc->ec_enable,
+#ifdef MISDN_1_2
+			bc->pipeline,
+#else
+ 			bc->ec_enable,
+#endif
 
 			help->norxtone,help->notxtone,
 			bc->holded
@@ -1263,7 +1272,11 @@
 			tmp->toggle_ec=tmp->toggle_ec?0:1;
 
 			if (tmp->toggle_ec) {
+#ifdef MISDN_1_2
+				update_pipeline_config(tmp->bc);
+#else
 				update_ec_config(tmp->bc);
+#endif
 				manager_ec_enable(tmp->bc);
 			} else {
 				manager_ec_disable(tmp->bc);
@@ -1601,6 +1614,25 @@
 
 
 
+#ifdef MISDN_1_2
+static int update_pipeline_config(struct misdn_bchannel *bc)
+{
+	int ec;
+
+	misdn_cfg_get(bc->port, MISDN_CFG_PIPELINE, bc->pipeline, sizeof(bc->pipeline));
+
+	if (*bc->pipeline)
+		return 0;
+
+	misdn_cfg_get(bc->port, MISDN_CFG_ECHOCANCEL, &ec, sizeof(int));
+	if (ec == 1)
+		snprintf(bc->pipeline, sizeof(bc->pipeline) - 1, "mg2ec");
+	else if (ec > 1)
+		snprintf(bc->pipeline, sizeof(bc->pipeline) - 1, "mg2ec(deftaps=%d)", ec);
+
+	return 0;
+}
+#else
 static int update_ec_config(struct misdn_bchannel *bc)
 {
 	int ec;
@@ -1614,17 +1646,10 @@
 		bc->ec_enable=1;
 		bc->ec_deftaps=ec;
 	}
-#ifdef WITH_ECHOTRAINING 
-	int ectr;
-	misdn_cfg_get( port, MISDN_CFG_ECHOTRAINING, &ectr, sizeof(int));
-	
-	if ( ectr >= 0 ) {
-		bc->ec_training=ectr;
-	}
+
+	return 0;
+}
 #endif
-
-	return 0;
-}
 
 
 static int read_config(struct chan_list *ch, int orig) {
@@ -1699,7 +1724,11 @@
 	
 	ast_copy_string (ast->context,ch->context,sizeof(ast->context));	
 
+#ifdef MISDN_1_2
+	update_pipeline_config(bc);
+#else
 	update_ec_config(bc);
+#endif
 
 	{
 		int eb3;
@@ -1969,9 +1998,15 @@
 		int bridging;
 		misdn_cfg_get( 0, MISDN_GEN_BRIDGING, &bridging, sizeof(int));
 		if (bridging && ch->other_ch) {
-			chan_misdn_log(0, port, "Disabling EC on both Sides\n");	
+#ifdef MISDN_1_2
+			chan_misdn_log(0, port, "Disabling EC (aka Pipeline) on both Sides\n");
+			*ch->bc->pipeline=0;
+			*ch->other_ch->bc->pipeline=0;
+#else
+			chan_misdn_log(0, port, "Disabling EC on both Sides\n");
 			ch->bc->ec_enable=0;
 			ch->other_ch->bc->ec_enable=0;
+#endif
 		}
 		
 		r=misdn_lib_send_event( newbc, EVENT_SETUP );
@@ -2469,7 +2504,11 @@
  			isdn_lib_update_rxgain(tmp->bc);
  			tmp->bc->txgain = 0;
  			isdn_lib_update_txgain(tmp->bc);
+#ifdef MISDN_1_2
+			*tmp->bc->pipeline = 0;
+#else
  			tmp->bc->ec_enable = 0;
+#endif
  			isdn_lib_update_ec(tmp->bc);
  			isdn_lib_stop_dtmf(tmp->bc);
  			switch (tmp->faxdetect) {
@@ -4925,16 +4964,22 @@
 		case 'c':
 			keyidx=atoi(++tok);
       
-			if (keyidx > misdn_key_vector_size  || keyidx < 0 ) {
-				ast_log(LOG_WARNING, "You entered the keyidx: %d but we have only %d keys\n",keyidx, misdn_key_vector_size );
-				continue; 
-			}
-      
-			{
-				ast_copy_string(ch->bc->crypt_key,  misdn_key_vector[keyidx], sizeof(ch->bc->crypt_key));
-			}
-			
-			chan_misdn_log(0, ch->bc->port, "SETOPT: crypt with key:%s\n",misdn_key_vector[keyidx]);
+			char keys[4096];
+			char *key=NULL, *tmp;
+			int i;
+			misdn_cfg_get( 0, MISDN_GEN_CRYPT_KEYS, keys, sizeof(keys));
+
+			tmp=keys;
+
+			for (i=0; i<keyidx; i++) {
+				key=strsep(&tmp,",");
+			}
+
+			if (key) {
+				ast_copy_string(ch->bc->crypt_key, key, sizeof(ch->bc->crypt_key));
+			}
+
+			chan_misdn_log(0, ch->bc->port, "SETOPT: crypt with key:%s\n",ch->bc->crypt_key);
 			break;
 
 		case 'e':
@@ -4942,14 +4987,22 @@
 			
 			if (neglect) {
 				chan_misdn_log(1, ch->bc->port, " --> disabled\n");
+#ifdef MISDN_1_2
+				*ch->bc->pipeline=0;
+#else
 				ch->bc->ec_enable=0;
+#endif
 			} else {
+#ifdef MISDN_1_2
+				update_pipeline_config(ch->bc);
+#else
 				ch->bc->ec_enable=1;
 				ch->bc->orig=ch->orginator;
 				tok++;
-				if (tok) {
+				if (*tok) {
 					ch->bc->ec_deftaps=atoi(tok);
 				}
+#endif
 			}
 			
 			break;

Modified: team/russell/events/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/russell/events/channels/chan_sip.c?view=diff&rev=59219&r1=59218&r2=59219
==============================================================================
--- team/russell/events/channels/chan_sip.c (original)
+++ team/russell/events/channels/chan_sip.c Mon Mar 26 14:19:09 2007
@@ -3689,11 +3689,11 @@
 				char *videoqos = "";
 				char *textqos = "";
 				if (p->rtp)
-					audioqos = ast_rtp_get_quality(p->rtp);
+					audioqos = ast_rtp_get_quality(p->rtp, NULL);
 				if (p->vrtp)
-					videoqos = ast_rtp_get_quality(p->vrtp);
+					videoqos = ast_rtp_get_quality(p->vrtp, NULL);
 				if (p->trtp)
-					textqos = ast_rtp_get_quality(p->trtp);
+					textqos = ast_rtp_get_quality(p->trtp, NULL);
 				/* Send a hangup */
 				transmit_request_with_auth(p, SIP_BYE, 0, XMIT_RELIABLE, 1);
 
@@ -5497,15 +5497,15 @@
 					ast_log(LOG_DEBUG, "Transcoding JBIG: %d\n",x);
 				if (x == 1)
 					peert38capability |= T38FAX_TRANSCODING_JBIG;
-			} else if ((sscanf(a, "T38FaxRateManagement:%s", s) == 1)) {
+			} else if ((sscanf(a, "T38FaxRateManagement:%255s", s) == 1)) {
 				found = 1;
 				if (option_debug > 2)
-					ast_log(LOG_DEBUG, "RateMangement: %s\n", s);
+					ast_log(LOG_DEBUG, "RateManagement: %s\n", s);
 				if (!strcasecmp(s, "localTCF"))
 					peert38capability |= T38FAX_RATE_MANAGEMENT_LOCAL_TCF;
 				else if (!strcasecmp(s, "transferredTCF"))
 					peert38capability |= T38FAX_RATE_MANAGEMENT_TRANSFERED_TCF;
-			} else if ((sscanf(a, "T38FaxUdpEC:%s", s) == 1)) {
+			} else if ((sscanf(a, "T38FaxUdpEC:%255s", s) == 1)) {
 				found = 1;
 				if (option_debug > 2)
 					ast_log(LOG_DEBUG, "UDP EC: %s\n", s);
@@ -14820,6 +14820,55 @@
 	}
 }
 
+static int acf_audiortpqos_read(struct ast_channel *chan, const char *funcname, char *args, char *buf, size_t buflen)
+{
+	struct ast_rtp_quality qos;
+	struct sip_pvt *p = chan->tech_pvt;
+	char *all = "";
+
+	/* Sanity check */
+	if (chan->tech != &sip_tech && chan->tech != &sip_tech_info) {
+		ast_log(LOG_ERROR, "Cannot call %s on a non-SIP channel\n", funcname);
+	}
+
+	memset(buf, 0, buflen);
+	memset(&qos, 0, sizeof(qos));
+
+	if (strcmp(funcname, "RTPAUDIOQOS") == 0) {
+		all = ast_rtp_get_quality(p->rtp, &qos);
+	} else if (strcmp(funcname, "RTPVIDEOQOS") == 0) {
+		all = ast_rtp_get_quality(p->vrtp, &qos);
+	} else if (strcmp(funcname, "RTPTEXTQOS") == 0) {
+		all = ast_rtp_get_quality(p->trtp, &qos);
+	}
+
+	if (strcasecmp(args, "local_ssrc") == 0)
+		snprintf(buf, buflen, "%u", qos.local_ssrc);
+	else if (strcasecmp(args, "local_lostpackets") == 0)
+		snprintf(buf, buflen, "%u", qos.local_lostpackets);
+	else if (strcasecmp(args, "local_jitter") == 0)
+		snprintf(buf, buflen, "%.0lf", qos.local_jitter * 1000.0);
+	else if (strcasecmp(args, "local_count") == 0)
+		snprintf(buf, buflen, "%u", qos.local_count);
+	else if (strcasecmp(args, "remote_ssrc") == 0)
+		snprintf(buf, buflen, "%u", qos.remote_ssrc);
+	else if (strcasecmp(args, "remote_lostpackets") == 0)
+		snprintf(buf, buflen, "%u", qos.remote_lostpackets);
+	else if (strcasecmp(args, "remote_jitter") == 0)
+		snprintf(buf, buflen, "%.0lf", qos.remote_jitter * 1000.0);
+	else if (strcasecmp(args, "remote_count") == 0)
+		snprintf(buf, buflen, "%u", qos.remote_count);
+	else if (strcasecmp(args, "rtt") == 0)
+		snprintf(buf, buflen, "%.0lf", qos.rtt * 1000.0);
+	else if (strcasecmp(args, "all") == 0)
+		ast_copy_string(buf, all, buflen);
+	else {
+		ast_log(LOG_WARNING, "Unrecognized argument '%s' to %s\n", args, funcname);
+		return -1;
+	}
+	return 0;
+}
+
 /*! \brief Handle incoming BYE request */
 static int handle_request_bye(struct sip_pvt *p, struct sip_request *req)
 {
@@ -14843,21 +14892,21 @@
 	if (!ast_test_flag(&p->flags[0], SIP_NO_HISTORY) || p->owner) {
 		char *audioqos, *videoqos, *textqos;
 		if (p->rtp) {
-			audioqos = ast_rtp_get_quality(p->rtp);
+			audioqos = ast_rtp_get_quality(p->rtp, NULL);
 			if (!ast_test_flag(&p->flags[0], SIP_NO_HISTORY))
 				append_history(p, "RTCPaudio", "Quality:%s", audioqos);
 			if (p->owner)
 				pbx_builtin_setvar_helper(p->owner, "RTPAUDIOQOS", audioqos);
 		}
 		if (p->vrtp) {
-			videoqos = ast_rtp_get_quality(p->vrtp);
+			videoqos = ast_rtp_get_quality(p->vrtp, NULL);
 			if (!ast_test_flag(&p->flags[0], SIP_NO_HISTORY))
 				append_history(p, "RTCPvideo", "Quality:%s", videoqos);
 			if (p->owner)
 				pbx_builtin_setvar_helper(p->owner, "RTPVIDEOQOS", videoqos);
 		}
 		if (p->trtp) {
-			textqos = ast_rtp_get_quality(p->trtp);
+			textqos = ast_rtp_get_quality(p->trtp, NULL);
 			if (!ast_test_flag(&p->flags[0], SIP_NO_HISTORY))
 				append_history(p, "RTCPtext", "Quality:%s", textqos);
 			if (p->owner)
@@ -15308,20 +15357,20 @@
 			   respond appropriately  */
 			ast_set_flag(req, SIP_PKT_IGNORE);
 			append_history(p, "Ignore", "Ignoring this retransmit\n");
-		}
-	
-		e = ast_skip_blanks(e);
-		if (sscanf(e, "%d %n", &respid, &len) != 1) {
-			ast_log(LOG_WARNING, "Invalid response: '%s'\n", e);
-		} else {
-			if (respid <= 0) {
-				ast_log(LOG_WARNING, "Invalid SIP response code: '%d'\n", respid);
-				return 0;
+		} else if (e) {
+			e = ast_skip_blanks(e);
+			if (sscanf(e, "%d %n", &respid, &len) != 1) {
+				ast_log(LOG_WARNING, "Invalid response: '%s'\n", e);
+			} else {
+				if (respid <= 0) {
+					ast_log(LOG_WARNING, "Invalid SIP response code: '%d'\n", respid);
+					return 0;
+				}
+				/* More SIP ridiculousness, we have to ignore bogus contacts in 100 etc responses */
+				if ((respid == 200) || ((respid >= 300) && (respid <= 399)))
+					extract_uri(p, req);
+				handle_response(p, respid, e + len, req, seqno);
 			}
-			/* More SIP ridiculousness, we have to ignore bogus contacts in 100 etc responses */
-			if ((respid == 200) || ((respid >= 300) && (respid <= 399)))
-				extract_uri(p, req);
-			handle_response(p, respid, e + len, req, seqno);
 		}
 		return 0;
 	}
@@ -18062,6 +18111,63 @@
 	sip_reload_usage },
 };
 
+struct ast_custom_function acf_audiortpqos = {
+	.name = "RTPAUDIOQOS",
+	.synopsis = "Retrieve statistics about an RTP audio stream",
+	.desc =
+"The following statistics may be retrieved:\n"
+"  local_ssrc         - Local SSRC (stream ID)\n"
+"  local_lostpackets  - Local lost packets\n"
+"  local_jitter       - Local calculated jitter\n"
+"  local_count        - Number of received packets\n"
+"  remote_ssrc        - Remote SSRC (stream ID)\n"
+"  remote_lostpackets - Remote lost packets\n"
+"  remote_jitter      - Remote reported jitter\n"
+"  remote_count       - Number of transmitted packets\n"
+"  rtt                - Round trip time\n"
+"  all                - All statistics (in a form suited to logging, but not for parsing)",
+	.syntax = "RTPAUDIOQOS(<field>)",
+	.read = acf_audiortpqos_read,
+};
+
+struct ast_custom_function acf_videortpqos = {
+	.name = "RTPVIDEOQOS",
+	.synopsis = "Retrieve statistics about an RTP video stream",
+	.desc =
+"The following statistics may be retrieved:\n"
+"  local_ssrc         - Local SSRC (stream ID)\n"
+"  local_lostpackets  - Local lost packets\n"
+"  local_jitter       - Local calculated jitter\n"
+"  local_count        - Number of received packets\n"
+"  remote_ssrc        - Remote SSRC (stream ID)\n"
+"  remote_lostpackets - Remote lost packets\n"
+"  remote_jitter      - Remote reported jitter\n"
+"  remote_count       - Number of transmitted packets\n"
+"  rtt                - Round trip time\n"
+"  all                - All statistics (in a form suited to logging, but not for parsing)",
+	.syntax = "RTPVIDEOQOS(<field>)",
+	.read = acf_audiortpqos_read,
+};
+
+struct ast_custom_function acf_textrtpqos = {
+	.name = "RTPTEXTQOS",
+	.synopsis = "Retrieve statistics about an RTP text stream",
+	.desc =
+"The following statistics may be retrieved:\n"
+"  local_ssrc         - Local SSRC (stream ID)\n"
+"  local_lostpackets  - Local lost packets\n"
+"  local_jitter       - Local calculated jitter\n"
+"  local_count        - Number of received packets\n"
+"  remote_ssrc        - Remote SSRC (stream ID)\n"
+"  remote_lostpackets - Remote lost packets\n"
+"  remote_jitter      - Remote reported jitter\n"
+"  remote_count       - Number of transmitted packets\n"
+"  rtt                - Round trip time\n"
+"  all                - All statistics (in a form suited to logging, but not for parsing)",
+	.syntax = "RTPTEXTQOS(<field>)",
+	.read = acf_audiortpqos_read,
+};
+
 /*! \brief PBX load module - initialization */
 static int load_module(void)
 {
@@ -18111,6 +18217,9 @@
 	ast_custom_function_register(&sippeer_function);
 	ast_custom_function_register(&sipchaninfo_function);
 	ast_custom_function_register(&checksipdomain_function);
+	ast_custom_function_register(&acf_audiortpqos);
+	ast_custom_function_register(&acf_videortpqos);
+	ast_custom_function_register(&acf_textrtpqos);
 
 	/* Register manager commands */
 	ast_manager_register2("SIPpeers", EVENT_FLAG_SYSTEM, manager_sip_show_peers,
@@ -18140,6 +18249,9 @@
 	ast_custom_function_unregister(&sippeer_function);
 	ast_custom_function_unregister(&sip_header_function);
 	ast_custom_function_unregister(&checksipdomain_function);
+	ast_custom_function_unregister(&acf_audiortpqos);
+	ast_custom_function_unregister(&acf_videortpqos);
+	ast_custom_function_unregister(&acf_textrtpqos);
 
 	/* Unregister dial plan applications */
 	ast_unregister_application(app_dtmfmode);

Modified: team/russell/events/channels/chan_zap.c
URL: http://svn.digium.com/view/asterisk/team/russell/events/channels/chan_zap.c?view=diff&rev=59219&r1=59218&r2=59219
==============================================================================
--- team/russell/events/channels/chan_zap.c (original)
+++ team/russell/events/channels/chan_zap.c Mon Mar 26 14:19:09 2007
@@ -2767,7 +2767,14 @@
 			if (p->ss7call) {
 				if (!ss7_grab(p, p->ss7)) {
 					if (!p->alreadyhungup) {
-						isup_rel(p->ss7->ss7, p->ss7call, ast->hangupcause ? ast->hangupcause : -1);
+						const char *cause = pbx_builtin_getvar_helper(ast,"SS7_CAUSE");
+						int icause = ast->hangupcause ? ast->hangupcause : -1;
+
+						if (cause) {
+							if (atoi(cause))
+								icause = atoi(cause);
+						}
+						isup_rel(p->ss7->ss7, p->ss7call, icause);
 						ss7_rel(p->ss7);
 						p->alreadyhungup = 1;
 					} else
@@ -8741,11 +8748,11 @@
 				break;
 			case ISUP_EVENT_CGB:
 				ss7_block_cics(linkset, e->cgb.startcic, e->cgb.endcic, e->cgb.status, 1);
-				isup_cgba(linkset->ss7, e->cgb.startcic, e->cgb.endcic, e->cgb.status);
+				isup_cgba(linkset->ss7, e->cgb.startcic, e->cgb.endcic, e->cgb.status, e->cgb.type);
 				break;
 			case ISUP_EVENT_CGU:
-				ss7_block_cics(linkset, e->cgu.startcic, e->cgu.endcic, e->cgb.status, 0);
-				isup_cgua(linkset->ss7, e->cgu.startcic, e->cgu.endcic, e->cgb.status);
+				ss7_block_cics(linkset, e->cgu.startcic, e->cgu.endcic, e->cgu.status, 0);
+				isup_cgua(linkset->ss7, e->cgu.startcic, e->cgu.endcic, e->cgu.status, e->cgu.type);
 				break;
 			case ISUP_EVENT_BLO:
 				chanpos = ss7_find_cic(linkset, e->blo.cic);

Modified: team/russell/events/channels/misdn/Makefile
URL: http://svn.digium.com/view/asterisk/team/russell/events/channels/misdn/Makefile?view=diff&rev=59219&r1=59218&r2=59219
==============================================================================
--- team/russell/events/channels/misdn/Makefile (original)
+++ team/russell/events/channels/misdn/Makefile Mon Mar 26 14:19:09 2007
@@ -1,6 +1,10 @@
 #
 # Makefile for chan_misdn support
 #
+ifneq ($(wildcard /usr/include/linux/mISDNdsp.h),)
+CFLAGS+=-DMISDN_1_2
+endif
+
 all:
 
 %.o: %.c

Modified: team/russell/events/channels/misdn/chan_misdn_config.h
URL: http://svn.digium.com/view/asterisk/team/russell/events/channels/misdn/chan_misdn_config.h?view=diff&rev=59219&r1=59218&r2=59219
==============================================================================
--- team/russell/events/channels/misdn/chan_misdn_config.h (original)
+++ team/russell/events/channels/misdn/chan_misdn_config.h Mon Mar 26 14:19:09 2007
@@ -52,9 +52,8 @@
 	MISDN_CFG_EARLY_BCONNECT,      /* int (bool) */
 	MISDN_CFG_INCOMING_EARLY_AUDIO,      /* int (bool) */
 	MISDN_CFG_ECHOCANCEL,          /* int */
-	MISDN_CFG_ECHOCANCELWHENBRIDGED,  /* int (bool) */
-#ifdef WITH_ECHOTRAINGING
-	MISDN_CFG_ECHOTRAINING,        /* int (bool) */
+#ifdef MISDN_1_2
+	MISDN_CFG_PIPELINE,      /* char[] */
 #endif
 
 #ifdef WITH_BEROEC

Modified: team/russell/events/channels/misdn/isdn_lib.c
URL: http://svn.digium.com/view/asterisk/team/russell/events/channels/misdn/isdn_lib.c?view=diff&rev=59219&r1=59218&r2=59219
==============================================================================
--- team/russell/events/channels/misdn/isdn_lib.c (original)
+++ team/russell/events/channels/misdn/isdn_lib.c Mon Mar 26 14:19:09 2007
@@ -578,14 +578,13 @@
 
 	bc->early_bconnect = 1;
 	
+#ifdef MISDN_1_2
+	*bc->pipeline = 0;
+#else
 	bc->ec_enable = 0;
 	bc->ec_deftaps = 128;
-	bc->ec_whenbridged = 0;
-
-#ifdef EC_TRAIN
-	bc->ec_training = 1;
 #endif
-	
+
 	bc->orig=0;
   
 	bc->cause=16;
@@ -4028,7 +4027,11 @@
 
 void isdn_lib_update_ec (struct misdn_bchannel *bc)
 {
+#ifdef MISDN_1_2
+	if (*bc->pipeline)
+#else
 	if (bc->ec_enable)
+#endif
 		manager_ec_enable(bc);
 	else
 		manager_ec_disable(bc);
@@ -4207,19 +4210,24 @@
 
 void manager_ec_enable(struct misdn_bchannel *bc)
 {
-	int ec_arr[2];
-
 	struct misdn_stack *stack=get_stack_by_bc(bc);
 	
 	cb_log(4, stack?stack->port:0,"ec_enable\n");
 
 	if (!misdn_cap_is_speech(bc->capability)) {
 		cb_log(1, stack?stack->port:0, " --> no speech? cannot enable EC\n");
-		return;
-	}
+	} else {
+
+#ifdef MISDN_1_2
+	if (*bc->pipeline) {
+		cb_log(3, stack?stack->port:0,"Sending Control PIPELINE_CFG %s\n",bc->pipeline);
+		manager_ph_control_block(bc, PIPELINE_CFG, bc->pipeline, strlen(bc->pipeline) + 1);
+ 	}
+#else
+	int ec_arr[2];
 
 	if (bc->ec_enable) {
-		cb_log(3, stack?stack->port:0,"Sending Control ECHOCAN_ON taps:%d training:%d\n",bc->ec_deftaps, bc->ec_training);
+		cb_log(3, stack?stack->port:0,"Sending Control ECHOCAN_ON taps:%d\n",bc->ec_deftaps);
 	
 		switch (bc->ec_deftaps) {
 		case 4:
@@ -4239,13 +4247,11 @@
 		}
 	
 		ec_arr[0]=bc->ec_deftaps;
-#ifdef EC_TRAIN
-		ec_arr[1]=bc->ec_training;
-#else
 		ec_arr[1]=0;
+		
+		manager_ph_control_block(bc,  ECHOCAN_ON,  ec_arr, sizeof(ec_arr));
+	}
 #endif
-		
-		manager_ph_control_block(bc,  ECHOCAN_ON,  ec_arr, sizeof(ec_arr));
 	}
 }
 
@@ -4262,10 +4268,14 @@
 		return;
 	}
 
+#ifdef MISDN_1_2
+	manager_ph_control_block(bc, PIPELINE_CFG, "", 0);
+#else
 	if ( ! bc->ec_enable) {
 		cb_log(3, stack?stack->port:0, "Sending Control ECHOCAN_OFF\n");
 		manager_ph_control(bc,  ECHOCAN_OFF, 0);
 	}
+#endif
 }
 
 struct misdn_stack* get_misdn_stack() {

Modified: team/russell/events/channels/misdn/isdn_lib.h
URL: http://svn.digium.com/view/asterisk/team/russell/events/channels/misdn/isdn_lib.h?view=diff&rev=59219&r1=59218&r2=59219
==============================================================================
--- team/russell/events/channels/misdn/isdn_lib.h (original)
+++ team/russell/events/channels/misdn/isdn_lib.h Mon Mar 26 14:19:09 2007
@@ -343,10 +343,12 @@
   
 	/** list stuf **/
 
+#ifdef MISDN_1_2
+	char pipeline[128];
+#else
 	int ec_enable;
 	int ec_deftaps;
-	int ec_whenbridged;
-	int ec_training;
+#endif
 
 #ifdef WITH_BEROEC
 	beroec_t *ec;

Modified: team/russell/events/channels/misdn_config.c
URL: http://svn.digium.com/view/asterisk/team/russell/events/channels/misdn_config.c?view=diff&rev=59219&r1=59218&r2=59219
==============================================================================
--- team/russell/events/channels/misdn_config.c (original)
+++ team/russell/events/channels/misdn_config.c Mon Mar 26 14:19:09 2007
@@ -235,9 +235,14 @@
 		"\tA value of zero turns echocancellation off.\n"
 		"\n"
 		"\tPossible values are: 0,32,64,128,256,yes(=128),no(=0)" },
-	{ "echocancelwhenbridged", MISDN_CFG_ECHOCANCELWHENBRIDGED, MISDN_CTYPE_BOOL, "no", NONE,
-		"This disables echocancellation when the call is bridged between\n"
-		"\tmISDN channels" },
+#ifdef MISDN_1_2
+	{ "pipeline", MISDN_CFG_PIPELINE, MISDN_CTYPE_STR, NO_DEFAULT, NONE,
+		"Set the configuration string for the mISDN dsp pipeline.\n"
+		"\n"
+		"\tExample for enabling the mg2 echo cancellation module with deftaps\n"
+		"\tset to 128:\n"
+		"\t\tmg2ec(deftaps=128)" },
+#endif
 #ifdef WITH_BEROEC
 	{ "bnechocancel", MISDN_CFG_BNECHOCANCEL, MISDN_CTYPE_BOOLINT, "yes", 64,
 		"echotail in ms (1-200)\n"},

Modified: team/russell/events/configure
URL: http://svn.digium.com/view/asterisk/team/russell/events/configure?view=diff&rev=59219&r1=59218&r2=59219
==============================================================================
--- team/russell/events/configure (original)
+++ team/russell/events/configure Mon Mar 26 14:19:09 2007
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac Revision: 58932 .
+# From configure.ac Revision: 58948 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.60.
 #
@@ -22901,6 +22901,164 @@
    fi
 fi
 
+   if test "${ac_cv_header_linux_mISDNdsp_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for linux/mISDNdsp.h" >&5
+echo $ECHO_N "checking for linux/mISDNdsp.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_linux_mISDNdsp_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_linux_mISDNdsp_h" >&5
+echo "${ECHO_T}$ac_cv_header_linux_mISDNdsp_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking linux/mISDNdsp.h usability" >&5
+echo $ECHO_N "checking linux/mISDNdsp.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <linux/mISDNdsp.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking linux/mISDNdsp.h presence" >&5
+echo $ECHO_N "checking linux/mISDNdsp.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <linux/mISDNdsp.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: linux/mISDNdsp.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: linux/mISDNdsp.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: linux/mISDNdsp.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: linux/mISDNdsp.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: linux/mISDNdsp.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: linux/mISDNdsp.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: linux/mISDNdsp.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: linux/mISDNdsp.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: linux/mISDNdsp.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: linux/mISDNdsp.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: linux/mISDNdsp.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: linux/mISDNdsp.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: linux/mISDNdsp.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: linux/mISDNdsp.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: linux/mISDNdsp.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: linux/mISDNdsp.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for linux/mISDNdsp.h" >&5
+echo $ECHO_N "checking for linux/mISDNdsp.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_linux_mISDNdsp_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else

[... 226 lines stripped ...]


More information about the asterisk-commits mailing list