Affects Version/s: 1.4.18, 1.4.19, 1.4.20
Fix Version/s: 1.6
Distribution Version:CentOS Based (3.x kernel)
FreeSWITCH GIT Revision:9eb887af478eb7615cfbb1f43055e5c1b73ee9ef
GIT Master Revision hash::9eb887af478eb7615cfbb1f43055e5c1b73ee9ef
Telephone-event codec is used to send/receive DTMF.
Telephone-event codec clock rate should be the clock rate of the audio codec.
But when FS receives SDP as follows:
m=audio 7090 RTP/AVP 96 97 98 99 100 102 103 0 8 104 101 105 106 107 108
FS replies as follows:
The remote client will see that FS is changing the clock-rate of the 101 payload from 48000 to 8000 .
RFC4733 states ( https://tools.ietf.org/html/rfc4733#section-2.1 ) :
"Named telephone events are carried as part of the audio stream and
MUST use the same sequence number and timestamp base as the regular
audio channel to simplify the generation of audio waveforms at a
For example, for Opus, the RTP clock rate is at 48000 , but the telephone-event clock rate offered by FS is 8000, so DTMF on RFC compliant clients would not work (sending telephone-event/8000 over a 48000 Hz audio stream is prohibited).
This situation is becoming more common, as Opus is becoming used more and more.
This patch addresses the issue,replacing the hardcoded clock rate (8000) with the clock rate of the offered audio codec..
Pull request here :
Tested with <param name="inbound-codec-negotiation" value="greedy"/>