diff options
-rw-r--r-- | channels/chan_misdn.c | 72 | ||||
-rw-r--r-- | channels/misdn/Makefile | 4 | ||||
-rw-r--r-- | channels/misdn/chan_misdn_config.h | 5 | ||||
-rw-r--r-- | channels/misdn/isdn_lib.c | 38 | ||||
-rw-r--r-- | channels/misdn/isdn_lib.h | 6 | ||||
-rw-r--r-- | channels/misdn_config.c | 11 | ||||
-rwxr-xr-x | configure | 209 | ||||
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | include/asterisk/autoconfig.h.in | 3 |
9 files changed, 269 insertions, 80 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index e2bd6c275..72cdfad2c 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -351,7 +351,11 @@ int add_out_calls(int port); 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 @@ -1034,7 +1038,11 @@ static void print_bc_info (int fd, struct chan_list* help, struct misdn_bchannel " --> 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, @@ -1047,7 +1055,11 @@ static void print_bc_info (int fd, struct chan_list* help, struct misdn_bchannel 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 @@ -1275,7 +1287,11 @@ static int misdn_toggle_echocancel (int fd, int argc, char *argv[]) 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); @@ -1616,6 +1632,25 @@ void debug_numplan(int port, int numplan, char *type) +#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; @@ -1629,17 +1664,10 @@ static int update_ec_config(struct misdn_bchannel *bc) 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; - } -#endif return 0; } +#endif static int read_config(struct chan_list *ch, int orig) { @@ -1714,7 +1742,11 @@ static int read_config(struct chan_list *ch, int orig) { 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; @@ -1987,9 +2019,15 @@ static int misdn_call(struct ast_channel *ast, char *dest, int timeout) 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 ); @@ -2482,7 +2520,11 @@ static struct ast_frame *process_ast_dsp(struct chan_list *tmp, struct ast_frame 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) { @@ -4985,14 +5027,22 @@ static int misdn_set_opt_exec(struct ast_channel *chan, void *data) 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; diff --git a/channels/misdn/Makefile b/channels/misdn/Makefile index 895dc9dee..85478225b 100644 --- a/channels/misdn/Makefile +++ b/channels/misdn/Makefile @@ -1,6 +1,10 @@ # # Makefile for chan_misdn support # +ifneq ($(wildcard /usr/include/linux/mISDNdsp.h),) +CFLAGS+=-DMISDN_1_2 +endif + all: %.o: %.c diff --git a/channels/misdn/chan_misdn_config.h b/channels/misdn/chan_misdn_config.h index 3012e8622..fc714853a 100644 --- a/channels/misdn/chan_misdn_config.h +++ b/channels/misdn/chan_misdn_config.h @@ -52,9 +52,8 @@ enum misdn_cfg_elements { 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 diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c index 3f33176a3..607492bb1 100644 --- a/channels/misdn/isdn_lib.c +++ b/channels/misdn/isdn_lib.c @@ -590,14 +590,13 @@ static void empty_bc(struct misdn_bchannel *bc) 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; @@ -4101,7 +4100,11 @@ void isdn_lib_update_txgain (struct misdn_bchannel *bc) 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); @@ -4280,19 +4283,24 @@ void misdn_lib_send_tone(struct misdn_bchannel *bc, enum tone_e tone) 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: @@ -4312,14 +4320,12 @@ void manager_ec_enable(struct misdn_bchannel *bc) } ec_arr[0]=bc->ec_deftaps; -#ifdef EC_TRAIN - ec_arr[1]=bc->ec_training; -#else ec_arr[1]=0; -#endif manager_ph_control_block(bc, ECHOCAN_ON, ec_arr, sizeof(ec_arr)); } +#endif + } } @@ -4335,10 +4341,14 @@ void manager_ec_disable(struct misdn_bchannel *bc) 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() { diff --git a/channels/misdn/isdn_lib.h b/channels/misdn/isdn_lib.h index 5100ff38c..16f24b5f9 100644 --- a/channels/misdn/isdn_lib.h +++ b/channels/misdn/isdn_lib.h @@ -346,10 +346,12 @@ struct misdn_bchannel { /** 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; diff --git a/channels/misdn_config.c b/channels/misdn_config.c index 541400b24..786ca5b01 100644 --- a/channels/misdn_config.c +++ b/channels/misdn_config.c @@ -235,9 +235,14 @@ static const struct misdn_cfg_spec port_spec[] = { "\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"}, @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Revision: 58931 . +# From configure.ac Revision: 58955 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.60. # @@ -692,7 +692,6 @@ LN DOT STRIP WGET -RUBBER FETCH DOWNLOAD acx_pthread_config @@ -7406,47 +7405,6 @@ echo "${ECHO_T}no" >&6; } fi -# Extract the first word of "rubber", so it can be a program name with args. -set dummy rubber; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } -if test "${ac_cv_path_RUBBER+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $RUBBER in - [\\/]* | ?:[\\/]*) - ac_cv_path_RUBBER="$RUBBER" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_RUBBER="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - test -z "$ac_cv_path_RUBBER" && ac_cv_path_RUBBER=":" - ;; -esac -fi -RUBBER=$ac_cv_path_RUBBER -if test -n "$RUBBER"; then - { echo "$as_me:$LINENO: result: $RUBBER" >&5 -echo "${ECHO_T}$RUBBER" >&6; } -else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } -fi - - if test "${WGET}" != ":" ; then DOWNLOAD=${WGET} else @@ -22029,6 +21987,164 @@ echo "$as_me: *** without explicitly specifying --with-${SUPPSERV_OPTION}" >&6;} 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 + ac_cv_header_linux_mISDNdsp_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_linux_mISDNdsp_h" >&5 +echo "${ECHO_T}$ac_cv_header_linux_mISDNdsp_h" >&6; } + +fi +if test $ac_cv_header_linux_mISDNdsp_h = yes; then + +cat >>confdefs.h <<_ACEOF +#define MISDN_1_2 1 +_ACEOF + +fi + + fi @@ -34818,13 +34934,13 @@ LN!$LN$ac_delim DOT!$DOT$ac_delim STRIP!$STRIP$ac_delim WGET!$WGET$ac_delim -RUBBER!$RUBBER$ac_delim FETCH!$FETCH$ac_delim DOWNLOAD!$DOWNLOAD$ac_delim acx_pthread_config!$acx_pthread_config$ac_delim PTHREAD_CC!$PTHREAD_CC$ac_delim PTHREAD_LIBS!$PTHREAD_LIBS$ac_delim PTHREAD_CFLAGS!$PTHREAD_CFLAGS$ac_delim +AST_DEVMODE!$AST_DEVMODE$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then @@ -34866,7 +34982,6 @@ _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF -AST_DEVMODE!$AST_DEVMODE$ac_delim ALSA_LIB!$ALSA_LIB$ac_delim ALSA_INCLUDE!$ALSA_INCLUDE$ac_delim ALSA_DIR!$ALSA_DIR$ac_delim @@ -34963,6 +35078,7 @@ QT_LIB!$QT_LIB$ac_delim QT_INCLUDE!$QT_INCLUDE$ac_delim QT_DIR!$QT_DIR$ac_delim PBX_QT!$PBX_QT$ac_delim +RADIUS_LIB!$RADIUS_LIB$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then @@ -35004,7 +35120,6 @@ _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF -RADIUS_LIB!$RADIUS_LIB$ac_delim RADIUS_INCLUDE!$RADIUS_INCLUDE$ac_delim RADIUS_DIR!$RADIUS_DIR$ac_delim PBX_RADIUS!$PBX_RADIUS$ac_delim @@ -35094,7 +35209,7 @@ CURL_CONFIG!$CURL_CONFIG$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 88; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 87; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/configure.ac b/configure.ac index 5305a8ff8..22f79ce10 100644 --- a/configure.ac +++ b/configure.ac @@ -642,6 +642,7 @@ AST_EXT_LIB_CHECK([MISDN], [mISDN], [mISDN_open], [mISDNuser/mISDNlib.h]) if test "${PBX_MISDN}" = 1; then AST_EXT_LIB_CHECK([ISDNNET], [isdnnet], [init_manager], [mISDNuser/isdn_net.h], [-lmISDN -lpthread]) AST_EXT_LIB_CHECK([SUPPSERV], [suppserv], [encodeFac], [mISDNuser/suppserv.h]) + AC_CHECK_HEADER([linux/mISDNdsp.h], [AC_DEFINE_UNQUOTED([MISDN_1_2], 1, [Build chan_misdn for mISDN 1.2 or later.])]) fi AST_EXT_LIB_CHECK([NBS], [nbs], [nbs_connect], [nbs.h]) diff --git a/include/asterisk/autoconfig.h.in b/include/asterisk/autoconfig.h.in index e8a92a62b..b40d1e410 100644 --- a/include/asterisk/autoconfig.h.in +++ b/include/asterisk/autoconfig.h.in @@ -499,6 +499,9 @@ slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK +/* Build chan_misdn for mISDN 1.2 or later. */ +#undef MISDN_1_2 + /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT |