I appreciate that this FR is out of scope for controlling an engine; however with VSD sounds now being incorporated to enhance the operating experience, I thought this might also be worth considering. Unfortunately my attempts at Java programming in the past wasn't as successful as I would have liked, so this is beyond my current ability to contribute :(
It would be nice if there was a SIP client built into the throttle. Instead of having FRS radios or hard wired phone systems, the user could talk to other train crews / dispatcher / yard office / ... through the app.
Background: I have an Asterisk server setup with SIP phones around my house, and all of my cell phones have a SIP phone installed as well. When I started using Engine Driver on my cell to control loco's I also setup conference rooms on my Asterisk server; the dispatcher and trains had an extension; the "road channel" had a conference room. If you wanted to talk to the dispatcher, you phoned that extension. If you wanted to talk to a train, you phoned their extension. Each person logs into the train's account when taking control of the train; log out when tie-ing up. When not otherwise on a call, the crew listen in on (call) the road channel (conference).
The down side to this was having to switch apps to do so. Worked fine for a train sitting in the hole; less so for calling a train on the move - with our shorter runs and time between needing to do something in the throttle, the time spent switching between apps and actually conversing in the SIP client led to running past control points, etc.
To replace FRS, one could setup 1 conference room that everyone logs into, and a PTT button on the throttle. To simulate a multi channel setup, there could also be a channel button as well as config options that set channels to log into conference rooms. This would not need to be tied to Asterisk - there are any number of SIP providers with conference rooms. There are also other self hosting SIP providers.
Extra bonus points would be an integration into JMRI where a new call to the dispatcher extension also flashes in JMRI, but I get how this would be really stretching "in-scope".
In a similar method, SIP SIMPLE messages (text) could be used for sending text versions of clearances / train orders but I suspect that would require enhancement in JMRI unless the dispatcher also had a Cell (not as easy with traditional phones to send the text message). This does require a more recent version of Asterisk or a provider with SIMPLE turned on.