Replacing annoying hold music with my own? Calling somewhere, being put on hold for 15 minutes and up, is not very pleasant. Especially if you don't like the waiting music. Now I'm not talking about the "on hold" music people hear when they call me; I'm talking about the music I hear when I call customer service, etc.

Now as a programmer, I assume there is no such thing as a "protocol" for telephony that tells the smartphone if the user is on hold or not. But if there was, there would be a way to listen to my own music while waiting until an operator picks up my call.

But maybe someone figured out a way to make this possible? Does such app or feature exist, or is it as simple as that it's not implementable, because there is no way of retrieving information about whether or not the call is on hold?
This is not a way to replace annoying hold music, but is a potential solution to being annoyed by music heard when on hold.

WeQ4U

WeQ4U is an app for iOS and Android (with an ugly name). Basically, you route all your calls through its numbers (included as local-rate minutes in plans) and, when you get into a queue with music, you simply hit *9 and the app continues queueing for you.

While there is no protocol for saying when you're on hold and voice recognition is imperfect, I believe the app asks the call agent to use some touch tone command to indicate when you've left the queue and then the app reconnects you. You can see an example of it working in this video.

So you never have to hear the music at all and in fact you can listen to your own music or do anything you want in the mean time. It's a free app, the calls are normal rate (it redirects from premium numbers too) and you use fewer minutes as it calls you back once you're off hold. So yes, I'd have to say such an app or feature does exist.

I believe this only currently works for UK numbers but there's no technical reason why it can't exist worldwide.