Dtmf not transferring from server a to b

Hi all

i have a asterisk server 16.11.1 (server A) that gets a call (leg A) and then calls a second server (leg B) server B is a freeswitch server

the servers are configured all thru with rfc2833 for dtmf

the caller enters a number a long 15 digit number like a credit card number or even a phone number and in a lot of cases server B always doesn’t get part of the digits from server A

running a trace on server (A) i checked the trace of leg A and of leg B on the same server (A) and i see that the from the provider to asterisk has all digits correct but leg b going out the same server has a missed digit

so either asterisk isn’t getting all digits from the provider for some reason or it fails to regenerate the dtmf when sending to server b

another thing i noticed is asterisk generating a rtp (cn) packet to leg every time it misses

any idea how i can check what asterisk is seeing if its just sending the rtp without transcoding ?

does anyone have a idea of what might be the problem

using chan_sip

rfc2833compensate=yes
relaxdtmf=yes

thanks

Turn off rtpkeepalive for the provider
A bug/feature in Asterisk 1.4 and possibly other versions blocks/mutes DTMF when rtpkeepalive is enabled
Solution: set rtpkeepalive=0
Description: When rtpkeepalive is enabled Asterisk sends comfort noise to the other party. During sending of comfort noise DTMF processing is disabled.