Project

General

Profile

OpenBSC » History » Revision 13

Revision 12 (laforge, 02/19/2016 10:47 PM) → Revision 13/45 (laforge, 02/19/2016 10:47 PM)

[[PageOutline]] 
 '''OpenBSC''' is the current name for a software program that started with the name bs11-abis. 

 == What is OpenBSC == 
 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. 

 The goal of the project is to 
  * provide a basis for experimentation and security research with GSM from the network side 
  * document, publicized and point out any security related issues that we find as part of that 
  * learn more about GSM networks on a lower level, particularly the practical aspects with real-world equipment 

 We '''are not interested''' in 
  * building a stable/reliable BSC/MSC for deployment in actual networks 
  * building something that follows the GSM spec to the last detail 
  * disrupting actual commercial GSM network 

 == Requirements == 

 While OpenBSC is mainly written in portable C99 code, there are some non-portable parts: 
  * The E1 input driver runs only on Linux systems and requires a Linux kernel with mISDN support and an [wiki:E1] interface card compatible with [wiki:mISDN] 

 To opertate It requires 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 
  * Siemens [wiki:BS11 BS-11] microBTS 
  * or a    [wiki:nanoBTS ip.access nanoBTS] nanoBTS]. 

 == Source code == 

 === Releases === 
 As we're a mostly research oriented project, we don't really have any releases yet.    This will likely change soon. FIXME 

 === Development Version === 
 You can check out the source code via 
 {{{ 
 git clone git://openbsc.gnumonks.org/openbsc.git git://bs11-abis.gnumonks.org/openbsc.git 
 }}} 
 or browse it at http://openbsc.gnumonks.org/trac/browser http://bs11-abis.gnumonks.org/trac/browser 

 == Mailing list == 

 There's a developer mailing list called openbsc@lists.gnumonks.org 
 Subscription is available at [http://lists.gnumonks.org/mailman/listinfo/openbsc/] 

 == IRC (Internet Relay Chat) == 

 We have an IRC channel where some developers and users hang out.    You can find it at: 
 irc.freenode.net/#openbsc 

 == Project status == 

 === Things that work === 
  * Housekeeping 
   * [wiki:OML] Initialization of the BTS 
   
  * [wiki:RSL] bringup, channel allocation, Channel required / Immediate Assign 
  * Mobility Management 
   * Very simplistic [wiki:HLR] implemented as sqlite database 
   
  * Non-secure Authentication using [wiki:IMEI]/[wiki:IMSI] and regular SIM cards. 
   
  * [wiki:IMEI]/[wiki:IMSI] skimming of all phones that try to register with OpenBSC 
   
  * [wiki:SMS] reception and [wiki:SMS] sending (simplistic, not possible to route them yet) 
  * Transmission of MM INFO packets with operator name and local time / timezone 
   
  * Extremely simplistic call control for MO (Mobile Originated) and MT (Mobile Terminated) calls 
  * TCH/F support 
  * paging of mobiles that are registered to the BTS 
   
  * keeping track signalling of which location area a phone has last performed location updating 
   * in-call handover between multiple cells inside one BSC mobile-originated and mobile-terminated calls 
  * SMS Support 
   * [wiki:SMS] reception and [wiki:SMS] sending, including routing between subscribers 
   * Sending processing/switching of SMS calls from OpenBSC commandline 
   * Sending of SMS from external applications by writing one phone to the SQL tables another 
  * Voice Call Support 
   * MO (Mobile Originated) and MT (Mobile Terminated) calls 
   * TCH/F support with FR and EFR codec 
   * TCH/H support with AMR codec (in BSC-only configuration) 
  * E1 support 
   * demultiplex of the four 16k sub-channels with voice data contained in one [wiki:E1] timeslot 
   
  * support for multiple [wiki:TRX] in one [wiki:BTS] 
   * support for multiple [wiki:BTS] connected to the same E1 link (multi-loop configuration) 
  * Abis/IP support 
   * Abis/IP protocol for nanoBTS 
   * RTP gateway to interoperate E1 based BTS and nanoBTS on one BSC and switch calls between them 
  * GPRS/EDGE support 
   * configuring the nanoBTS OML objects/attributes for GPRS and EDGE 
   * setting SYSTEM INFORMATION 13 via RSL 
   * configurable RAID/CGI/NSVCI/NSEI/BVCI 
   * have the BTS interoperate a SGSN with Gb (NS-over-IP) interface 

 === Things that are implemented but don't work yet or aren't tested yet === 
  * GPRS support (SGSN + GGSN inside OpenBSC) 
  * Support the use of A3/A8 and A5/1 (we need SIM cards with known Ki, e.g. simulated SIM cards) 

 === Things being worked at === 
  *    GPS/DCF77 disciplined quartz reference for the HFC-E1 card (via HS-Esslingen, Student Research Project) 

 === Things that are missing === 
  * Cell Broadcast 
  * transcoding of voice data 
  * TCH/H voice calls (in standalone config) 
  * [wiki:CSD] calls 
  * handover between multiple [wiki:BTS] 
  * emergency call handling 
  * Discontinuous TX and RX ([wiki:DTX] / [wiki:DRX]) support 

 == Authors == 

 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. 

 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)