How to Record Key Taps for VRU on iPhone

I’m looking for a way to record a telephone number followed by additional numbers tapped for the voice response unit (VRU).

For example, I’m calling the IRS a lot to check on the status of a return. In addition to calling the 10-digit phone number followed by an extension number, the call also includes entering a social security number, date of birth, and zip code before being transferred to the appropriate queue … and then promptly hung up on because the queue is too long.

I know that phone numbers can be formatted with semicolons (“;”) between each VRU entry, but stringing all the responses together is pretty hard. And, after all, I’m already making all the necessary taps on the phone so it would be really nice if there were a way to record my taps and then paste this long string of numbers into the phone number field of a Contact.

Does anyone have an idea for recording key taps as a string of (character) digits separated by a semicolon(s)?

I had a vague recollection that these extra responses would show up in Recents, but it certainly doesn’t seem to be the case now. I can’t see any solution other than to write the steps down once and then program them into the number later.

It would be nice to have a keylogger to get at least the digits to support a workflow like this:

  • Turn on the logger
  • Dial the phone number
  • Answer all the VRU prompts
  • Turn off the logger
  • Logger automatically copies the taps to the clipboard
  • Paste the captured taps into a text editor and inserts the semicolons appropriately
  • Copy/paste the edited string into a Contact phone number

Here’s the string I cobbled together manually just to transfer me to the right IRS phone queue (which then promptly hangs up on me saying the queue is too long):

+1 (800) 829-0582;1;999;999999999;1;99999;1;99;99;9999;1

Using this string allowed me to compress the time I spent running the gauntlet to about 1½ minutes (before the IRS decided to hang up on me) so I could cycle quickly and eventually get an agent.

Strings like this remind me of Hayes compatible dial-up modem command strings in the ‘90s. Remember:


It’s 2022 and there ought to be a way that iOS can help me build these strings.

I’m skeptical one could write a true key logger that would stand between the Phone app and the phone network (because security). But I can imagine an iOS app that presents a numeric (telephone) keypad, plays the DTMF tones associated with each key when pressed, and also logs the keys pressed. If you have an analog phone (i.e., gives you dial tone when you pick up the handset/turn on the speakerphone), this app could both dial the initial phone number as well as all the subsequent keys (by holding the iPhone’s speaker close to the analog phone’s mic), and when you’re done, output the text string of the keys pressed. You could then paste that string into the Contact record phone number field, and there you go. Crazy?

What an intriguing idea! Very retro.

There’s no wired termination on the iPhone so it would have to be via Bluetooth as in the Xlink products?

Hold the iPhone speaker up to the land line phone’s microphone.

Even more retro than that. My imaginary app dials the phone by emitting the DTMF tones out the speaker. Think Wozniak and his little blue box.

And of course, this has already been done, wouldn’t you know. A quick search of the App Store reveals an entire category of “Dialer” apps, including this one (no endorsement implied).

Of course, that could only work for navigating menus after a call is connected. Mobile phones, unlike land-lines, use out-of-band signaling for actually connecting the call.

Granted, but I’m talking about using the land line (POTS) handset to connect the call. That’s the premise of the “Dialer” apps in the App Store. You have your iPhone in one hand (the DTMF generator), and the off-hook land line handset in the other. The iPhone generates the tones out of its speaker, and the POTS handset mic picks them up as if you had pressed the keys on the POTS handset.