Mark two value string arrays as extern, so symbols aren't created for
each source file that includes the headers.
Tweaked-by: nhofmeyr (commit log)
Signed-off-by: Arran Cudbard-Bell <a.cudbardb@freeradius.org>
Change-Id: Iebf4b3922a48ca2cc20d478aba06224dd89d38cb
Ericsson's RBS2111-BTS (and similar) implements a lapdm dialect which uses
a link establishment method that differs from the standard. While the BSC
is transmitting sabm frames on one specific timeslot, the BTS will
periodically scan through all timeslots to check for incoming sabm frames.
When the BTS detcts the sabm fames on one of the timeslots it will stay
there and continue to commence the link establishment.
The described procedure requires a slightly modified lapd profile, the t200
retransmission timeout has to be configured to exactly 300 msek. Otherwise
the link establishment will fail. Since the BTS will switch from timeslot
to timeslot most of the sabm frames will not be seen by the BTS, so the
maximum retransmission has to be increased. This patch suggests a maximum
retry count of 300, which is an educated guess and has worked fine during
our tests.
Change-Id: I892af57013d7ab4216e9e2d0873a69129aaeb8e5
Use separate pointer for payload to make sure mblk->b_rptr is not
advanced (which breaks the use of rtp_get_* macros that assume
mblk->b_rptr is pointing to the RTP header, not the payload).
Committed by: Max <msuraev@sysmocom.de>
Change-Id: I205630e1da98693ba0ac25e86e21780284185077
Related: OS#1802
While debugging low-level RTP issues it is handy to be able to match
exact RTP packet with the payload available to higher-level
functions. Having Sequence number and Timestamp RTP fields as parameter
to receiving callback is the easiest way to do so.
Change-Id: I0c9b08d247d7342d6139badca77ce64fda0cf274
This is useful for protocols that use HDLC framing for signalling on E1
timeslots, but which don't use LAPD inside (our E1INP_TS_TYPE_SIGN).
Examples are particularly a MTP2/MTP3 SS7 stack, like it is used on the
A interfaces or on the core network interfaces of classic
circuit-switched networks.
Change-Id: I2d75801df4d7cbb8dad325f4d6689841f0196fa6
In the past, the A-bis E1 input system only unederstood LAPD signalling
time-slots and trau-slots with 16kBps sub-slots. This adds the notion
of a 'raw' transparent 64kBps slot, without any furthe de-multiplexing
nor any HLDC inside.
Change-Id: I0c25c2688eddd0c55c15b280a8c6e8a49629516b
It is quite useful for the signal receiver to know on which of the many
E1/T1 timeslots a given event (like a 'link down' event) has happened.
The line number, TEI and SAPI are isnuficcient in case there are
multiple signalling TS in the line.
Change-Id: I07f0f79e0cda09766f357032ffb4e7ad643d448a
This will prevent the timestamp jump to occur between each call for DTX
if something goes wrong. It's handy as oRTP does not manage well
timestamp jump if it is not resynced.
Fixes: OS#1803
Change-Id: Iae5da832218dbd1ede7a9451102074f2a5eb66df
This reverts commit c77c2a6aa1,
and explicitly sets connected mode to zero for set_remote_addr to work around
internal libortp problems. See https://osmocom.org/issues/1661#note-15.
Related: OS#1661
Change-Id: I9d146c3bd76e02685b09278167b56029152221a0
Explicitly set AC_CONFIG_AUX_DIR.
To reproduce the error avoided by this patch:
rm install-sh # in case it was already generated.
touch ../install-sh # yes, outside this source tree
autoreconf -fi
This will produce an error like
...
configure.ac:16: error: required file '../ltmain.sh' not found
configure.ac:5: installing '../missing'
src/Makefile.am: installing '../depcomp'
autoreconf: automake failed with exit status: 1
See also automake (vim `which automake`) and look for 'sub locate_aux_dir'.
Change-Id: I5f69112f58b0a8ce0d848b0b6b543500ee63d133
Require version 0.22.0 which matches Debian stable ATM to simplify
testing and maintenance across all supported BTS models and
corresponding toolchains.
Change-Id: I005d60bb50889edad3e6fc0cd9f7f180aeaf1dab
Fixes: SYS#2569
Previously rs->rtp_bfd.when and rs->rtcp_bfd.when value of BSC_FD_READ
was overridden by 0. Fix it.
Reported by coverity: CID 1357763.
Change-Id: I11940cbf50361c4ea262d7001a16f9a982392f27
Previously RTP receive callback ignored Marker bit from RTP
headers. Extend API to include it explicitly.
Change-Id: I3c2b6365d8a51bf98805614e07344d2639875fde
Related: OS#1750
In libortp, rtp_session_set_connected_mode() sets a flag that is used in
rtp_session_set_remote_addr().
The name rtp_session_set_remote_addr() is misleading: this function actually
does take a lot of action, including an attempt to connect to the remote
server. Thus the "connected mode" flag needs to be set before this.
Suggested-by: NuRan Wireless <nuranwireless.com>
Change-Id: I92308ddffc376af8d4d65e6b9cbeee222b7bff5e
The e1_input code for PCAP writing uses the Layer3 RSL/OML message and
prepends a fake LAPD header. This means that all frames look like UI
frames in wireshark. In case we use in-kernel LAPD of mISDN, this is
the best we can do. However, in case of software (libosmocore) LAPD,
we can do better, by dumping the real LAPD frames at the interface
between LAPD code and the physical layer.
Related: OS#1763
Change-Id: Id0815690b5bc0a9b7f29f5cfde9d2f24c4f88ee5
We want the direction of the packet to be properly reflected in the
pseudo-header, so wireshark can display if the packet is sent in
network->user (BSC->BTS) direction, or in th reverse direction.
Related: OS#1764
Change-Id: I19afca0ce7e8b068bc64fa14bce6feb35aa9f1fc
This way the caller can hand in an already-open file descriptor, rather
than calling osmo_pcap_lapd_open() with a file path name.
Change-Id: Ic7193907a96b0e2284cb6a8a942d2bf0fb95d7e4
Wrap macro parameter in brackets to make sure macros always work
properly: without it GSM_FN_TO_MS(a - b) will result in a - b *
GSM_TDMA_FRAME_MS contrary to the user's expectation of (a - b) *
GSM_TDMA_FRAME_MS.
Change-Id: I38937469eb7948e2b8e6c1d7fba2c2adeba45b41
Reviewed-on: https://gerrit.osmocom.org/217
Tested-by: Jenkins Builder
Reviewed-by: Harald Welte <laforge@gnumonks.org>
Add defines necessary to correctly convert number of TDMA frames into
number of voice samples. Defines are proposed by Harald in comments on
gerrit.
Change-Id: I1d8345352fb2ac76f71e88cb40f089fe3f9aae7e
Related: OS#1562
Reviewed-on: https://gerrit.osmocom.org/200
Tested-by: Jenkins Builder
Reviewed-by: Harald Welte <laforge@gnumonks.org>
Add osmo_rtp_send_frame_ext() which accept boolean parameter in addition
to arguments of osmo_rtp_send_frame() to explicitly set marker bit in
RTP header. Previously it was always unset which resulted in degradation
of speech quality for codecs with explicit talkspurt events (was tested
with AMR's ONSET).
Related: OS#1562
Change-Id: I23e6dccfad5643e662391a0a2abebbb45597ffd9
Reviewed-on: https://gerrit.osmocom.org/82
Tested-by: Jenkins Builder
Reviewed-by: Harald Welte <laforge@gnumonks.org>
Make sure the version number of this sourcepackage is higher than
the one found in Debian SID.
Change-Id: I393ef6624f112794e15b81a0cc9dbd8b0a871b07
Reviewed-on: https://gerrit.osmocom.org/110
Tested-by: Jenkins Builder
Reviewed-by: Holger Freyther <holger@freyther.de>
Just because the IPA server is requesting certain identities via the CCM
protocol, doesn't mean that the client actually has those fields
available and initialized in struct ipaccess_unit.
Instad of segfaulting the client, let's check if the respective
identities are known. If yes, send them. If not, send the empty string
for that particular identity.
An ipa_server implementation may call ipa_server_conn_ccm for
the CCM processing on the server side of the connection. This
function in turn will call a conn->ccm_cb() function for messages to be
handled by the server implementation, such as the ID_RESP message,
which contains the Unit ID of the client that has just connected.
ortp: according to oRTP documentation rtp_session_set_connected_mode()
uses the address set by rtp_session_set_remote_addr() - move the
function call accordingly.
Fixes: OS#1661
Previously it was possible to send RTP data to port 0. This produce
multiple errors during the beginning of RTP transmission.
To address this OSMO_RTP_F_DISABLED flag was introduced. It's set by
default for all new RTP sessions. It can be manually unset after the
call to osmo_rtp_socket_create(). When the flag is set it prevents
transmission and reception of RTP frames for the session. The flag is
unset automatically in osmo_rtp_socket_connect() when session is bound
to non-zero remote port.
Fixes: OS#1662
Add VTY function to set the ipa bind address:
e1_input
ipa bind A.B.C.D
Add a priv pointer to struct e1inp_driver in order to communicate the bind
address parameter to ipaccess_line_update(). Add two "internal.h" functions to
get/set it in the ipa driver struct.
Add static ip_bind_addr() to use the IP address set from the VTY or, if NULL,
use "0.0.0.0". Apply in ipaccess_line_update().
ortp 0.18 has introduced the jitter_stats but we only check for
0.21 an later. It is okay that at some point the jitter stats
will be reported. For previous versions it is 0.
We might want to know how many things arrived at the BTS and
ortp is already counting for us. We don't intend to use RTCP
so I am not sure what the last "sender report" is and how
accurate the jitter is.
nullbytes has never been used, I assume the code ended up
using memset instead of copying from nullbytes.
Fixes:
subchan_demux.c:47:22: warning: unused variable 'nullbytes' [-Wunused-const-variable]
static const uint8_t nullbytes[SYNC_HDR_BITS];
Jacob noticed that after a re-connect old messages would be
sent. This can be the wanted behavior but add a method that
allows a caller to clear the tx queue. The implementation has
not been verified and there is no existing unit test where
I could easily add this code to.