[[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 <>. ==== 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 <>. ==== VLR A fully featured Visitor Location Register handles the subscriber management and authentication, and interfaces via GSUP to the external HLR.