Project

General

Profile

SDR OsmoTRX network from scratch » History » Version 4

jolly, 02/19/2016 10:47 PM

1 1 jolly
[[PageOutline]]
2
= Installing a GSM network from scratch =
3
4
This document describes how to install, configure and run BTS transceiver, OsmoBTS, OpenBSC and LCR.
5
6
In order to use this quick howto, you must have basic knowledge about GIT and be familiar with compiling packages from source.
7
8
9
== Prerequisite ==
10
11
=== opencore-amr ===
12
13
This package installs GSM adaptive multirate codecs
14
15
It can downloaded at [http://sourceforge.net/projects/opencore-amr/files/opencore-amr/]
16
17
{{{
18
tar xvzf opencore-amr-x.x.x.tar.gz
19
cd opencore-amr-x.x.x
20
./configure
21
make
22
make install
23
ldconfig
24
cd ..
25
}}}
26
27
28
=== Sip-Sofia ===
29
30
This package installs the open source SIP stack of Nokia Research Center.
31
32
It can downloaded at [http://sourceforge.net/projects/sofia-sip/files/sofia-sip/].
33
34
{{{
35
tar xvzf sofia-sip-x.xx.xx.tar.gz
36
cd sofia-sip-x.xx.xx
37
./configure
38
make
39
make install
40
ldconfig
41
cd ..
42
}}}
43
44
45
=== oRTP ===
46
47
This package installs the open source RTP protocol required for libosmo-abis.
48
49
It can downloaded at [http://download.savannah.gnu.org/releases/linphone/ortp/sources/].
50
51
{{{
52
tar xvzf ortp-x.xx.x.tar.gz
53
cd ortp-x.xx.x
54
./configure
55
make
56
make install
57
ldconfig
58
cd ..
59
}}}
60
61
62
=== others ===
63
64
sqlite3 and libdbi should be available from your distribution.
65
66
67
68
== Installing  ==
69 2 jolly
70
=== Linux-Call-Router (LCR) ===
71
72
This package installs the open source PBX software to bridge ISDN (DSS1) / SIP / GSM (MNCC protocol)
73
74
The latest version can downloaded via git:
75
{{{
76
git clone git://git.misdn.eu/lcr.git/
77
}}}
78
79 3 jolly
Now configure, as described here:
80
81 2 jolly
{{{
82
cd lcr
83
autoreconf -i
84
./configure --with-sip --with-gsm-bs --with-gsm-ms --enable-gsm-hr
85
}}}
86 1 jolly
87 3 jolly
Sometimes it is necessary to point to different pkgconfig path, because your distribution may use other pkgconfig path than the default path of the packages above. Use the following prefix:
88
{{{
89
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ ./configure .....
90
}}}
91 1 jolly
92 3 jolly
The configure result should include:
93
{{{
94 2 jolly
configure: Compiled with GSM network side support
95
configure: Compiled with GSM mobile side support
96
configure: Compiled with GSM half rate codec support
97 1 jolly
configure: Compiled with GSM AMR codec support
98 2 jolly
configure: Compiled with SIP support
99 3 jolly
}}}
100 1 jolly
101 3 jolly
Finish the installation:
102
{{{
103 2 jolly
make
104
make install
105 1 jolly
ldconfig
106 2 jolly
cd ..
107 3 jolly
}}}
108 1 jolly
109
110 3 jolly
=== libosmocore ===
111 1 jolly
112 3 jolly
This package installs the core utility library for various Osmocom projects.
113 1 jolly
114 3 jolly
The latest version can downloaded via git:
115
{{{
116
git clone git://git.osmocom.org/libosmocore.git
117
}}}
118
119
Finish the installation:
120
{{{
121 2 jolly
cd libosmocore
122
git checkout -b
123
autoreconf -i
124
./configure
125 1 jolly
make
126 2 jolly
make install
127
ldconfig
128 1 jolly
cd ..
129 3 jolly
}}}
130 1 jolly
131
132 3 jolly
=== libosmo-abis ===
133 1 jolly
134 3 jolly
This package installs the core utility library for various Osmocom projects.
135
136
The latest version can downloaded via git:
137
{{{
138
git clone git://git.osmocom.org/libosmo-abis.git
139
}}}
140
141
Sometimes it is necessary to point to different pkgconfig path, because your distribution may use other pkgconfig path than the default path of the packages above. Use the following prefix:
142
{{{
143
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ ./configure .....
144
}}}
145
146
Finish the installation:
147
{{{
148 2 jolly
cd libosmo-abis
149
autoreconf -i
150 1 jolly
./configure
151 2 jolly
(sometimes it is necessary to point to different .../lib/pkgconfig/ path: PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ ./configure .....)
152
make
153 1 jolly
make install
154
ldconfig
155
cd ..
156 3 jolly
}}}
157 1 jolly
158
159 3 jolly
=== OpenBSC ===
160 1 jolly
161 3 jolly
This package installs the open source base station controller.
162 2 jolly
163 3 jolly
The latest version can downloaded via git:
164
{{{
165
git clone git://git.osmocom.org/openbsc.git
166
}}}
167
168
Finish the installation:
169
{{{
170 1 jolly
cd openbsc/openbsc/
171 2 jolly
change repository: git checkout -b jolly/testing origin/jolly/testing
172
autoreconf -i
173 1 jolly
./configure
174
(sometimes it is necessary to point to different .../lib/pkgconfig/ path: PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ ./configure .....)
175 2 jolly
make
176 1 jolly
make install
177
cd ../..
178 3 jolly
}}}
179 1 jolly
180
181 3 jolly
=== OsmoBTS ===
182
183 1 jolly
osmo-bts: (BTS software)
184
185 3 jolly
This package installs the open source base transceiver station.
186
187
The latest version can downloaded via git:
188
{{{
189
git clone git://git.osmocom.org/osmo-bts.git
190
}}}
191
192
Finish the installation:
193
{{{
194 1 jolly
cd osmo-bts
195 2 jolly
change repository: git checkout -b jolly/trx origin/jolly/trx
196 1 jolly
autoreconf -i
197
./configure --enable-trx
198
(sometimes it is necessary to point to different .../lib/pkgconfig/ path: PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ ./configure .....)
199 2 jolly
make
200 1 jolly
make install
201
cd ..
202 3 jolly
}}}
203 2 jolly
204
205 3 jolly
== Configuration examples ==
206 2 jolly
207 4 jolly
=== OpenBTS ===
208 3 jolly
209
{{{
210 2 jolly
mkdir ~/.osmocom
211 3 jolly
edit ~/.osmocom/osmo-bts.cfg
212
}}}
213 2 jolly
214 3 jolly
{{{
215 2 jolly
bts 0
216
 band DCS1800
217
 ipa unit-id 1801 0
218
 oml remote-ip 127.0.0.1
219
 rtp bind-ip 127.0.0.1
220
 rtp jitter-buffer 0
221
 paging lifetime 0
222
 radio-link-timeout 32
223
 gsmtap-sapi bcch
224
 gsmtap-sapi ccch
225 1 jolly
 gsmtap-sapi rach
226 2 jolly
 gsmtap-sapi agch
227
 gsmtap-sapi pch
228
 gsmtap-sapi sdcch
229
 gsmtap-sapi pacch
230
 gsmtap-sapi pdtch
231
 gsmtap-sapi sacch
232
 fn-advance 20
233
 ms-power-loop -10
234
 timing-advance-loop
235
 trx 0
236
  rxgain 0
237 1 jolly
  power 0
238
}}}
239 4 jolly
240
241
=== OpenBSC ===
242
243
{{{
244
mkdir ~/.osmocom
245
edit ~/.osmocom/open-bsc.cfg
246
}}}
247
248
{{{
249
e1_input
250
 e1_line 0 driver ipa
251
 e1_line 0 port 0
252
network
253
 network country code 262
254
 mobile network code 42
255
 short name OpenBSC
256
 long name OpenBSC
257
 auth policy accept-all
258
 location updating reject cause 13
259
 encryption a5 0
260
 neci 1
261
 paging any use tch 0
262
 rrlp mode ms-based
263
 mm info 1
264
 handover 0
265
 handover window rxlev averaging 10
266
 handover window rxqual averaging 1
267
 handover window rxlev neighbor averaging 10
268
 handover power budget interval 6
269
 handover power budget hysteresis 3
270
 handover maximum distance 9999
271
 timer t3101 10
272
 timer t3103 0
273
 timer t3105 0
274
 timer t3107 0
275
 timer t3109 0
276
 timer t3111 0
277
 timer t3113 60
278
 timer t3115 0
279
 timer t3117 0
280
 timer t3119 0
281
 timer t3122 10
282
 timer t3141 0
283
 dtx-used 0
284
 subscriber-keep-in-ram 0
285
 bts 0
286
  type nanobts
287
  band DCS1800
288
  cell_identity 0
289
  location_area_code 1
290
  training_sequence_code 7
291
  base_station_id_code 63
292
  ms max power 0
293
  cell reselection hysteresis 4
294
  rxlev access min 0
295
  periodic location update 30
296
  channel allocator descending
297
  rach tx integer 9
298
  rach max transmission 7
299
  channel-descrption attach 1
300
  channel-descrption bs-pa-mfrms 5
301
  channel-descrption bs-ag-blks-res 1
302
  ip.access unit_id 1801 0
303
  oml ip.access stream_id 255 line 0
304
  neighbor-list mode automatic
305
  codec-support fr hr efr afs ahs
306
  trx 0
307
   rf_locked 0
308
   arfcn 869
309
   nominal power 0
310
   max_power_red 0
311
   rsl e1 tei 0
312
    timeslot 0
313
     phys_chan_config CCCH+SDCCH4
314
     hopping enabled 0
315
    timeslot 1
316
     phys_chan_config TCH/F
317
     hopping enabled 0
318
    timeslot 2
319
     phys_chan_config TCH/F
320
     hopping enabled 0
321
    timeslot 3
322
     phys_chan_config TCH/F
323
     hopping enabled 0
324
    timeslot 4
325
     phys_chan_config TCH/F
326
     hopping enabled 0
327
    timeslot 5
328
     phys_chan_config TCH/F
329
     hopping enabled 0
330
    timeslot 6
331
     phys_chan_config TCH/F
332
     hopping enabled 0
333
    timeslot 7
334
     phys_chan_config TCH/F
335
     hopping enabled 0
336
337
338
=== LCR ===
339
340
==== interface.conf ====
341
342
The simplest configuration uses only the GSM interface. It allows LCR to forward calls from GSM to GSM or from GSM to a call test feature.
343
344
{{{
345
edit /usr/local/etc/lcr/interface.conf
346
}}}
347
348
You can remove (or comment out) everything and just add this interface:
349
350
{{{
351
[gsm]
352
gsm-bs
353
tones yes
354
earlyb no
355
extern
356
}}}
357
358
==== routing.conf ====
359
360
{{{
361
edit /usr/local/etc/lcr/routing.conf
362
}}}
363
364
You can remove (or comment out) everything and just add these rulesets:
365
366
{{{
367
[main]
368
interface=gsm                           : goto ruleset=gsm
369
                                        : disconnect cause=31
370
371
[gsm]
372
dialing=99                              : test
373
                                        : extern interfaces=gsm
374
}}}
375
376
Look at the main rule set. All calls from interface 'gsm' are forwarded to rule set 'gsm'.
377
378
Look at the gsm rule set. All calls that dial '99' prefix, will be test calls. All other calls will be forwarded back to 'gsm' interface.
Add picture from clipboard (Maximum size: 48.8 MB)