When you get a busy signal, it comes through the same band (using the same bandwidth) as the voice you hoped to hear. This in-band signal is convenient because it appears just where you were listening and you know what to do.
It also ties up a lot of switching equipment and trunk capacity for a rather small bit (BooleanRepresentation) of information. And it isn't all that easy to interpret when it's a machine placing the call. Finally, in-band signals are subject to spoofing which has been the mechanism of considerable telephone fraud.
Compare these two idioms ...
In WritingSolidCode by SteveMaguire, he spends a chapter discussing InBandSignal(s), and how, especially in the C libraries, they make it easy to write bad code. Two examples from the book:
1) The getchar() function mentioned above. Because of the name, it's easy to think that it returns a char, even though it returns an int because of the InBandSignal
2) Memory management functions like realloc, which return the InBandSignal NULL which indicates an "unable to complete operation" signal. If a programmer isn't careful, the signal will be ignored, leading to memory leaks, e.g.
pbBuf = realloc(pbBuf, sizeNew); if (bpBuf != NULL) /* use the larger buffer */Modern languages generally use exceptions instead of in band signals.
A more recent example of an InBandSignal being used (in C) for nefarious purposes are FormatStringAttacks