mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-11-12 20:47:06 +00:00
ftmod_libpri: Initial support for BRI and various cleanups + double locking fix
Fixes: - Fix double locking in check_state(): remove ftdm_mutex_(un)lock calls. New: - Add lpwrap_init_bri() to initialize libpri in BRI mode - Use trunk type to determine PRI/BRI and PTP/PTMP mode (no additional configuration required). - Improve libpri detection code in configure.ac, check whether libpri is usable and if BRI support is available (needs more work) Cleanups: - Whitespace and indentation cleanups - Rename str2* functions to parse_* - Simplify libpri_configure_span() option parsing and bail out on error - Add "ftdm libpri help" command that displays usage information - Coding style cleanups and other (minor) changes Known issues: - BRI PTMP TE Q.921 link does not go beyond TEI ASSIGNED state, SABME requests are ignored by NT (EuroISDN DTAG, DAHDI-2.3.0.1, vzaphfc) Signed-off-by: Stefan Knoblich <s.knoblich@axsentis.de>
This commit is contained in:
1 parent
6787710b00
commit
3d5ccf055d
4 files changed
+314
-244
No files matched your search
+44
-15
@@ -144,21 +144,6 @@ fi
|
||||
##
|
||||
AC_MSG_RESULT([${as_nl}<<>> Modules and optional features])
|
||||
|
||||
##
|
||||
# libpri (TODO: add checks)
|
||||
#
|
||||
HAVE_LIBPRI="no"
|
||||
AC_ARG_WITH([libpri],
|
||||
[AS_HELP_STRING([--with-libpri], [Install ftmod_libpri])],
|
||||
[case "${withval}" in
|
||||
no) enable_libpri="no" ;;
|
||||
*) enable_libpri="yes" ;;
|
||||
esac],
|
||||
[enable_libpri="no"]
|
||||
)
|
||||
HAVE_LIBPRI="${enable_libpri}"
|
||||
AM_CONDITIONAL([HAVE_LIBPRI],[test "${enable_libpri}" = "yes"])
|
||||
|
||||
##
|
||||
# pritap (TODO: add checks)
|
||||
#
|
||||
@@ -193,6 +178,50 @@ AC_CHECK_LIB([openr2], [openr2_context_set_io_type], [HAVE_OPENR2="yes"])
|
||||
AC_MSG_RESULT([checking whether to build ftmod_r2... ${HAVE_OPENR2}])
|
||||
AM_CONDITIONAL([HAVE_OPENR2], [test "${HAVE_OPENR2}" = "yes"])
|
||||
|
||||
##
|
||||
# Digium libpri (TODO: add checks)
|
||||
#
|
||||
HAVE_LIBPRI="no"
|
||||
AC_ARG_WITH([libpri],
|
||||
[AS_HELP_STRING([--with-libpri], [Install ftmod_libpri])],
|
||||
[case "${withval}" in
|
||||
no) enable_libpri="no" ;;
|
||||
*) enable_libpri="yes" ;;
|
||||
esac],
|
||||
[enable_libpri="no"]
|
||||
)
|
||||
if test "${enable_libpri}" != "no"
|
||||
then
|
||||
AC_MSG_RESULT([${as_nl}<<>> Digium libpri])
|
||||
|
||||
save_LIBS="${LIBS}"
|
||||
LIBS="${LIBS} -lpri"
|
||||
AC_MSG_CHECKING([whether libpri is usable])
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[#include <libpri.h>],
|
||||
[const char *version = pri_get_version();]
|
||||
)],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([libpri is not installed or unusable (see config.log for details)])]
|
||||
)
|
||||
|
||||
AC_MSG_CHECKING([whether libpri has BRI support])
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[extern void pri_new_bri_cb(void);],
|
||||
[pri_new_bri_cb();]
|
||||
)],
|
||||
[AC_DEFINE([HAVE_LIBPRI_BRI], [1], [libpri has bri support])
|
||||
AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])]
|
||||
)
|
||||
LIBS="${save_LIBS}"
|
||||
fi
|
||||
HAVE_LIBPRI="${enable_libpri}"
|
||||
AM_CONDITIONAL([HAVE_LIBPRI],[test "${enable_libpri}" = "yes"])
|
||||
|
||||
##
|
||||
# Sangoma Wanpipe
|
||||
#
|
||||
|
||||
Reference in new issue
Block a user