2

Does anyone know if USB modems are capable of detecting if there is a dial tone on a phone line without taking the line off the hook? I have read that you need to have the modem "open" the line and then there is a command that can be sent to check for dial tone. Is opening the line the same as taking the phone off the hook? If I do this while a call is coming in, will the modem in essence be answering the call?

If this is not the way to go, are USB modems capable of voltage detection? If so, is there a specific voltage that indicates the presence of a dial tone?

Thanks!

Danny Ackerman
  • 997
  • 1
  • 10
  • 25
  • Also see [How to use AT command to detect phone line is busy](https://stackoverflow.com/q/9889505/608639). – jww Nov 13 '19 at 07:05
  • According to Conexant and USR manuals, there is `ATD` with a `W` modifier. The `W` modifier says "wait for dial tone". If no dialtone then the modem will report `ERROR` or `NO DIALTONE`. The timeout is controlled by the S7 register. What I am not clear about... can you issue `ATDW` without a number, or do you need a real number like `ATDW##########`. I use `W` in my own software, but it performs automatic call traces so it uses `*57` as the number: `ATD T W *57\r`. – jww Nov 13 '19 at 07:39

1 Answers1

0

A useful primer on telephony.

To determine if there is dial tone, you have to take it off hook and listen. The presence of different voltage levels can be useful in knowing there is a valid circuit or if there is another use of the line, but not reliable to know if it is safe to dial.

yes, I believe opening the line is the same as taking the line off hook. Note, there isn't a dial tone until you go off hook, the telco detects and starts playing audio as an availability indicator.

If you do this while a call is coming in, you would be answering it. When working with automated systems, this is a problem and why inbound and outbound lines are usually segregated. I've seen some techniques that assume an inbound call if there isn't dial tone. If the empty line/human never responds, you only loose the availability of the line for the period of time it takes to determine a lack of response (timeout+retries).

Modems do perform voltage detection (ringing and other conditions). Voltage does not indicate dial tone. Again, it isn't present until you complete the circuit and the telco switch responds. Side note, there is usually a limit to the number of concurrent channels that can continuously play dial tone and this can sometimes cause interesting issues when opening large amounts of channels for an extended period of time.

Jim Rush
  • 4,143
  • 3
  • 25
  • 27
  • Thank you very much for the reply. Given what you said, if I don't want to take the chance that I'm answering an incoming call with my automated line testing program, how can I make sure that the phone line is working using only what the modem is capable of detecting? I have an emergency dispatch center and we've had an issue recently where all of a sudden we realize that no phone calls are coming in because the line is dead... – Danny Ackerman Jan 21 '13 at 07:17
  • I did some more research. Would the AT-TRV command do what I need? Are all USB modems capable of that command? – Danny Ackerman Jan 21 '13 at 07:37
  • This doesn't validate the voice path. While less rare, still a problem. Work with your switch or telephony vendor (next point between operator phones and the world). There is usually a way to dial through the switch device to each port. You can then call, play a prompt and have them key back a response. This can be automated to skip through the ports at any desirable rate. Depending on the telephony, external services may also be able to do this for you. – Jim Rush Jan 21 '13 at 12:24
  • @Danny - Neither Conexant nor USR document `AT-TRV` command. Where did you get the command? – jww Nov 13 '19 at 07:00