PageOutline = Welcome to Osmocom OpenBSC =
This is a project aiming to create a Free Software, (A)GPL-licensed software implementations for the GSM/3GPP protocol stacks and elements.
We have started with an A-bis (plus BSC/MSC/HLR) implementation for experimentation and research purpose, but have since moved way beyond that.
What this means: OpenBSC is not just a standard BSC, but a ''GSM network in a box'' software, implementing the minimal necessary parts to build a small, self-contained GSM network.
OpenBSC includes functionality normally performed by the following components of a GSM network: BSC (Base Station Controller), MSC (Mobile Switching Center), HLR (Home Location Register), AuC (Authentication Center), VLR (Visitor Location Register), EIR (Equipment Identity Register).
In addition, the Osmocom project also develops and maintains the [wiki:osmo-sgsn] and [wiki:OpenGGSN] programs for adding GPRS/EDGE capabilities.
We have started with the Siemens BS11 microBTS, mainly targetted the ip.access nanoBTS for some years, but has since been extended to support a variety of other [wiki:BTS] equipment like the Ericsson RBS 2000 family. Today, most of the users and active developers work not with proprietary BTSs, but with BTSs running our [wiki:OsmoBTS] software, i.e. either the [http://www.sysmocom.de/products/sysmobts sysmoBTS] family of hardware or SDR based hardware with [wiki:OsmoTRX] like the [https://fairwaves.co/wp/products/ UmSITE].
''We are always looking for [wiki:HardwareDonations] of any kind of GSM / 3G related carrier equipment.''
There is also continued work on creating a Free Software / Open Source software SS7 (M3UA, SUA, SCCP, TCAP, MAP) protocol stack in Erlang, as well as a number of other side projects like the [http://simtrace.osmocom.org/ SIMtrace] protocol tracer/sniffer for (U)SIM APDUs.
= Overview Diagram =
Please see the below overview diagram about common possible configurations of the Osmocom software.
[wiki:UnderstandingOpenBSC] -- Where to start learning about OpenBSC, what it does, and how. OpenBSC Software * Software for running a full minimal GSM Network in a Box: * [wiki:OpenBSC] -- The Free Software project implementing various parts of the GSM network * [wiki:osmo-nitb] -- A stand-alone gsm-network-in-a-box program implementing minimal subset of BSC, MSC, HLR, AuC and EIR. * [wiki:osmo-nitb_VTY] -- Reference for the interactive command line and config file * Software utilities for BTS configuration, provisioning and the like * [wiki:bs11_config] -- A small tool for configuring the BS-11 using RS232 * [wiki:ipaccess-find] -- A small tool to find nanoBTS in your network * [wiki:ipaccess-config] -- A small tool to set NVRAM configuration of the nanoBTS * [wiki:isdnsync] -- A small tool to use the PSTN as frequency standard * Software for running a BTS * [wiki:OsmoBTS] -- A BTS implementation * [wiki:OsmoTRX] -- A transceiver for OsmoBTS to use with SDR hardware * Software for running in pure ''BSC only'' mode, attaching via A/SCCP to a MSC * [wiki:osmo-bsc] -- OpenBSC in BSC-only mode * [wiki:bsc_msc_ip] -- A previous utility to connect to a MSC via A over IP * [wiki:OpenBSCWithSCCP] -- Howto use OpenBSC with a separate/real MSC * [wiki:bsc_mgcp] -- A stupid MediaGatewayControlProtocol (MGCP) gateway * [wiki:bsc_mgcp_VTY] -- Reference for the interactive command line and config file * Software for UMA/GAN (Unified Mobile Access) * [wiki:osmo-ganc] -- OpenBSC in GANC mode * Special purpose software for aggregating multiple A or Gb links * [wiki:bsc_nat] -- a BSC NAT/Multiplexer * [wiki:bsc_nat_VTY] -- Reference for the interactive command line and config file * [wiki:bsc_nat_release] -- Release testing for the BSC NAT. * [wiki:osmo-gbproxy] -- A proxy/gateway for aggregating multiple Gb links betwen BSS and SGSN * [wiki:osmo-gbproxy_VTY] -- Reference for the interactive command line and config file * [wiki:release-testing Testing] -- Comments and what makes sense to test for releases * GPRS related software * [wiki:osmo-sgsn] -- A work-in-progress SGSN * [wiki:osmo-sgsn_VTY] -- Reference for the interactive command line and config file * [wiki:OpenBSC_GPRS] -- Howto add data support to your OpenBSC setup * [wiki:osmo-pcu] -- A work-in-progress RLC/MAC and PCU implementation * OpenBSC related * [wiki:cellmgr_ng] -- The cellmgr_ng project to bring old equipment to the world of IP * [wiki:simplehlr] -- A web interface for the OpenBSC HLR database * [wiki:PortNumbers] -- A list of TCP port numbers as they are used by OpenBSC and related programs * Protocol extensions * [wiki:MgcpExtensions] -- Extensions to MGCP * [wiki:simulation] -- Running OpenBSC without a GSM Basestation * Important legal information on [wiki:SoftwareLicensing] * [wiki:meas_web] -- Web based measurement utility for OpenBSC
=== Information related to a specific BTS model === * [wiki:BS11] -- The Siemens BS-11 microBTS * [wiki:BS11/Sales] -- BS-11 units are sold out by now, sorry. * [wiki:BS11/Package_List] -- Make sure everything is in the package * [wiki:BS11/Configuration] -- How to use / setup the hardware * [wiki:BS11/LMT] -- The local maintenance Terminal * [wiki:BS11/Getting_Started] -- Getting started with your BS-11 * [wiki:BS11/Troubleshooting] -- When something doesn't work * [wiki:BS11/Internals] -- Details like PCB photographs * [wiki:E1-to-RJ45] -- Howto build your E1<>RJ45 cable * [wiki:BS11/RJ45mod] -- How to add RJ45 connectors to your BS-11 * [wiki:Isdnsync] -- Howto use the PSTN as frequency standard * [wiki:nanoBTS] -- the ip.access nanoBTS * [wiki:nanoBTS/Getting_Started] -- How to get started with a nanoBTS * [wiki:nanoBTS/Models] -- Known models * [wiki:nanoBTS/Internals] -- Details like PCB photographs and debug port * [wiki:nanoBTS/multiTRX] -- Creating a nanoBTS multi-TRX setup * [wiki:HSL_Femto] -- the HSL 2.75G Femtocell * [wiki:Ericsson_RBS] -- Ericsson BTSs (RBS2308, RBS2401) * [wiki:Motorola_Horizon_macro] -- Motorola Horizon macro BTS * [wiki:Nokia_Site_family] -- Nokia Site family BTS * [wiki:Ettus_USRP_B2xx_family] -- Ettus USRP B2xx family
=== Miscellaneous Information === * [wiki:GSM] -- Some links for starting to understand GSM * [wiki:HFC-E1 HFC-E1 Evaluation Board] -- The E1 card we use for attaching classic E1 based A-bis links * [wiki:GSMStandards] -- The specifications for GSM * [wiki:A5_GSM_AT_tricks] -- A5: Authentication & Ciphering * [wiki:mISDN] -- The Linux ISDN stack * [wiki:HandsetBugs] -- Things we have observed during development * [wiki:GSM_Security] -- The GSM security issues that we find
- [wiki:LegalNotes] -- Important Legal notes on operating GSM base stations
- [wiki:FieldTests] -- The OpenBSC field tests and their reports
=== Howtos === * Standard configuration: * [wiki:Building_OpenBSC] -- Getting started with OpenBSC under Debian * [wiki:multi-BTS_with_handover] -- Connecting 2x BTS to a single BSC/NITB and enabling handover
- Advanced topics: * [wiki:OpenBSC_with_Asterisk] -- A comprehensive tutorial on setting up OpenBSC with Asterisk * [wiki:OpenBSC_LCR] -- OpenBSC+LCR with Asterisk (obsolete) * [wiki:OpenBSC_LCR_Ubuntu12.04] -- Short installation guide for OpenBSC with Asterisk on Ubuntu 12.04 * [wiki:OpenBSC_Crypto] -- Howto add A5/x cryptography support to your OpenBSC setup * [wiki:SDR_OsmoTRX_network_from_scratch] -- Building everything from scratch for SDR based hardware with OsmoTRX, OsmoBTS and OsmoNITB.
- RF Topics: * [wiki:cable_antenna] -- Build new antennas for your BTS * [wiki:ethernet_dummyload] -- Use an old ethernet terminator as dummyload * [wiki:10db_attenuator] -- Turn 30mW into 3 mW
=== Tools for developers ===
- [wiki:WandelGoltermannMA10] -- a GSM protocol analyzer ISA card
- [wiki:TektronixK1103] -- GSM protocol tester and analyzer
- [wiki:PacketDump] -- Using wireshark on PCAP files
- [wiki:MagicSIM] -- SIM cards where you can program the Ki
For a complete list of local wiki pages, see TitleIndex.