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. |