Electronic – How to detect if a POTS telephone is on hook

circuit-designopto-isolator

I've hooked up a plain old telephone directly to a 3W amplifier which happily plays music over the phone. It's the simplest thing on earth — the 2 wire POTS connection is wired to the speaker output of a miniature "4-8ohm" amplifier.

The phone is not connected to the phone system. It will not have any ringing. It's just supposed to be like a hotline-when you pick it up, it plays MP3 files.

(The amp is really an Arduino with a music shield playing MP3 files.)

When the phone is on hook, it opens the circuit. How can I detect this with an input pin on the Arduino, without interfering with the audio while it is playing? I suspect that there is something I can do here with an optocoupler but it's a bit beyond my understanding.

schematic

simulate this circuit – Schematic created using CircuitLab

enter image description here

Best Answer

A POTS telephone presents a DC resistance of about 180 ohms when it is off-hook, and open circuit when on-hook (the ringer bell is in series with a capacitor, blocking DC.)

Actual telephone lines use a sensing voltage of about 48V through a fairly high resistance. When the handset is lifted, the speaker and mic are connected across the line and draw current (20mA or so), and the voltage drops to 6 ~ 9V. The head-end senses this and changes over to the voice connection.

In your case you could use a smaller sense current - maybe just a 5K pull-up to Vcc - to detect switch closure (off-hook).

Here's a paper describing how POTS lines work: https://www.hermonlabs.com/Products/innerData/pdf/Analog%20Telephony%20Overview.pdf