128 lines
4.2 KiB
Plaintext
128 lines
4.2 KiB
Plaintext
[[overview]]
|
|
== Overview
|
|
|
|
This manual should help you getting started with OsmoMSC. It will cover
|
|
aspects of configuring and running the OsmoMSC.
|
|
|
|
[[intro_overview]]
|
|
=== About OsmoMSC
|
|
|
|
OsmoMSC is the Osmocom implementation of a Mobile Switching Center (MSC) for 2G
|
|
and 3G GSM and UMTS mobile networks. Its interfaces are:
|
|
|
|
- GSUP towards OsmoHLR (or a MAP proxy);
|
|
- A over IP towards a BSC (e.g. OsmoBSC);
|
|
- IuCS towards an RNC or HNB-GW (e.g. OsmoHNBGW) for 3G voice;
|
|
- MNCC (Mobile Network Call Control derived from GSM TS 04.07);
|
|
- SMPP 3.4 (Short Message Peer-to-Peer);
|
|
- The Osmocom typical telnet VTY and CTRL interfaces.
|
|
|
|
OsmoMSC originated from the OpenBSC project, which started as a minimalistic
|
|
all-in-one implementation of the GSM Network. In 2017, OpenBSC had reached
|
|
maturity and diversity (including M3UA SIGTRAN and 3G support in the form of
|
|
IuCS and IuPS interfaces) that naturally lead to a separation of the all-in-one
|
|
approach to fully independent separate programs as in typical GSM networks.
|
|
Before it was split off, OsmoMSC originated from libmsc of the old openbsc.git.
|
|
Since a true _A_ interface and IuCS for 3G support is available, OsmoMSC
|
|
exists only as a separate standalone entity.
|
|
|
|
Key differences of the new OsmoMSC compared to the old OsmoNITB are:
|
|
|
|
- The complete VLR implementation that communicates with the separate HLR
|
|
(OsmoHLR) for subscriber management. In contrast to the OsmoNITB, HLR queries
|
|
are fully asynchronous, and 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.
|
|
|
|
- Addition of a true _A_ interface for 2G voice services. Previously, OsmoBSC
|
|
had an SCCPlite based _A_ interface towards 3rd party MSC implementations.
|
|
OsmoMSC features a true SCCP/M3UA _A_ interface, which allows running OsmoBSC
|
|
against this Osmocom based MSC implementation. The new SCCP/M3UA SIGTRAN for
|
|
the _A_ interface is implemented in libosmo-sccp, which is used by OsmoMSC
|
|
and OsmoBSC (and others), to establish a link via an STP (e.g. OsmoSTP).
|
|
|
|
- Addition of an _IuCS_ interface to allow operating 3G voice services, also
|
|
via SCCP/M3UA SIGTRAN, for example connecting via OsmoHNBGW to a 3G small
|
|
cell device.
|
|
|
|
Find the OsmoMSC issue tracker and wiki online at
|
|
|
|
- https://osmocom.org/projects/osmomsc
|
|
- https://osmocom.org/projects/osmomsc/wiki
|
|
|
|
|
|
[[fig-gsm]]
|
|
.Typical GSM network architecture used with OsmoMSC
|
|
[graphviz]
|
|
----
|
|
digraph G {
|
|
rankdir=LR;
|
|
MS0 [label="MS"]
|
|
MS1 [label="MS"]
|
|
MS2 [label="MS"]
|
|
MS3 [label="MS"]
|
|
UE0 [label="UE"]
|
|
UE1 [label="UE"]
|
|
BTS0 [label="BTS"]
|
|
BTS1 [label="BTS"]
|
|
STP [label="STP\n(SCCP routing)"]
|
|
HLR [label="HLR+AUC+EIR"]
|
|
HNB [label="RNC or hNodeB"]
|
|
MGW
|
|
MS0->BTS0 [label="Um"]
|
|
MS1->BTS0 [label="Um"]
|
|
MS2->BTS1 [label="Um"]
|
|
MS3->BTS1 [label="Um"]
|
|
UE0->HNB
|
|
UE1->HNB
|
|
BTS0->BSC [label="Abis"]
|
|
BTS1->BSC [label="Abis"]
|
|
BSC->STP [label="A/SCCP/M3UA"]
|
|
STP->MSC [label="A/SCCP/M3UA"]
|
|
STP->MSC [label="IuCS/SCCP/M3UA"]
|
|
VLR->HLR [label="GSUP"]
|
|
HNB->HNBGW [label="Iuh"]
|
|
HNBGW->STP [label="IuCS/SCCP/M3UA"]
|
|
MSC->MGW [label="MGCP"]
|
|
BTS0->MGW [label="RTP"]
|
|
BTS1->MGW [label="RTP"]
|
|
subgraph cluster_msc {
|
|
label = "OsmoMSC";
|
|
MSC->SMSC;
|
|
MSC->VLR
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
=== Software Components
|
|
|
|
This is a brief description of OsmoMSC's internal software components.
|
|
|
|
==== SMSC
|
|
|
|
A minimal store-and-forward server for SMS, supporting both MO and MT
|
|
SMS service, as well as multi-part messages.
|
|
|
|
The built-in SMSC also supports an external SMSC interface. For more
|
|
information, see <<smpp>>.
|
|
|
|
==== MSC
|
|
|
|
The MSC component implements the mobility management (MM) functions of the TS
|
|
04.08 and delegates to SMSC for SMS message handling and the VLR for subscriber
|
|
management.
|
|
|
|
Furthermore, it can handle TS 04.08 Call Control (CC), either by use of
|
|
an internal MNCC handler, or by use of an external MNCC agent. For more
|
|
information see <<mncc>>.
|
|
|
|
==== VLR
|
|
|
|
A fully featured Visitor Location Register handles the subscriber management
|
|
and authentication, and interfaces via GSUP to the external HLR.
|