Hi Robbo,
If it works when calling local IVRs (like your voicemail for example or your own internal IVR menus) then this is not necessarily a problem with your phone.
It also relies on the provider, and the recipient IVR. Supported providers receive RFC2833 events for DTMF. They should then send them to the other provider, but there is not guarantee that the other side will process it correctly.
A capture should be able to confirm that you are sending it your provider at the very least, and if confirmed then you can raise it with them directly.