Project

General

Profile

OpenBSC » History » Version 31

laforge, 02/19/2016 10:47 PM
update contributions.

1 13 laforge
[[PageOutline]]
2 1 laforge
'''OpenBSC''' is the current name for a software program that started with the name bs11-abis.
3
4
== What is OpenBSC ==
5 30 laforge
It started as a [wiki:BSC] (Base Station Controller) side implementation of the A-bis protocol, as implemented in the GSM Technical Specification 08.5x and 12.21.  It can run either
6
* as a classic BSC, exposing an A interface towards an external MSC, or 
7
* as NITB (Network In The Box), whert implements a minimal subset of the [wiki:BSC], [wiki:MSC]. [wiki:SMSC] and [wiki:HLR]. 
8 1 laforge
9
The goal of the project is to
10
 * provide a basis for experimentation and security research with GSM from the network side
11 30 laforge
 * provide a zero-cost alternative for hands-on experience with GSM systems in education and training
12 1 laforge
 * learn more about GSM networks on a lower level, particularly the practical aspects with real-world equipment
13 30 laforge
 * provide a stable/reliable network-side GSM implementation for small networks that don't need millions of subscribers or 99.99999% availability
14 1 laforge
15
== Requirements ==
16
17 30 laforge
While OpenBSC is mainly written in portable C99 code, there are is one non-portable part: The E1 input driver requires a Linux kernel with mISDN support and an [wiki:E1] interface card compatible with [wiki:mISDN].  You only need this if you have an E1 based BTS!
18 1 laforge
19 25 ipse
To operate a GSM network, you not only need OpenBSC but of course also some kind of GSM [wiki:BTS].  The only currently tested configurations are with a
20 30 laforge
 * sysmocom [http://www.sysmocom.de/products/sysmobts sysmoBTS] (using [wiki:OsmoBTS])
21 29 ipse
 * [https://fairwaves.co fairwaves] UmSITE and UmDESK (using [wiki:OsmoBTS])
22 1 laforge
 * Siemens [wiki:BS11 BS-11] microBTS
23
 * [wiki:nanoBTS ip.access nanoBTS]
24 25 ipse
25 30 laforge
IF you feel geeky, you could also build a BTS yourself, using full-duplex capable SDR (Software Defined Radio) hardware and a usual PC with [wiki:OsmoTRX] and [wiki:OsmoBTS] software. The software installation is described at the [wiki:network_from_scratch] page.
26 1 laforge
27 17 laforge
== Configurations / Modes ==
28
29
=== OpenBSC network-in-the-box (NITB) mode ===
30
31
This is ''very different'' from a classic GSM network in which the BSC is only one minor element in the distributed network consisting
32
of many different elements like BSC, MSC, HLR, etc.  Nonetheless, it is the ''classic'' mode to operate OpenBSC.  In this configuration, you only need (at least) one BTS and OpenBSC.  There is no need for a MSC, HLR, VLR, AuC or any other traditional GSM network components.
33
34
{{{
35
#!graphviz
36
digraph G {
37
rankdir=LR 
38
bs11->OpenBSC    [ label="Abis/E1" ]
39
nanobts->OpenBSC [ label="Abis/IP" ]
40 22 laforge
sysmobts->OpenBSC [ label="Abis/IP" ]
41 27 ipse
umsite->OpenBSC [ label="Abis/IP" ]
42 23 ipse
osmobts->OpenBSC [ label="Abis/IP" ]
43 17 laforge
bs11    [ label = "Siemens\nBS-11" ]
44
nanobts [ label = "ip.access\nnanoBTS" ]
45 22 laforge
sysmobts [ label = "sysmocom\nsysmoBTS" ]
46 27 ipse
umsite [ label = "fairwaves\nUmSITE" ]
47 26 ipse
osmobts [ label = "osmoBTS +\nSDR hardware" ]
48 17 laforge
OpenBSC [ label = "OpenBSC\nNITB" ]
49
}
50
}}}
51
52 19 laforge
In order to use the NITB mode, you will use the [wiki:osmo-nitb] program.
53 1 laforge
54 24 ipse
==== Interconnecting OpenBSC with an ISDN or SIP PBX ====
55
If you want to connect calls outside of your OpenBSC based GSM network, you can have [http://isdn.eversberg.eu/ Linux Call Router] and OpenBSC
56 18 laforge
work together to create a setup like this:
57
58
{{{
59
#!graphviz
60
digraph G {
61
rankdir=LR 
62
bs11->OpenBSC    [ label="Abis/E1" ]
63
nanobts->OpenBSC [ label="Abis/IP" ]
64 22 laforge
sysmobts->OpenBSC [ label="Abis/IP" ]
65 27 ipse
umsite->OpenBSC [ label="Abis/IP" ]
66 23 ipse
osmobts->OpenBSC [ label="Abis/IP" ]
67 1 laforge
OpenBSC->LCR     [ label="MNCC Socket" ]
68 18 laforge
LCR->ISDN        [ label="E1/PRI/BRI" ]
69 24 ipse
LCR->SIP         [ label="SIP/RTP" ]
70 18 laforge
bs11    [ label = "Siemens\nBS-11" ]
71
nanobts [ label = "ip.access\nnanoBTS" ]
72 22 laforge
sysmobts [ label = "sysmocom\nsysmoBTS" ]
73 27 ipse
umsite [ label = "fairwaves\nUmSITE" ]
74 26 ipse
osmobts [ label = "osmoBTS +\nSDR hardware" ]
75 18 laforge
OpenBSC [ label = "OpenBSC\nNITB" ]
76
}
77
}}}
78
79 17 laforge
=== OpenBSC in BSC-only mode ===
80 1 laforge
81 17 laforge
If you want to use OpenBSC as a classic GSM BSC, you can do that as well.  However, you will need all other parts of the GSM
82 18 laforge
network and a MSC that can provide an A-over-IP interface using SCCP-lite
83 17 laforge
84
{{{
85
#!graphviz
86
digraph G {
87
rankdir=LR;
88
bs11->OpenBSC    [ label="Abis/E1" ];
89
nanobts->OpenBSC [ label="Abis/IP" ];
90 22 laforge
sysmobts->OpenBSC [ label="Abis/IP" ]
91 27 ipse
umsite->OpenBSC [ label="Abis/IP" ]
92 23 ipse
osmobts->OpenBSC [ label="Abis/IP" ]
93 17 laforge
OpenBSC->MSC     [ label="A/SCCP-Lite/IP" ];
94 1 laforge
subgraph core {
95
  MSC->VLR;
96 17 laforge
  MSC->HLR;
97
  HLR->AUC;
98 18 laforge
  label = "not included";
99
  color = blue;
100 17 laforge
}
101
bs11    [ label = "Siemens\nBS-11" ];
102 1 laforge
nanobts [ label = "ip.access\nnanoBTS" ];
103 22 laforge
sysmobts [ label = "sysmocom\nsysmoBTS" ]
104 27 ipse
umsite [ label = "fairwaves\nUmSITE" ]
105 1 laforge
OpenBSC [ label = "OpenBSC\nosmo-bsc" ];
106
osmobts [ label = "osmoBTS +\nSDR hardware" ]
107
}
108
}}}
109 17 laforge
110 18 laforge
In order to use the BSC-only mode, you will use the [wiki:osmo-bsc] program.
111
112
== Source code ==
113 12 laforge
114 13 laforge
=== Releases ===
115 1 laforge
116 30 laforge
The OpenBSC project does not publish official releases.  Users are recommended to use the latest git master.
117
118
=== Repository ===
119 1 laforge
You can check out the source code via
120 15 laforge
{{{
121 1 laforge
git clone git://git.osmocom.org/openbsc.git
122
}}}
123 18 laforge
or browse it at http://cgit.osmocom.org/cgit/openbsc/
124 1 laforge
125 3 laforge
== Mailing list ==
126 16 laforge
127 18 laforge
There's a '''developer''' mailing list called openbsc@lists.osmocom.org
128 1 laforge
Subscription is available at [http://lists.osmocom.org/mailman/listinfo/openbsc/]
129
130
== IRC (Internet Relay Chat) ==
131 13 laforge
132 1 laforge
We have an IRC channel where some developers and users hang out.  You can find it at:
133
irc.freenode.net/#openbsc
134
135
== Project status ==
136
137 13 laforge
=== Things that work ===
138 1 laforge
 * Housekeeping
139
  * [wiki:OML] Initialization of the BTS
140 14 laforge
  * Support for frequency hopping channels on BTS equipment that supports it (like BS-11)
141 1 laforge
  * [wiki:RSL] bringup, channel allocation, Channel required / Immediate Assign
142 13 laforge
 * Mobility Management
143
  * Very simplistic [wiki:HLR] implemented as sqlite database
144 30 laforge
  * Non-secure Authorization using [wiki:IMEI]/[wiki:IMSI] and regular SIM cards.
145 1 laforge
  * Authentication using COMP128v1 if you have SIM cards with known Ki
146 13 laforge
  * [wiki:IMEI]/[wiki:IMSI] skimming of all phones that try to register with OpenBSC
147 18 laforge
  * Transmission of MM INFO packets with operator name and local time / timezone
148 1 laforge
  * paging of mobiles that are registered to the BTS
149 13 laforge
  * keeping track of which location area a phone has last performed location updating
150 1 laforge
  * in-call handover between multiple cells inside one BSC
151
 * SMS Support
152 13 laforge
  * [wiki:SMS] reception and [wiki:SMS] sending, including routing between subscribers
153 1 laforge
  * Sending of SMS from OpenBSC command line
154 30 laforge
  * Sending and receiving of SMS through SMPP
155 18 laforge
 * Voice Call Support
156 28 laforge
  * MO (Mobile Originated) and MT (Mobile Terminated) calls
157 13 laforge
  * TCH/F support with FR and EFR codec
158 30 laforge
  * TCH/H support with HR and AMR codec
159
 * Cell Broadcast Support
160
 * USSD (only for built-in USSD commands, no external interface)
161 13 laforge
 * E1 support
162
  * demultiplex of the four 16k sub-channels with voice data contained in one [wiki:E1] timeslot
163 1 laforge
  * support for multiple [wiki:TRX] in one [wiki:BTS]
164 13 laforge
  * support for multiple [wiki:BTS] connected to the same E1 link (multi-loop configuration)
165
 * Abis/IP support
166 30 laforge
  * Abis/IP protocol with IPA multiplex for [wiki:osmo-bts] and [wiki:nanoBTS]
167
  * RTP gateway to interoperate E1 based BTS and IP based BTS on one BSC and switch calls between them
168 13 laforge
 * GPRS/EDGE support
169 30 laforge
  * configuring the OML objects/attributes for GPRS and EDGE
170 1 laforge
  * setting SYSTEM INFORMATION 13 via RSL
171 18 laforge
  * configurable RAID/CGI/NSVCI/NSEI/BVCI
172 30 laforge
  * have the PCU in the BTS interoperate a SGSN with Gb (NS-over-IP) interface
173 11 laforge
  * beta state [wiki:OsmoSGSN] included along OpenBSC
174 20 laforge
175 7 laforge
=== Things that are implemented but don't work yet or aren't tested yet ===
176
 * dynamic PDCH / TCH switching
177 1 laforge
178 20 laforge
=== Things that are not implemented ===
179 30 laforge
 * Any type of transcoding of voice data (we leave this to the external MNCC handler / media gateway)
180 2 laforge
 * [wiki:CSD] calls
181 20 laforge
 * emergency call handling (works in [wiki:osmo-bsc], but not in [wiki:osmo-nitb])
182 1 laforge
183
== Authors ==
184 4 laforge
185 31 laforge
OpenBSC was mainly developed by [http://laforge.gnumonks.org/ Harald Welte] and Holger Freyther. 
186
187
Contributions (in no specific order) by Dieter Spaar, Stefan Schmidt, Daniel Willmann, Jan Luebbe, Thomas Seiler, Andreas Eversberg, Sylvain Munaut, Ciaby, Alexander Chemeris, Neels Hofmeyr, Nico Golde, Pablo Neira.
188 1 laforge
189 11 laforge
Special thanks to Dieter Spaar for [wiki:BS11-Init] and tons of feedback and comments, without which we would not have been able to make progress as quickly as we did.
Add picture from clipboard (Maximum size: 48.8 MB)