Freeswitch DTMF issue - wrong timestamp base
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 2.5.1.2 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.``` https://tools.ietf.org/html/rfc4733#section-2.5.1 -- 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 packets. 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" using <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. Thanks Arslan
you could open a github issue: https://github.com/signalwire/freeswitch/issues Attach FS debug logs and pcap file. On Wed, Mar 10, 2021 at 12:35 AM Arslan Saeed < arslan.saeed@overthewire.com.au> wrote:
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 2.5.1.2 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.``` https://tools.ietf.org/html/rfc4733#section-2.5.1
--
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 packets.
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" using
<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.
Thanks Arslan
_________________________________________________________________________
The FreeSWITCH project is sponsored by SignalWire https://signalwire.com Enhance your FreeSWITCH install with disruptive priced SMS and PSTN services. Build your next product on our scalable cloud platform.
Join our online community to chat in real time https://signalwire.community
Professional FreeSWITCH Services sales@freeswitch.com https://freeswitch.com
Official FreeSWITCH Sites https://freeswitch.com/oss https://freeswitch.org/confluence https://cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users https://freeswitch.com
participants (2)
-
Arslan Saeed
-
Dragos Oancea