Until 2009 the situation looked like this:
In 2008, some people (most present in this room) started to write FOSS for GSM
bs11-abis
to bsc_hack
to OpenBSC
Mobile Station (your phone)
Base Transceiver Station, consists of 1..n TRX
Transceiver for one radio channel, serves 8 TS
Timeslots in the GSM radio interface; each runs a specific combination of logical channels
Base Station Controller
Mobile Switching Center; Terminates MM + CC Sub-layers
Home Location Register; Subscriber Database
SMS Service Center
Link Access Protocol, D-Channel. Like LAPD in ISDN
Radio Resource (establish/release dedicated channels)
Mobility Management (registration, location, authentication)
Call Control (voice, circuit switched data, fax)
Connection Management
which further reduces to the following minimal setup:
So our minimal setup is a Phone, a BTS and OsmoNITB.
We assume a sysmoBTS in the following tutorial
osmo-bts-sysmo
: BTS family by sysmocom
osmo-bts-trx
: Used with OsmoTRX + general-purpose SDR
osmo-bts-octphy
: Octasic OCTBTS hardware / OCTSDR-2G PHY
osmo-bts-litecell15
: Nutaq Litecell 1.5 hardware/PHY
See separate talk about BTS hardware options later today.
⇒ Make sure you permit the above communication in your network/firewall config
configure terminal
and interactively change it
/etc/osmocom/osmo-bts.cfg
as
described in the following slide
bts 0
band DCS1800 <1>
ipa unit-id 1801 0 <2>
oml remote-ip 192.168.100.11 <3>
the GSM frequency band in which the BTS operates
the unit-id by which this BTS identifies itself to the BSC
the IP address of the BSC (to establish the OML connection towards it)
Note
|
All other configuration is downloaded by the BSC via OML. So most BTS settings are configured in the BSC/NITB configuration file. |
⇒ BSC identifies BTS on Unit ID, not on Source IP!
osmo-nitb
executable built from the openbsc
source tree / git repository
git clone && autoreconf -fi && ./configure && make install
libosmo*
dependencies are required first…)
network
network country code 1 <1>
mobile network code 1 <2>
short name Osmocom <3>
long name Osmocom
auth policy closed <4>
encryption a5 0 <5>
MCC (Country Code) e.g. 262 for Germany; 1 == Test
MNC (Network Code) e.g. mcc=262, mnc=02 == Vodafone; 1 == Test
Operator name to be sent to the phone after registration
Only accept subscribers (SIM cards) explicitly authorized in HLR
Use A5/0 (== no encryption)
network
bts 0
type sysmobts <1>
band DCS1800 <2>
ms max power 33 <3>
periodic location update 6 <4>
ip.access unit_id 1801 0 <5>
codec-support fr hr efr amr <6>
type of the BTS that we use (must match BTS)
frequency band of the BTS (must match BTS)
maximum transmit power phones are permitted (33 dBm == 2W)
interval at which phones should send periodic location update (6 minutes)
Unit ID of the BTS (must match BTS)
Voice codecs supported by the BTS
network
bts 0
trx 0
arfcn 871 <1>
max_power_red 0 <2>
timeslot 0
phys_chan_config CCCH+SDCCH4 <3>
timeslot 1
phys_chan_config TCH/F <4>
...
timeslot 7
phys_chan_config PDCH <5>
The RF channel number used by this TRX
The maximum power reduction in dBm. 0 = no reduction
Every BTS needs need one timeslot with a CCCH
We configure TS1 to TS6 as TCH/F for voice
We configure TS6 as PDCH for GPRS
→ let’s check if we can perform LOCATION UPDATE on our own network
logging level mm info
→ should show LOCATION UPDATE request / reject / accept
show *
)
*#100#
from any registered MS to obtain own number
show
commands)
Program |
Telnet Port |
OsmoPCU |
4240 |
OsmoBTS |
4241 |
OsmoNITB |
4242 |
OsmoSGSN |
4245 |
?
and list
commands
show subsciber
to display data about subscriber:
OpenBSC> show subscriber imsi 901700000003804
ID: 12, Authorized: 1
Extension: 3804
LAC: 0/0x0
IMSI: 901700000003804
TMSI: F2D4FA0A
Expiration Time: Mon, 07 Dec 2015 09:45:16 +0100
Paging: not paging Requests: 0
Use count: 1
show bts
, show trx
, show lchan
, show statistics
, …