Dear Osmocom community,
A little over a month ago I announced availability of this new MGW:
https://osmocom.org/projects/retro-gsm/wiki/ThemWi_E1_Abis_MGW
So far only two people responded to this news: Csaba has been testing this new MGW on his Nokia MetroSite (he and I are working toward adding AMR support), while Keith took only a passing notice - if I understood him correctly (please forgive me if I misunderstood!), it looks like Rhizomatica/TIC no longer operate GSM networks with Ericsson RBS gear, hence no more need for improved E1 MGW from their side.
However, I am getting a sense that the larger Osmocom community may be disappointed regarding my choice to develop this improved E1 Abis MGW as a "rogue" project external to Osmocom, rather than in the form of patches to osmo-mgw. Therefore, I have given some thought to how it might be possible to merge this new E1 MGW into mainline Osmocom.
Here are my current thoughts:
1) Integrating improved functionality of tw-e1abis-mgw into osmo-mgw in a fully unified manner, full coexistence of all existing osmo-mgw functionality plus all tw-e1abis-mgw functionality within a single program/process, running on one MGCP port and providing both rtpbridge and E1 endpoints, is beyond my ability, or at least beyond what I can do using only my own volunteer time. osmo-mgw code base is extremely complex, and as much as I dread to say it, insanely and needlessly so - it is a Gordian knot, and I tend to approach those the way Alexander did...
2) As an intermediate compromise between the too-difficult goal of point 1 above and the current status quo of tw-e1abis-mgw existing externally to Osmocom, how would Osmocom community feel about a hypothetical osmo-e1-mgw program? Suppose I were to produce patches that add osmo-e1-mgw as a new program to osmo-mgw git source tree, such that osmo-mgw and osmo-e1-mgw binaries would be built side by side in the same source tree - any interest? The actual code bases compiling into these two binaries would still be mostly separate, just the autotools infra of osmo-mgw git tree would be shared, but the new osmo-e1-mgw program would carry Osmocom branding, and it would live in a mainline Osmocom repository where people other than me can shape its future direction.
Please note that I don't need this integration for myself: for our own use on our to-be-built network, we (A2GC) are quite happy running the hybrid software stack where some components are built from Osmocom source repositories while other components are built from ThemWi repos. Instead I am making this offer to Osmocom community for social reasons: I wish to continue as an active member of this community, if possible, and fork-like activities are certainly _not_ the way to go, socially.
I am also making this integration offer to the community as food for thought, without any urgency. If the greater Osmocom community does wish to see tw-e1abis-mgw turned into something like osmo-e1-mgw, integrated into mainline Osmocom, it will probably be another few months before I can start submitting patches in this direction. The reason for the delay is that tw-e1abis-mgw is not quite finished at the present moment: two big missing features are AMR support and UL-to-DL transform (aka TFO transform) for EFR. I would like to fill these two functional gaps in the new MGW while staying in my own tw-e1abis-mgw source tree, before beginning the process of merging into Osmocom mainline - hence the time delay prognosis.
If Osmocom community does wish to see the improved E1 MGW as part of mainline Osmocom code base, I would need an explicit "green light" go-ahead before I start preparing any patches. The patch process would need to proceed as follows:
1) I will need to prepare a patch for libosmocore, adding a header file with definitions from 3GPP TS 48.103 Table 5.4.2.2.1. Right now ThemWi software, including tw-e1abis-mgw, uses <themwi/common/aoip_rtp_pt.h> header file - but of course the latter won't be available in pure Osmocom environment without ThemWi dependencies.
2) There will need to be a whole bunch of patches to libosmo-abis.git (libosmotrau portion thereof), adding various functions which I currently collect in libtwtrau and which will be used by the upcoming AMR-capable version of tw-e1abis-mgw.
3) Only after 1 and 2 above are merged, then I'll able to produce a big patch for osmo-mgw.git, adding osmo-e1-mgw (or whatever other name the community comes up with) as a new program.
In any case, in the immediate short term I am going to continue improving tw-e1abis-mgw where it lives currently, in ThemWi area of Osmocom Gitea. Once AMR support and UL-to-DL transform for EFR are there, I will make another post here. At that point if the greater community would like to see this work merged, I will need feedback in this ML thread.
GSM/2G Forever, Mother Mychaela