Hi Keith,
I have to say, I'm impressed, (I think?) that writing a new program from scratch that involves protocol translation and RTP transcoding is easier for you that configuring existing programs that do said thing.
I have two additional issues I didn't already mention:
1) I hate SIP with a passion, and I am using it out of poverty, rather than out of genuine desire. If I were filthy rich, I would have nothing to do with SIP, I would have got a TDM trunk instead for my PSTN interface, with SS7 signaling. But I am not filthy rich, and a SIP-based connection to PSTN is the only kind that's available for dirt cheap, via providers like bulkvs.com - hence that's what I am working with. But as an expression of protest and disapproval, I don't want to embed SIP into the core of my network, instead I want to keep it at the periphery. The approach espoused by osmo-sip-connector where a purely local call from one locally attached GSM phone to another is converted to SIP, then hairpinned back to o-s-c at the SIP level by the PBX, is anathema to me. In my themwi-system-sw the internal switch (themwi-mncc) is pure MNCC without any SIP (would be easy to convert to Q.931 given a traditional PSTN trunk), and there are two separate gateway processes for themwi-sip-in and themwi-sip-out.
2) There is no pre-existing sw (that I know of) that very specifically does the job of interconnecting a GSM network to PSTN via SIP, nothing more and nothing less. Neither Asterisk nor FreeSWITCH (and I haven't even heard of the others you mentioned) is designed specifically for this job, instead they are designed to do "everything and anything" that revolves around SIP, and assume an operator/admin who loooves SIP - not a "bellhead" like me! ("Bellhead" is an American term for someone who thinks and views the world the way traditional Bell System telco people did.)
But I feel that this discussion is approaching the situation from the wrong angle - at the end of the day it doesn't matter whether any given network operator/implementor chose to write her own sw or use mostly pre-existing sw - it's an internal implementation detail - instead what matters more (to me at least) is whether or not anyone else is building similar functionality at all, irrespective of how they choose to implement it.
Let me repeat the fundamental question: is there *anyone* in this community besides me who operates an Osmocom GSM network with interconnection to USA PSTN, with every GSM subscriber getting a real 10-digit NANP phone number, with ability to receive PSTN calls from anywhere in the world and with ability to dial calls to anywhere in the world, or at least to anywhere in USA? If someone has done what I just described, I would *love* to hear from you, including as much detail about your choice of software and technical setup as you would be willing to share. And if no one has done this before me, if I get to be the trailblazer here, going where no woman has gone before, then on exactly what basis are you telling me that I am doing it wrong?
I asked a similar question here several months ago, before I embarked "full steam ahead" on my themwi-system-sw. If someone had responded along the lines of "yes, here we are, running an Osmocom network interconnected to USA PSTN via such and such PSTN-via-SIP provider, and this is the software stack use", then I would have looked into that existing implementation before deciding to reinvent the wheel. But no one responded positively, the silence I heard gave me the impression that no one else is operating an Osmocom network in furtherance of a similar telos, and so I had to strike out on my own. But hey, I freely share all of the code I have written in furtherance of my goal, and it interoperates with Osmocom CNI - so if what I am doing is not community contribution, then what is?
[my quick-n-dirty patch to OsmoMSC to make call waiting work]
I'd be happy to test it, but unfortunately, I don't see it in Code Review
I sent it as an email attachment; here it is again, inline this time:
--- msc_a.c.orig 2021-11-16 08:44:54.000000000 -0800 +++ msc_a.c 2022-10-07 19:47:29.459549124 -0800 @@ -1768,6 +1768,8 @@
if (msc_a->cc.active_trans) { LOG_MSC_A(msc_a, LOGL_INFO, "Another call is already ongoing, not assigning yet\n"); + /* ThemWi addition for call waiting */ + gsm48_tch_rtp_create(cc_trans); return 0; }
As you can see, it is literally a one line change, if you don't count the comment. I don't have spare cycles at the moment to get into the world of Gerrit, but if no one beats me to it, I'll submit it some time later.
M~