Hi Sipos,
Thanks for the detailed explanation, I already watched
your
presentations in the past, yet I was completely unaware that the E1
based MGW has different capabilities.
It is not just a matter of "E1 based MGW" having different capabilities,
the whole paradigm of how the BSS works in the CS domain (voice or CSD)
is different between OsmoBTS vs legacy E1 BTS. When the BTS is some
form of OsmoBTS (be it sysmoBTS or SDR), the BSC-associated OsmoMGW
instance should ideally be reduced to a no-alteration packet forwarder,
i.e., all RTP patching functions should be disabled, and the MGW is
nothing more than a dumb forwarder between two UDP IP:port sockets.
OTOH, if you operate with E1 BTS, then the very essence of how speech
or CSData frames are represented in transport is different between the
E1-based Abis interface and the IP-based A interface (TRAU frames vs
RTP), and the BSC-associated MGW becomes a highly complex network
element that needs to do far more work than what is needed when merely
bouncing RTP packets around from one IP:port leg to another.
I am happy to confirm that your recent Osmo-MGW
patches indeed fixed
the EFR call, which now works as expected.
I am happy to hear that my band-aid fix made an improvement for you,
my dear fellow hacker! As long as you remember that it is only a
band-aid fix and that OsmoMGW-E1 is still absolutely not correct
architecturally (for any codec), we are good...
Beyond band-aid fixes, I won't be able to start using E1 BTS seriously
(putting high-powered Ericsson RBS6k setups at mountaintop sites, etc)
until I replace OsmoMGW-E1 with this alternative:
https://gitea.osmocom.org/themwi/tw-e1abis-mgw
The above project is only a WIP, nothing functional yet, but if you
look at ul_path.c, dl_path.c and tfo_xfrm.c modules, you will see my
principal idea for the MGW between Abis-E1 and AoIP - which is very
different from how OsmoMGW-E1 does it. But when I do get around to
finishing this new MGW, my vision is that it will drop in the place of
OsmoMGW-E1 without needing any changes in OsmoBSC, i.e., I plan to
implement the subset of MGCP required by OsmoBSC in a fully compatible
manner.
I wonder if this also means
we can connect EFR calls through the external MNCC or the
sip-connector to a PBX
Several conflated issues to unpack here:
* External MNCC != osmo-sip-connector! I've been running with my own
ThemWi CN software interfacing to OsmoMSC via external MNCC for over
2 y now.
* A PBX is not the only kind of entity one can attach to external MNCC:
my ThemWi CN software is very much _not_ a PBX.
* I am not aware of any non-GSM-specific, off-the-shelf software (PBX
or otherwise) that implements EFR correctly. My home GSM network
does run with EFR, using my own ThemWi CN software, but like I just
said, it is highly custom, very GSM-specific software, not a PBX.
* My ThemWi CN software won't work with OsmoMGW-E1 as the latter exists
today - my CN sw will only become usable with E1 BTS when ThemWi E1
Abis MGW linked above becomes a reality.
or that is still FR only for E1 based BTSes?
With my patches of the present thread merged, the current state of
partially working (or the degree of brokenness, whichever way you look
at it) in OsmoMGW-E1 is the same between FRv1 and EFR. However, if
you are connecting non-GSM-specific off-the-shelf PBX software to MNCC
via osmo-sip-connector, then you can get a kinda-sorta-working setup
with FRv1 if you abide by a ton of restrictions (such as disabling
DTXu), whereas with EFR the off-the-shelf (non-custom) software route
is a no-go.
I have and EDGE capable MetroSite with the latest SW
ever released for
them, which means full AMR support, so once you have something I can
give it a try, can provide captures, logs, whatever you need.
Hmm, your offer does sound attractive: depending on how well this idea
of across-the-world remote cooperation works out, perhaps we could
test an E1 BTS with AMR without waiting for me to get my Ericsson RBS6k
gear up and running. Take a look at this program:
https://gitea.osmocom.org/themwi/e1-fake-trau
Can you get it working in your environment with FR/EFR? My plan for
experimenting with AMR on E1 BTS is to take this fake TRAU program and
extend it to emit TRAU-DL frames for AMR in addition to FR/EFR - hence
being able to run it at all would be a prerequisite for this avenue of
experimentation.
I wonder
if a similar "hack" with AMR could work, lets say for the normal 12.2
AMR-FR calls (without fallback and other perks).
If you are asking for a quick, low-effort hack that would bring AMR
support (in the world of E1 BTS and Osmocom) to the same level where
FR and EFR are today, then I have to disappoint you: there isn't one.
The approach I personally wish to pursue is to first migrate from
osmo-mgw to tw-e1abis-mgw for the role of OsmoBSC-driven E1 Abis MGW,
working with existing FR/EFR codecs (or just FRv1, in the absence of
TFO transform implementation for EFR) and CSD, and only then add AMR
support to it. But of course if you wish to do it yourself, or if
some other developer would like to tackle AMR support with E1 BTS, and
you do like mainline OsmoMGW, then I leave up to you how you wish to
proceed. :)
M~