Project

General

Profile

HLR

HLR steht für Home Location Register. OpenBSC speichert die HLR und andere, für den Betrieb notwendige Daten in der SQLite3-Datei hlr.sqlite3 ab. Damit kombiniert OpenBSC mehrere Datenbanken, die im GSM-Standard definiert sind zu einer einzigen. Im eigentlichen Sinne dürfte man die entstandene Datenbank nicht mehr HLR nenne, doch spielt der Unterschied im praktischen Gebrauch kaum eine Rolle.

Gespeicherte Daten

die hlr.sqlite3 speichert unter anderem:

  • Die Zuordnung von IMSI zu Telefonnummer.
  • Eine Liste erlaubter SIM-Karten
  • Die Zuordnung von IMSI zu TMSI
  • Die Zuordnung IMSI zu EMEI

Durch diese Zuordnung lässt sich das von Dennis entwickelte Webinterface zur Anmeldung realisieren. Die HLR identifiziert jeden Nutzer eindeutig.

Schema der Datenbank

Die Datenbank umfasst folgende Tabellen:

  • ApduBlobs
  • AuthToken
  • EquipmentWatch
  • SMS (in der Warteschlange befindlichen Kurznachrichten)
  • user
  • AuthKeys
  • Counters
  • Meta
  • Subscriber (Zuordnung erlaubter Nutzer und Telefonnummern)
  • AuthLastTuples
  • Equipment (Zuordnung IMSI zu IMEI)
  • RateCounters
  • VLR

Die Tabelle Subscriber ist folgendermaßen aufgebaut:

id created updated imsi name extension authorized tmsi lac
Fortlaufende Nummer Timestamps IMSI Benuterdefinierter Name Zugeordnete Telefonnummer Einbuchung Erlaubt TMSI letzte Location Area

Gebrauch der HLR

OpenBSC protokolliert die Loginversuche der Handys in das Netz. Dabei speichert das Programm die IMSI und teilt automatische eine Rufnummer zu. So lange aber das Autorisierungsbit nicht gesetzt ist, darf der Teilnehmer mit dieser IMSI sich nicht einloggen. Erst danach generiert OpenBSC eine TMSI, speichert diese in die hlr.sqlite3 und erlaubt dem Handy den Zugang.

mit dem Befehl

sudo sqlite3 hlr.sqlite3

öffnet man die Datenbank.

Anzeigen der Datenbank

select * from subscriber;

zeigt eine Liste der Teilnehmer. Beispiel:

120|2010-09-27 13:18:59|2010-10-02 09:19:07|xxxxxxxxxxxxxxx||216|1|862425882|2323
122|2010-09-28 07:57:58|2010-10-01 18:11:26|xxxxxxxxxxxxxxx||217|1|915252686|2323
131|2010-09-29 07:17:19|2010-09-29 07:21:18|xxxxxxxxxxxxxxx||218|1|1376642849|2323
145|2010-09-29 14:16:05|2010-10-13 16:51:43|xxxxxxxxxxxxxxx||219|1|1372672756|2323
146|2010-09-29 14:21:27|2010-09-30 10:05:57|xxxxxxxxxxxxxxx||221|1|1303098994|2323
148|2010-09-29 15:17:29|2010-10-12 13:51:20|xxxxxxxxxxxxxxx||220|1|1479953590|1212
160|2010-09-30 11:48:14|2010-10-12 10:29:16|xxxxxxxxxxxxxxx||223|1|1607045839|2323
166|2010-09-30 17:37:35|2010-10-08 07:50:47|xxxxxxxxxxxxxxx||225|1|1443526566|2323
178|2010-10-01 13:07:22|2010-10-01 13:53:30|xxxxxxxxxxxxxxx||226|1|1824574856|2323
187|2010-10-02 12:30:37|2010-10-05 15:21:33|xxxxxxxxxxxxxxx||227|1|830174484|2323
414|2010-10-08 12:19:47|2010-10-08 14:37:47|xxxxxxxxxxxxxxx||228|1|636009570|1212

Das RZ-GSM umfasst zur Zeit zwei Location Areas:
  • 2323 um das RZ-Gebäude
  • 1212 um den Hörsaal 101 in der Nähe vom Flugplatz

Löschen von Einträgen

Um alle Einträge in der Tabelle Subscriber zu löschen, reicht folgender Befehl:

DELETE from subscriber;

Nicht autorisierte Handys löscht man mit dem Befehl

DELETE FROM Subscriber WHERE authorized = 0;

Einfügen von Daten

um ein Handy mit der gewünschten IMSI freizuschalten, nutzt man den Befehl

UPDATE Subscriber SET authorized = 1 WHERE imsi = "geünschte IMSI;

Der Teilnehmer

ID = 1 01.07.2010 01.07.2010 IMSI=000000000000000 eigener Name 44444 Einbuchung erlaubt TMSI:automatisch: _lac:automatisch:

lässt sich folgendermaßen manuell in die Datenbank einpflegen:

INSERT INTO Subscriber (id, created, updated, imsi, name, extension, authorized, tmsi, lac)
VALUES (1, '2010-07-01 14:00:00', '2010-07-01 14:00:00', 000000000000000, 'eigener Name', '44444', 1, '1234', 2323);

Was uns Probleme bereitete

Damit es möglich ist, von der OpenBSC Konsole aus SMS Kurznachrichten an die Mobiltelefone zu senden, muss die Datenbank einen Eintrag mit der ID 1 besitzen. Ist dies nicht der Fall, stürzt OpenBSC ab. Die am Mobiltelefon angezeigte Kurznachricht stammt dann von der Telefonnummer, die dem Eintrag mit der ID 1 zugeteilt wurde. SMS von einem Handy zum anderen sind auch ohne diesen Datenbankeintrag möglich.