Hello everyone,
I’ve been watching your discussion on DTMF and will offer you my thoughts.
tl;dr DTMF is a bag of hurt.
I worked for 10+ years for a Super Evil Mega Corp. We had 100+ branch offices all VoIP interconnected with Avaya and Polycom equipment and more than 250 landline and mobile carriers connected via SIP and ISDN trunks (yaaay for 6 channel ISDN bonding for video calls!) and tons of H.323 and analog equipment in the mix as well. I was one of the 10 folks supporting and administering the whole show.
We did crazy things with the system, making heavy use of all its features. For example, to call an Australian mobile from an Australian office, we would route the call through Singapore because we managed to get a flat-rate agreement from a Singaporean carrier and the local Australian carrier charged way more from us.
There was also a feature called EC500 (extension-to-cellular) that, via a few DTMF tones, you could send the call from your landline to the mobile linked to your landline and vice-versa for things like “hey, I’m going home now and need to continue my call, so let me just transfer to my mobile”.
SIP traces will haunt my dreams forever, and troubleshooting missing DTMF tones was a huge part of it, because they don’t only depend on your equipment sending the DTMF tones correctly, but also on the receiving equipment receiving them correctly and, for every carrier on the way passing by the tones correctly to each other. It is not very common to pass DTMF in-band anymore because, depending on the codecs accepted by the receiving end (G.711, G.729, yadayada) and if the carriers transcode the audio before forwarding at all, jitter and packet loss, DTMF tones just go to poop and the receiving end can’t decode them.
Often, we had to call a carrier and ask them to trace their end of the trunk to see what was going on because we could just not tell what was going on.
In my experience with the Librem 5, DTMF works 75% of the time, testing in multiple countries and 3 continents. But a reference phone would work 90% of the time. And sometimes calling the same number in the morning and in the afternoon (like a car rental company) would see DTMF work… then not. =)
I accept DTMF faults as part of life.
But I got curious about the discussion. Once I get back home in September, I will ask one of my friends who still manages the system to get me a test number up in a few different countries (I got global free calls on my Librem 5) and we will do some DTMF tracing bliss and I will get back to you.
edit: When we design ACD (Automatic Call Distribution) solutions for call centers, its best practice to allow default options that allow you go to get through even if you can’t send DTMF tool. It is literally part of the training to consider non-working DTMF. However, DTMF transmission failures are complete poop when you have to deal with stuff like an automated call back that requires you to enter a few digits to authenticate, etc…