Hi all!
Recently in the IRC I brought up a topic of testing voice calls in OsmoCNI, which then turned into a discussion. The problem is I wanted to highlight is that there is currently no *easy* way to test voice calls, especially when running a virtual OsmoRAN setup (fake_trx.py + trxcon or virtphy).
== A bit of history ==
Back in the openbsc/osmo-nitb days I used to run jolly's LCR (Linux Call Router) [1], which was configured to play some hold melody when calling 995, and echo voice frames back when calling 999.
Nowadays openbsc/osmo-nitb is obsolete and completely suppressed by the new and shiny OsmoRAN/OsmoCNI stack. The LCR is not actively maintained anymore and does not support the MNCCv8, so it cannot talk to osmo-msc.
BTW, I forked it, fixed some compilation errors, created a package, and tried to implement MNCCv8 support (no luck, calls still don't work):
https://gitea.osmocom.org/vyanitskiy/lcr/commits/branch/fixeria/fixes https://gitea.osmocom.org/vyanitskiy/lcr/commits/branch/fixeria/mncc https://aur.archlinux.org/packages/lcr-git
Looks like it does not support late TCH assignment?
[1] http://www.linux-call-router.de/
== Current situation ==
Currently with the new post-NITB stack I see the following options:
a) run a virtual BTS, attach two mobiles, and setup a call between them; b) run a real BTS, attach two phones, and setup a call between them; c) run some PBX, talking to osmo-msc via osmo-sip-connector.
Personally I find neither of these options convenient because:
a) requires running two instances of the mobile app (from osmocom-bb.git). I know one can run two and even more MS instances in one mobile process, but this is still not handy.
b) requires running a real BTS and interacting with real phones. This is what I usually do, but it takes more time than running everything virtually.
c) requires setting up a PBX (e.g. Freeswitch, Asterisk), which in its turn requires digging into the new world of configuration files. I do have a repository with a know-to-work Freeswitch configuration [2], but installing it (even from packages) is not trivial.
[2] https://people.osmocom.org/fixeria/freeswitch.cfg.zip
== What do I want ==
It would be great to have an easy-to-use echo service, be it attached to osmo-msc via the MNCC socket, or be it built-in part of osmo-msc itself.
This would be usable for both real and virtual setups.
== Conclusion ==
I would like to know how do you guys test voice, and what do/would you consider an easy approach. I actually found out that it's possible to use osmo-msc's silent-call feature and play the Uplink RTP stream with osmo-gapk. I'll share more details in a follow up mail.
In the IRC @whytek proposed to use sipp [3] and later came up with a wiki page [4] describing how to achieve this with SEMS (SIP Express Media Server). This is definitely easier than setting up Freeswitch or Asterisk, but still feels like an overkill (sorry).
[3] https://sipp.sourceforge.net/doc/reference.html#RTP+echo [4] https://osmocom.org/projects/cellular-infrastructure/wiki/Simple_Echo_Server
Best regards, Vadim.