| [[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. |