Project

General

Profile

OpenBSC » History » Version 15

laforge, 02/19/2016 10:47 PM

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 14 laforge
 * building a stable/reliable BSC/MSC for deployment in networks requiring high-9 (99.999....) availability
14 1 laforge
 * 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 15 laforge
git clone git://git.osmocom.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 1 laforge
  * [wiki:OML] Initialization of the BTS
53 14 laforge
  * Support for frequency hopping channels on BTS equipment that supports it (like BS-11)
54 13 laforge
  * [wiki:RSL] bringup, channel allocation, Channel required / Immediate Assign
55
 * Mobility Management
56
  * Very simplistic [wiki:HLR] implemented as sqlite database
57
  * Non-secure Authentication using [wiki:IMEI]/[wiki:IMSI] and regular SIM cards.
58
  * [wiki:IMEI]/[wiki:IMSI] skimming of all phones that try to register with OpenBSC
59
  * Transmission of MM INFO packets with operator name and local time / timezone
60
  * paging of mobiles that are registered to the BTS
61
  * keeping track of which location area a phone has last performed location updating
62
  * in-call handover between multiple cells inside one BSC
63
 * SMS Support
64
  * [wiki:SMS] reception and [wiki:SMS] sending, including routing between subscribers
65
  * Sending of SMS from OpenBSC commandline
66
  * Sending of SMS from external applications by writing to the SQL tables
67
 * Voice Call Support
68
  * MO (Mobile Originated) and MT (Mobile Terminated) calls
69
  * TCH/F support with FR and EFR codec
70
  * TCH/H support with AMR codec (in BSC-only configuration)
71
 * E1 support
72
  * demultiplex of the four 16k sub-channels with voice data contained in one [wiki:E1] timeslot
73
  * support for multiple [wiki:TRX] in one [wiki:BTS]
74
  * support for multiple [wiki:BTS] connected to the same E1 link (multi-loop configuration)
75
 * Abis/IP support
76
  * Abis/IP protocol for nanoBTS
77
  * RTP gateway to interoperate E1 based BTS and nanoBTS on one BSC and switch calls between them
78
 * GPRS/EDGE support
79
  * configuring the nanoBTS OML objects/attributes for GPRS and EDGE
80
  * setting SYSTEM INFORMATION 13 via RSL
81
  * configurable RAID/CGI/NSVCI/NSEI/BVCI
82 1 laforge
  * have the BTS interoperate a SGSN with Gb (NS-over-IP) interface
83 14 laforge
  * pre-alpha state [wiki:OsmoSGSN] included in OpenBSC
84 1 laforge
85 11 laforge
=== Things that are implemented but don't work yet or aren't tested yet ===
86
 * GPRS support (SGSN + GGSN inside OpenBSC)
87 2 laforge
 * Support the use of A3/A8 and A5/1 (we need SIM cards with known Ki, e.g. simulated SIM cards)
88 7 laforge
89
=== Things being worked at ===
90
 *  GPS/DCF77 disciplined quartz reference for the HFC-E1 card (via HS-Esslingen, Student Research Project)
91 2 laforge
92 1 laforge
=== Things that are missing ===
93 2 laforge
 * Cell Broadcast
94 11 laforge
 * transcoding of voice data
95 1 laforge
 * TCH/H voice calls (in standalone config)
96 2 laforge
 * [wiki:CSD] calls
97
 * emergency call handling
98 4 laforge
 * Discontinuous TX and RX ([wiki:DTX] / [wiki:DRX]) support
99 2 laforge
100 1 laforge
== Authors ==
101
102 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.
103 1 laforge
104 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)