[[overview]]
== Overview

This manual should help you getting started with OsmoSIPConnector. It will
cover aspects of configuring and running OsmoSIPConnector.

[[intro_overview]]
=== About OsmoSIPConnector

OsmoSIPConnector translates between Mobile Network Call Control (MNCC)
used in the GSM network and Voice over IP SIP call control messages so that
speech calls can traverse through the mobile network to SIP and vice versa. It
has the following interfaces:

- MNCC UNIX domain socket towards `osmo-msc`
- SIP towards the PBX
- The Osmocom typical telnet VTY interface.

The SIP implemented by osmo-sip-connector can be characterized as follows:

Only a SIP trunk is supported; it will appear to the remote SIP server (PBX) like
another PBX (or a public network) interfaced via a trunk.  Specifically, this means
there is no SIP REGISTER or any form of authentication supported.  You
will need to configure the SIP peer to implicitly authorize the trunk by
its IP address / port.

osmo-sip-connector handles only the signaling translation between GSM CC
and SIP, but does not handle RTP. The RTP user plane is passed
transparently from the MSC-colocated osmo-mgw to the SIP side. This also
means that no transcoding is performed. The RTP streams contain whatever
cellular specific codec you have configured your network to use for this
call (FR, EFR, HR, AMR).  Hence, **the SIP peer must support the
codec[s] you have configured on your MSC/BSC**

As the osmo-sip-connector attaches to the external MNCC socket of
OsmoMSC, running osmo-sip-connector will disable the internal call
routing of OsmoMSC, see the related OsmoMSC documentation.  All mobile
originated calls originating in GSM will be passed to the SIP connector.

Find the OsmoSIPConnector issue tracker and wiki online at

- https://osmocom.org/projects/osmo-sip-connector
- https://osmocom.org/projects/osmo-sip-connector/wiki


[[fig-gsm]]
.Typical GSM network architecture used with OsmoSIPConnector
[graphviz]
----
digraph G{
  rankdir = LR;
  "osmo-sip-connector" [color="red"];
  OsmoMGWB [label="OsmoMGW\n(BSC)"];
  OsmoMGWM [label="OsmoMGW\n(MSC)"];
  MS -> BTS [label = "Um"];
  BTS -> OsmoBSC [label = "Abis"];
  OsmoBSC -> OsmoMSC [label = "AoIP" ];
  OsmoMSC -> "osmo-sip-connector" [label = "MNCC"];
  "osmo-sip-connector" -> "PBX" [label = "SIP"];
  BTS -> OsmoMGWB [label = "RTP"];
  OsmoMGWB -> OsmoMGWM [label = "RTP"];
  OsmoMGWM -> "PBX" [label = "RTP"];
  OsmoBSC -> OsmoMGWB [label = "MGCP" ];
  OsmoMSC -> OsmoMGWM [label = "MGCP" ];
  { rank = same; OsmoBSC; OsmoMGWB; }
  { rank = same; OsmoMSC; OsmoMGWM; }
}
----

