Greetings:
First of all, let me say how excited I am to see ASL3 development. Congrats to the team for doing the amazing amount of work it must have taken to get app.rpt and related modules ported to modern Asterisk, something I wasn’t sure would ever be done.
For as long as I’ve known about ASL (probably about 16 years, though I have only used it for around five), I have always wondered why transmissions continue to be sent to the network when DTMF, particularly the command code, is detected.
Would it be technically possible to just simply stop sending to IAX2/chan_echolink/USRP, etc. when * or whatever the designated command is detected, then process the rest of the string internally? The exceptions, now that I think of it, might be while command mode is activated, and the USRP channel driver.
This would cut down on hold-ups with lots of simplex nodes.
I run a fairly large system (the Blind Hams Network), and often hear people keying up and very, very slowly dialing a DTMF sequence to perhaps disconnect their node. It fails, so they key up and try again. It fails again, either because they dialed so slowly that it timed out between digits, they misdialed, one tone wasn’t recognized for some reason, etc.
Of course, the cleanest thing to do is not use DTMF at all, but not everyone has that option.
My network is mostly comprised of simplex nodes. So each long, slow, agonizing attempt to do whatever it is they’re trying to do prevents most of those nodes from being able to transmit while that is going on.
At least, if transmission to the channel driver stopped on first DTMF detected, they can take as much time as they need to send a command, and we’ll just hear a little blip from the first DTMF, if that much, then nothing. IIRC, this is exactly what echolink does.
Thanks and 73
N2DYI