It’s entirely possible that your upstream provider isn’t passing DTMF until you answer the call. From their perspective, this is entirely reasonable – you shouldn’t be able to get inbound DTMF if you haven’t yet answered the call, as you’re likely not paying for the call until you answer it.
I’ve worked with literally dozens of carriers over my 18+ years of using Asterisk that behave this way, on both T1/PRI and SIP providers.