2016-09-08 22:43:15 +00:00
|
|
|
SUBDIRS = \
|
2017-09-03 21:52:51 +00:00
|
|
|
mgcp_client \
|
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
|
|
|
mgcp \
|
2016-09-08 22:43:15 +00:00
|
|
|
$(NULL)
|
2016-08-10 10:08:03 +00:00
|
|
|
|
2012-01-06 14:16:12 +00:00
|
|
|
# The `:;' works around a Bash 3.2 bug when the output is not writeable.
|
2012-01-09 21:53:04 +00:00
|
|
|
$(srcdir)/package.m4: $(top_srcdir)/configure.ac
|
2012-01-06 14:16:12 +00:00
|
|
|
:;{ \
|
|
|
|
echo '# Signature of the current package.' && \
|
|
|
|
echo 'm4_define([AT_PACKAGE_NAME],' && \
|
|
|
|
echo ' [$(PACKAGE_NAME)])' && \
|
|
|
|
echo 'm4_define([AT_PACKAGE_TARNAME],' && \
|
|
|
|
echo ' [$(PACKAGE_TARNAME)])' && \
|
|
|
|
echo 'm4_define([AT_PACKAGE_VERSION],' && \
|
|
|
|
echo ' [$(PACKAGE_VERSION)])' && \
|
|
|
|
echo 'm4_define([AT_PACKAGE_STRING],' && \
|
|
|
|
echo ' [$(PACKAGE_STRING)])' && \
|
|
|
|
echo 'm4_define([AT_PACKAGE_BUGREPORT],' && \
|
|
|
|
echo ' [$(PACKAGE_BUGREPORT)])'; \
|
|
|
|
echo 'm4_define([AT_PACKAGE_URL],' && \
|
|
|
|
echo ' [$(PACKAGE_URL)])'; \
|
2012-01-09 20:49:47 +00:00
|
|
|
} >'$(srcdir)/package.m4'
|
2012-01-06 14:16:12 +00:00
|
|
|
|
2016-09-08 22:43:15 +00:00
|
|
|
EXTRA_DIST = \
|
|
|
|
testsuite.at \
|
|
|
|
$(srcdir)/package.m4 \
|
|
|
|
$(TESTSUITE) \
|
|
|
|
$(NULL)
|
|
|
|
|
2012-01-09 20:49:47 +00:00
|
|
|
TESTSUITE = $(srcdir)/testsuite
|
2016-09-08 22:43:15 +00:00
|
|
|
|
|
|
|
DISTCLEANFILES = \
|
|
|
|
atconfig \
|
|
|
|
$(NULL)
|
2012-01-06 14:16:12 +00:00
|
|
|
|
2014-08-21 22:29:04 +00:00
|
|
|
if ENABLE_EXT_TESTS
|
2013-04-05 15:36:09 +00:00
|
|
|
python-tests: $(BUILT_SOURCES)
|
|
|
|
osmotestvty.py -p $(abs_top_srcdir) -w $(abs_top_builddir) -v
|
|
|
|
osmotestconfig.py -p $(abs_top_srcdir) -w $(abs_top_builddir) -v
|
|
|
|
else
|
|
|
|
python-tests: $(BUILT_SOURCES)
|
|
|
|
echo "Not running python-based tests (determined at configure-time)"
|
|
|
|
endif
|
|
|
|
|
2012-01-06 14:16:12 +00:00
|
|
|
check-local: atconfig $(TESTSUITE)
|
|
|
|
$(SHELL) '$(TESTSUITE)' $(TESTSUITEFLAGS)
|
2013-04-05 15:36:09 +00:00
|
|
|
$(MAKE) $(AM_MAKEFLAGS) python-tests
|
2012-01-06 14:16:12 +00:00
|
|
|
|
|
|
|
installcheck-local: atconfig $(TESTSUITE)
|
|
|
|
$(SHELL) '$(TESTSUITE)' AUTOTEST_PATH='$(bindir)' \
|
|
|
|
$(TESTSUITEFLAGS)
|
|
|
|
|
|
|
|
clean-local:
|
|
|
|
test ! -f '$(TESTSUITE)' || \
|
|
|
|
$(SHELL) '$(TESTSUITE)' --clean
|
|
|
|
|
|
|
|
AUTOM4TE = $(SHELL) $(top_srcdir)/missing --run autom4te
|
|
|
|
AUTOTEST = $(AUTOM4TE) --language=autotest
|
2012-01-09 20:49:47 +00:00
|
|
|
$(TESTSUITE): $(srcdir)/testsuite.at $(srcdir)/package.m4
|
2012-01-06 14:16:12 +00:00
|
|
|
$(AUTOTEST) -I '$(srcdir)' -o $@.tmp $@.at
|
|
|
|
mv $@.tmp $@
|