spandsp_start_dtmf - same inband DTMF is detected multiple times if current playback is stopped with uuid_break
Hi, Any suggestions would be welcome with the following scenario: External app managing calls trough ESL We have to detect inband DTMF digits (we generally try to use a configuration where we don't have to deal with inband DTMF digits, but in some rare cases it cannot be avoided). There are cases when a playback has to be stopped when a certain digit is received. Inband DTMFs are detected with spandsp_start_dtmf. So the following happens: 1. Inbound call answered 2. spandsp_start_dtmf called 3. A file is being played 4. Client starts to send an inband DTMF 5. After a very short time FreeSwitch issues the DTMF event 6. External app stops the playback with uuid_break 7. External app starts to play a different file 8. Freeswitch detects the same digit again (which is still present in the RTP, the DTMF is on for roughly 400ms, and only ~190ms has elapsed since step 5) The scenario is reproducible and happens in a consistent way. The inband DTMF is continuous. FreeSwitch reports only 1 DTMF event if the play is not interrupted with uuid_break. Is it possible to avoid this sort of multiple detection? Or do I have to handle this in the external app level? Is this an issue I should report to JIRA? *Hari*
On Fri, Jan 4, 2019 at 1:09 AM Harangozó, László <harangozo.laszlo@tct.hu> wrote:
Hi,
Any suggestions would be welcome with the following scenario:
External app managing calls trough ESL We have to detect inband DTMF digits (we generally try to use a configuration where we don't have to deal with inband DTMF digits, but in some rare cases it cannot be avoided). There are cases when a playback has to be stopped when a certain digit is received. Inband DTMFs are detected with spandsp_start_dtmf. So the following happens:
1. Inbound call answered 2. spandsp_start_dtmf called 3. A file is being played 4. Client starts to send an inband DTMF 5. After a very short time FreeSwitch issues the DTMF event 6. External app stops the playback with uuid_break 7. External app starts to play a different file 8. Freeswitch detects the same digit again (which is still present in the RTP, the DTMF is on for roughly 400ms, and only ~190ms has elapsed since step 5)
The scenario is reproducible and happens in a consistent way. The inband DTMF is continuous. FreeSwitch reports only 1 DTMF event if the play is not interrupted with uuid_break.
Is it possible to avoid this sort of multiple detection? Or do I have to handle this in the external app level?
Try setting min_dup_digit_spacing_ms : https://freeswitch.org/confluence/display/FREESWITCH/min_dup_digit_spacing_m... I got into this digit duplication issue and solved it using the above.
participants (2)
-
Harangozó, László
-
mayamatakeshi