Project

General

Profile

OpenBSC » History » Version 13

laforge, 02/19/2016 10:47 PM
update status

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 2 laforge
It is 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 implements a minimal subset of the [wiki:BSC], [wiki:MSC] and [wiki:HLR].  It does not implement ant of the interfaces (like the A and B interfaces) between the higher-order GSM network components.
6 1 laforge
7
The goal of the project is to
8
 * provide a basis for experimentation and security research with GSM from the network side
9
 * document, publicized and point out any security related issues that we find as part of that
10
 * learn more about GSM networks on a lower level, particularly the practical aspects with real-world equipment
11
12
We '''are not interested''' in
13
 * building a stable/reliable BSC/MSC for deployment in actual networks
14
 * building something that follows the GSM spec to the last detail
15
 * disrupting actual commercial GSM network
16
17
== Requirements ==
18
19 13 laforge
While OpenBSC is mainly written in portable C99 code, there are some non-portable parts:
20
 * The E1 input driver requires a Linux kernel with mISDN support and an [wiki:E1] interface card compatible with [wiki:mISDN]
21 1 laforge
22 13 laforge
To opertate 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
23
 * Siemens [wiki:BS11 BS-11] microBTS
24
 * [wiki:nanoBTS ip.access nanoBTS]
25 1 laforge
26
== Source code ==
27 12 laforge
28
=== Releases ===
29 13 laforge
As we're a mostly research oriented project, we don't really have any releases yet.  This will likely change soon.
30 1 laforge
31
=== Development Version ===
32
You can check out the source code via
33
{{{
34 13 laforge
git clone git://openbsc.gnumonks.org/openbsc.git
35 1 laforge
}}}
36 13 laforge
or browse it at http://openbsc.gnumonks.org/trac/browser
37 1 laforge
38 3 laforge
== Mailing list ==
39
40 1 laforge
There's a developer mailing list called openbsc@lists.gnumonks.org
41
Subscription is available at [http://lists.gnumonks.org/mailman/listinfo/openbsc/]
42
43
== IRC (Internet Relay Chat) ==
44
45 13 laforge
We have an IRC channel where some developers and users hang out.  You can find it at:
46 1 laforge
irc.freenode.net/#openbsc
47
48
== Project status ==
49
50
=== Things that work ===
51 13 laforge
 * Housekeeping
52
  * [wiki:OML] Initialization of the BTS
53
  * [wiki:RSL] bringup, channel allocation, Channel required / Immediate Assign
54
 * Mobility Management
55
  * Very simplistic [wiki:HLR] implemented as sqlite database
56
  * Non-secure Authentication using [wiki:IMEI]/[wiki:IMSI] and regular SIM cards.
57
  * [wiki:IMEI]/[wiki:IMSI] skimming of all phones that try to register with OpenBSC
58
  * Transmission of MM INFO packets with operator name and local time / timezone
59
  * paging of mobiles that are registered to the BTS
60
  * keeping track of which location area a phone has last performed location updating
61
  * in-call handover between multiple cells inside one BSC
62
 * SMS Support
63
  * [wiki:SMS] reception and [wiki:SMS] sending, including routing between subscribers
64
  * Sending of SMS from OpenBSC commandline
65
  * Sending of SMS from external applications by writing to the SQL tables
66
 * Voice Call Support
67
  * MO (Mobile Originated) and MT (Mobile Terminated) calls
68
  * TCH/F support with FR and EFR codec
69
  * TCH/H support with AMR codec (in BSC-only configuration)
70
 * E1 support
71
  * demultiplex of the four 16k sub-channels with voice data contained in one [wiki:E1] timeslot
72
  * support for multiple [wiki:TRX] in one [wiki:BTS]
73
  * support for multiple [wiki:BTS] connected to the same E1 link (multi-loop configuration)
74
 * Abis/IP support
75
  * Abis/IP protocol for nanoBTS
76
  * RTP gateway to interoperate E1 based BTS and nanoBTS on one BSC and switch calls between them
77
 * GPRS/EDGE support
78
  * configuring the nanoBTS OML objects/attributes for GPRS and EDGE
79
  * setting SYSTEM INFORMATION 13 via RSL
80
  * configurable RAID/CGI/NSVCI/NSEI/BVCI
81
  * have the BTS interoperate a SGSN with Gb (NS-over-IP) interface
82 1 laforge
83 11 laforge
=== Things that are implemented but don't work yet or aren't tested yet ===
84
 * GPRS support (SGSN + GGSN inside OpenBSC)
85 2 laforge
 * Support the use of A3/A8 and A5/1 (we need SIM cards with known Ki, e.g. simulated SIM cards)
86 7 laforge
87
=== Things being worked at ===
88
 *  GPS/DCF77 disciplined quartz reference for the HFC-E1 card (via HS-Esslingen, Student Research Project)
89 2 laforge
90 1 laforge
=== Things that are missing ===
91 2 laforge
 * Cell Broadcast
92 11 laforge
 * transcoding of voice data
93 1 laforge
 * TCH/H voice calls (in standalone config)
94 2 laforge
 * [wiki:CSD] calls
95
 * emergency call handling
96 4 laforge
 * Discontinuous TX and RX ([wiki:DTX] / [wiki:DRX]) support
97 2 laforge
98 1 laforge
== Authors ==
99
100 9 laforge
OpenBSC was mainly developed by [http://laforge.gnumonks.org/ Harald Welte]. Contributions by Holger Freyther, Stefan Schmidt, Daniel Willmann, Jan Luebbe, Thomas Seiler and Andreas Eversberg.
101 1 laforge
102 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)