Project

General

Profile

MediaPlane » History » Version 2

daniel, 03/20/2018 03:55 PM
fix typos

1 1 laforge
{{>toc}}
2
3
h1. MediaPlane
4
5
One of the goals of the new architecture is the efficient use of [satellite] back-haul.
6
7
Osmocom already has the existing OSMUX protocol implemented in osmo-bsc-sccplite and osmo-bsc_nat, which avoids protocol overhead by:
8
* putting codec frames of multiple concurrent calls in one UDP packet [avoiding RTP/UDP overhead for each one]
9
* avoiding the large RTP header by using a custom header
10 2 daniel
* optionally batching codec frames of each single call by introducing buffering, so one packet is only sent every 40/60/80/100ms instead of every 20ms
11 1 laforge
12
This protocol, however, is not yet available in a more generic way outside the scope of SCCPlite conncetions between BSC and BSC-NAT.
13
14
h2. Generalization of Osmux
15
16
There are plenty of issues already about this:
17
* #2554 (documentation of the old osmux)
18
* #2909 (documentation of a new generalized osmux)
19
* #2551 (generalization of OSMUX in OsmoMGW)
20
* #2552 (OsmoBSC support for OSMUX on A, not needed here but test case for #2551)
21
* #2553 (OsmoMSC support for OSMUX on A, not needed here but test case for #2551)
22
23
All those items should have been implemented by now, but are unfortunately delayed already for several months due to other tasks.
24
25
h2. Use outside of the Osmocom network elements
26
27
Osmux in this Distributed GSM architecture would actually not be used by GSM-network-internal interfaces (such as the A interface between BSC and MSC), but it would be used to interconnect the individual networks with each other, i.e. the _roaming interface_ of classic GSM networks.
28
29
So the media flow between two networks would look like this:
30
31
{{graphviz_link()
32
digraph G {
33
  rankdir = LR;
34
  btsa [label="BTS\nVillage A"];
35
  mgwa [label="MGW\nVillage A"];
36
  mgwb [label="MGW\nVillage B"];
37
  btsb [label="BTS\nVillage B"];
38
  btsa -> mgwa [label="RTP",dir="both",color="red"];
39
  mgwa -> mgwb [label="OSMUX",dir="both",color="red"];
40
  mgwb -> btsb [label="RTP",dir="both",color="red"];
41
42
  bmsca [label="BSC/MSC/SIP\nVillage A"];
43
  bmscb [label="BSC/MSC/SIP\nVillage B"];
44
  bmsca -> mgwa [label="MGCP"];
45
  bmscb -> mgwb [label="MGCP"];
46
  bmsca -> bmscb [label="SIP", dir="both"];
47
  btsa -> bmsca [label="Abis/IP", dir="both"];
48
  btsb -> bmscb [label="Abis/IP", dir="both"];
49
50
  { rank = same; mgwa; bmsca; }
51
  { rank = same; mgwb; bmscb; }
52
}
53
}}
54
55
h3. What's needed to implement this
56
57 2 daniel
# OsmoMSC must have codec preference for one fixed AMR bitrate e.g. AMR 5.9 and allocate older codecs only to phones that don't have related bearer capabilities
58 1 laforge
#* should already be possible with existing code, needs [automatic] testing/verification
59
# transcoding in OsmoMGW to ensure that FR/EFR/HR from non-AMR capable phones is transcoded to a fixed AMR rate suitable for osmux
60
#* we do have transcoding in OsmoMGW inherited from its predecessor osmo-bsc_mgcp, but it might have been broken and needs re-testing/fixing
61
# MNCC syntax by which osmo-sip-connector can request the MSC to instruct the MGW to use OSMUX on the external media side
62
# MGCP syntax by which the call agent in the MSC can instruct the MGW to have an endpoint that has RTP on local side but OSMUX on remote side
63
# SIP/SDP syntax by which two osmo-sip-connector instances can discover they both support OSMUX as transport
64
#* probably similar to existing handshake of codecs on SIP/SDP. So Osmux would look like a different codec
65
#* might not be as simple, as there's no separate IP/Port per stream anymore
Add picture from clipboard (Maximum size: 48.8 MB)