[[overview]]
== Overview

This manual should help you getting started with OsmoMGW. It will cover
aspects of configuring and running the media gateway.

[[intro_overview]]
=== About OsmoMGW

OsmoMGW is the Osmocom implementation of a media gateway to handle user
plane (voice) traffic in cellular networks. It can connect and optionally
transcode RTP voice streams between different network elements such as BTSs
and external entities like SIP. It is typically co-located with both OsmoBSC
and OsmoMSC and controlled by them via MGCP, the Media Gateway Control
Protocol.

[[fig-bsc]]
.OsmoMGW used with OsmoBSC
[graphviz]
----
digraph G {
    rankdir = LR;
    OsmoBTS -> OsmoBSC [label="Abis/IP"];
    OsmoBSC -> "core-network" [label="3GPP AoIP"];
    OsmoBSC -> OsmoMGW [label="MGCP"];
    OsmoBTS -> OsmoMGW [label="RTP",dir=both];
    OsmoMGW -> "core-network" [label="RTP",dir=both];
    {rank=same OsmoBSC OsmoMGW}
    OsmoMGW [color=red];
}
----

[[fig-msc]]
.OsmoMGW used with OsmoMSC
[graphviz]
----
digraph G {
    rankdir = LR;
    BTS -> BSC [label="Abis"];
    BSC -> OsmoMSC [label="3GPP AoIP"];
    OsmoMSC -> OsmoMGW [label="MGCP"];
    BSC -> OsmoMGW [label="RTP",dir=both];
    OsmoMSC -> OsmoSIP [label="MNCC"];
    OsmoSIP -> PBX [label="SIP Trunk"];
    OsmoMGW -> PBX [label="RTP",dir=both];
    {rank=same OsmoMSC OsmoMGW}
    OsmoSIP [label="osmo-sip-connector"];
    OsmoMGW [color=red];

    hNodeB -> OsmoHNBGW [label="Iuh"];
    OsmoHNBGW -> OsmoMSC [label="IuCS"];
    hNodeB -> OsmoMGW [label="RTP",dir=both];
}
----

=== Software Components

OsmoMGW contains a variety of different software components, which we’ll
quickly describe in this section.

==== MGCP Implementation

OsmoMGW brings its own MGCP implementation through which OsmoMGW is
controlled.

The commands implemented are CRCX, MDCX, DLCX and RSIP. The command AUEP is
implemented as a stub and will simply respond with OK.

==== RTP implementation

Support for IuUP which is used in 3G cells is quite lacking at the moment.
3G<->3G and 2G<->2G calls should work, but 3G<->2G does not.

==== Audio transcoder

Transcoding is currently not supported in OsmoMGW.

=== Limitations

At the moment (November 2020), OsmoMGW implements RTP proxy / RTP bridge
type endpoints and E1/T1 16k/8k sub-slots with TRAU frames for classic BTS
support. To the RTP proxy / RTP bridge endpoints two RTP connections can
be established, which then work as a tandem. E1/T1 endpoints support one
RTP connection at a time that is associated with a sub-slot on an E1 line.
We are planning to add further endpoint types for:

- classic E1/T1 timeslots (64kBps alaw/ulaw)
- announcement/playout end-points
- conference endpoints

=== Additional resources

You can find the OsmoMGW issue tracker and wiki online at

- https://osmocom.org/projects/osmomgw
- https://osmocom.org/projects/osmomgw/wiki

RFC 3435 for MGCP is located at

- https://tools.ietf.org/html/rfc3435
