It seems the DTMF detection on my WHOZZ Calling unit isn't working anymore. However, hook status is still detected and reported as normal (off and on hooks).
This is still useful, as DAHDI telephony cards can't detect this, so external hardware or circuitry, like a WHOZZ Calling device, is needed for this SMDR function. In theory, we can do the DTMF detection of called number in software, by DAHDI monitoring via a connected FXO port when the line is off hook and the user begins to dial. It's less efficient, but may be useful if the WHOZZ Calling equipment is not completely working as in this case.
This will be a setting that can be optionally enabled, if a DAHDI channel is configured for the line. When an off hook is reported, we should spawn a thread to monitor (similar to as in app_dahdimonitor) the channel and process the audio using DSP to extract the DTMF. A configurable timeout could be used to stop listening after a certain point, since this is only needed to capture the dialed number and then the DSP (and the thread) can be dropped.
Beyond DTMF detection, this function is actually necessary if the digit detection in the WHOZZ Calling unit is not working, in order to record the start duration of a call and to know that one occurred when we process the on hook. Effectively, this is a kludged workaround, but it should work.
This is a high priority issue, since there is no functional SMDR on the POTS line until this is implemented.
3/2/2025 10:12 PM — InterLinked
Autoresolved by code commit on GitHub:
res_smdr_whozz: Fix toggling settings not actually being set.
https://github.com/InterLinked1/phreakscript/commit/37e48e747b566287346df70b8fae9b9e96b3d8e1
You must be
3/2/2025 9:42 PM — InterLinked
Turns out this was actually due to a different issue - the settings weren't being properly sent to the device, nothing wrong with DTMF detection. As such, while in theory it could be a cool feature, it's not necessary at this time.