DTMF decoded perfectly, but *6 does nothing. I've read every thread. Please help.

Hey friends,

I need some help. I've been at this for days, and I'm completely stuck.

What works: Incoming call from SIP phone to radio (Rpt(67039|Pv)) works flawlessly. Audio is great both ways. I'm running ASL3 on Debian 13, Baofeng simplex node with hardware COS output, SimpleUSB.

What drives me crazy: DTMF decoding is perfect. Here's a real log when I dial *611111#:

text

[May 2 11:41:59] NOTICE[537801]: chan_simpleusb.c:2430 simpleusb_read: Channel 67039: Got DTMF char * duration 86 ms
[May 2 11:41:59] NOTICE[537801]: chan_simpleusb.c:2430 simpleusb_read: Channel 67039: Got DTMF char 6 duration 85 ms
[May 2 11:41:59] NOTICE[537801]: chan_simpleusb.c:2430 simpleusb_read: Channel 67039: Got DTMF char 1 duration 84 ms
[May 2 11:42:00] NOTICE[537801]: chan_simpleusb.c:2430 simpleusb_read: Channel 67039: Got DTMF char 1 duration 64 ms
[May 2 11:42:00] NOTICE[537801]: chan_simpleusb.c:2430 simpleusb_read: Channel 67039: Got DTMF char # duration 134 ms

After that – nothing. No -- Executing..., no error, no bridge, no call. Just… silence.

*3 1999 – same story. DTMF logged, then absolutely nothing happens.

What I've tried (I really have, please trust me):

  • quiet=1 everywhere.

  • All bridge modules (bridge_simple.so, bridge_softmix.so, etc.) — loaded.

  • duplex 0, 1, 3.

  • RX level from 200 to 800 (simpleusb-tune-menu).

  • carrierfrom = usb and usbinvert.

  • context = radio-dial – exists, verified with dialplan show.

  • PJSIP endpoint 1001 – alive and well (inbound call proves it).

The strangest thing: DTMF is only decoded in duplex 0 or 1. In duplex 3, nothing. But even in 0/1, where decoding works perfectly, the commands just… don't execute.

It feels like app_rpt hears the DTMF, nods politely, and then walks away without doing anything. I've been reading threads for days, but somehow no one seems to have this exact issue.

At this point, I'm not even sure what to ask anymore. Has anyone seen this? Is there a fix? A reliable workaround? Or should I just accept that autopatch in ASL3 is broken and move on?

Any insight would mean the world to me. Thank you so much for reading.

Asterisk Version: asl3-asterisk 2:22.7.0+asl3-3.7.0-1.deb13

This AI post is hard to follow.

Can you tell us what you are trying to do with autopatch functions?

At minimum, I would share a copy of your extensions.conf.

Autopatch is not broken in ASL3. I use it and it works perfectly fine.

I am trying to call from a gateway on ASL3, with a Baofeng 888s connected to it, to SIP phones. I dial a number on the other station and send it via DTMF to ASL3, and ASL3 receives it — as can be seen in the logs — but the call to the number does not go through. I am attaching my changes, what I replaced in the default configuration. I really appreciate your answer.

simpleusb.conf
[general]
node-main
eeprom = 0
hdwtype = 0
rxboost = 0
carrierfrom = usb
clipledgpio = 1
ctcssfrom = no
deemphasis = no
plfilter = yes
rxondelay = 0
txoffdelay = 0
rxboost=yes
txmixa = voice
txmixb = no
invertptt = 0
preemphasis = 0
duplex3 = 0
devstr =
rxmixerset = 800
txmixaset = 800
txmixbset = 800

rpt.conf

[functions]
61 = autopatchup,quiet=1,noct=1,context=radio-dial,dialtime=5000
62 = autopatchdn

67039
rxchannel = SimpleUSB/67039
duplex = 1
nounkeyct = 1
idtime = 0
hangtime = 0
althangtime = 0
unkeywait = 100
context = radio-dial
voxtimeout = 10000
voxrecover = 2000
simplexpatchdelay = 25

extensions.conf

[general]
autofallthrough=yes

[radio-context]
exten => 888,1,Rpt(67039|Pv)
same => n,Hangup()

[radio-dial]
exten => 1001,1,Verbose(1, Calling SIP/1001 from radio)
same => n,Dial(PJSIP/1001,30)
same => n,Hangup()

Is *611 supposed to initiate a call to extension “1”? If so your short extension numbers are probably falling though the normal extension parsing rules.

No initialization occurs, no actions, and no errors. It just reads the DTMF and stays silent.

[May 2 20:14:14] NOTICE[551047]: chan_simpleusb.c:2430 simpleusb_read: Channel 67039: Got DTMF char * duration 107 ms
[May 2 20:14:14] NOTICE[551047]: chan_simpleusb.c:2430 simpleusb_read: Channel 67039: Got DTMF char 6 duration 132 ms
[May 2 20:14:14] NOTICE[551047]: chan_simpleusb.c:2430 simpleusb_read: Channel 67039: Got DTMF char 1 duration 99 ms
-- Hungup 'DAHDI/pseudo-925230430'
-- Hungup 'DAHDI/pseudo-1347495596'

What do you have *6 configured to be in rpt.conf?

running

grep -iP "^[ \t]*[\dA-D]+ =" /etc/asterisk/rpt.conf | grep -vP "rptena|radio"

is a quick way to see what DTMF commands are active

Hello. I added these settings to it:

[functions]

61 = autopatchup,quiet=1,noct=1,context=radio-dial,dialtime=5000
62 = autopatchdn

Hello. Here is the config snippet that this command outputs. It's strange that it doesn't show 61, even though this setting is present in it.

root@sip:/etc/asterisk# grep -iP "^[ \t]*[\dA-D]+ =" /etc/asterisk/rpt.conf | grep -vP "rptena|radio"
62 = autopatchdn
1 = ilink,1                         ; Disconnect specified link
2 = ilink,2                         ; Connect specified link -- monitor only
3 = ilink,3                         ; Connect specified link -- transceive
4 = ilink,4                         ; Enter command mode on specified link
70 = ilink,5                        ; System status
99 = cop,6                          ; PTT (phone mode only)
5 = macro
721 = status,1                      ; Force ID (global)
722 = status,2                      ; Give Time of Day (global)
723 = status,3                      ; Give software Version (global)
724 = status,4                      ; Give GPS location info
725 = status,5                      ; Last (DTMF) user
711 = status,11                     ; Force ID (local only)
712 = status,12