[Freeswitch-users] Freeswitch DTMF issue - wrong timestamp base

Arslan Saeed arslan.saeed at overthewire.com.au
Tue Mar 9 05:27:51 UTC 2021

Hi All,

We have come across an issue where freeswitch ((Version 1.10.5
-release-17-25569c1631 64bit)
seems to be doing something wrong with regards to RFC4733 DTMF event
packets generation.

What we see is that freeswitch would start using a new timestamp base for
the RTP event packets (sometimes even for a few RTP packets preceeding the
DTMF packetS) and then at the end of the DTMF event revert to older
timestamp base. Although the marker bit is set on when new timestamp base
is used but as far as I know this is not RFC compliant and causes issues
for some of the PBX devices.

RFC 4733, section says:
DTMF digits and other named telephone events are carried as part of
the audio stream, and they MUST use the same sequence number and
timestamp base as the regular audio channel to simplify the
generation of audio waveforms at a gateway.```


I think if freeswitch were to change the timestamp for DTMF event packets
then it must also change the RTP  SSRC at same time (which does not happen)
Although I don't understand the need to change timestamp base at all for
the start of DTMF event  packets or even with the few proceeding RTP

I have tried to use following parameter but that does not help
<param name="auto-rtp-bugs" data="CHANGE_SSRC_ON_MARKER"/>

 I have also tried to test with these additional parameters (in order to
infleunce freeswitch to not use a new timestamp base for the start of dtmf
event packets)  but no change in freeswitch behaviour.

  <param name="pass-rfc2833" value="true"/>
<param name="rtp-rewrite-timestamps"value="true"/>
<param name="auto-rtp-bugs"value="CISCO_SKIP_MARK_BIT_2833"/>
<param name="auto-rtp-bugs"value="clear"/>

In addition I have tried to use some jitter related sofia profile
parameters but no affect.

Another DTMF related issue that I have seen with freeswitch is that
it sends DTMF event packets in a short burst and not evenly spaced out per
the codec sample rate.
For example if RTP is being sent at 20ms, freeswitch would send dtmf event
packets at different interval like it may send 8ms apart or 13 ms apat and
at times it sends multiple event packets just a few ms apart.

To fix that behaviour, when we explicity set the RTP-timer-name to "soft"

<param name="rtp-timer-name" value="soft"/>

 that fixes it and ensures evenly spaced DTMF packets say 20 ms apart (that
fixes interop with some of the devices)

Any help is highly appreciated.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20210309/663b625c/attachment-0001.html>

More information about the FreeSWITCH-users mailing list