Daniel Willmann | 2778031 | 2018-07-31 18:53:45 +0200 | [diff] [blame] | 1 | [[overview]] |
| 2 | == Overview |
| 3 | |
| 4 | This manual should help you getting started with OsmoMGW. It will cover |
| 5 | aspects of configuring and running the media gateway. |
| 6 | |
| 7 | [[intro_overview]] |
| 8 | === About OsmoMGW |
| 9 | |
| 10 | OsmoMGW is the Osmocom implementation of a media gateway to handle user |
| 11 | plane (voice) traffic in cellular networks. It can connect and optionally |
| 12 | transcode RTP voice streams between different network elements such as BTSs |
| 13 | and external entities like SIP. It is typically co-located with both OsmoBSC |
| 14 | and OsmoMSC and controlled by them via MGCP, the Media Gateway Control |
| 15 | Protocol. |
| 16 | |
| 17 | [[fig-bsc]] |
| 18 | .OsmoMGW used with OsmoBSC |
| 19 | [graphviz] |
| 20 | ---- |
| 21 | digraph G { |
| 22 | rankdir = LR; |
| 23 | OsmoBTS -> OsmoBSC [label="Abis/IP"]; |
Philipp Maier | a098b65 | 2020-11-25 15:35:42 +0100 | [diff] [blame] | 24 | OsmoBSC -> "core-network" [label="3GPP AoIP"]; |
Daniel Willmann | 2778031 | 2018-07-31 18:53:45 +0200 | [diff] [blame] | 25 | OsmoBSC -> OsmoMGW [label="MGCP"]; |
| 26 | OsmoBTS -> OsmoMGW [label="RTP",dir=both]; |
Philipp Maier | a098b65 | 2020-11-25 15:35:42 +0100 | [diff] [blame] | 27 | OsmoMGW -> "core-network" [label="RTP",dir=both]; |
Daniel Willmann | 2778031 | 2018-07-31 18:53:45 +0200 | [diff] [blame] | 28 | {rank=same OsmoBSC OsmoMGW} |
| 29 | OsmoMGW [color=red]; |
| 30 | } |
| 31 | ---- |
| 32 | |
| 33 | [[fig-msc]] |
| 34 | .OsmoMGW used with OsmoMSC |
| 35 | [graphviz] |
| 36 | ---- |
| 37 | digraph G { |
| 38 | rankdir = LR; |
Philipp Maier | 53002b3 | 2020-11-25 15:47:35 +0100 | [diff] [blame] | 39 | "2G BSS" -> OsmoMSC [label="3GPP AoIP"]; |
Daniel Willmann | 2778031 | 2018-07-31 18:53:45 +0200 | [diff] [blame] | 40 | OsmoMSC -> OsmoMGW [label="MGCP"]; |
Philipp Maier | 53002b3 | 2020-11-25 15:47:35 +0100 | [diff] [blame] | 41 | "2G BSS" -> OsmoMGW [label="RTP",dir=both]; |
Daniel Willmann | 2778031 | 2018-07-31 18:53:45 +0200 | [diff] [blame] | 42 | OsmoMSC -> OsmoSIP [label="MNCC"]; |
| 43 | OsmoSIP -> PBX [label="SIP Trunk"]; |
| 44 | OsmoMGW -> PBX [label="RTP",dir=both]; |
| 45 | {rank=same OsmoMSC OsmoMGW} |
| 46 | OsmoSIP [label="osmo-sip-connector"]; |
| 47 | OsmoMGW [color=red]; |
| 48 | |
| 49 | hNodeB -> OsmoHNBGW [label="Iuh"]; |
| 50 | OsmoHNBGW -> OsmoMSC [label="IuCS"]; |
| 51 | hNodeB -> OsmoMGW [label="RTP",dir=both]; |
| 52 | } |
| 53 | ---- |
| 54 | |
Philipp Maier | e9473f6 | 2020-11-25 15:56:55 +0100 | [diff] [blame] | 55 | [[fig-bsc]] |
| 56 | .Integration of legacy E1 BTS in AoIP network |
| 57 | [graphviz] |
| 58 | ---- |
| 59 | digraph G { |
| 60 | rankdir = LR; |
| 61 | BTS -> OsmoBSC [label="Abis/E1"]; |
| 62 | OsmoBSC -> "core-network" [label="3GPP AoIP"]; |
| 63 | OsmoBSC -> OsmoMGW [label="MGCP"]; |
| 64 | BTS -> OsmoMGW [label="TRAU/E1",dir=both]; |
| 65 | OsmoMGW -> "core-network" [label="RTP",dir=both]; |
| 66 | {rank=same OsmoBSC OsmoMGW} |
| 67 | OsmoMGW [color=red]; |
| 68 | } |
| 69 | ---- |
| 70 | |
Daniel Willmann | 2778031 | 2018-07-31 18:53:45 +0200 | [diff] [blame] | 71 | === Software Components |
| 72 | |
| 73 | OsmoMGW contains a variety of different software components, which we’ll |
| 74 | quickly describe in this section. |
| 75 | |
| 76 | ==== MGCP Implementation |
| 77 | |
| 78 | OsmoMGW brings its own MGCP implementation through which OsmoMGW is |
| 79 | controlled. |
| 80 | |
| 81 | The commands implemented are CRCX, MDCX, DLCX and RSIP. The command AUEP is |
| 82 | implemented as a stub and will simply respond with OK. |
| 83 | |
| 84 | ==== RTP implementation |
| 85 | |
| 86 | Support for IuUP which is used in 3G cells is quite lacking at the moment. |
| 87 | 3G<->3G and 2G<->2G calls should work, but 3G<->2G does not. |
| 88 | |
| 89 | ==== Audio transcoder |
| 90 | |
| 91 | Transcoding is currently not supported in OsmoMGW. |
| 92 | |
| 93 | === Limitations |
| 94 | |
Philipp Maier | 78b0055 | 2020-11-20 21:30:50 +0100 | [diff] [blame] | 95 | At the moment (November 2020), OsmoMGW implements RTP proxy / RTP bridge |
| 96 | type endpoints and E1/T1 16k/8k sub-slots with TRAU frames for classic BTS |
| 97 | support. To the RTP proxy / RTP bridge endpoints two RTP connections can |
| 98 | be established, which then work as a tandem. E1/T1 endpoints support one |
| 99 | RTP connection at a time that is associated with a sub-slot on an E1 line. |
| 100 | We are planning to add further endpoint types for: |
Daniel Willmann | 2778031 | 2018-07-31 18:53:45 +0200 | [diff] [blame] | 101 | |
| 102 | - classic E1/T1 timeslots (64kBps alaw/ulaw) |
Daniel Willmann | 2778031 | 2018-07-31 18:53:45 +0200 | [diff] [blame] | 103 | - announcement/playout end-points |
| 104 | - conference endpoints |
| 105 | |
| 106 | === Additional resources |
| 107 | |
| 108 | You can find the OsmoMGW issue tracker and wiki online at |
| 109 | |
| 110 | - https://osmocom.org/projects/osmomgw |
| 111 | - https://osmocom.org/projects/osmomgw/wiki |
| 112 | |
| 113 | RFC 3435 for MGCP is located at |
| 114 | |
| 115 | - https://tools.ietf.org/html/rfc3435 |