dect
/
asterisk
Archived
13
0
Fork 0

Add MFC/R2 support for chan_dahdi.

This commit introduces official support for R2 signaling in chan_dahdi.  The
modifications to chan_dahdi, and the supporting library, LibOpenR2, were both
written by Moises Silva.

Many users are using this code, or a variant of it, in Asterisk 1.2, 1.4 and 1.6
in Brazil, México and Argentina. An unknown number of users (but at least 1) 
are using it in each of the following countries: Colombia, Nepal, Thailand, 
Venezuela, Perú, and probably others.

To use this code, LibOpenR2 must be installed from http://www.libopenr2.org/.
Information about configuration can be found in configs/chan_dahdi.conf.sample.

The code committed is the most up to date version, which was being maintained
in svn/asterisk/team/moy/mfcr2/.

I would also like to include a Thank You to the many others that tested this
code beyond those listed in this commit message.  These are the names that I
could find in the mantis issue.

(closes issue #12509)
Reported by: moy
Patches:
      chan_zap-mfr2.patch uploaded by moy (license 222)
Tested by: moy, korihor, viniciusfontes, Skarmeth, loloski, asbestoshead, titogarrido, heliocoelhojr, konsultex, ncorrare, ecarruda, rtorresduque, PTorres, ychen

Review: http://reviewboard.digium.com/r/40/


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@182355 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
russell 2009-03-16 20:35:58 +00:00
parent 7e93a38456
commit da10000f37
8 changed files with 2022 additions and 33 deletions

View File

@ -66,6 +66,8 @@ Skinny Changes
DAHDI Changes
-------------
* chan_dahdi now supports MFC/R2 signaling when Asterisk is compiled with
support for LibOpenR2. http://www.libopenr2.org/
* The UK option waitfordialtone has been added for use with BT analog
lines.
* Added a 'faxbuffers' configuration option to chan_dahdi.conf. This option

View File

@ -194,6 +194,9 @@ Sergey Tamkovich - Realtime support for MusicOnHold, store and destroy realtime
Klaus Darillon - the SIPremoveHeader function in chan_sip
Moises Silva (moy) - for writing LibOpenR2, and providing support for it in chan_dahdi
moises.silva(AT)gmail.com
=== OTHER CONTRIBUTIONS ===
John Todd - Monkey sounds and associated teletorture prompt
Michael Jerris - bug marshaling

File diff suppressed because it is too large Load Diff

View File

@ -249,6 +249,7 @@
; sf_featb: SF Feature Group B (MF (domestic, US))
; e911: E911 (MF) style signalling
; ss7: Signalling System 7
; mfcr2: MFC/R2 Signalling. To specify the country variant see 'mfcr2_variant'
;
; The following are used for Radio interfaces:
; fxs_rx: Receive audio/COR on an FXS kewlstart interface (FXO at the
@ -993,6 +994,154 @@ pickupgroup=1
; the doc/ss7.txt file in the Asterisk source tree.
; ----------------- SS7 Options ----------------------------------------
; ---------------- Options for use with signalling=mfcr2 --------------
; MFC/R2 variant. This depends on the OpenR2 supported variants
; A list of values can be found at libopenr2.org
; some valid values are:
; ar (Argentina)
; br (Brazil)
; mx (Mexico)
; ph (Philippines)
; itu (per ITU spec)
; mfcr2_variant=mx
; whether or not to get the ANI before getting DNIS.
; some telcos require ANI first some others do not care
; if this go wrong, change this value
; mfcr2_get_ani_first=no
; Max amount of ANI to ask for
; mfcr2_max_ani=10
; Max amount of DNIS to ask for
; mfcr2_max_dnis=4
; Caller Category to send
; national_subscriber
; national_priority_subscriber
; international_subscriber
; international_priority_subscriber
; collect_call
; usually national_subscriber works just fine
; you can change this setting from the dialplan
; by setting the variable MFCR2_CATEGORY
; (remember to set _MFCR2_CATEGORY from originating channels)
; MFCR2_CATEGORY will also be a variable available
; on incoming calls set to the value received from
; the far end
; mfcr2_category=national_subscriber
; Call logging is stored at the Asterisk
; logging directory specified in asterisk.conf
; plus mfcr2/<whatever you put here>
; if you specify 'span1' here and asterisk.conf has
; as logging directory /var/log/asterisk then the full
; path to your MFC/R2 call logs will be /var/log/asterisk/mfcr2/span1
; (the directory will be automatically created if not present already)
; remember to set mfcr2_call_files=yes
; mfcr2_logdir=span1
; whether or not to drop call files into mfcr2_logdir
; mfcr2_call_files=yes|no
; MFC/R2 valid logging values are: all,error,warning,debug,notice,cas,mf,stack,nothing
; error,warning,debug and notice are self-descriptive
; 'cas' is for logging ABCD CAS tx and rx
; 'mf' is for logging of the Multi Frequency tones
; 'stack' is for very verbose output of the channel and context call stack, only useful
; if you are debugging a crash or want to learn how the library works. The stack logging
; will be only enabled if the openr2 library was compiled with -DOR2_TRACE_STACKS
; You can mix up values, like: loglevel=error,debug,mf to log just error, debug and
; multi frequency messages
; 'all' is a special value to log all the activity
; 'nothing' is a clean-up value, in case you want to not log any activity for
; a channel or group of channels
; BE AWARE that the level of output logged will ALSO depend on
; the value you have in logger.conf, if you disable output in logger.conf
; then it does not matter you specify 'all' here, nothing will be logged
; so logger.conf has the last word on what is going to be logged
; mfcr2_logging=all
; MFC/R2 value in milliseconds for the MF timeout. Any negative value
; means 'default', smaller values than 500ms are not recommended
; and can cause malfunctioning. If you experience protocol error
; due to MF timeout try incrementing this value in 500ms steps
; mfcr2_mfback_timeout=-1
; MFC/R2 value in milliseconds for the metering pulse timeout.
; Metering pulses are sent by some telcos for some R2 variants
; during a call presumably for billing purposes to indicate costs,
; however this pulses use the same signal that is used to indicate
; call hangup, therefore a timeout is sometimes required to distinguish
; between a *real* hangup and a billing pulse that should not
; last more than 500ms, If you experience call drops after some
; minutes of being stablished try setting a value of some ms here,
; values greater than 500ms are not recommended.
; BE AWARE that choosing the proper protocol mfcr2_variant parameter
; implicitly sets a good recommended value for this timer, use this
; parameter only when you *really* want to override the default, otherwise
; just comment out this value or put a -1
; Any negative value means 'default'.
; mfcr2_metering_pulse_timeout=-1
; Brazil uses a special calling party category for collect calls (llamadas por cobrar)
; instead of using the operator (as in Mexico). The R2 spec in Brazil says a special GB tone
; should be used to reject collect calls. If you want to ALLOW collect calls specify 'yes',
; if you want to BLOCK collect calls then say 'no'. Default is to block collect calls.
; (see also 'mfcr2_double_answer')
; mfcr2_allow_collect_calls=no
; This feature is related but independent of mfcr2_allow_collect_calls
; Some PBX's require a double-answer process to block collect calls, if
; you ever have problems blocking collect calls using Group B signals (mfcr2_allow_collect_calls=no)
; then you may want to try with mfcr2_double_answer=yes, this will cause that every answer signal
; is changed by answer->clear back->answer (sort of a flash)
; (see also 'mfcr2_allow_collect_calls')
; mfcr2_double_answer=no
; This feature allows to skip the use of Group B/II signals and go directly
; to the accepted state for incoming calls
; mfcr2_immediate_accept=no
; You most likely dont need this feature. Default is yes.
; When this is set to yes, all calls that are offered (incoming calls) which
; DNIS is valid (exists in extensions.conf) and pass collect call validation
; will be accepted with a Group B tone (either call with charge or not, depending on mfcr2_charge_calls)
; with this set to 'no' then the call will NOT be accepted on offered, and the call will start its
; execution in extensions.conf without being accepted until the channel is answered (either with Answer() or
; any other application resulting in the channel being answered).
; This can be set to 'no' if your telco or PBX needs the hangup cause to be set accurately
; when this option is set to no you must explicitly accept the call with DAHDIAcceptR2Call
; or implicitly through the Answer() application.
; mfcr2_accept_on_offer=yes
; WARNING: advanced users only! I really mean it
; this parameter is commented by default because
; YOU DON'T NEED IT UNLESS YOU REALLY GROK MFC/R2
; READ COMMENTS on doc/r2proto.conf in openr2 package
; for more info
; mfcr2_advanced_protocol_file=/path/to/r2proto.conf
; Brazil use a special signal to force the release of the line (hangup) from the
; backward perspective. When mfcr2_forced_release=no, the normal clear back signal
; will be sent on hangup, which is OK for all mfcr2 variants I know of, except for
; Brazilian variant, where the central will leave the line up for several seconds (30, 60)
; which sometimes is not what people really want. When mfcr2_forced_release=yes, a different
; signal will be sent to hangup the call indicating that the line should be released immediately
; mfcr2_forced_release=no
; Whether or not report to the other end 'accept call with charge'
; This setting has no effect with most telecos, usually is safe
; leave the default (yes), but once in a while when interconnecting with
; old PBXs this may be useful.
; Concretely this affects the Group B signal used to accept calls
; The application DAHDIAcceptR2Call can also be used to decide this
; in the dial plan in a per-call basis instead of doing it here for all calls
; mfcr2_charge_calls=yes
; ---------------- END of options to be used with signalling=mfcr2
; Configuration Sections
; ~~~~~~~~~~~~~~~~~~~~~~
; You can also configure channels in a separate dahdi.conf section. In

322
configure vendored
View File

@ -1,5 +1,5 @@
#! /bin/sh
# From configure.ac Revision: 180944 .
# From configure.ac Revision: 182170 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for asterisk 1.6.
#
@ -879,6 +879,10 @@ SS7_LIB
SS7_INCLUDE
SS7_DIR
PBX_SS7
OPENR2_LIB
OPENR2_INCLUDE
OPENR2_DIR
PBX_OPENR2
PWLIB_LIB
PWLIB_INCLUDE
PWLIB_DIR
@ -1659,6 +1663,7 @@ Optional Packages:
--with-resample=PATH use LIBRESAMPLE files in PATH
--with-spandsp=PATH use SPANDSP files in PATH
--with-ss7=PATH use ISDN SS7 files in PATH
--with-openr2=PATH use MFR2 files in PATH
--with-pwlib=PATH use PWlib files in PATH
--with-h323=PATH use OpenH323 files in PATH
--with-radius=PATH use Radius Client files in PATH
@ -9298,6 +9303,37 @@ fi
OPENR2_DESCRIP="MFR2"
OPENR2_OPTION="openr2"
PBX_OPENR2=0
# Check whether --with-openr2 was given.
if test "${with_openr2+set}" = set; then
withval=$with_openr2;
case ${withval} in
n|no)
USE_OPENR2=no
# -1 is a magic value used by menuselect to know that the package
# was disabled, other than 'not found'
PBX_OPENR2=-1
;;
y|ye|yes)
ac_mandatory_list="${ac_mandatory_list} OPENR2"
;;
*)
OPENR2_DIR="${withval}"
ac_mandatory_list="${ac_mandatory_list} OPENR2"
;;
esac
fi
PWLIB_DESCRIP="PWlib"
PWLIB_OPTION="pwlib"
PBX_PWLIB=0
@ -43130,6 +43166,268 @@ _ACEOF
fi
if test "x${PBX_OPENR2}" != "x1" -a "${USE_OPENR2}" != "no"; then
pbxlibdir=""
# if --with-OPENR2=DIR has been specified, use it.
if test "x${OPENR2_DIR}" != "x"; then
if test -d ${OPENR2_DIR}/lib; then
pbxlibdir="-L${OPENR2_DIR}/lib"
else
pbxlibdir="-L${OPENR2_DIR}"
fi
fi
pbxfuncname="openr2_chan_new"
if test "x${pbxfuncname}" = "x" ; then # empty lib, assume only headers
AST_OPENR2_FOUND=yes
else
as_ac_Lib=`echo "ac_cv_lib_openr2_${pbxfuncname}" | $as_tr_sh`
{ echo "$as_me:$LINENO: checking for ${pbxfuncname} in -lopenr2" >&5
echo $ECHO_N "checking for ${pbxfuncname} in -lopenr2... $ECHO_C" >&6; }
if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lopenr2 ${pbxlibdir} $LIBS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* 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
rm -f conftest.$ac_objext conftest$ac_exeext
if { (ac_try="$ac_link"
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_link") 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); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
eval "$as_ac_Lib=yes"
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
eval "$as_ac_Lib=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
ac_res=`eval echo '${'$as_ac_Lib'}'`
{ echo "$as_me:$LINENO: result: $ac_res" >&5
echo "${ECHO_T}$ac_res" >&6; }
if test `eval echo '${'$as_ac_Lib'}'` = yes; then
AST_OPENR2_FOUND=yes
else
AST_OPENR2_FOUND=no
fi
fi
# now check for the header.
if test "${AST_OPENR2_FOUND}" = "yes"; then
OPENR2_LIB="${pbxlibdir} -lopenr2 "
# if --with-OPENR2=DIR has been specified, use it.
if test "x${OPENR2_DIR}" != "x"; then
OPENR2_INCLUDE="-I${OPENR2_DIR}/include"
fi
OPENR2_INCLUDE="${OPENR2_INCLUDE} "
if test "xopenr2.h" = "x" ; then # no header, assume found
OPENR2_HEADER_FOUND="1"
else # check for the header
saved_cppflags="${CPPFLAGS}"
CPPFLAGS="${CPPFLAGS} ${OPENR2_INCLUDE}"
if test "${ac_cv_header_openr2_h+set}" = set; then
{ echo "$as_me:$LINENO: checking for openr2.h" >&5
echo $ECHO_N "checking for openr2.h... $ECHO_C" >&6; }
if test "${ac_cv_header_openr2_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
fi
{ echo "$as_me:$LINENO: result: $ac_cv_header_openr2_h" >&5
echo "${ECHO_T}$ac_cv_header_openr2_h" >&6; }
else
# Is the header compilable?
{ echo "$as_me:$LINENO: checking openr2.h usability" >&5
echo $ECHO_N "checking openr2.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 <openr2.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); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; 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 openr2.h presence" >&5
echo $ECHO_N "checking openr2.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 <openr2.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 && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.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: openr2.h: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: openr2.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
{ echo "$as_me:$LINENO: WARNING: openr2.h: proceeding with the compiler's result" >&5
echo "$as_me: WARNING: openr2.h: proceeding with the compiler's result" >&2;}
ac_header_preproc=yes
;;
no:yes:* )
{ echo "$as_me:$LINENO: WARNING: openr2.h: present but cannot be compiled" >&5
echo "$as_me: WARNING: openr2.h: present but cannot be compiled" >&2;}
{ echo "$as_me:$LINENO: WARNING: openr2.h: check for missing prerequisite headers?" >&5
echo "$as_me: WARNING: openr2.h: check for missing prerequisite headers?" >&2;}
{ echo "$as_me:$LINENO: WARNING: openr2.h: see the Autoconf documentation" >&5
echo "$as_me: WARNING: openr2.h: see the Autoconf documentation" >&2;}
{ echo "$as_me:$LINENO: WARNING: openr2.h: section \"Present But Cannot Be Compiled\"" >&5
echo "$as_me: WARNING: openr2.h: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: openr2.h: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: openr2.h: proceeding with the preprocessor's result" >&2;}
{ echo "$as_me:$LINENO: WARNING: openr2.h: in the future, the compiler will take precedence" >&5
echo "$as_me: WARNING: openr2.h: in the future, the compiler will take precedence" >&2;}
( cat <<\_ASBOX
## ------------------------------- ##
## Report this to www.asterisk.org ##
## ------------------------------- ##
_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
esac
{ echo "$as_me:$LINENO: checking for openr2.h" >&5
echo $ECHO_N "checking for openr2.h... $ECHO_C" >&6; }
if test "${ac_cv_header_openr2_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_cv_header_openr2_h=$ac_header_preproc
fi
{ echo "$as_me:$LINENO: result: $ac_cv_header_openr2_h" >&5
echo "${ECHO_T}$ac_cv_header_openr2_h" >&6; }
fi
if test $ac_cv_header_openr2_h = yes; then
OPENR2_HEADER_FOUND=1
else
OPENR2_HEADER_FOUND=0
fi
CPPFLAGS="${saved_cppflags}"
fi
if test "x${OPENR2_HEADER_FOUND}" = "x0" ; then
OPENR2_LIB=""
OPENR2_INCLUDE=""
else
if test "x${pbxfuncname}" = "x" ; then # only checking headers -> no library
OPENR2_LIB=""
fi
PBX_OPENR2=1
# XXX don't know how to evaluate the description (third argument) in AC_DEFINE_UNQUOTED
cat >>confdefs.h <<_ACEOF
#define HAVE_OPENR2 1
_ACEOF
cat >>confdefs.h <<_ACEOF
#define HAVE_OPENR2_VERSION
_ACEOF
fi
fi
fi
if test "${USE_PWLIB}" != "no"; then
if test -n "${PWLIB_DIR}"; then
PWLIBDIR="${PWLIB_DIR}"
@ -54018,6 +54316,10 @@ SS7_LIB!$SS7_LIB$ac_delim
SS7_INCLUDE!$SS7_INCLUDE$ac_delim
SS7_DIR!$SS7_DIR$ac_delim
PBX_SS7!$PBX_SS7$ac_delim
OPENR2_LIB!$OPENR2_LIB$ac_delim
OPENR2_INCLUDE!$OPENR2_INCLUDE$ac_delim
OPENR2_DIR!$OPENR2_DIR$ac_delim
PBX_OPENR2!$PBX_OPENR2$ac_delim
PWLIB_LIB!$PWLIB_LIB$ac_delim
PWLIB_INCLUDE!$PWLIB_INCLUDE$ac_delim
PWLIB_DIR!$PWLIB_DIR$ac_delim
@ -54045,10 +54347,6 @@ PBX_OPENAIS!$PBX_OPENAIS$ac_delim
SPEEX_LIB!$SPEEX_LIB$ac_delim
SPEEX_INCLUDE!$SPEEX_INCLUDE$ac_delim
SPEEX_DIR!$SPEEX_DIR$ac_delim
PBX_SPEEX!$PBX_SPEEX$ac_delim
SPEEX_PREPROCESS_LIB!$SPEEX_PREPROCESS_LIB$ac_delim
SPEEX_PREPROCESS_INCLUDE!$SPEEX_PREPROCESS_INCLUDE$ac_delim
SPEEX_PREPROCESS_DIR!$SPEEX_PREPROCESS_DIR$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@ -54090,6 +54388,10 @@ _ACEOF
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
PBX_SPEEX!$PBX_SPEEX$ac_delim
SPEEX_PREPROCESS_LIB!$SPEEX_PREPROCESS_LIB$ac_delim
SPEEX_PREPROCESS_INCLUDE!$SPEEX_PREPROCESS_INCLUDE$ac_delim
SPEEX_PREPROCESS_DIR!$SPEEX_PREPROCESS_DIR$ac_delim
PBX_SPEEX_PREPROCESS!$PBX_SPEEX_PREPROCESS$ac_delim
SPEEXDSP_LIB!$SPEEXDSP_LIB$ac_delim
SPEEXDSP_INCLUDE!$SPEEXDSP_INCLUDE$ac_delim
@ -54183,10 +54485,6 @@ PWLIB_INCDIR!$PWLIB_INCDIR$ac_delim
PWLIB_LIBDIR!$PWLIB_LIBDIR$ac_delim
PWLIB_PLATFORM!$PWLIB_PLATFORM$ac_delim
OPENH323DIR!$OPENH323DIR$ac_delim
OPENH323_INCDIR!$OPENH323_INCDIR$ac_delim
OPENH323_LIBDIR!$OPENH323_LIBDIR$ac_delim
OPENH323_SUFFIX!$OPENH323_SUFFIX$ac_delim
OPENH323_BUILD!$OPENH323_BUILD$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@ -54228,6 +54526,10 @@ _ACEOF
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
OPENH323_INCDIR!$OPENH323_INCDIR$ac_delim
OPENH323_LIBDIR!$OPENH323_LIBDIR$ac_delim
OPENH323_SUFFIX!$OPENH323_SUFFIX$ac_delim
OPENH323_BUILD!$OPENH323_BUILD$ac_delim
PBX_AIS!$PBX_AIS$ac_delim
AIS_INCLUDE!$AIS_INCLUDE$ac_delim
AIS_LIB!$AIS_LIB$ac_delim
@ -54245,7 +54547,7 @@ PBX_GENERIC_ODBC!$PBX_GENERIC_ODBC$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 15; then
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 19; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5

View File

@ -267,6 +267,7 @@ AST_EXT_LIB_SETUP([PRI], [ISDN PRI], [pri])
AST_EXT_LIB_SETUP([RESAMPLE], [LIBRESAMPLE], [resample])
AST_EXT_LIB_SETUP([SPANDSP], [SPANDSP], [spandsp])
AST_EXT_LIB_SETUP([SS7], [ISDN SS7], [ss7])
AST_EXT_LIB_SETUP([OPENR2], [MFR2], [openr2])
AST_EXT_LIB_SETUP([PWLIB], [PWlib], [pwlib])
AST_EXT_LIB_SETUP([OPENH323], [OpenH323], [h323])
AST_EXT_LIB_SETUP([RADIUS], [Radius Client], [radius])
@ -1425,6 +1426,8 @@ fi
AST_EXT_LIB_CHECK([SS7], [ss7], [ss7_pollflags], [libss7.h])
AST_EXT_LIB_CHECK([OPENR2], [openr2], [openr2_chan_new], [openr2.h])
if test "${USE_PWLIB}" != "no"; then
if test -n "${PWLIB_DIR}"; then
PWLIBDIR="${PWLIB_DIR}"

View File

@ -596,6 +596,12 @@
/* Define if your system has the OpenH323 libraries. */
#undef HAVE_OPENH323
/* Define this to indicate the ${OPENR2_DESCRIP} library */
#undef HAVE_OPENR2
/* Define to indicate the ${OPENR2_DESCRIP} library version */
#undef HAVE_OPENR2_VERSION
/* Define this to indicate the ${OPENSSL_DESCRIP} library */
#undef HAVE_OPENSSL

View File

@ -166,6 +166,9 @@ RESAMPLE_LIB=@RESAMPLE_LIB@
SS7_INCLUDE=@SS7_INCLUDE@
SS7_LIB=@SS7_LIB@
OPENR2_INCLUDE=@OPENR2_INCLUDE@
OPENR2_LIB=@OPENR2_LIB@
PWLIB_INCLUDE=@PWLIB_INCLUDE@
PWLIB_LIB=@PWLIB_LIB@