Dbod-
My original post was to running who stated an issue with little detail. I only pointed out, that the issue may or may not be the same as what you experienced.
However, I was curious as to your concern about how 3cx was not fault tolerant in this regard. If indeed the terminating carrier had a failure of some type that precluded it from being able to process a certain type of DTMF, the question becomes how that was made known in the sdp between the terminating carrier and callcentric and then from callcentric back to 3cx. My take is that when you initiated the call, the DTMF type was sent in the sdp and callcentric provided an ok; which presumably is supported by callcentric given your past success. It seems to me that the terminating carrier would have received a similar sdp from callcentric and then either provided an ok, or failing that renegotiated to a different DTMF. Then the reverse from callcentric would occur to 3cx, unless callcentric could transcode the dtmf. Without a wireshark capture, I am uncertain how one will know what DTMF type was negotiated and I don't know how 3cx, or any other system for that matter,would be able to ascertain without some type of negotiation that one DTMF failed, try another. I assume it highly possible that some keys are oftentimes pressed (by mistake) for which the far end has no corresponding action established, for all intents this could/might be suggestive of a DTMF failure and spur a change in method, when in fact it wasn't a failure at all.
I was not.trying to inflame, but rather understand the concern more fully. Is there a reason hat OOB DTMF tones are preferred? Callcentric perhaps?