We normally use ivox as our voip provider where it automatically relays dtmf tones over the trunk. We now use a variety of providers where they all don’t automatically support dtmf. To get it working you need to add the following to your outbound trunk settings.
dtmfmode=inband
Basically this adds the dtmf tones to the voice section of a call as if you are talking the tones so the remote end can hear the tone to progress through the menus.