add OsmoHLR manual, OsmoHLR VTY reference
Change-Id: Ieb6a362a26a7e65199f68f5cd32d9b6b0e5d0fbf
This commit is contained in:
parent
f2252db133
commit
644bcae369
4
Makefile
4
Makefile
|
@ -9,6 +9,7 @@ all: check-deps
|
||||||
cd OsmoPCU; $(MAKE)
|
cd OsmoPCU; $(MAKE)
|
||||||
cd OsmoGSMTester; $(MAKE)
|
cd OsmoGSMTester; $(MAKE)
|
||||||
cd OsmoMSC; $(MAKE)
|
cd OsmoMSC; $(MAKE)
|
||||||
|
cd OsmoHLR; $(MAKE)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
cd OsmoBTS; $(MAKE) clean
|
cd OsmoBTS; $(MAKE) clean
|
||||||
|
@ -21,6 +22,7 @@ clean:
|
||||||
cd OsmoPCU; $(MAKE) clean
|
cd OsmoPCU; $(MAKE) clean
|
||||||
cd OsmoGSMTester; $(MAKE) clean
|
cd OsmoGSMTester; $(MAKE) clean
|
||||||
cd OsmoMSC; $(MAKE) clean
|
cd OsmoMSC; $(MAKE) clean
|
||||||
|
cd OsmoHLR; $(MAKE) clean
|
||||||
|
|
||||||
upload:
|
upload:
|
||||||
cd OsmoBTS; $(MAKE) upload
|
cd OsmoBTS; $(MAKE) upload
|
||||||
|
@ -33,6 +35,7 @@ upload:
|
||||||
cd OsmoPCU; $(MAKE) upload
|
cd OsmoPCU; $(MAKE) upload
|
||||||
cd OsmoGSMTester; $(MAKE) upload
|
cd OsmoGSMTester; $(MAKE) upload
|
||||||
cd OsmoMSC; $(MAKE) upload
|
cd OsmoMSC; $(MAKE) upload
|
||||||
|
cd OsmoHLR; $(MAKE) upload
|
||||||
|
|
||||||
check:
|
check:
|
||||||
cd OsmoBTS; $(MAKE) check
|
cd OsmoBTS; $(MAKE) check
|
||||||
|
@ -46,6 +49,7 @@ check:
|
||||||
#cd OsmoNAT; $(MAKE) check
|
#cd OsmoNAT; $(MAKE) check
|
||||||
cd OsmoGSMTester; $(MAKE) check
|
cd OsmoGSMTester; $(MAKE) check
|
||||||
cd OsmoMSC; $(MAKE) check
|
cd OsmoMSC; $(MAKE) check
|
||||||
|
cd OsmoHLR; $(MAKE) check
|
||||||
|
|
||||||
define check_dep_bin
|
define check_dep_bin
|
||||||
@type $(1) >/dev/null 2>&1 || { echo >&2 "Binary '$(1)' not found in path, please install $(2)."; exit 1; }
|
@type $(1) >/dev/null 2>&1 || { echo >&2 "Binary '$(1)' not found in path, please install $(2)."; exit 1; }
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
# XSL stylesheets downloaded from http://docbook.sourceforge.net/release/xsl/current/html/
|
||||||
|
# Makefile from BitBake/OpenEmbedded manuals
|
||||||
|
|
||||||
|
topdir = .
|
||||||
|
hlr_reference = $(topdir)/osmohlr-vty-reference.xml
|
||||||
|
manuals = $(hlr_reference)
|
||||||
|
# types = pdf txt rtf ps xhtml html man tex texi dvi
|
||||||
|
# types = pdf txt
|
||||||
|
types = $(docbooktotypes)
|
||||||
|
docbooktotypes = pdf
|
||||||
|
# htmlcssfile =
|
||||||
|
# htmlcss =
|
||||||
|
|
||||||
|
TOPDIR := ..
|
||||||
|
ASCIIDOCS := osmohlr-usermanual
|
||||||
|
|
||||||
|
include $(TOPDIR)/build/Makefile.asciidoc.inc
|
||||||
|
include $(TOPDIR)/build/Makefile.inc
|
||||||
|
|
||||||
|
osmohlr-usermanual.pdf: chapters/*.adoc generated/docbook_vty.xml
|
||||||
|
|
||||||
|
clean:
|
||||||
|
-rm -rf $(cleanfiles)
|
||||||
|
-rm osmohlr-usermanual__*.svg
|
||||||
|
-rm osmohlr-usermanual__*.png
|
||||||
|
-rm osmohlr-usermanual.check
|
||||||
|
|
||||||
|
generated/docbook_vty.xml: osmohlr-vty-reference.xml vty/*xml ../common/vty_additions.xml ../vty_reference.xsl
|
||||||
|
$(call command,xsltproc -o generated/combined1.xml \
|
||||||
|
--stringparam with $(PWD)/../common/vty_additions.xml \
|
||||||
|
$(MERGE_DOC) vty/hlr_vty_reference.xml, \
|
||||||
|
XSLTPROC,Merging Common VTY)
|
||||||
|
$(call command,xsltproc -o generated/combined2.xml \
|
||||||
|
--stringparam with $(PWD)/../common/bsc_vty_additions.xml \
|
||||||
|
$(MERGE_DOC) generated/combined1.xml, \
|
||||||
|
XSLTPROC,Merging Common BSC VTY)
|
||||||
|
$(call command,xsltproc -o generated/combined3.xml \
|
||||||
|
--stringparam with $(PWD)/vty/hlr_vty_additions.xml \
|
||||||
|
$(MERGE_DOC) generated/combined2.xml, \
|
||||||
|
XSLTPROC,Merging HLR VTY)
|
||||||
|
$(call command,xsltproc ../vty_reference.xsl generated/combined3.xml > generated/docbook_vty.xml, \
|
||||||
|
XSLTPROC,Converting HLR VTY to DocBook)
|
|
@ -0,0 +1,101 @@
|
||||||
|
[[hlr-ctrl]]
|
||||||
|
== Control interface
|
||||||
|
|
||||||
|
The actual protocol is described in <<common-control-if>>, the variables common
|
||||||
|
to all programs using it are described in <<ctrl_common_vars>>. This section
|
||||||
|
describes the CTRL interface variables specific to OsmoHLR.
|
||||||
|
|
||||||
|
All subscriber variables are available by different selectors, which are freely
|
||||||
|
interchangeable:
|
||||||
|
|
||||||
|
.Subscriber selectors available on OsmoHLR's Control interface
|
||||||
|
[options="header",width="100%",cols="35%,65%"]
|
||||||
|
|===
|
||||||
|
|Selector|Comment
|
||||||
|
|subscriber.*by-imsi-*'123456'.*|Subscriber selector by IMSI, replace "123456" with the actual IMSI
|
||||||
|
|subscriber.*by-msisdn-*'123456'.*|Subscriber selector by MSISDN
|
||||||
|
|subscriber.*by-id-*'123456'.*|Subscriber selector by database ID
|
||||||
|
|===
|
||||||
|
|
||||||
|
Each of the above selectors feature all of these control variables:
|
||||||
|
|
||||||
|
.Subscriber variables available on OsmoHLR's Control interface
|
||||||
|
[options="header",width="100%",cols="35%,8%,8%,8%,41%"]
|
||||||
|
|===
|
||||||
|
|Name|Access|Trap|Value|Comment
|
||||||
|
|subscriber.by-\*.*info*|R|No||List (short) subscriber information
|
||||||
|
|subscriber.by-\*.*info-aud*|R|No||List subscriber authentication tokens
|
||||||
|
|subscriber.by-\*.*info-all*|R|No||List both 'info' and 'info-aud' in one
|
||||||
|
|subscriber.by-\*.*cs-enabled*|RW|No|'1' or '0'|Enable/disable circuit-switched access
|
||||||
|
|subscriber.by-\*.*ps-enabled*|RW|No|'1' or '0'|Enable/disable packet-switched access
|
||||||
|
|===
|
||||||
|
|
||||||
|
=== subscriber.by-*.info, info-aud, info-all
|
||||||
|
|
||||||
|
Query the HLR database and return current subscriber record, in multiple lines
|
||||||
|
of the format
|
||||||
|
|
||||||
|
----
|
||||||
|
name<tab>value
|
||||||
|
----
|
||||||
|
|
||||||
|
To keep the reply as short as possible, most values are omitted if they are
|
||||||
|
empty or reflect the default. These are the returned values and their presence
|
||||||
|
modalities; for their meaning, see <<subscriber-params>>:
|
||||||
|
|
||||||
|
.Returned values by OsmoHLR's 'info', 'info-all' and 'info-aud' commands
|
||||||
|
[options="header",width="100%",cols="15%,15%,30%,40%"]
|
||||||
|
|===
|
||||||
|
|Returned by 'info-all' and|Name|Format|Presence
|
||||||
|
|'info'|id|-9223372036854775808 .. 9223372036854775807 (usually not negative)|always
|
||||||
|
|'info'|imsi|6 to 15 decimal digits|always
|
||||||
|
|'info'|msisdn|1 to 15 decimal digits|when non-empty
|
||||||
|
|'info'|nam_cs|'1' or '0'|when '0'
|
||||||
|
|'info'|nam_ps|'1' or '0'|when '0'
|
||||||
|
|'info'|vlr_number|up to 15 decimal digits|when non-empty
|
||||||
|
|'info'|sgsn_number|up to 15 decimal digits|when non-empty
|
||||||
|
|'info'|sgsn_address||when non-empty
|
||||||
|
|'info-aud'|aud2g.algo|one of 'comp128v1', 'comp128v2', 'comp128v3' or 'xor'|when valid 2G auth data is set
|
||||||
|
|'info-aud'|aud2g.ki|32 hexadecimal digits|when valid 2G auth data is set
|
||||||
|
|'info-aud'|aud3g.algo|so far always 'milenage'|when valid 3G auth data is set
|
||||||
|
|'info-aud'|aud3g.k|32 hexadecimal digits|when valid 3G auth data is set
|
||||||
|
|'info-aud'|aud3g.op|32 hexadecimal digits|when valid 3G auth data is set, *not* when OPC is set
|
||||||
|
|'info-aud'|aud3g.opc|32 hexadecimal digits|when valid 3G auth data is set, *not* when OP is set
|
||||||
|
|'info-aud'|aud3g.ind_bitlen|0..28|when valid 3G auth data is set
|
||||||
|
|'info-aud'|aud3g.sqn|0 .. 18446744073709551615|when valid 3G auth data is set
|
||||||
|
|===
|
||||||
|
|
||||||
|
This is an example Control Interface transcript that illustrates the various
|
||||||
|
'info' commands:
|
||||||
|
|
||||||
|
----
|
||||||
|
include::../example_subscriber_info.ctrl[]
|
||||||
|
----
|
||||||
|
|
||||||
|
=== subscriber.by-*.ps-enabled, cs-enabled
|
||||||
|
|
||||||
|
Disable or enable packet-/circuit-switched access for the given IMSI;
|
||||||
|
|
||||||
|
* 'ps-enabled' switches access to GPRS or UMTS data services,
|
||||||
|
* 'cs-enabled' switches access to voice services.
|
||||||
|
|
||||||
|
When disabled, the next time this subscriber attempts to do a Location Updating
|
||||||
|
GSUP operation for the given domain (i.e. from the SGSN for 'ps-enabled', from
|
||||||
|
the MSC/VLR for 'cs-enabled'), it will be rejected by OsmoHLR. Currently
|
||||||
|
connected GSUP clients will be notified via GSUP when a subscriber is being
|
||||||
|
disabled, so that the subscriber can be dropped in case it is currently
|
||||||
|
attached.
|
||||||
|
|
||||||
|
The current 'ps-enabled'/'cs-enabled' status can be queried by 'GET' commands,
|
||||||
|
and also by looking at 'nam_ps' and 'nam_cs' in a 'subscriber.by-*.info'
|
||||||
|
response.
|
||||||
|
|
||||||
|
A value of "1" indicates that the given domain is enabled, which is the
|
||||||
|
default; a value of "0" disables access.
|
||||||
|
|
||||||
|
This is an example transcript that illustrates 'ps-enabled' and 'cs-enabled'
|
||||||
|
commands:
|
||||||
|
|
||||||
|
----
|
||||||
|
include::../example_subscriber_cs_ps_enabled.ctrl[]
|
||||||
|
----
|
|
@ -0,0 +1,69 @@
|
||||||
|
[[overview]]
|
||||||
|
== Overview
|
||||||
|
|
||||||
|
This manual should help you getting started with OsmoHLR. It will cover
|
||||||
|
aspects of configuring and running the OsmoHLR.
|
||||||
|
|
||||||
|
[[intro_overview]]
|
||||||
|
=== About OsmoHLR
|
||||||
|
|
||||||
|
OsmoHLR is Osmocom's minimal implementation of a Home Location Register (HLR)
|
||||||
|
for 2G and 3G GSM and UMTS mobile core networks. Its interfaces are:
|
||||||
|
|
||||||
|
- GSUP, serving towards OsmoMSC and OsmoSGSN;
|
||||||
|
- A local SQLite database;
|
||||||
|
- The Osmocom typical telnet VTY and CTRL interfaces.
|
||||||
|
|
||||||
|
Originally, the OpenBSC project's OsmoNITB all-in-one implementation had an
|
||||||
|
integrated HLR, managing subscribers and SMS in the same local database. Along
|
||||||
|
with the separate OsmoMSC and its new VLR component, OsmoHLR was implemented
|
||||||
|
from scratch to alleviate various shortcomings of the internal HLR:
|
||||||
|
|
||||||
|
- The separate HLR allows using centralized subscriber management for both
|
||||||
|
circuit-switched and packet-switched domains (i.e. one OsmoHLR for both
|
||||||
|
OsmoMSC and OsmoSGSN).
|
||||||
|
|
||||||
|
- VLR and HLR brought full UMTS AKA (Authentication and Key Agreement) support,
|
||||||
|
i.e. Milenage authentication in both the full 3G variant as well as the
|
||||||
|
backwards compatible 2G variant.
|
||||||
|
|
||||||
|
- In contrast to the OsmoNITB, the specific way the new OsmoMSC's VLR accesses
|
||||||
|
OsmoHLR brings fully asynchronous subscriber database access.
|
||||||
|
|
||||||
|
Find the OsmoHLR issue tracker and wiki online at
|
||||||
|
|
||||||
|
- https://osmocom.org/projects/osmo-hlr
|
||||||
|
- https://osmocom.org/projects/osmo-hlr/wiki
|
||||||
|
|
||||||
|
|
||||||
|
[[fig-gsm]]
|
||||||
|
.Typical GSM network architecture used with OsmoHLR
|
||||||
|
[graphviz]
|
||||||
|
----
|
||||||
|
digraph G {
|
||||||
|
rankdir=LR;
|
||||||
|
subgraph cluster_hlr {
|
||||||
|
label = "OsmoHLR";
|
||||||
|
GSUP [label="GSUP server"]
|
||||||
|
DB [label="SQLite DB"]
|
||||||
|
GSUP->DB
|
||||||
|
DB->CTRL [dir="back"]
|
||||||
|
DB->VTY [dir="back"]
|
||||||
|
}
|
||||||
|
|
||||||
|
Admin [label="Admin and\nMaintenance"]
|
||||||
|
SW [label="3rd party software\nintegration"]
|
||||||
|
VTY->Admin [dir="back"]
|
||||||
|
CTRL->SW [dir="back"]
|
||||||
|
|
||||||
|
MSC [label="MSC/VLR"]
|
||||||
|
MSC->GSUP [label="GSUP"]
|
||||||
|
SGSN->GSUP [label="GSUP"]
|
||||||
|
|
||||||
|
BSC->MSC
|
||||||
|
HNBGW->MSC
|
||||||
|
HNBGW->SGSN
|
||||||
|
PCU->SGSN
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
|
@ -0,0 +1,90 @@
|
||||||
|
== Running OsmoHLR
|
||||||
|
|
||||||
|
The OsmoHLR executable (`osmo-hlr`) offers the following command-line
|
||||||
|
arguments:
|
||||||
|
|
||||||
|
=== SYNOPSIS
|
||||||
|
|
||||||
|
*osmo-hlr* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE'] [-s] [-T] [-e 'LOGLEVEL'] [-l 'DATABASE']
|
||||||
|
|
||||||
|
=== OPTIONS
|
||||||
|
|
||||||
|
*-h, --help*::
|
||||||
|
Print a short help message about the supported options
|
||||||
|
*-V, --version*::
|
||||||
|
Print the compile-time version number of the OsmoBTS program
|
||||||
|
*-d, --debug 'DBGMASK','DBGLEVELS'*::
|
||||||
|
Set the log subsystems and levels for logging to stderr. This
|
||||||
|
has mostly been superseded by VTY-based logging configuration,
|
||||||
|
see <<logging>> for further information.
|
||||||
|
*-D, --daemonize*::
|
||||||
|
Fork the process as a daemon into background.
|
||||||
|
*-c, --config-file 'CONFIGFILE'*::
|
||||||
|
Specify the file and path name of the configuration file to be
|
||||||
|
used. If none is specified, use `openbsc.cfg` in the current
|
||||||
|
working directory.
|
||||||
|
*-s, --disable-color*::
|
||||||
|
Disable colors for logging to stderr. This has mostly been
|
||||||
|
deprecated by VTY based logging configuration, see <<logging>>
|
||||||
|
for more information.
|
||||||
|
*-T, --timestamp*::
|
||||||
|
Enable time-stamping of log messages to stderr. This has mostly
|
||||||
|
been deprecated by VTY based logging configuration, see
|
||||||
|
<<logging>> for more information.
|
||||||
|
*-e, --log-level 'LOGLEVEL'*::
|
||||||
|
Set the global log level for logging to stderr. This has mostly
|
||||||
|
been deprecated by VTY based logging configuration, see
|
||||||
|
<<logging>> for more information.
|
||||||
|
*-l, --database 'DATABASE'*::
|
||||||
|
Specify the file name of the SQLite3 database to use as HLR/AUC
|
||||||
|
storage
|
||||||
|
|
||||||
|
=== Bootstrap the Database
|
||||||
|
|
||||||
|
Before first launching OsmoHLR, you need to create a database, which can be
|
||||||
|
done with these commands:
|
||||||
|
|
||||||
|
----
|
||||||
|
mkdir -p /var/lib/osmocom
|
||||||
|
sqlite3 /var/lib/osmocom/hlr.db < /usr/share/doc/osmo-hlr/hlr.sql
|
||||||
|
----
|
||||||
|
|
||||||
|
Depending on your installation choices, you will probably find `hlr.sql` in one
|
||||||
|
of these locations:
|
||||||
|
|
||||||
|
- `/usr/share/doc/osmo-hlr/hlr.sql`
|
||||||
|
- `/usr/local/share/doc/osmo-hlr/hlr.sql`
|
||||||
|
- in `osmo-hlr.git`'s source tree at `sql/hlr.sql`
|
||||||
|
|
||||||
|
NOTE: At the time of writing, OsmoHLR does not create an initial empty database
|
||||||
|
automatically, like OsmoNITB did. This behavior may be added in the future.
|
||||||
|
|
||||||
|
=== Multiple instances
|
||||||
|
|
||||||
|
Running multiple instances of `osmo-hlr` on the same computer is possible if
|
||||||
|
all interfaces (VTY, CTRL) are separated using the appropriate configuration
|
||||||
|
options. The IP based interfaces are binding to local host by default. In order
|
||||||
|
to separate the processes, the user has to bind those services to specific but
|
||||||
|
different IP addresses and/or ports.
|
||||||
|
|
||||||
|
The VTY and the Control interface can be bound to IP addresses from the loopback
|
||||||
|
address range, for example:
|
||||||
|
|
||||||
|
----
|
||||||
|
line vty
|
||||||
|
bind 127.0.0.2
|
||||||
|
ctrl
|
||||||
|
bind 127.0.0.2
|
||||||
|
----
|
||||||
|
|
||||||
|
The GSUP interface can be bound to a specific IP address by the following
|
||||||
|
configuration options:
|
||||||
|
|
||||||
|
----
|
||||||
|
hlr
|
||||||
|
gsup
|
||||||
|
bind ip 10.23.42.1
|
||||||
|
----
|
||||||
|
|
||||||
|
NOTE: At the time of writing, OsmoHLR lacks a config option to change the GSUP
|
||||||
|
port, which is by default TCP port 4222.
|
|
@ -0,0 +1,59 @@
|
||||||
|
== Managing Subscribers
|
||||||
|
|
||||||
|
Subscribers are kept in a local SQLite database file and can be managed via VTY
|
||||||
|
and CTRL interfaces.
|
||||||
|
|
||||||
|
See this section for some examples, and also refer to the OsmoHLR VTY reference
|
||||||
|
manual <<vty-ref-osmohlr>> as well as the Control interface described in
|
||||||
|
<<hlr-ctrl>>.
|
||||||
|
|
||||||
|
=== Example: Add/Update/Delete Subscriber via VTY
|
||||||
|
|
||||||
|
The following telnet VTY session adds a subscriber complete with 2G and 3G
|
||||||
|
authentication tokens, and finally removes the subscriber again; it assumes
|
||||||
|
that osmo-hlr is running and listening for telnet VTY connections on localhost:
|
||||||
|
|
||||||
|
----
|
||||||
|
$ telnet localhost 4258
|
||||||
|
include::../example_subscriber_add_update_delete.vty[]
|
||||||
|
----
|
||||||
|
|
||||||
|
[[subscriber-params]]
|
||||||
|
=== Subscriber Parameters
|
||||||
|
|
||||||
|
The following parameters are managed for each subscriber of the HLR, modelled
|
||||||
|
roughly after 3GPP TS 23.008, version 13.3.0; note that not all of these
|
||||||
|
parameters are necessarily in active use:
|
||||||
|
|
||||||
|
.OsmoHLR's subscriber parameters
|
||||||
|
[options="header",width="100%",cols="20%,20%,60%"]
|
||||||
|
|===
|
||||||
|
|Name|Example|Description
|
||||||
|
|imsi|901700000014701|identity of the SIM/USIM, 3GPP TS 23.008 chapter 2.1.1.1
|
||||||
|
|msisdn|2342123|number to dial to reach this subscriber (multiple MSISDNs can be stored per subscriber), 3GPP TS 23.008 chapter 2.1.2
|
||||||
|
|imeisv|4234234234234275|identity of the mobile device and software version, 3GPP TS 23.008 chapter 2.2.3
|
||||||
|
|aud2g.algo|comp128v3|Authentication algorithm ID for 2G, corresponds to enum osmo_auth_algo
|
||||||
|
|aud2g.ki||Subscriber's secret key (128bit)
|
||||||
|
|aud3g.algo|milenage|Authentication algorithm ID for 3G and UMTS AKA, corresponds to enum osmo_auth_algo
|
||||||
|
|aud3g.k|(32 hexadecimal digits)|Subscriber's secret key (128bit)
|
||||||
|
|aud3g.op|(32 hexadecimal digits)|Operator's secret key (128bit)
|
||||||
|
|aud3g.opc|(32 hexadecimal digits)|Secret key derived from OP and K (128bit), alternative to using OP which does not disclose OP to subscribers
|
||||||
|
|aud3g.sqn|123|Sequence number of last used key (64bit unsigned)
|
||||||
|
|aud3g.ind_bitlen|5|Nr of index bits at lower SQN end
|
||||||
|
|apn||
|
||||||
|
|vlr_number||3GPP TS 23.008 chapter 2.4.5
|
||||||
|
|hlr_number||3GPP TS 23.008 chapter 2.4.6
|
||||||
|
|sgsn_number||3GPP TS 23.008 chapter 2.4.8.1
|
||||||
|
|sgsn_address||3GPP TS 23.008 chapter 2.13.10
|
||||||
|
|ggsn_number||3GPP TS 23.008 chapter 2.4.8.2
|
||||||
|
|gmlc_number||3GPP TS 23.008 chapter 2.4.9.2
|
||||||
|
|smsc_number||3GPP TS 23.008 chapter 2.4.23
|
||||||
|
|periodic_lu_tmr||3GPP TS 23.008 chapter 2.4.24
|
||||||
|
|periodic_rau_tau_tmr||3GPP TS 23.008 chapter 2.13.115
|
||||||
|
|nam_cs|1|Enable/disable voice access (3GPP TS 23.008 chapter 2.1.1.2: network access mode)
|
||||||
|
|nam_ps|0|Enable/disable data access (3GPP TS 23.008 chapter 2.1.1.2: network access mode)
|
||||||
|
|lmsi||3GPP TS 23.008 chapter 2.1.8
|
||||||
|
|ms_purged_cs|0|3GPP TS 23.008 chapter 2.7.5
|
||||||
|
|ms_purged_ps|1|3GPP TS 23.008 chapter 2.7.6
|
||||||
|
|===
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
OsmoHLR> enable
|
||||||
|
OsmoHLR# subscriber imsi 123456789023000 create
|
||||||
|
% Created subscriber 123456789023000
|
||||||
|
ID: 1
|
||||||
|
IMSI: 123456789023000
|
||||||
|
MSISDN: none
|
||||||
|
|
||||||
|
OsmoHLR# subscriber imsi 123456789023000 update msisdn 423
|
||||||
|
% Updated subscriber IMSI='123456789023000' to MSISDN='423'
|
||||||
|
|
||||||
|
OsmoHLR# subscriber msisdn 423 update aud3g milenage k deaf0ff1ced0d0dabbedd1ced1cef00d opc cededeffacedacefacedbadfadedbeef
|
||||||
|
OsmoHLR# subscriber msisdn 423 show
|
||||||
|
ID: 1
|
||||||
|
IMSI: 123456789023000
|
||||||
|
MSISDN: 423
|
||||||
|
3G auth: MILENAGE
|
||||||
|
K=deaf0ff1ced0d0dabbedd1ced1cef00d
|
||||||
|
OPC=cededeffacedacefacedbadfadedbeef
|
||||||
|
IND-bitlen=5
|
||||||
|
|
||||||
|
OsmoHLR# subscriber msisdn 423 update aud2g comp128v3 ki beefedcafefaceacedaddeddecadefee
|
||||||
|
OsmoHLR# subscriber msisdn 423 show
|
||||||
|
ID: 1
|
||||||
|
IMSI: 123456789023000
|
||||||
|
MSISDN: 423
|
||||||
|
2G auth: COMP128v3
|
||||||
|
KI=beefedcafefaceacedaddeddecadefee
|
||||||
|
3G auth: MILENAGE
|
||||||
|
K=deaf0ff1ced0d0dabbedd1ced1cef00d
|
||||||
|
OPC=cededeffacedacefacedbadfadedbeef
|
||||||
|
IND-bitlen=5
|
||||||
|
|
||||||
|
OsmoHLR# subscriber imsi 123456789023000 delete
|
||||||
|
% Deleted subscriber for IMSI '123456789023000'
|
|
@ -0,0 +1,46 @@
|
||||||
|
GET 1 subscriber.by-msisdn-103.info
|
||||||
|
GET_REPLY 1 subscriber.by-msisdn-103.info
|
||||||
|
id 3
|
||||||
|
imsi 901990000000003
|
||||||
|
msisdn 103
|
||||||
|
|
||||||
|
GET 2 subscriber.by-msisdn-103.ps-enabled
|
||||||
|
GET_REPLY 2 subscriber.by-msisdn-103.ps-enabled 1
|
||||||
|
|
||||||
|
SET 3 subscriber.by-msisdn-103.ps-enabled 0
|
||||||
|
SET_REPLY 3 subscriber.by-msisdn-103.ps-enabled OK
|
||||||
|
|
||||||
|
GET 4 subscriber.by-msisdn-103.ps-enabled
|
||||||
|
GET_REPLY 4 subscriber.by-msisdn-103.ps-enabled 0
|
||||||
|
|
||||||
|
GET 5 subscriber.by-msisdn-103.info
|
||||||
|
GET_REPLY 5 subscriber.by-msisdn-103.info
|
||||||
|
id 3
|
||||||
|
imsi 901990000000003
|
||||||
|
msisdn 103
|
||||||
|
nam_ps 0
|
||||||
|
|
||||||
|
SET 6 subscriber.by-msisdn-103.cs-enabled 0
|
||||||
|
SET_REPLY 6 subscriber.by-msisdn-103.cs-enabled OK
|
||||||
|
|
||||||
|
GET 7 subscriber.by-msisdn-103.cs-enabled
|
||||||
|
GET_REPLY 7 subscriber.by-msisdn-103.cs-enabled 0
|
||||||
|
|
||||||
|
GET 8 subscriber.by-msisdn-103.info
|
||||||
|
GET_REPLY 8 subscriber.by-msisdn-103.info
|
||||||
|
id 3
|
||||||
|
imsi 901990000000003
|
||||||
|
msisdn 103
|
||||||
|
nam_cs 0
|
||||||
|
nam_ps 0
|
||||||
|
|
||||||
|
SET 9 subscriber.by-msisdn-103.cs-enabled 1
|
||||||
|
SET_REPLY 9 subscriber.by-msisdn-103.cs-enabled OK
|
||||||
|
SET 10 subscriber.by-msisdn-103.ps-enabled 1
|
||||||
|
SET_REPLY 10 subscriber.by-msisdn-103.ps-enabled OK
|
||||||
|
|
||||||
|
GET 11 subscriber.by-msisdn-103.info
|
||||||
|
GET_REPLY 11 subscriber.by-msisdn-103.info
|
||||||
|
id 3
|
||||||
|
imsi 901990000000003
|
||||||
|
msisdn 103
|
|
@ -0,0 +1,28 @@
|
||||||
|
GET 1 subscriber.by-imsi-901990000000003.info
|
||||||
|
GET_REPLY 1 subscriber.by-imsi-901990000000003.info
|
||||||
|
id 3
|
||||||
|
imsi 901990000000003
|
||||||
|
msisdn 103
|
||||||
|
|
||||||
|
GET 2 subscriber.by-msisdn-103.info-aud
|
||||||
|
GET_REPLY 2 subscriber.by-msisdn-103.info-aud
|
||||||
|
aud2g.algo COMP128v1
|
||||||
|
aud2g.ki 000102030405060708090a0b0c0d0e0f
|
||||||
|
aud3g.algo MILENAGE
|
||||||
|
aud3g.k 000102030405060708090a0b0c0d0e0f
|
||||||
|
aud3g.opc 101112131415161718191a1b1c1d1e1f
|
||||||
|
aud3g.ind_bitlen 5
|
||||||
|
aud3g.sqn 2342
|
||||||
|
|
||||||
|
GET 3 subscriber.by-id-3.info-all
|
||||||
|
GET_REPLY 3 subscriber.by-id-3.info-all
|
||||||
|
id 3
|
||||||
|
imsi 901990000000003
|
||||||
|
msisdn 103
|
||||||
|
aud2g.algo COMP128v1
|
||||||
|
aud2g.ki 000102030405060708090a0b0c0d0e0f
|
||||||
|
aud3g.algo MILENAGE
|
||||||
|
aud3g.k 000102030405060708090a0b0c0d0e0f
|
||||||
|
aud3g.opc 101112131415161718191a1b1c1d1e1f
|
||||||
|
aud3g.ind_bitlen 5
|
||||||
|
aud3g.sqn 2342
|
|
@ -0,0 +1,47 @@
|
||||||
|
<revhistory>
|
||||||
|
<revision>
|
||||||
|
<revnumber>1</revnumber>
|
||||||
|
<date>September 18th, 2017</date>
|
||||||
|
<authorinitials>NH</authorinitials>
|
||||||
|
<revremark>
|
||||||
|
Initial version; based on OsmoNITB manual version 2.
|
||||||
|
</revremark>
|
||||||
|
</revision>
|
||||||
|
</revhistory>
|
||||||
|
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Neels</firstname>
|
||||||
|
<surname>Hofmeyr</surname>
|
||||||
|
<email>nhofmeyr@sysmocom.de</email>
|
||||||
|
<authorinitials>NH</authorinitials>
|
||||||
|
<affiliation>
|
||||||
|
<shortaffil>sysmocom</shortaffil>
|
||||||
|
<orgname>sysmocom - s.f.m.c. GmbH</orgname>
|
||||||
|
<jobtitle>Senior Developer</jobtitle>
|
||||||
|
</affiliation>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
<year>2017</year>
|
||||||
|
<holder>sysmocom - s.f.m.c. GmbH</holder>
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<legalnotice>
|
||||||
|
<para>
|
||||||
|
Permission is granted to copy, distribute and/or modify this
|
||||||
|
document under the terms of the GNU Free Documentation License,
|
||||||
|
Version 1.3 or any later version published by the Free Software
|
||||||
|
Foundation; with the Invariant Sections being just 'Foreword',
|
||||||
|
'Acknowledgements' and 'Preface', with no Front-Cover Texts,
|
||||||
|
and no Back-Cover Texts. A copy of the license is included in
|
||||||
|
the section entitled "GNU Free Documentation License".
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The Asciidoc source code of this manual can be found at
|
||||||
|
<ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
|
||||||
|
http://git.osmocom.org/osmo-gsm-manuals/
|
||||||
|
</ulink>
|
||||||
|
</para>
|
||||||
|
</legalnotice>
|
|
@ -0,0 +1,32 @@
|
||||||
|
:gfdl-enabled:
|
||||||
|
:program-name: OsmoHLR
|
||||||
|
|
||||||
|
OsmoHLR User Manual
|
||||||
|
====================
|
||||||
|
Neels Hofmeyr <nhofmeyr@sysmocom.de>
|
||||||
|
|
||||||
|
|
||||||
|
include::../common/chapters/preface.adoc[]
|
||||||
|
|
||||||
|
include::chapters/overview.adoc[]
|
||||||
|
|
||||||
|
include::chapters/running.adoc[]
|
||||||
|
|
||||||
|
include::chapters/subscribers.adoc[]
|
||||||
|
|
||||||
|
include::../common/chapters/vty.adoc[]
|
||||||
|
|
||||||
|
include::../common/chapters/logging.adoc[]
|
||||||
|
|
||||||
|
include::chapters/control.adoc[]
|
||||||
|
|
||||||
|
include::../common/chapters/control_if.adoc[]
|
||||||
|
|
||||||
|
include::../common/chapters/port_numbers.adoc[]
|
||||||
|
|
||||||
|
include::../common/chapters/bibliography.adoc[]
|
||||||
|
|
||||||
|
include::../common/chapters/glossary.adoc[]
|
||||||
|
|
||||||
|
include::../common/chapters/gfdl.adoc[]
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
ex:ts=2:sw=42sts=2:et
|
||||||
|
-*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
|
||||||
|
-->
|
||||||
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V5.0//EN"
|
||||||
|
"http://www.docbook.org/xml/5.0/dtd/docbook.dtd" [
|
||||||
|
<!ENTITY chapter-vty SYSTEM "../common/chapters/vty.xml" >
|
||||||
|
<!ENTITY sections-vty SYSTEM "generated/docbook_vty.xml" >
|
||||||
|
]>
|
||||||
|
|
||||||
|
<book>
|
||||||
|
<info>
|
||||||
|
<revhistory>
|
||||||
|
<revision>
|
||||||
|
<revnumber>v1</revnumber>
|
||||||
|
<date>18th September 2017</date>
|
||||||
|
<authorinitials>nh</authorinitials>
|
||||||
|
<revremark>Initial</revremark>
|
||||||
|
</revision>
|
||||||
|
</revhistory>
|
||||||
|
|
||||||
|
<title>OsmoHLR VTY Reference</title>
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
<year>2017</year>
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<legalnotice>
|
||||||
|
<para>This work is copyright by <orgname>sysmocom - s.f.m.c. GmbH</orgname>. All rights reserved.
|
||||||
|
</para>
|
||||||
|
</legalnotice>
|
||||||
|
</info>
|
||||||
|
|
||||||
|
<!-- Main chapters-->
|
||||||
|
&chapter-vty;
|
||||||
|
</book>
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'>
|
||||||
|
</vtydoc>
|
File diff suppressed because it is too large
Load Diff
|
@ -49,11 +49,11 @@ arguments:
|
||||||
|
|
||||||
=== Multiple instances
|
=== Multiple instances
|
||||||
|
|
||||||
Running multiple instances of `osmo-msc` is possible if all interfaces (VTY,
|
Running multiple instances of `osmo-msc` on the same computer is possible if all
|
||||||
CTRL) are separated using the appropriate configuration options. The IP based
|
interfaces (VTY, CTRL) are separated using the appropriate configuration
|
||||||
interfaces are binding to local host by default. In order to separate the
|
options. The IP based interfaces are binding to local host by default. In order
|
||||||
processes, the user has to bind those services to specific but different IP
|
to separate the processes, the user has to bind those services to specific but
|
||||||
addresses.
|
different IP addresses and/or ports.
|
||||||
|
|
||||||
The VTY and the Control interface can be bound to IP addresses from the loopback
|
The VTY and the Control interface can be bound to IP addresses from the loopback
|
||||||
address range, for example:
|
address range, for example:
|
||||||
|
|
Loading…
Reference in New Issue