6
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 The hack program in this repository is intended to run on a lab machine (which
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 can be RPi etc) that drives an E1 BTS by way of an icE1usb adapter and osmo-e1d.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 When a traditional E1 BTS activates a speech or data TCH, it starts transmitting
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 TRAU-UL frames on the E1 subslot corresponding to the activated TDMA ts, and it
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 expects to receive back TRAU-DL frames shortly thereafter. If those TRAU-DL
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 frames don't appear as expected, the BTS declares remote transcoder failure and
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 ends the call attempt - hence a lab test setup has to include a TRAU emulator
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 to keep the BTS happy, even if the only objective is to keep the call open and
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 capture TRAU-UL output.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 The standard solution in Osmocom is to run OsmoMGW in E1 interface mode.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 However, my primary objective was to capture the byte stream coming from the
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 TRAU-frame-carrying E1 timeslot and record it into a file for later analysis
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 offline - and I found it too difficult to hack this function into OsmoMGW.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 Therefore, I took a different approach:
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 * Because OsmoBSC still needs its associated OsmoMGW, I do run the latter, but
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 I point it at a fake E1 interface (vpair in osmo-e1d) instead of the real one.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 (OsmoBSC still talks to the real E1 for OML and RSL.)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 * The hack program contained in this repository opens the real timeslot on the
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 real E1 and acts as a fake TRAU, reacting to TRAU-UL output from the BTS and
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 responding with TRAU-DL frames. This faketrau program also implements the
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 recording function.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 The only version currently implemented is faketrau-16k: it opens a single E1 ts
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 and treats it as four 16 kbit/s subslots. It acts like real TRAUs in that it
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 needs to receive TRAU-UL frames from the BTS in order to activate a channel,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 and the TRAU-UL frame type in bits C1-C5 indicates the codec type (FR or EFR),
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 selecting the type of TRAU-DL frames that need to be sent back to the BTS.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 The stream of TRAU-DL frames sent to the BTS by faketrau-16k consists of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 GSM 06.11 silence frames in the case of FRv1 or decoder homing frames in the
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 case of EFR.
|