Project

General

Profile

OpenBSC

OpenBSC spannt zusammen mit den NanoGSM BTS das GSM Netz auf. Die Inbetriebnahme von OpenBSC ist recht einfach. Sofern die Software kompiliert, genügt es meißt, eine von den vorhandenen Beispielkonfigurationen zu benutzen. Je nach BTS-Typ wählt man die entsprechende Datei. Jede BTS ist über eine ID eindeutig identifizierbar. Diese ID lässt sich mit den OpenBSC-Tools ipaccess-config und ipaccess-find setzen.

Die aktuell laufende Version von OpenBSC aus dem GIT-repository:

fad0753b3435c6ce13536188b74f08c76309a1be
Datum: 2010-10-07, Uhrzeit: 06:07:57

Zur Kompatibilität der Versionen untereinander, siehe zusätzlich LCR, libosmocore und mISDN.

Konfigurationsmöglichkeiten

Beispielkonfigurationsdateien sind von OpenBSC schon gegeben (openbsc.cfg.*). Die entsprechende Konfigurationsdatei wählt man beim Start von bsc_hack mit dem Parameter -c.

Die Einstellungen für das RZ-GSM lauten wie folgt:

  • network country code 262: Länderkennung des GSM-Netzes (262 für Deutschland)
  • mobile network code 23: (da frei) Netzkennung (Netzanbieter), siehe http://en.wikipedia.org/wiki/Mobile_Network_Code.
  • short name RZ-GSM: Name, der in manchen Handys nach erfolgreicher Einbuchung angezeigt wird
  • long name RZ-GSM: Name, der in manchen Handys nach erfolgreicher Einbuchung angezeigt wird
  • auth policy closed 1: Gibt an, dass nur Handys, die in der hlr.sqlite3 erlaubt sind, sich in das Netzwerk einbuchen dürfen
  • handover 1: Wenn mehrere BTS angeschlossen sind, wird so Handover aktiviert
    • handover window rxlev averaging 10
    • handover window rxqual averaging 1
    • handover window rxlev neighbor averaging 10
    • handover power budget interval 6
    • handover power budget hysteresis 2
    • handover maximum distance 9999
  • bts 0: Für jeden weiteren angeschlossenen BTS um eins erhöhen
    • type nanobts: Typ (BS-11 oder nanoBTS)
    • band DCS1800: GSM 900 oder 1800
    • cell_identity 4711: Zellnummer der BTS. Für jeden BTS um eins erhöhen
    • location_area_code 2323: Location Area in der sich diese Zelle befindet. Handys melden sich beim Netzwerk, wenn sie von einer Location Area zur nächsten wechseln
    • training_sequence_code 7
    • base_station_id_code 63
    • ms max power 23 Wie stark darf das Handy senden (in dB). Höher ist stärker
    • periodic location update 30
    • cell reselection hysteresis 4: Wie viel dB muss das Signal dieser BTS besser sein, damit hierher gewechselt werden soll.
    • rxlev access min 0: Wie stark muss das Signal sein, damit ein Handy zu dieser BTS wechseln darf.
    • channel allocator ascending
    • rach tx integer 9
    • rach max transmission 7
    • ip.access unit_id 1800 0 ID der nanoBTS. Wird durch das Tool ipaccess-config gesetzt. Wichtig zur eindeutigen Identifizierung
    • oml ip.access stream_id 255
    • gprs mode none: Noch kein GPRS
    • trx 0: Einstellungen zur Sende/Empfangseinheit "0" der BTS. Jede nanoBTS besitzt nur eine TRX-Einheit
      • rf_locked 0
      • arfcn 877 GSM-Kanal, auf der diese Box sendet. Eine Lizenz ist für das GSM-Band erforderlich!
      • nominal power 23: mit wie viel dB darf die BTS senden. Höher ist stärker
      • max_power_red 0: Wie stark soll das Ausgangssignal gedämpft werden
      • rsl e1 tei 0
      • timeslot 0
        • phys_chan_config CCCH+SDCCH4
      • timeslot 1
        • phys_chan_config SDCCH8
      • timeslot 2
        • phys_chan_config TCH/F
      • timeslot 3
        • phys_chan_config TCH/F
      • timeslot 4
        • phys_chan_config TCH/F
      • timeslot 5
        • phys_chan_config TCH/F
      • timeslot 6
        • phys_chan_config TCH/F
      • timeslot 7
        • phys_chan_config TCH/F
  • bts 1
    • type nanobts
    • band DCS1800
    • cell_identity 4712
    • location_area_code 2323
    • training_sequence_code 7
    • base_station_id_code 63
    • ms max power 23
    • periodic location update 30
    • cell reselection hysteresis 4
    • rxlev access min 0
    • channel allocator ascending
    • rach tx integer 9
    • rach max transmission 7
    • ip.access unit_id 1802 0
    • oml ip.access stream_id 255
    • gprs mode none
    • trx 0
      • rf_locked 0
      • arfcn 871
      • nominal power 23
      • max_power_red 0
      • rsl e1 tei 0
      • timeslot 0
        • phys_chan_config CCCH+SDCCH4
      • timeslot 1
        • phys_chan_config SDCCH8
      • timeslot 2
        • phys_chan_config TCH/F
      • timeslot 3
        • phys_chan_config TCH/F
      • timeslot 4
        • phys_chan_config TCH/F
      • timeslot 5
        • phys_chan_config TCH/F
      • timeslot 6
        • phys_chan_config TCH/F
      • timeslot 7
        • phys_chan_config TCH/F
  • bts 2
    • type nanobts
    • band DCS1800
    • cell_identity 123
    • location_area_code 1212: Zweite Location Area, da diese BTS im Hörsaal am Flughafengelände montiert ist.
    • training_sequence_code 7
    • base_station_id_code 63
    • ms max power 15
    • periodic location update 30
    • cell reselection hysteresis 4
    • rxlev access min 0
    • channel allocator ascending
    • rach tx integer 9
    • rach max transmission 7
    • ip.access unit_id 1801 0
    • oml ip.access stream_id 255
    • gprs mode none
    • trx 0
      • rf_locked 0
      • arfcn 871
      • nominal power 23
      • max_power_red 20
      • rsl e1 tei 0
      • timeslot 0
        • phys_chan_config CCCH+SDCCH4
      • timeslot 1
        • phys_chan_config SDCCH8
      • timeslot 2
        • phys_chan_config TCH/F
      • timeslot 3
        • phys_chan_config TCH/F
      • timeslot 4
        • phys_chan_config TCH/F
      • timeslot 5
        • phys_chan_config TCH/F
      • timeslot 6
        • phys_chan_config TCH/F
      • timeslot 7
        • phys_chan_config TCH/F

Frequenzen

Im Gegenteil zum 2,4-GHz Band für WLAN-Geräte, benötigt man für den Betrieb einer Sendeanlage im GSM-1800 Band eine Lizenz. Die Universität hat die GSM Kanäle 871 und 877 zugeteilt bekommen. Dies entspricht den Frequenzen 1782,0 MHz und 1877,0 MHz sowie 1783,2 MHz und 1878,2 MHz, da jeder GSM-Kanal sowohl auf ein Sende- als auch eine Empfangsfrequenz abbildet. Siehe http://www.roaminginfo.de/html/kanale_und_frequenzen.html. Unter den Konfigurationsdateien ist dieser Wert unter dem Stichwort arfcn einzutragen. Die Sendelizenz beschränkt sich nicht nur auf die erlaubten Frequenzen sondern auch auf die Sendestärke. Diese darf nicht überschritten werden.

hlr.sqlite3

In der SQLite Datenbank hlr.sqlite3 speichert OpenBSC alle notwendigen Daten, um die Mobiltelefone eindeutig zu identifizieren und Telefonate durchzuschalten. Details finden sich unter HLR. Dort lassen sich einzelne Handys für das RZ-GSM freischalten und ihnen Telefonnummern zuweisen.

Location Area

Mehrere BTS können zu einer Location Area gehören. Somit lassen sich mehrere BTS, die sich zum Beispiel in räumlicher Nähe befinden, zusammenfassen. Bemerkt ein eingebuchtes Mobiltelefon beim Handover, dass es sich von einer Location Area zur nächsten bewegt, so meldet es sich beim Netz und teilt die neue Location Area mit. Damit sinkt der Verwaltungsaufwand, da das Handy bei einem Anruf vom Netz nur in einer Location Area gesucht werden muss. Innerhalb von OpenBSC spielt dies eine untergeordnete Rolle, aber für große Netzbetreiber ist die Wahl und größe einer Location Area nicht trivial.

Zur Zeit ist das RZ-GSM in zwei Location Areas unterteilt:

  • 1212 im Gebäude 101 der Technischen Fakultät
  • 2323 im Rechenzentrums des Institutsviertels

Handover

Innerhalb der Location Area 2323 arbeiten zwei BTS. Ihre Netzabdeckung überschneidet sich. Somit sind Handover von einer zur nächsten Zelle möglich. Damit ein Handover auch während des Gespräches funktioniert, muss bsc_hack mit dem Parameter -P gestartet werden. Dieser Parameter ist notwendig, damit die NanoGSM korrekt im Handoverbetrieb funktionieren: http://laforge.gnumonks.org/weblog/2009/12/21/. Die zuletzt bekannte Location Area wird von OpenBSC in der HLR gespeichert.

Ein Handover von einer BTS zur nächsten funktioniert auch, wenn sich die BTS in unterschiedlichen Location Areas befinden.

OpenBSC Konsole

OpenBSC biete eine Konsole, die per Telnet auf dem Port 4242 erreichbar ist.

telnet localhost 4242

öffnet die Konsole.

mit "?" zeigt die Konsole eine interaktive Hilfe. <Tab> vervollständigt Befehle. enable aktiviert zusätzliche Befehle.

SMS senden

Über die Konsole lassen sich Kurznachrichten an die Teilnehmer senden. Hierzu ist der Abschnitt "Was uns Probleme bereitete" unter HLR zu lesen. Der Befehl

subscriber extension x sms send "Hallo" 

sendet dem Mobiltelefon mit der Nummer (IMSI, OpenBSC-ID) x die Kurznachricht mit dem Text Hallo. Statt extension ist auch die Verwendung von IMSI oder ID möglich

SMS Warteschlange leeren

sms send pending

sendet alle in der Warteschlange befindlichen Kurznachrichten.

Informationen über das laufende Netz

show network

zeigt die Auslastung des GSM-Netzes.

show statistics

listet Informationen unter anderem über die Anzahl gesendeter Kurznachrichten und BTS Fehler.

Was uns Probleme bereitete

Inkompatibilität

Da libosmocore und OpenBSC mittlerweile getrennt voneinander entwickelt werden, kam es bei uns hin und wieder zu Inkompatibilitäten. Auch wenn man stets die aktuellen Versionen nutzt, gibt es keine Garantie, dass beide Programme zusammen arbeiten. Wenn OpenBSC also nicht kompilierte, konnten wir das Problem nur schwer lokalisieren. Entweder war libosmocore nicht kompatibel, oder der letzte OpenBSC-commit enthielt Fehlerhaften Code. Auch der LCR-Code wird unabhängig von OpenBSC entwickelt. Uns passierte es also hin und wieder, dass zwar libosmocore und OpenBSC zueinander kompatibel waren, LCR dann aber nicht mehr mit der OpenBSC-Version kompilierte. Die von uns verwendeten und als kompatibel erkannten Versionen stehen daher in den einzelnen Seiten von libosmocore, OpenBSC und LCR.

Debugging

Um Das GSM-Netz von OpenBSC zu debuggen, gibt es nur wenige Tools. Fehler im Programm ließen sich mithilfe von gdb und der Mailingliste finden. Probleme, die aber auf falsche Konfigurationen oder der BTS beruhten ließen sich nur sehr zäh finden. Ein wichtiges Werkzeug hierfür waren die unzähligen Nokia 3310-Handys. Mit der Software gammu: http://wammu.eu/gammu/ und einem Datenkabel lässt sich ein spezieller Debugmonitor auf dem Handys aktivieren. Hiermit lassen sich erweiterte Informationen sowohl über die aktive als auch in der Nähe befindlichen BTS anzeigen.

Nokia 3310 mit aktiviertem Netmonitor. Das Display zeigt u.a. Empfangsstärke, Kanalnummer und Sendestärke

Die Konsole von OpenBSC mit den erweiterten Befehlen (enable) leistete zusätzliche Dienste.

3310_small.png (111 KB) Richard Zahoransky, 10/18/2010 03:35 AM