2008-12-23 21:01:25 +00:00
|
|
|
dnl Process this file with autoconf to produce a configure script
|
2017-07-10 13:07:22 +00:00
|
|
|
AC_INIT([osmo-mgw],
|
2010-03-22 16:09:32 +00:00
|
|
|
m4_esyscmd([./git-version-gen .tarball-version]),
|
2014-05-15 10:26:16 +00:00
|
|
|
[openbsc@lists.osmocom.org])
|
2008-12-23 21:01:25 +00:00
|
|
|
|
2016-09-30 22:34:31 +00:00
|
|
|
dnl *This* is the root dir, even if an install-sh exists in ../ or ../../
|
|
|
|
AC_CONFIG_AUX_DIR([.])
|
|
|
|
|
2010-03-22 16:09:32 +00:00
|
|
|
AM_INIT_AUTOMAKE([dist-bzip2])
|
2012-01-06 14:16:12 +00:00
|
|
|
AC_CONFIG_TESTDIR(tests)
|
2008-12-23 21:01:25 +00:00
|
|
|
|
2021-01-27 16:51:27 +00:00
|
|
|
CFLAGS="$CFLAGS -std=gnu11"
|
|
|
|
|
2009-10-27 02:34:49 +00:00
|
|
|
dnl kernel style compile messages
|
|
|
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
|
|
|
|
2017-08-28 10:04:18 +00:00
|
|
|
dnl include release helper
|
|
|
|
RELMAKE='-include osmo-release.mk'
|
|
|
|
AC_SUBST([RELMAKE])
|
|
|
|
|
2008-12-23 21:01:25 +00:00
|
|
|
dnl checks for programs
|
|
|
|
AC_PROG_MAKE_SET
|
|
|
|
AC_PROG_CC
|
|
|
|
AC_PROG_INSTALL
|
2017-05-26 10:31:00 +00:00
|
|
|
LT_INIT
|
2008-12-23 21:01:25 +00:00
|
|
|
|
2020-04-10 22:53:38 +00:00
|
|
|
dnl patching ${archive_cmds} to affect generation of file "libtool" to fix linking with clang
|
|
|
|
AS_CASE(["$LD"],[*clang*],
|
|
|
|
[AS_CASE(["${host_os}"],
|
|
|
|
[*linux*],[archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'])])
|
|
|
|
|
2016-09-30 22:50:25 +00:00
|
|
|
dnl check for pkg-config (explained in detail in libosmocore/configure.ac)
|
|
|
|
AC_PATH_PROG(PKG_CONFIG_INSTALLED, pkg-config, no)
|
|
|
|
if test "x$PKG_CONFIG_INSTALLED" = "xno"; then
|
|
|
|
AC_MSG_WARN([You need to install pkg-config])
|
|
|
|
fi
|
|
|
|
PKG_PROG_PKG_CONFIG([0.20])
|
|
|
|
|
2008-12-23 21:01:25 +00:00
|
|
|
dnl checks for libraries
|
2013-10-15 10:00:26 +00:00
|
|
|
AC_SEARCH_LIBS([dlopen], [dl dld], [LIBRARY_DL="$LIBS";LIBS=""])
|
|
|
|
AC_SUBST(LIBRARY_DL)
|
|
|
|
|
2020-04-10 22:52:43 +00:00
|
|
|
AC_SEARCH_LIBS([dlsym], [dl dld], [LIBRARY_DLSYM="$LIBS";LIBS=""])
|
|
|
|
AC_SUBST(LIBRARY_DLSYM)
|
|
|
|
|
2008-12-23 21:01:25 +00:00
|
|
|
|
2023-09-12 12:48:51 +00:00
|
|
|
PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.9.0)
|
|
|
|
PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.9.0)
|
|
|
|
PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 1.9.0)
|
|
|
|
PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.9.0)
|
|
|
|
PKG_CHECK_MODULES(LIBOSMONETIF, libosmo-netif >= 1.4.0)
|
|
|
|
PKG_CHECK_MODULES(LIBOSMOABIS, libosmoabis >= 1.5.0)
|
|
|
|
PKG_CHECK_MODULES(LIBOSMOTRAU, libosmotrau >= 1.5.0)
|
2012-11-16 21:15:22 +00:00
|
|
|
|
mgcp_client: Introduce mgcp_client_conf_alloc(), deprecate mgcp_client_conf_init()
So far, the users of the old non-pooled API were in charge of allocating
the struct mgcp_client_conf by themselves, then init them using
mgcp_client_conf_init(). This causes a major problem, since it makes it
difficult to extend the struct mgcp_client_conf structure to add new
features, which may happen frequently.
The MGW pool API doesn't have this problem, because the struct
mgcp_client_conf is allocated as parts/fields of private structs defined
in internal headers. Only pointers to it are used in public headers.
Since it still has to internally initialize the conf fields, we still
need the API to initialize it internally, and hence why is it marked as
DEPRECTED_OUTSIDE instead of DEPRECATED.
While some programs already moved to the new MGW pool infrastructure,
they still use the old APIs to accomodate for old config files in order
to be back-compatible, hence most users of libosmo-mgcp-client are
affected.
Introduce an API to allocate the conf struct internally, which, while
still breaking the ABI, allows for a more relaxed update path where it's
possible to extend the struct mgcp_client_conf at the end.
Eventually the non pooled API should be gone and the struct
mgcp_client_conf can then be moved to a private header, but for now
let's add this small feature to avoid major ABI breakage.
Change-Id: Iba0853ed099a32cf1dde78c17e1b34343db41cfc
2023-06-13 17:41:44 +00:00
|
|
|
CFLAGS="$CFLAGS -DBUILDING_LIBOSMOMGCPCLIENT -pthread"
|
|
|
|
CPPFLAGS="$CPPFLAGS -DBUILDING_LIBOSMOMGCPCLIENT -pthread"
|
2021-08-12 22:14:18 +00:00
|
|
|
LDFLAGS="$LDFLAGS -pthread"
|
|
|
|
|
2017-11-17 00:43:36 +00:00
|
|
|
AC_ARG_ENABLE(sanitize,
|
|
|
|
[AS_HELP_STRING(
|
|
|
|
[--enable-sanitize],
|
|
|
|
[Compile with address sanitizer enabled],
|
|
|
|
)],
|
|
|
|
[sanitize=$enableval], [sanitize="no"])
|
|
|
|
if test x"$sanitize" = x"yes"
|
|
|
|
then
|
|
|
|
CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined"
|
|
|
|
CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined"
|
|
|
|
fi
|
|
|
|
|
2018-03-05 19:43:27 +00:00
|
|
|
AC_ARG_ENABLE(werror,
|
|
|
|
[AS_HELP_STRING(
|
|
|
|
[--enable-werror],
|
|
|
|
[Turn all compiler warnings into errors, with exceptions:
|
|
|
|
a) deprecation (allow upstream to mark deprecation without breaking builds);
|
|
|
|
b) "#warning" pragmas (allow to remind ourselves of errors without breaking builds)
|
|
|
|
]
|
|
|
|
)],
|
|
|
|
[werror=$enableval], [werror="no"])
|
|
|
|
if test x"$werror" = x"yes"
|
|
|
|
then
|
|
|
|
WERROR_FLAGS="-Werror"
|
2022-11-03 10:59:21 +00:00
|
|
|
WERROR_FLAGS+=" -Werror=implicit-int -Werror=int-conversion -Werror=old-style-definition"
|
2018-03-05 19:43:27 +00:00
|
|
|
WERROR_FLAGS+=" -Wno-error=deprecated -Wno-error=deprecated-declarations"
|
|
|
|
WERROR_FLAGS+=" -Wno-error=cpp" # "#warning"
|
|
|
|
CFLAGS="$CFLAGS $WERROR_FLAGS"
|
|
|
|
CPPFLAGS="$CPPFLAGS $WERROR_FLAGS"
|
|
|
|
fi
|
|
|
|
|
2010-11-15 17:37:57 +00:00
|
|
|
# Coverage build taken from WebKit's configure.in
|
|
|
|
AC_MSG_CHECKING([whether to enable code coverage support])
|
|
|
|
AC_ARG_ENABLE(coverage,
|
|
|
|
AC_HELP_STRING([--enable-coverage],
|
|
|
|
[enable code coverage support [default=no]]),
|
|
|
|
[],[enable_coverage="no"])
|
|
|
|
AC_MSG_RESULT([$enable_coverage])
|
|
|
|
if test "$enable_coverage" = "yes"; then
|
|
|
|
COVERAGE_CFLAGS="-ftest-coverage -fprofile-arcs"
|
|
|
|
COVERAGE_LDFLAGS="-ftest-coverage -fprofile-arcs"
|
|
|
|
AC_SUBST([COVERAGE_CFLAGS])
|
|
|
|
AC_SUBST([COVERAGE_LDFLAGS])
|
|
|
|
fi
|
|
|
|
|
2013-04-05 15:36:09 +00:00
|
|
|
AC_ARG_ENABLE([vty_tests],
|
|
|
|
AC_HELP_STRING([--enable-vty-tests],
|
2014-08-21 22:29:04 +00:00
|
|
|
[Include the VTY/CTRL tests in make check (deprecated)
|
|
|
|
[default=no]]),
|
|
|
|
[enable_ext_tests="$enableval"],[enable_ext_tests="no"])
|
2014-09-01 07:34:07 +00:00
|
|
|
AC_ARG_ENABLE([external_tests],
|
2014-08-21 22:29:04 +00:00
|
|
|
AC_HELP_STRING([--enable-external-tests],
|
|
|
|
[Include the VTY/CTRL tests in make check [default=no]]),
|
|
|
|
[enable_ext_tests="$enableval"],[enable_ext_tests="no"])
|
|
|
|
if test "x$enable_ext_tests" = "xyes" ; then
|
2013-04-05 15:36:09 +00:00
|
|
|
AM_PATH_PYTHON
|
2014-08-21 22:29:04 +00:00
|
|
|
AC_CHECK_PROG(OSMOTESTEXT_CHECK,osmotestvty.py,yes)
|
|
|
|
if test "x$OSMOTESTEXT_CHECK" != "xyes" ; then
|
2022-06-18 10:18:10 +00:00
|
|
|
AC_MSG_ERROR([Please install https://gitea.osmocom.org/cellular-infrastructure/osmo-python-tests to run the VTY/CTRL tests.])
|
2013-04-05 15:36:09 +00:00
|
|
|
fi
|
|
|
|
fi
|
2014-08-21 22:29:04 +00:00
|
|
|
AC_MSG_CHECKING([whether to enable VTY/CTRL tests])
|
|
|
|
AC_MSG_RESULT([$enable_ext_tests])
|
|
|
|
AM_CONDITIONAL(ENABLE_EXT_TESTS, test "x$enable_ext_tests" = "xyes")
|
2013-04-05 15:36:09 +00:00
|
|
|
|
2018-11-14 09:47:01 +00:00
|
|
|
# Generate manuals
|
|
|
|
AC_ARG_ENABLE(manuals,
|
|
|
|
[AS_HELP_STRING(
|
|
|
|
[--enable-manuals],
|
|
|
|
[Generate manual PDFs [default=no]],
|
|
|
|
)],
|
|
|
|
[osmo_ac_build_manuals=$enableval], [osmo_ac_build_manuals="no"])
|
|
|
|
AM_CONDITIONAL([BUILD_MANUALS], [test x"$osmo_ac_build_manuals" = x"yes"])
|
|
|
|
AC_ARG_VAR(OSMO_GSM_MANUALS_DIR, [path to common osmo-gsm-manuals files, overriding pkg-config and "../osmo-gsm-manuals"
|
|
|
|
fallback])
|
|
|
|
if test x"$osmo_ac_build_manuals" = x"yes"
|
|
|
|
then
|
|
|
|
# Find OSMO_GSM_MANUALS_DIR (env, pkg-conf, fallback)
|
|
|
|
if test -n "$OSMO_GSM_MANUALS_DIR"; then
|
|
|
|
echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (from env)"
|
|
|
|
else
|
|
|
|
OSMO_GSM_MANUALS_DIR="$($PKG_CONFIG osmo-gsm-manuals --variable=osmogsmmanualsdir 2>/dev/null)"
|
|
|
|
if test -n "$OSMO_GSM_MANUALS_DIR"; then
|
|
|
|
echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (from pkg-conf)"
|
|
|
|
else
|
|
|
|
OSMO_GSM_MANUALS_DIR="../osmo-gsm-manuals"
|
|
|
|
echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (fallback)"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if ! test -d "$OSMO_GSM_MANUALS_DIR"; then
|
|
|
|
AC_MSG_ERROR("OSMO_GSM_MANUALS_DIR does not exist! Install osmo-gsm-manuals or set OSMO_GSM_MANUALS_DIR.")
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Find and run check-depends
|
|
|
|
CHECK_DEPENDS="$OSMO_GSM_MANUALS_DIR/check-depends.sh"
|
|
|
|
if ! test -x "$CHECK_DEPENDS"; then
|
|
|
|
CHECK_DEPENDS="osmo-gsm-manuals-check-depends"
|
|
|
|
fi
|
|
|
|
if ! $CHECK_DEPENDS; then
|
|
|
|
AC_MSG_ERROR("missing dependencies for --enable-manuals")
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Put in Makefile with absolute path
|
|
|
|
OSMO_GSM_MANUALS_DIR="$(realpath "$OSMO_GSM_MANUALS_DIR")"
|
|
|
|
AC_SUBST([OSMO_GSM_MANUALS_DIR])
|
|
|
|
fi
|
|
|
|
|
2018-09-10 10:46:47 +00:00
|
|
|
# https://www.freedesktop.org/software/systemd/man/daemon.html
|
|
|
|
AC_ARG_WITH([systemdsystemunitdir],
|
|
|
|
[AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files])],,
|
|
|
|
[with_systemdsystemunitdir=auto])
|
|
|
|
AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [
|
|
|
|
def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
|
|
|
|
|
|
|
|
AS_IF([test "x$def_systemdsystemunitdir" = "x"],
|
|
|
|
[AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
|
|
|
|
[AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])])
|
|
|
|
with_systemdsystemunitdir=no],
|
|
|
|
[with_systemdsystemunitdir="$def_systemdsystemunitdir"])])
|
|
|
|
AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
|
|
|
|
[AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
|
|
|
|
AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"])
|
|
|
|
|
2018-03-05 19:43:27 +00:00
|
|
|
AC_MSG_RESULT([CFLAGS="$CFLAGS"])
|
|
|
|
AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"])
|
|
|
|
|
2009-06-08 10:32:54 +00:00
|
|
|
dnl Generate the output
|
|
|
|
AM_CONFIG_HEADER(bscconfig.h)
|
|
|
|
|
2008-12-27 09:42:59 +00:00
|
|
|
AC_OUTPUT(
|
2017-09-03 21:52:51 +00:00
|
|
|
libosmo-mgcp-client.pc
|
2008-12-27 09:42:59 +00:00
|
|
|
include/Makefile
|
2017-07-10 13:07:22 +00:00
|
|
|
include/osmocom/Makefile
|
2017-09-03 21:52:51 +00:00
|
|
|
include/osmocom/mgcp_client/Makefile
|
Initially implement the new osmo-mgw and libosmo-mgcp
Leave the old osmo-bsc_mgcp and libosmo-legacy-mgcp as it is; on a copy thereof
(added by a previous commit), apply changes to initially implement the new
osmo-mgw.
Adjust build system and debian packaging to accomodate the new libosmo-mgcp and
osmo-mgw.
The main differences:
*) use a list to manage rtp connections.
Aggregate all rtp related information inside a single struct.
Use a linked list to manage the both connections (net and bts).
The idea behind using a list is that we might support conference
calls at some later point.
Store the linked list in struct mgcp_endpoint, have a private linked
list for each endpoint. The list contains connection items which are
implemented in struct mgcp_conn. A connection is allocated and freed
using the functions in mgcp_conn.c. A connection is allocated on the
reception of a CRCX command and freed with the reception of a DLCX
command.
*) remove external transcoder feature
Fortunatelly the external transcoder feature is not needed
anymore. This patch removes the related code.
*) vty: get rid of CONN_BTS and CONN_NET
Since the new connection model does not make a difference
between BTS and NET connections the VTY should not use
the fixed CONN_BTS and CONN_NET constants.
- Handle the conns list inside the endpoint directly
- introduce function to dump basic rtp connection info
- introduce human readable names for connections
Parts of the code adjusted to use generalized connections instead of explicit
BTS/NET ones:
- teach mgcp_send_dummy() to send dummy packets to any RTP connection
- network: generalize mgcp_bind_net/bts_rtp_port()
- network: generalize mgcp_send()
- tap: generalize call tapping feature
- stat: generalize statistics
- Replace rtp_data_net() and rtp_data_bts() with generalized rtp_data_rx()
*) mgcp_protocol.c fixes:
- check ci string before it is converted:
In case of missing ci, a nullpointer is delivered to strtoul().
Add a function that takes ci, checks it and converts it to an
uint32_t. Use the return code to react on missing ci.
- output error message on missing CI.
- when parsing the mode, print log message when mode is missing.
- use mode_orig when mode is missing.
- fix ptime formatstring to use %u rather than %d.
- cosmetic: log when connection is deleted on DLCX.
- change loglevels of CRCX, MDCX, DLCX events from DEBUG to NOTICE.
*) mgcp_test
- apply rename of strline_r() to mgcp_strline().
- MGCP command macros:
- Add 'I: 1' parameters.
- Use proper port numbers:
from m=audio 0 RTP/AVP 126
to m=audio 16002 RTP/AVP 128
- Change ptime to 'a=ptime:40' because this is what the MGW currently
returns. CRCX generally feed a ptime:40 and this is expected to be
returned.
- struct mgcp_test: Use only one ptype, there are no explicit BTS and NET
endpoints anymore.
Hence remove one column from tests[].
- test_messages():
- Enable: remove '#if 0'
- Remove concept of BTS and NET endpoints: test only one conn, as they are
now interchangeable anyway.
- remove endpoint init, now done internally.
- add false asserts in error cases.
- test_retransmission():
- remove endpoint init, now done internally.
- add false asserts in error cases.
- test_packet_error_detection():
- Remove concept of BTS and NET endpoints: test only one conn, as they are
now interchangeable anyway. Use arbitrary conn ids (e.g. 4711).
- remove endpoint init, now done internally.
- add false assert in error case.
- Assert that a conn really vanishes on DLCX, previously the conn would
remain and just be unused, now it is actually discarded.
- test_no_cycle()
- Remove concept of BTS and NET endpoints: test only one conn, as they are
now interchangeable anyway. Use arbitrary conn ids (e.g. 4711).
- test_no_name()
- Enable: remove '#if 0'.
- remove endpoint init, now done internally.
- add false assert in error case.
- mgcp_test.ok: adjust expected results to status quo:
- We now see two dummy packets instead of one, now sent to both sides because
we don't know of BTS or NET side. (maybe drop dummy packets later...)
- packet duration, conn mode: now sane defaults show instead of unset.
- various whitespace and formatting changes from lindent.
Change-Id: Ie008599136c7ed8a0dfbb0cf803188975a499fc5
2017-08-22 14:35:41 +00:00
|
|
|
include/osmocom/mgcp/Makefile
|
2008-12-27 09:42:59 +00:00
|
|
|
src/Makefile
|
2017-09-03 21:52:51 +00:00
|
|
|
src/libosmo-mgcp-client/Makefile
|
Initially implement the new osmo-mgw and libosmo-mgcp
Leave the old osmo-bsc_mgcp and libosmo-legacy-mgcp as it is; on a copy thereof
(added by a previous commit), apply changes to initially implement the new
osmo-mgw.
Adjust build system and debian packaging to accomodate the new libosmo-mgcp and
osmo-mgw.
The main differences:
*) use a list to manage rtp connections.
Aggregate all rtp related information inside a single struct.
Use a linked list to manage the both connections (net and bts).
The idea behind using a list is that we might support conference
calls at some later point.
Store the linked list in struct mgcp_endpoint, have a private linked
list for each endpoint. The list contains connection items which are
implemented in struct mgcp_conn. A connection is allocated and freed
using the functions in mgcp_conn.c. A connection is allocated on the
reception of a CRCX command and freed with the reception of a DLCX
command.
*) remove external transcoder feature
Fortunatelly the external transcoder feature is not needed
anymore. This patch removes the related code.
*) vty: get rid of CONN_BTS and CONN_NET
Since the new connection model does not make a difference
between BTS and NET connections the VTY should not use
the fixed CONN_BTS and CONN_NET constants.
- Handle the conns list inside the endpoint directly
- introduce function to dump basic rtp connection info
- introduce human readable names for connections
Parts of the code adjusted to use generalized connections instead of explicit
BTS/NET ones:
- teach mgcp_send_dummy() to send dummy packets to any RTP connection
- network: generalize mgcp_bind_net/bts_rtp_port()
- network: generalize mgcp_send()
- tap: generalize call tapping feature
- stat: generalize statistics
- Replace rtp_data_net() and rtp_data_bts() with generalized rtp_data_rx()
*) mgcp_protocol.c fixes:
- check ci string before it is converted:
In case of missing ci, a nullpointer is delivered to strtoul().
Add a function that takes ci, checks it and converts it to an
uint32_t. Use the return code to react on missing ci.
- output error message on missing CI.
- when parsing the mode, print log message when mode is missing.
- use mode_orig when mode is missing.
- fix ptime formatstring to use %u rather than %d.
- cosmetic: log when connection is deleted on DLCX.
- change loglevels of CRCX, MDCX, DLCX events from DEBUG to NOTICE.
*) mgcp_test
- apply rename of strline_r() to mgcp_strline().
- MGCP command macros:
- Add 'I: 1' parameters.
- Use proper port numbers:
from m=audio 0 RTP/AVP 126
to m=audio 16002 RTP/AVP 128
- Change ptime to 'a=ptime:40' because this is what the MGW currently
returns. CRCX generally feed a ptime:40 and this is expected to be
returned.
- struct mgcp_test: Use only one ptype, there are no explicit BTS and NET
endpoints anymore.
Hence remove one column from tests[].
- test_messages():
- Enable: remove '#if 0'
- Remove concept of BTS and NET endpoints: test only one conn, as they are
now interchangeable anyway.
- remove endpoint init, now done internally.
- add false asserts in error cases.
- test_retransmission():
- remove endpoint init, now done internally.
- add false asserts in error cases.
- test_packet_error_detection():
- Remove concept of BTS and NET endpoints: test only one conn, as they are
now interchangeable anyway. Use arbitrary conn ids (e.g. 4711).
- remove endpoint init, now done internally.
- add false assert in error case.
- Assert that a conn really vanishes on DLCX, previously the conn would
remain and just be unused, now it is actually discarded.
- test_no_cycle()
- Remove concept of BTS and NET endpoints: test only one conn, as they are
now interchangeable anyway. Use arbitrary conn ids (e.g. 4711).
- test_no_name()
- Enable: remove '#if 0'.
- remove endpoint init, now done internally.
- add false assert in error case.
- mgcp_test.ok: adjust expected results to status quo:
- We now see two dummy packets instead of one, now sent to both sides because
we don't know of BTS or NET side. (maybe drop dummy packets later...)
- packet duration, conn mode: now sane defaults show instead of unset.
- various whitespace and formatting changes from lindent.
Change-Id: Ie008599136c7ed8a0dfbb0cf803188975a499fc5
2017-08-22 14:35:41 +00:00
|
|
|
src/libosmo-mgcp/Makefile
|
|
|
|
src/osmo-mgw/Makefile
|
2008-12-27 09:42:59 +00:00
|
|
|
tests/Makefile
|
2012-01-09 21:53:04 +00:00
|
|
|
tests/atlocal
|
2017-09-03 21:52:51 +00:00
|
|
|
tests/mgcp_client/Makefile
|
Initially implement the new osmo-mgw and libosmo-mgcp
Leave the old osmo-bsc_mgcp and libosmo-legacy-mgcp as it is; on a copy thereof
(added by a previous commit), apply changes to initially implement the new
osmo-mgw.
Adjust build system and debian packaging to accomodate the new libosmo-mgcp and
osmo-mgw.
The main differences:
*) use a list to manage rtp connections.
Aggregate all rtp related information inside a single struct.
Use a linked list to manage the both connections (net and bts).
The idea behind using a list is that we might support conference
calls at some later point.
Store the linked list in struct mgcp_endpoint, have a private linked
list for each endpoint. The list contains connection items which are
implemented in struct mgcp_conn. A connection is allocated and freed
using the functions in mgcp_conn.c. A connection is allocated on the
reception of a CRCX command and freed with the reception of a DLCX
command.
*) remove external transcoder feature
Fortunatelly the external transcoder feature is not needed
anymore. This patch removes the related code.
*) vty: get rid of CONN_BTS and CONN_NET
Since the new connection model does not make a difference
between BTS and NET connections the VTY should not use
the fixed CONN_BTS and CONN_NET constants.
- Handle the conns list inside the endpoint directly
- introduce function to dump basic rtp connection info
- introduce human readable names for connections
Parts of the code adjusted to use generalized connections instead of explicit
BTS/NET ones:
- teach mgcp_send_dummy() to send dummy packets to any RTP connection
- network: generalize mgcp_bind_net/bts_rtp_port()
- network: generalize mgcp_send()
- tap: generalize call tapping feature
- stat: generalize statistics
- Replace rtp_data_net() and rtp_data_bts() with generalized rtp_data_rx()
*) mgcp_protocol.c fixes:
- check ci string before it is converted:
In case of missing ci, a nullpointer is delivered to strtoul().
Add a function that takes ci, checks it and converts it to an
uint32_t. Use the return code to react on missing ci.
- output error message on missing CI.
- when parsing the mode, print log message when mode is missing.
- use mode_orig when mode is missing.
- fix ptime formatstring to use %u rather than %d.
- cosmetic: log when connection is deleted on DLCX.
- change loglevels of CRCX, MDCX, DLCX events from DEBUG to NOTICE.
*) mgcp_test
- apply rename of strline_r() to mgcp_strline().
- MGCP command macros:
- Add 'I: 1' parameters.
- Use proper port numbers:
from m=audio 0 RTP/AVP 126
to m=audio 16002 RTP/AVP 128
- Change ptime to 'a=ptime:40' because this is what the MGW currently
returns. CRCX generally feed a ptime:40 and this is expected to be
returned.
- struct mgcp_test: Use only one ptype, there are no explicit BTS and NET
endpoints anymore.
Hence remove one column from tests[].
- test_messages():
- Enable: remove '#if 0'
- Remove concept of BTS and NET endpoints: test only one conn, as they are
now interchangeable anyway.
- remove endpoint init, now done internally.
- add false asserts in error cases.
- test_retransmission():
- remove endpoint init, now done internally.
- add false asserts in error cases.
- test_packet_error_detection():
- Remove concept of BTS and NET endpoints: test only one conn, as they are
now interchangeable anyway. Use arbitrary conn ids (e.g. 4711).
- remove endpoint init, now done internally.
- add false assert in error case.
- Assert that a conn really vanishes on DLCX, previously the conn would
remain and just be unused, now it is actually discarded.
- test_no_cycle()
- Remove concept of BTS and NET endpoints: test only one conn, as they are
now interchangeable anyway. Use arbitrary conn ids (e.g. 4711).
- test_no_name()
- Enable: remove '#if 0'.
- remove endpoint init, now done internally.
- add false assert in error case.
- mgcp_test.ok: adjust expected results to status quo:
- We now see two dummy packets instead of one, now sent to both sides because
we don't know of BTS or NET side. (maybe drop dummy packets later...)
- packet duration, conn mode: now sane defaults show instead of unset.
- various whitespace and formatting changes from lindent.
Change-Id: Ie008599136c7ed8a0dfbb0cf803188975a499fc5
2017-08-22 14:35:41 +00:00
|
|
|
tests/mgcp/Makefile
|
2011-05-11 20:11:28 +00:00
|
|
|
doc/Makefile
|
|
|
|
doc/examples/Makefile
|
2018-11-14 09:47:01 +00:00
|
|
|
doc/manuals/Makefile
|
2017-07-20 15:57:37 +00:00
|
|
|
contrib/Makefile
|
2018-09-10 10:46:47 +00:00
|
|
|
contrib/systemd/Makefile
|
2020-05-14 09:48:29 +00:00
|
|
|
contrib/osmo-mgw.spec
|
2008-12-27 09:42:59 +00:00
|
|
|
Makefile)
|