Hello,
What is the reference of the 2 RF connector in the nanoBTS 139U?
Best,
Choukoumoun.
* Anglais - détecté
* Anglais
* Anglais
<javascript:void(0);>
Hi,
At each event since like 27c3 (or maybe even 26c3), we comment out a
part of the rtp_send_frame method to solve some audio issues (glitch
and sometime progressively increasing delay).
This is the piece of code in question:
{
struct timeval tv, tv_diff;
long int usec_diff, frame_diff;
gettimeofday(&tv, NULL);
tv_difference(&tv_diff, &rs->transmit.last_tv, &tv);
rs->transmit.last_tv = tv;
usec_diff = tv_diff.tv_sec * 1000000 + tv_diff.tv_usec;
frame_diff = (usec_diff / 20000);
if (abs(frame_diff) > 1) {
long int frame_diff_excess = frame_diff - 1;
LOGP(DLMUX, LOGL_NOTICE,
"Correcting frame difference of %ld
frames\n", frame_diff_excess);
rs->transmit.sequence += frame_diff_excess;
rs->transmit.timestamp += frame_diff_excess * duration;
}
}
introduced by :
commit 392736d38bf9dae29800bde630c9ceee8a3914f3
Author: Harald Welte <laforge(a)netfilter.org>
Date: Sun Dec 20 13:16:14 2009 +0100
RTP Proxy: Fix RTP sequence number and timestamp in case of dropped frames
During handover, we will not send RTP frames for quite some time. However,
the way the rtp_send code is structured, it will increment the timestamp
with a fixed amount every time we send a frame, independent how
much wallclock
time has actually passed.
This code is a hack to update the sequence number and timestamp in case it
seems to be wrong. It makes handover much more reliable.
Does this speak to anyone ?
Cheers,
Sylvain
Hi
I'm still trying to run OpenBSC against a legacy MSC. All is fine, except
rtp/mgcp stuff.
All other procedures are performed well.
Call set up is done properly, both BSSAP and MGCP. At downlink direction,
GSM-FR coded messages are reaching endpoints at BSC side, and that's all:
no RTP traffic between BSC and BTS. And I also found no control traffic in
between osmo-bsc_mgcp and osmo-bsc or BTS
Could you please give me a key.
I would appreciate your help, and would be glad to write a wiki afterwards.
osmo-bsc is configured with --enable-osmo-bsc
the only trick here I had to do - to allow GSM FR (version 1) manually,
there is a temporary patch to osmo-bsc: could not configure it from a file.
Btw, what is the reason to keep such sort of knowledge at BSC side, and
what is the proper way to define permitted codecs?
osmo-bsc_mgcp is running, answers MGCP commands, allocates endpoints etc.
MGCP call setup is done properly, MGCP allocates endpoints at BSC side (at
server), but there is no RTP traffic in between BSC and BTS.
Thank you,
Dmitri
rtp path is as follows, all MGCP formalities are met
(card) 192.168.50.10:4036 <--G.711--> 172.44.3.2:4036--(transcoding)--
192.168.1.11:5036 <--GSM FR --> 192.168.1.11:16036 (osmo-bsc_mgcp)
where (card) is A-nterface GW, (transcoding) is my software
I'm getting an error
<000b> mgcp_network.c:348 Endpoint 0x13 data from wrong address
192.168.1.11 vs. 0.0.0.0
CallAgent is at 192.168.50.10, interfaced over OpenVPN tunnel (172.44.2.XX)
So, server has two interfaces:
192.168.1.11 and 172.44.3.2 (OpenVPN)
BTS is 192.168.1.4
So, mgcp is bind to 0.0.0.0, cause MGCP is controlled over VPN interface
mgcp.cfg is
bind ip 0.0.0.0
bind port 2427
bind early 1
rtp base 4000
sdp audio payload number 3
sdp audio payload name GSM/8000
number endpoints 31
loop 1
osmo-bsc.fcg is
e1_input
e1_line 0 driver ipa
network
network country code 250
mobile network code 07
short name OsmoBSC
long name OsmoBSC
auth policy closed
location updating reject cause 13
! encryption a5 1
neci 1
paging any use tch 0
rrlp mode none
mm info 1
handover 0
handover window rxlev averaging 10
handover window rxqual averaging 1
handover window rxlev neighbor averaging 10
handover power budget interval 6
handover power budget hysteresis 3
handover maximum distance 9999
timer t3101 10
timer t3103 0
timer t3105 0
timer t3107 0
timer t3109 0
timer t3111 0
timer t3113 60
timer t3115 0
timer t3117 0
timer t3119 0
timer t3122 0
timer t3141 0
dtx-used 0
subscriber-keep-in-ram 0
bts 0
type nanobts
band PCS1900
cell_identity 2611
location_area_code 51601
training_sequence_code 7
base_station_id_code 63
ms max power 15
cell reselection hysteresis 4
rxlev access min 0
channel allocator ascending
rach tx integer 9
rach max transmission 7
ip.access unit_id 1801 0
oml ip.access stream_id 255 line 0
neighbor-list mode manual-si5
gprs mode none
trx 0
rf_locked 0
arfcn 800
nominal power 0
max_power_red 20
rsl e1 tei 0
timeslot 0
phys_chan_config CCCH+SDCCH4
hopping enabled 0
timeslot 1
phys_chan_config TCH/F
hopping enabled 0
timeslot 2
phys_chan_config TCH/F
hopping enabled 0
timeslot 3
phys_chan_config TCH/F
hopping enabled 0
timeslot 4
phys_chan_config TCH/F
hopping enabled 0
timeslot 5
phys_chan_config TCH/F
hopping enabled 0
timeslot 6
phys_chan_config TCH/F
hopping enabled 0
timeslot 7
phys_chan_config TCH/F
hopping enabled 0
msc
ip.access rtp-base 6000
timeout-ping 20
timeout-pong 5
dest 192.168.50.10 5000 0
CRCX 147 0012@mgw MGCP 1.0
M: sendrecv
L: p:20, s: off, e: off, a: GSM
C: 18
v=0
c=IN IP4 192.168.1.11
m=audio 5036 RTP/AVP 3
200 147 OK
I: 6
v=0
o=- 6 23 IN IP4 192.168.1.11
c=IN IP4 192.168.1.11
t=0 0
m=audio 16036 RTP/AVP 3
a=rtpmap:3 GSM/8000
Add a new core/defs.h file for definitions that can be used from
within header files without including prototypes and extern
declarations. It's primarily meant for macro definitions and basic
typedefs.
Move the definition of OSMO_DEPRECATED there and use compiler version
info to avoid compiler errors.
---
include/osmocom/core/defs.h | 39 +++++++++++++++++++++++++++++++++++++++
include/osmocom/gsm/gsm_utils.h | 14 +-------------
2 files changed, 40 insertions(+), 13 deletions(-)
create mode 100644 include/osmocom/core/defs.h
diff --git a/include/osmocom/core/defs.h b/include/osmocom/core/defs.h
new file mode 100644
index 0000000..e3afbff
--- /dev/null
+++ b/include/osmocom/core/defs.h
@@ -0,0 +1,39 @@
+#ifndef OSMOCORE_DEFS_H
+#define OSMOCORE_DEFS_H
+
+/*! \defgroup utils General-purpose utility functions
+ * @{
+ */
+
+/*! \file defs.h
+ * \brief General definitions that are meant to be included from header files.
+ */
+
+/*! \brief Check for gcc and version.
+ *
+ * \note Albeit glibc provides a features.h file that contains a similar
+ * definition (__GNUC_PREREQ), this definition has been copied from there
+ * to have it available with other libraries, too.
+ *
+ * \return != 0 iff gcc is used and it's version is at least maj.min.
+ */
+#if defined __GNUC__ && defined __GNUC_MINOR__
+# define OSMO_GNUC_PREREQ(maj, min) \
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#else
+# define OSMO_GNUC_PREREQ(maj, min) 0
+#endif
+
+/*! \brief Set the deprecated attribute with a message.
+ */
+#if ! defined(__GNUC__)
+# define OSMO_DEPRECATED(text)
+#elif OSMO_GNUC_PREREQ(4,5)
+# define OSMO_DEPRECATED(text) __attribute__((__deprecated__(text)))
+#else
+# define OSMO_DEPRECATED(text) __attribute__((__deprecated__))
+#endif
+
+/*! @} */
+
+#endif
diff --git a/include/osmocom/gsm/gsm_utils.h b/include/osmocom/gsm/gsm_utils.h
index 1c55dfb..f412e3e 100644
--- a/include/osmocom/gsm/gsm_utils.h
+++ b/include/osmocom/gsm/gsm_utils.h
@@ -28,7 +28,7 @@
#include <stddef.h>
#include <stdint.h>
-#include <osmocom/gsm/gsm_utils.h>
+#include <osmocom/core/defs.h>
#define ADD_MODULO(sum, delta, modulo) do { \
if ((sum += delta) >= modulo) \
@@ -37,18 +37,6 @@
#define GSM_MAX_FN (26*51*2048)
-/*! \brief Set the deprecated attribute with a message.
- *
- * \todo Move this to a global header utility file.
- * \todo Check for compiler version to selectivly enable the message.
- */
-#if 0
-#define OSMO_DEPRECATED(text) __attribute__((deprecated(text)))
-#else
-#define OSMO_DEPRECATED(text) __attribute__((__deprecated__))
-#endif
-
-
struct gsm_time {
uint32_t fn; /* FN count */
uint16_t t1; /* FN div (26*51) */
--
1.7.9.5