No DTMF Mute (yes I've searched the forums)

Running ASL 101 on Pi3s as replacement for RF links. All seems to be working well except I can’t get DTMF passed between nodes/servers.

I have propagate_dtmf = yes in rpt.conf in both nodes but still no DTMF…

DTMF doesn’t pass between servers/nodes on AllStar. Instead you

  • Connect to the other node with *3<node#>
  • Then take command of the other node with *4<node#>
  • Send any commands you wish to the other node
  • When done, return command to local node with the pound/hash DTMF #
  • Disconnect form the other node with *1<node#>

More can be read here
and here

However there is a way to replace links that will pass DTMF. That requires RTCM hardware. See

Another approach is to install Allmon2 and control your network on the web.

I am running a private network (3 Allstar nodes to replace a 420 RF links between repeater sites) and I want to pass DTMF between sites on a full-time basis. Is there any reason I can’t use *4<node#> as part of a startup macro and leave things in that configuration 24/7?
(I have no need to control nodes on a regular basis but rather pass DTMF to the controllers that the nodes are connected to)

Yes a startup macro will work but no need to use *4. Pick one of your sites to be the hub. All AllStar nodes bridge the connections so any site would work as the hub. You could even use a site with no radio for the hub, a cloud server for example. A $5/mo account will do nicely.

The startup macro only needs to be on the node you decide is the hub. Use *813 to connect each node. Assuming your hub is node 1000 and your other nodes are 1001, 1002 and 1003 the startup macro would look like so.

startup_macro = *8131001*8131002*8131003 ;permanent connect node 1000 to nodes 1001, 1002 & 1003

Note: permanent connections survive network or far end outages.

My nodes connect to each other via the AREDN mesh network and I have 1 “hub” node (IRLP and my weather receiver ties into my network this way) and 2 repeater site nodes. I do already have them to connect to each other as part of my startup macro. That works fine - all nodes are connected when any of them start up.

But I also want to be able to pass DTMF to the “hub” from either repeater site without first having to enable it using the *4<node#> command

There is no way to do that outside of using RTCM hardware. *4 commands one node at a time until terminated with #. Also, *4 doesn’t pass DTMF in the audio band. Instead, messages are sent out of band.

A permanent DTMF pass feature should be implemented… I am using simpleUSB as my interface and it seems to me I am not the only one who would benefit from such a change.

As for DTMF not being passed in the audio band, I get that. My hub node is connected to a repeater controller which also has an IRLP node connected to a different port and those ports are linked. So when the Allstart hub node sends DTMF, IRLP is listening.

In any case, I would argue the need for a permanent way of passing DTMF to other nodes, selected by the owner

I get your point. The change would require more than passing DTMF. The command structure would need to be redesigned. It would be necessary to prefix each command with the destination for the commands.


Why not allow *4<node#> to be called from the startup macro? No changes that I can think of (then again, I’m not privy to the source code)

You could put *4 in the startup macro. Try it.

The node I want to send DTMF to is 1000, so I placed *41000 in the startup macro and it didn’t work

Try *8131000*41000 because you need to be connected to the other node to hear a response.

You’re missing my point

I already have a connect command in my startup macro so this node connects to node 1000 on startup already. All I did was add the *4 command after THAT command in the same macro that is called as the startup

Thank you for clearing that up. Then what happened? How did you test it?

I restarted (systemctl restart asterisk). The connection to node 1000 came back (albiet it took maybe 10 seconds) but no *4 function

How did you test that DTMF was not getting to the other node?

The node I’m testing with (locally) is connected to another controller and a test repeater here at my QTH. No DTMF appears at the remote hub until I use the *41000 command. Then DTMF is passed.
So obviously, including the command as part of the startup macro does not work

There is a short cut that might ease your *4 pain. Zero can substitute for the last node number. So if you last connected to 1000 you can do *40 to command node 1000.

Yes, you have only connect in ‘command mode’ / *4
I might note for whatever it may be worth (trivia?) that no DTMF audio is ever passed… not ever !
Instead it passes the decoded DTMF digits recognized to the node connected in command mode in the iax stream. I say that only so you think about it correctly.

So, if you are trying to pass in a ‘linktolink’ mode to a hardwired controller, you may need to use the regenerate mode in some situations.

There is no DTMF pass through, but there is DTMF generate. Meaning you can generate DTMF on your output. See ilink commands.
=ilink,200 thru 215 – (Send DTMF 0-9,,#,A-D) (200=0, 201=1, 210=, etc)
As far as I know, there is no way to separate who is going to hear the DTMF…So…

As Tim said, it is the most logical and convenient method is direct *4 and/or from sched/macro.

If there would be a normal DTMF ‘pass through’, it would be very messy in a very linked up environment.

Also Note, when you are finished running commands, you need to stop command mode by sending a “#” or wait and it will time-out and tell you time-out if allison is on.

Why would passing DTMF be messy? I can see what KenHorse is asking about. Passing DTMF to a node could be a useful to test how a node is working.