From 921c6ff2aa9cd40451f113471a1914eb607cd50c Mon Sep 17 00:00:00 2001 From: Richard Mudgett <rmudgett@digium.com> Date: Tue, 13 May 2014 00:48:49 +0000 Subject: [PATCH] chan_dahdi/sig_pri: Prevent unnecessary PROGRESS events when overlap dialing is enabled. When overlap dialing is enabled, the lack of inband audio available information in the SETUP_ACKNOWLEDGE events causes an interoperability problem with SIP. sig_pri doesn't know if there is dialtone present when a SETUP_ACKNOWLEDGE is received so it assumes it is there and posts an AST_CONTROL_PROGRESS frame. The SIP channel driver then sends out a 183 Session Progress and blocks the desired 180 Ringing message when the ALERTING message comes in. * Made the configure script detect if the installed version of libpri supports the SETUP_ACKNOWLEDGE enhancements. * Using the new API, made generate an AST_CONTROL_PROGRESS frame on an incoming SETUP_ACKNOWLEDGE message when the message indicates inband audio is present instead of assuming that dialtone is present. * Using the new API, made SETUP_ACKNOWLEDGE send out an inband audio available indication only if dialtone is expected. The change also makes the fallback behaviour of sending the PROGRESS message better by sending it only if dialtone is expected. * Changed receiving a PROCEEDING message to not generate an AST_CONTROL_PROGRESS frame if the progress indication ie indicates non-end-to-end-ISDN. This helps interoperability with SIP. * Changed sending a PROCEEDING message in response to an AST_CONTROL_PROCEEDING frame to not indicate inband audio available. It was silly to do so anyway because the channel driver doesn't know if inband audio is even available. This helps interoperability with SIP. This patch and a corresponding change in libpri work together to allow Asterisk to control the inband audio available progress indication ie on the SETUP_ACKNOWLEDGE message when dialtone is present. AST-1338 #close Reported by: Tyler Stewart Review: https://reviewboard.asterisk.org/r/3521/ ........ Merged revisions 413714 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 413765 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/11.6@413773 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/sig_pri.c | 87 +++++++++++++----- configure | 147 +++++++++++++++++++++++++++++-- configure.ac | 2 + include/asterisk/autoconfig.h.in | 9 +- 4 files changed, 209 insertions(+), 36 deletions(-) diff --git a/channels/sig_pri.c b/channels/sig_pri.c index 01ceffce9a..dce5fe0361 100644 --- a/channels/sig_pri.c +++ b/channels/sig_pri.c @@ -2019,10 +2019,10 @@ static void *pri_ss_thread(void *data) /* Start the real PBX */ ast_channel_exten_set(chan, exten); sig_pri_dsp_reset_and_flush_digits(p); -#if defined(ISSUE_16789) +#if defined(JIRA_ASTERISK_15594) /* - * Conditionaled out this code to effectively revert the Mantis - * issue 16789 change. It breaks overlap dialing through + * Conditionaled out this code to effectively revert the JIRA + * ASTERISK-15594 change. It breaks overlap dialing through * Asterisk. There is not enough information available at this * point to know if dialing is complete. The * ast_exists_extension(), ast_matchmore_extension(), and @@ -2045,7 +2045,7 @@ static void *pri_ss_thread(void *data) } sig_pri_unlock_private(p); } -#endif /* defined(ISSUE_16789) */ +#endif /* defined(JIRA_ASTERISK_15594) */ sig_pri_set_echocanceller(p, 1); ast_setstate(chan, AST_STATE_RING); @@ -6318,6 +6318,9 @@ static void *pri_dchannel(void *vpri) /* Make sure extension exists (or in overlap dial mode, can exist) */ if (((pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING) && ast_canmatch_extension(NULL, pri->pvts[chanpos]->context, pri->pvts[chanpos]->exten, 1, pri->pvts[chanpos]->cid_num)) || ast_exists_extension(NULL, pri->pvts[chanpos]->context, pri->pvts[chanpos]->exten, 1, pri->pvts[chanpos]->cid_num)) { + int could_match_more; + int need_dialtone; + /* Select audio companding mode. */ switch (e->ring.layer1) { case PRI_LAYER_1_ALAW: @@ -6332,6 +6335,23 @@ static void *pri_dchannel(void *vpri) break; } + could_match_more = !e->ring.complete + && (pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING) + && ast_matchmore_extension(NULL, pri->pvts[chanpos]->context, + pri->pvts[chanpos]->exten, 1, pri->pvts[chanpos]->cid_num); + + need_dialtone = could_match_more + /* + * Must explicitly check the digital capability this + * way instead of checking the pvt->digital flag + * because the flag hasn't been set yet. + */ + && !(e->ring.ctype & AST_TRANS_CAP_DIGITAL) + && !pri->pvts[chanpos]->no_b_channel + && (!strlen(pri->pvts[chanpos]->exten) + || ast_ignore_pattern(pri->pvts[chanpos]->context, + pri->pvts[chanpos]->exten)); + if (e->ring.complete || !(pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING)) { /* Just announce proceeding */ pri->pvts[chanpos]->call_level = SIG_PRI_CALL_LEVEL_PROCEEDING; @@ -6341,13 +6361,17 @@ static void *pri_dchannel(void *vpri) pri_answer(pri->pri, e->ring.call, PVT_TO_CHANNEL(pri->pvts[chanpos]), 1); } else { pri->pvts[chanpos]->call_level = SIG_PRI_CALL_LEVEL_OVERLAP; - pri_need_more_info(pri->pri, e->ring.call, PVT_TO_CHANNEL(pri->pvts[chanpos]), 1); +#if defined(HAVE_PRI_SETUP_ACK_INBAND) + pri_setup_ack(pri->pri, e->ring.call, + PVT_TO_CHANNEL(pri->pvts[chanpos]), 1, need_dialtone); +#else /* !defined(HAVE_PRI_SETUP_ACK_INBAND) */ + pri_need_more_info(pri->pri, e->ring.call, + PVT_TO_CHANNEL(pri->pvts[chanpos]), 1); +#endif /* !defined(HAVE_PRI_SETUP_ACK_INBAND) */ } /* Start PBX */ - if (!e->ring.complete - && (pri->overlapdial & DAHDI_OVERLAPDIAL_INCOMING) - && ast_matchmore_extension(NULL, pri->pvts[chanpos]->context, pri->pvts[chanpos]->exten, 1, pri->pvts[chanpos]->cid_num)) { + if (could_match_more) { /* * Release the PRI lock while we create the channel so other * threads can send D channel messages. We must also release @@ -6431,12 +6455,9 @@ static void *pri_dchannel(void *vpri) sig_pri_handle_subcmds(pri, chanpos, e->e, e->ring.subcmds, e->ring.call); - if (!pri->pvts[chanpos]->digital - && !pri->pvts[chanpos]->no_b_channel) { - /* - * Call has a channel. - * Indicate that we are providing dialtone. - */ +#if !defined(HAVE_PRI_SETUP_ACK_INBAND) + if (need_dialtone) { + /* Indicate that we are providing dialtone. */ pri->pvts[chanpos]->progress = 1;/* No need to send plain PROGRESS again. */ #ifdef HAVE_PRI_PROG_W_CAUSE pri_progress_with_cause(pri->pri, e->ring.call, @@ -6446,6 +6467,7 @@ static void *pri_dchannel(void *vpri) PVT_TO_CHANNEL(pri->pvts[chanpos]), 1); #endif } +#endif /* !defined(HAVE_PRI_SETUP_ACK_INBAND) */ } if (c && !ast_pthread_create_detached(&threadid, NULL, pri_ss_thread, pri->pvts[chanpos])) { ast_verb(3, "Accepting overlap call from '%s' to '%s' on channel %d/%d, span %d\n", @@ -6744,8 +6766,15 @@ static void *pri_dchannel(void *vpri) if (!pri->pvts[chanpos]->progress && !pri->pvts[chanpos]->no_b_channel #ifdef PRI_PROGRESS_MASK - && (e->proceeding.progressmask - & (PRI_PROG_CALL_NOT_E2E_ISDN | PRI_PROG_INBAND_AVAILABLE)) + /* + * We only care about PRI_PROG_INBAND_AVAILABLE to open the + * voice path. + * + * We explicitly DO NOT want to check PRI_PROG_CALL_NOT_E2E_ISDN + * because it will mess up ISDN to SIP interoperability for + * the ALERTING message. + */ + && (e->proceeding.progressmask & PRI_PROG_INBAND_AVAILABLE) #else && e->proceeding.progress == 8 #endif @@ -6756,6 +6785,12 @@ static void *pri_dchannel(void *vpri) sig_pri_set_dialing(pri->pvts[chanpos], 0); sig_pri_open_media(pri->pvts[chanpos]); } else if (pri->inband_on_proceeding) { + /* + * XXX This is to accomodate a broken switch that sends a + * PROCEEDING without any progress indication ie for + * inband audio. This should be part of the conditional + * test above to bring the voice path up. + */ sig_pri_set_dialing(pri->pvts[chanpos], 0); } sig_pri_unlock_private(pri->pvts[chanpos]); @@ -7374,7 +7409,19 @@ static void *pri_dchannel(void *vpri) if (!pri->pvts[chanpos]->progress && (pri->overlapdial & DAHDI_OVERLAPDIAL_OUTGOING) && !pri->pvts[chanpos]->digital - && !pri->pvts[chanpos]->no_b_channel) { + && !pri->pvts[chanpos]->no_b_channel +#if defined(HAVE_PRI_SETUP_ACK_INBAND) + /* + * We only care about PRI_PROG_INBAND_AVAILABLE to open the + * voice path. + * + * We explicitly DO NOT want to check PRI_PROG_CALL_NOT_E2E_ISDN + * because it will mess up ISDN to SIP interoperability for + * the ALERTING message. + */ + && (e->setup_ack.progressmask & PRI_PROG_INBAND_AVAILABLE) +#endif /* defined(HAVE_PRI_SETUP_ACK_INBAND) */ + ) { /* * Call has a channel. * Indicate for overlap dialing that dialtone may be present. @@ -8235,11 +8282,7 @@ int sig_pri_indicate(struct sig_pri_chan *p, struct ast_channel *chan, int condi p->call_level = SIG_PRI_CALL_LEVEL_PROCEEDING; if (p->pri && p->pri->pri) { pri_grab(p, p->pri); - pri_proceeding(p->pri->pri,p->call, PVT_TO_CHANNEL(p), - p->no_b_channel || p->digital ? 0 : 1); - if (!p->no_b_channel && !p->digital) { - sig_pri_set_dialing(p, 0); - } + pri_proceeding(p->pri->pri,p->call, PVT_TO_CHANNEL(p), 0); pri_rel(p->pri); } } diff --git a/configure b/configure index ef61942089..27739a68a6 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Revision: 388769 . +# From configure.ac Revision: 402382 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for asterisk trunk. # @@ -871,6 +871,10 @@ PBX_PRI_L2_PERSISTENCE PRI_L2_PERSISTENCE_DIR PRI_L2_PERSISTENCE_INCLUDE PRI_L2_PERSISTENCE_LIB +PBX_PRI_SETUP_ACK_INBAND +PRI_SETUP_ACK_INBAND_DIR +PRI_SETUP_ACK_INBAND_INCLUDE +PRI_SETUP_ACK_INBAND_LIB PBX_PRI PRI_DIR PRI_INCLUDE @@ -9941,6 +9945,18 @@ fi +PRI_SETUP_ACK_INBAND_DESCRIP="ISDN PRI progress inband ie in SETUP ACK" +PRI_SETUP_ACK_INBAND_OPTION=pri +PRI_SETUP_ACK_INBAND_DIR=${PRI_DIR} + +PBX_PRI_SETUP_ACK_INBAND=0 + + + + + + + PRI_L2_PERSISTENCE_DESCRIP="ISDN Layer 2 persistence option" PRI_L2_PERSISTENCE_OPTION=pri PRI_L2_PERSISTENCE_DIR=${PRI_DIR} @@ -17057,6 +17073,7 @@ LIBS=${old_LIBS} + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. @@ -18263,6 +18280,7 @@ if test -n "$ILBC_CFLAGS"; then $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_ILBC_CFLAGS=`$PKG_CONFIG --cflags "libilbc" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -18279,6 +18297,7 @@ if test -n "$ILBC_LIBS"; then $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_ILBC_LIBS=`$PKG_CONFIG --libs "libilbc" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -18298,9 +18317,9 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - ILBC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libilbc" 2>&1` + ILBC_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libilbc" 2>&1` else - ILBC_PKG_ERRORS=`$PKG_CONFIG --print-errors "libilbc" 2>&1` + ILBC_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libilbc" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$ILBC_PKG_ERRORS" >&5 @@ -18368,6 +18387,7 @@ if test -n "$LIBEDIT_CFLAGS"; then $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBEDIT_CFLAGS=`$PKG_CONFIG --cflags "libedit" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -18384,6 +18404,7 @@ if test -n "$LIBEDIT_LIBS"; then $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_LIBEDIT_LIBS=`$PKG_CONFIG --libs "libedit" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -18403,9 +18424,9 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LIBEDIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libedit" 2>&1` + LIBEDIT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libedit" 2>&1` else - LIBEDIT_PKG_ERRORS=`$PKG_CONFIG --print-errors "libedit" 2>&1` + LIBEDIT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libedit" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$LIBEDIT_PKG_ERRORS" >&5 @@ -22975,6 +22996,110 @@ fi +if test "x${PBX_PRI_SETUP_ACK_INBAND}" != "x1" -a "${USE_PRI_SETUP_ACK_INBAND}" != "no"; then + pbxlibdir="" + # if --with-PRI_SETUP_ACK_INBAND=DIR has been specified, use it. + if test "x${PRI_SETUP_ACK_INBAND_DIR}" != "x"; then + if test -d ${PRI_SETUP_ACK_INBAND_DIR}/lib; then + pbxlibdir="-L${PRI_SETUP_ACK_INBAND_DIR}/lib" + else + pbxlibdir="-L${PRI_SETUP_ACK_INBAND_DIR}" + fi + fi + pbxfuncname="pri_setup_ack" + if test "x${pbxfuncname}" = "x" ; then # empty lib, assume only headers + AST_PRI_SETUP_ACK_INBAND_FOUND=yes + else + ast_ext_lib_check_save_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} " + as_ac_Lib=`$as_echo "ac_cv_lib_pri_${pbxfuncname}" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lpri" >&5 +$as_echo_n "checking for ${pbxfuncname} in -lpri... " >&6; } +if eval \${$as_ac_Lib+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpri ${pbxlibdir} $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ${pbxfuncname} (); +int +main () +{ +return ${pbxfuncname} (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_ac_Lib=yes" +else + eval "$as_ac_Lib=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +eval ac_res=\$$as_ac_Lib + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + AST_PRI_SETUP_ACK_INBAND_FOUND=yes +else + AST_PRI_SETUP_ACK_INBAND_FOUND=no +fi + + CFLAGS="${ast_ext_lib_check_save_CFLAGS}" + fi + + # now check for the header. + if test "${AST_PRI_SETUP_ACK_INBAND_FOUND}" = "yes"; then + PRI_SETUP_ACK_INBAND_LIB="${pbxlibdir} -lpri " + # if --with-PRI_SETUP_ACK_INBAND=DIR has been specified, use it. + if test "x${PRI_SETUP_ACK_INBAND_DIR}" != "x"; then + PRI_SETUP_ACK_INBAND_INCLUDE="-I${PRI_SETUP_ACK_INBAND_DIR}/include" + fi + PRI_SETUP_ACK_INBAND_INCLUDE="${PRI_SETUP_ACK_INBAND_INCLUDE} " + if test "xlibpri.h" = "x" ; then # no header, assume found + PRI_SETUP_ACK_INBAND_HEADER_FOUND="1" + else # check for the header + ast_ext_lib_check_saved_CPPFLAGS="${CPPFLAGS}" + CPPFLAGS="${CPPFLAGS} ${PRI_SETUP_ACK_INBAND_INCLUDE}" + ac_fn_c_check_header_mongrel "$LINENO" "libpri.h" "ac_cv_header_libpri_h" "$ac_includes_default" +if test "x$ac_cv_header_libpri_h" = xyes; then : + PRI_SETUP_ACK_INBAND_HEADER_FOUND=1 +else + PRI_SETUP_ACK_INBAND_HEADER_FOUND=0 +fi + + + CPPFLAGS="${ast_ext_lib_check_saved_CPPFLAGS}" + fi + if test "x${PRI_SETUP_ACK_INBAND_HEADER_FOUND}" = "x0" ; then + PRI_SETUP_ACK_INBAND_LIB="" + PRI_SETUP_ACK_INBAND_INCLUDE="" + else + if test "x${pbxfuncname}" = "x" ; then # only checking headers -> no library + PRI_SETUP_ACK_INBAND_LIB="" + fi + PBX_PRI_SETUP_ACK_INBAND=1 + cat >>confdefs.h <<_ACEOF +#define HAVE_PRI_SETUP_ACK_INBAND 1 +_ACEOF + + fi + fi +fi + + + if test "x${PBX_PRI_L2_PERSISTENCE}" != "x1" -a "${USE_PRI_L2_PERSISTENCE}" != "no"; then pbxlibdir="" # if --with-PRI_L2_PERSISTENCE=DIR has been specified, use it. @@ -28101,6 +28226,7 @@ if test -n "$GMIME_CFLAGS"; then $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GMIME_CFLAGS=`$PKG_CONFIG --cflags "gmime-$ver" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -28117,6 +28243,7 @@ if test -n "$GMIME_LIBS"; then $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GMIME_LIBS=`$PKG_CONFIG --libs "gmime-$ver" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -28136,9 +28263,9 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GMIME_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gmime-$ver" 2>&1` + GMIME_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gmime-$ver" 2>&1` else - GMIME_PKG_ERRORS=`$PKG_CONFIG --print-errors "gmime-$ver" 2>&1` + GMIME_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gmime-$ver" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GMIME_PKG_ERRORS" >&5 @@ -29873,6 +30000,7 @@ if test -n "$GTK2_CFLAGS"; then $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK2_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -29889,6 +30017,7 @@ if test -n "$GTK2_LIBS"; then $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK2_LIBS=`$PKG_CONFIG --libs "gtk+-2.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -29908,9 +30037,9 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GTK2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0" 2>&1` + GTK2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-2.0" 2>&1` else - GTK2_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0" 2>&1` + GTK2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-2.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTK2_PKG_ERRORS" >&5 diff --git a/configure.ac b/configure.ac index 33d5bbf917..f466c0d239 100644 --- a/configure.ac +++ b/configure.ac @@ -428,6 +428,7 @@ AST_EXT_LIB_SETUP([PGSQL], [PostgreSQL], [postgres]) AST_EXT_LIB_SETUP([POPT], [popt], [popt]) AST_EXT_LIB_SETUP([PORTAUDIO], [PortAudio], [portaudio]) AST_EXT_LIB_SETUP([PRI], [ISDN PRI], [pri]) +AST_EXT_LIB_SETUP_OPTIONAL([PRI_SETUP_ACK_INBAND], [ISDN PRI progress inband ie in SETUP ACK], [PRI], [pri]) AST_EXT_LIB_SETUP_OPTIONAL([PRI_L2_PERSISTENCE], [ISDN Layer 2 persistence option], [PRI], [pri]) AST_EXT_LIB_SETUP_OPTIONAL([PRI_DATETIME_SEND], [ISDN PRI Date/time ie send policy], [PRI], [pri]) AST_EXT_LIB_SETUP_OPTIONAL([PRI_MWI_V2], [ISDN PRI Message Waiting Indication (Fixed)], [PRI], [pri]) @@ -2006,6 +2007,7 @@ AST_EXT_LIB_CHECK([POPT], [popt], [poptStrerror], [popt.h]) AST_EXT_LIB_CHECK([PORTAUDIO], [portaudio], [Pa_GetDeviceCount], [portaudio.h]) AST_EXT_LIB_CHECK([PRI], [pri], [pri_connected_line_update], [libpri.h]) +AST_EXT_LIB_CHECK([PRI_SETUP_ACK_INBAND], [pri], [pri_setup_ack], [libpri.h]) AST_EXT_LIB_CHECK([PRI_L2_PERSISTENCE], [pri], [pri_persistent_layer2_option], [libpri.h]) AST_EXT_LIB_CHECK([PRI_DATETIME_SEND], [pri], [pri_date_time_send_option], [libpri.h]) AST_EXT_LIB_CHECK([PRI_MWI_V2], [pri], [pri_mwi_indicate_v2], [libpri.h]) diff --git a/include/asterisk/autoconfig.h.in b/include/asterisk/autoconfig.h.in index b817c88410..838ac1b67f 100644 --- a/include/asterisk/autoconfig.h.in +++ b/include/asterisk/autoconfig.h.in @@ -626,6 +626,10 @@ /* Define to 1 if PRI has the ISDN service messages feature. */ #undef HAVE_PRI_SERVICE_MESSAGES +/* Define to 1 if PRI has the ISDN PRI progress inband ie in SETUP ACK + feature. */ +#undef HAVE_PRI_SETUP_ACK_INBAND + /* Define to 1 if PRI has the ISDN PRI keypad facility in SETUP feature. */ #undef HAVE_PRI_SETUP_KEYPAD @@ -1232,11 +1236,6 @@ /* Define to 1 if running on Darwin. */ #undef _DARWIN_UNLIMITED_SELECT -/* Enable large inode numbers on Mac OS X 10.5. */ -#ifndef _DARWIN_USE_64_BIT_INODE -# define _DARWIN_USE_64_BIT_INODE 1 -#endif - /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS -- GitLab