Harald Welte
72b6989ec9
make sure 'band' will correctly parse the crap that libosmocore generates
2011-09-07 20:49:25 +02:00
Harald Welte
f49e3dd3af
store the last SID frame of a given LCHAN so we can repeat it
...
repeating the last SID frame is required during 20ms intervals where we
don't get a new SID update (SID RTP frames are valid up to 160ms)
2011-09-07 12:42:15 +02:00
Harald Welte
e5d082f356
depend on more recent libosmo-trau for polling support
2011-09-07 12:40:50 +02:00
Harald Welte
5355ead9d9
use osmo_ortp in POLLING mode instead of select loop integration
...
This solves a lot of the problems we've been seeing in the context
of large jitter (uRTP) or classic RTP with SID frames
2011-09-07 11:55:08 +02:00
Harald Welte
42f80bc7af
add RTP logging
2011-09-07 11:54:23 +02:00
Harald Welte
82c4d8685c
user DRTP where appropriate, not DL1C
2011-09-06 22:24:31 +02:00
Harald Welte
5fa9d9c18f
RSL: get rid of some compiler warnings
2011-09-06 22:20:51 +02:00
Harald Welte
24713348c4
More comprehensive AMR handling
...
* parse AMR multirate config form 04.08 IE into easier format
* CMR, CMC and CMI on the L1 side are an _index_ into the current
mode array
* Fix conversion of AMR SID frames from RTP -> L1
2011-09-06 22:19:40 +02:00
Harald Welte
a16bcc2cc6
update screenrc; we no longer have the '-B' command line option
2011-09-04 23:23:49 +02:00
Harald Welte
aadb046698
update configure.ac to make sure we have libosmocore-0.3.9
2011-09-04 23:00:20 +02:00
Harald Welte
e3e3a19e6c
add minimal example config file
2011-09-04 22:49:20 +02:00
Harald Welte
6d7b78bde1
add minimal configuration file support
...
this config file allows configuration of unit id, oml ip,
and local rtp bind IP.
2011-09-04 22:47:25 +02:00
Harald Welte
f41f2a7f92
AMR: double-check CMI/CMR/CMC values
...
We have to make sure that a phone cannot request codec modes which are
not part of the active set...
2011-09-04 17:21:39 +02:00
Harald Welte
099fb3b17c
Sysmobts L1: Implement HR codec support
...
We don't really know if the HR encoding is compatible with other
equipment, but it _should_ follow Chapter 5.2 of ETSI TS 101 318.
Please note that RFC5993 also specifies a way to encode GSM-HR into RTP,
we do not try to be compatible with that. The only difference seems to
be one additional TOC octet at the beginning of the payload field.
2011-09-03 18:10:26 +02:00
Harald Welte
716dded773
Fix MODE MODIFY for multirate configuration on TCH/H
...
using this configuration we can have successful AMR/HR (5.9) calls
2011-09-03 16:01:23 +02:00
Harald Welte
526b0c62cf
Add new ORTP based libosmo-trau based voice support
...
Using osmo-bts-sysmo and this code, it is now possible to do FR and AMR
based voice calls on TCH/F.
A lot of CPU is wasted in the conversion between the RTP formats and the
L1 specific formats for the codec frames. All data needs to be shifted
by four bits, and the order of bits needs to be reversed in every byte.
2011-09-03 15:41:12 +02:00
Harald Welte
b7bec6d488
remove dead code / dead fule common/voice.c
2011-09-03 15:40:50 +02:00
Harald Welte
ea844d62fa
abis.c: Remove dead code
2011-09-01 11:52:24 +02:00
Harald Welte
13df9c8a72
sysmobts: add a skeleton for codec frame processing
2011-07-24 02:52:20 +02:00
Harald Welte
97d4c44db2
RSL: send CRCX/MDCX related messages as msg discriminator ip.access
2011-07-24 00:01:46 +02:00
Harald Welte
9d4736a5be
Use libosmotrau for RTP support
...
This only implements creating, binding, connecting and free'ing RTP
sockets, not yet anything regarding receiving or transmitting codec
frames on them.
You will need the rtp branch of libosmocore for libosmotrau
2011-07-21 20:36:24 +02:00
Harald Welte
8583c31811
remove old RTP code from osmocom-bb/jolly/bts branch
...
Instead, I will base on the existing RTP code in openbsc
2011-07-21 16:48:07 +02:00
Harald Welte
6b62748da6
RSL: fix transmission of RR ciphering mode command via LAPDm
...
We didn't correctly format the RSLms message that went into LAPDm,
causing LAPDm to drop the message.
Also, disable the fake CIPH MODE COMPLETE generation hack for now
2011-07-13 00:52:41 +02:00
Harald Welte
168238f9de
update the HACK to delay the fake CIPHERING MODE COMPLETE
...
When seinding the fake CIPH MOD COMPL, we should wait a bit, as otherwise it
will reach the MSC _before_ we ever get the (still unencrypted) CLASSMARK
update from the MS.
2011-07-12 00:23:32 +02:00
Harald Welte
0285067b63
RSL: include fake IMEISV if we send fake CIPH MODE COMPL
...
If the MSC requests us to include the IMEISV in the ciph mode complete, we
respond with a fake IMEISV
2011-07-07 23:44:41 +02:00
Harald Welte
e4035a86cf
RSL: ciphering IE length can be '1' in case of 'no ciphering'
2011-07-07 21:35:46 +02:00
Harald Welte
ed607f475f
increae the RACH quality threshold to 5dB C/I
2011-07-07 18:17:31 +02:00
Harald Welte
be598e3afd
RSL: Send fake CIPHERING MODE COMPLETE
...
we do this as a hack as long as the MSC assumes the BTS supports
A5, but the L1 really doesn't support it yet.
2011-07-07 18:16:35 +02:00
Harald Welte
540410c123
RSL: implement RSL ENCR CMD, feed L3_INFO to LAPDm
...
This is not full encrpytion support, the bts-model part still
needs to detect the ENCR CMD when de-queueing from LAPDm and enable
the de-ciphering, detect the arrival of the first encrypted frame,
etc, enable en-ciphering, ...
2011-07-07 11:50:45 +02:00
Harald Welte
39eadbbb17
sysmbts L1 if: implement 'dead DSP L1 detection'
...
when we activate the SCH in the DSP, we start a 5-second timer. If
we ever do not receive any MPH-TIME.ind primitives from L1 within
that time frame, we stop the process (and will be re-spawned)
2011-07-05 16:59:27 +02:00
Harald Welte
547b1d1916
l1_if: send EMPTY-FRAME.req instead of fill frame on TCH/F + FACCH
2011-07-05 16:15:26 +02:00
Harald Welte
1920738840
L1/OML: De-activate L1 SAPIs in opposite order of activation
...
L1 wants TCH to be activated before FACCH, and it wants FACCH
to be de-activated before TCH. By iterating the array in iverse
order, we ensure this.
2011-07-05 14:27:30 +02:00
Harald Welte
79cf0bb1e6
increase RACH threshold to 1 dB C/I
2011-07-05 14:13:52 +02:00
Harald Welte
977fcbc2db
add some missing #include directives
2011-07-05 13:52:29 +02:00
Harald Welte
7ab9b777c6
add command line option '-p' to specify DSP trace flags as hex mask
2011-07-05 13:47:42 +02:00
Harald Welte
017300623b
Fix compilation of paging.c
...
Sometimes I really feel stupid...
2011-07-05 13:38:15 +02:00
Harald Welte
f78927a9a8
paging: Fix 'empty paging' message contents
...
Thanks to Dieter Spaar for spotting this bug
2011-07-05 13:36:26 +02:00
Harald Welte
5df3cf9db2
paging: correct contents of L2 Pseudo-Length
...
thanks to Dieter Spaar for spotting this one
2011-07-05 13:35:28 +02:00
Harald Welte
12b647998c
add VTY commands for setting and showing DSP trace flags
2011-07-05 12:21:27 +02:00
Harald Welte
ead4863de1
sysmobts: add value_string for dsp trace flags
2011-07-05 00:43:50 +02:00
Harald Welte
260fcfc8d0
logging: Add DSP log subsystem
2011-07-05 00:43:33 +02:00
Harald Welte
b17a47e6e1
measurement: fix missing \n at end of log output
2011-07-02 22:44:27 +02:00
Harald Welte
2b384c3ee1
remove FIXME that has long been fixed
2011-07-02 21:07:05 +02:00
Harald Welte
db4455acfa
add init script and screenrc for l1fwd
2011-07-02 15:57:37 +02:00
Harald Welte
43b669a9f3
untested code to dynamically set L1 band based on ARFCN number
2011-07-02 00:20:49 +02:00
Harald Welte
a5ea80e9b6
start screen in detached/background mode
2011-07-01 23:09:45 +02:00
Harald Welte
cc6bf663e7
add init script for screen-based respawn
2011-07-01 19:54:16 +02:00
Harald Welte
b10e9781d6
add respawn script and screenrc for respawning the process in screen
2011-07-01 19:51:32 +02:00
Harald Welte
18d0818710
make it clear why we terminate
2011-07-01 19:03:30 +02:00
Harald Welte
288d0c04c8
logging sanitization (use proper log levels, etc.)
2011-07-01 18:54:10 +02:00