We tagged 1.0.0 off a non-master version in the commit history in order
to keep the new TRAU frame handling out of the 1.0.0 release, but to
have all of the other fixes in a tagged release. This merge brings
master in sync with those changes.
Change-Id: If8fc996f385f4127204ad773b991c49d853dfc5b
Since I0190872dd282bcfe0f97bb4f8ab8d09023f9f06b we are using a header
file provided by libosmocodec, which means we need to add it to our
dependencies (and include path). Linking against the library is
not required, as we don't use any symbols at this point.
Change-Id: Ie4524165d8873f6c801e07d9f03c94f43c66110d
This adds code that converts codec frames between (decoded) TRAU format
and RTP payload format. The FR + EFR functions have been lifted from
OsmoNITB and exended slightly.
The HR functions have been written from scratch. There is also
incomplete code for AMR that needs to be completed + tested.
Change-Id: I7f6993cce2b95318203043e2e14952e581941b79
This code is able to detect and sync against a variety of TRAU
frame sync patterns. Focus is so far on those patterns present on
16k sub-slots, but 8k sub-slots are expected to be supported soon,
too.
A new codebase for this is required as the old OsmoNITB code had
conflated a 16k sub-slot multiplexer with TRAU frame synchronization,
so there was no way to separate those two parts and hence no way to
support 8k sub-slots.
Change-Id: Ia6fe6228b0b8b9a27999f37ce1115ed5558881ea
The old TRAU frame code in src/trau_frame.c (which is for some strange
reason part of libosmo-abis, and not libosmo-trau!) was introduced more
than a decade ago for the needs of bs11_abis AKA OpenBSC aka OsmoNITB.
It is too constrained to implement TRAU frame parsing in a generic way,
including:
* no way to add support for 8k sub-slots
* no way to handle CRC bits or UFI (i.e. no AMR)
* no real API design, it was just ripped out from OsmoNITB and moved into
a library (even the wrong one)
For those reasons, let's introduce a new API for TRAU frame
encoding/decoding - one that supports all the relevant use cases.
Change-Id: I5cf42e6c445d9224be18503cebc7584b3beba08c
osmo-e1d is part of the Osmocom 'software defined E1 interface,
which consists of a USB device for the actual E1 hardware interfacing,
and a daemon (osmo-e1d) implementing a libusb-based driver.
This commit adds initial support for talking to osmo-e1d using
the related libosmoe1d library. You need to use '--enable-e1d'
at configure time to enable it.
Change-Id: Ia0431c124e3b5b4108aee7b109d8c4bb0d8b45d4
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
libosmo-abis was built with DAHDI support, if the related header files
were present at built time, and without if not. This kind of automagic
enabling/disabling of features is wrong. Let's require DAHDI support by
default, and force the user to take a conscious decision by using an
explicit --disable-dahdi if he doesn't want it.
At the same time, update debian/control to list dahdi-source as build
dependency.
Change-Id: Id9f7f063e7ca9e3ab4aa96fc93f243caf50fb66a
Closes: OS#4248
The IPA keep-alive FSM code takes care of periodically transmitting
and IPA CCM PING and expecting an IPA CCM PONG in return.
Change-Id: I2763da49a74de85046ac07d53592c89973314ca6
This patch allows you to create PCAP traces between the BSC and BTS including
the LAPD frames. Useful for debugging communication issues.
So far, it was only possible to create layer 3 traces containing
OML/RSL. LAPD traces can be also interesting to debug communication
issues between the BSC and the BTS.
To enable PCAP of LAPD, you only have to invoke:
li->pcap_fd = osmo_pcap_lapd_open("/tmp/file.pcap", 0600);
By default, li->pcap_fd is set to -1 which means disabled.
openBSC needs a patch to replace all usage of e1_set_pcap_fd by
osmo_pcap_lapd_open.
This spares us another recursion, and allows a much higher
parallelisation, since trau is only one source unit and one standalone
library.
Incidentally, also make sure that the version specification for
libosmoabis is applied.
Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
automake is well capable of building sources present in sub-directory
without requiring a recursion, so there is no reason to use a
non-installed library just for the extra files.
Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
Also contextually remove the AC_PROG_LIBTOOL call (which is an
obsolete name for what is now LT_INIT).
Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
This new library is intended to include everything related to
interfacing actual voice channels either via E1 or via RTP.
The first module in the library is osmo_rtp, based on the ortp library.
This patch adds VTY commands to route IPA flows. The following
example allows to add a new route:
$ tests/./ipa_proxy_test &
<0000> ipa_proxy_test.c:74 entering main loop
$ telnet localhost 4260
ipa-proxy-test> enable
ipa-proxy-test# ipa instance input-oml bind 127.0.0.1 tcp port 8888
ipa-proxy-test# ipa instance output-oml connect 127.0.0.1 tcp port 3002
ipa-proxy-test# ipa route instance input-oml streamid 0xfe instance output-oml streamid 0xfe
ipa-proxy-test# ipa instance input-rsl bind 127.0.0.1 tcp port 8889
ipa-proxy-test# ipa instance output-rsl connect 127.0.0.1 tcp port 3003
ipa-proxy-test# ipa route instance input-rsl streamid 0xfe instance output-rsl streamid 0xfe
I'm using this to initially test this code [*].
[*] note that this requires a minor hackish patch for the
src/input/ipaccess.c driver which changes the default OML and RSL
ports to listen in 8888 and 8889 instead of the default ports,
thus, I can initially test everything from the localhost.