I have installed Freepbx 16 with Asterisk 18 on a Raspberry Pi running Bullseye. I also have another test desktop PC machine running the same versions.
For some strange reason DTMF is being recognised without any problems on the desktop PC but just not recognised at all on the Raspberry PI. I know therefore it is not the phone. The DTMF setting on the extension in Freepbx is set to RFC4733.
I’ve tried debugging for DTMF in the logs but nothing appears after turning on DTMF logging and then setting the debug level to 3 in the Asterisk CLI.
I’ve compared settings between the two systems but just can’t nail down what the issue might be.
Using in-band DTMF might work around the problem. If your internet connection is stable with essentially no packet loss and minimal jitter, this is probably acceptable.
Otherwise, find out whether RFC4733 packets are being sent (the SDP in the 200 OK sent by Asterisk may not include it). If they are, then it appears that Asterisk is not recognizing them. I know nothing about that logic, but with luck a higher verbosity will show something useful.
On the Pi, does DTMF work on external outgoing calls? On external incoming calls, e.g. when trying to remotely listen to voicemail?
I set the extension to in-band and this did indeed get around the problem. Strange that the same phone works fine with RFC4733 packets on the desktop but not on the Pi which would lead me to think that either something on the Pi is blocking those packets for whatever reason?
Next step is to try DTMF on inbound/outbound calls and I’ll report back…