Just did a little search here looking for Caller ID. Seems lots of folk are having either little success, or just want it. A few have an expensive or hard to find modem which can do it. So far nothing really definitive. Being retired and at home I get a lot of calls from folk wanting something or other from me. So, at the risk of incurring the wrath of the self appointed for re-lighting an old theme all be it from the top again I though it worth sharing my experiences.
The big problem seems to be sourcing a modem that can actually do Caller ID Decoding and specifically UK-BT's version of Caller ID which is a little squirt of V.23 just before the first ringing cycle. The problem with Caller ID signaling is that it appears before the first ring cycle which means the modem has to be ON-HOOK and line therefore open to a new call. From what I've found modems are generally designed to only operate OFF-HOOK unless that is it is specifically designed to support Caller ID. Basically lots of modems but only a very few can do Caller ID, certainly none of the really old types.
In the 21st Century and with Broadband there could well be a surplus of old IBM-PC modem cards or other surplus modems that include the basic AND APPROVED circuitry to make the necessary and SAFE connection to the line. Certainly there are circuits shown on the web although few warn of the need for components with sufficient voltage tolerances to protect both sides from each other. Maybe subverting the passive front end of an old surplus modem is a way forward simply making an audio connection after the modem's line isolation transformer. Whatever the connection is it must NOT provide a DC path through itself or the exchange will detect an OFF-HOOK condition and block the line to incoming calls. It must also provide a quite high impedance AC path else there could be adverse implications for the line. A low value capacitor rated at 250VAC or higher could be a solution here.
I then found:
This is a software modem that performs the V.23 functionality using an ALSA supported sound card. Once compiled on my laptop and using two Xterms I could pipe a file into an instance providing the V.23 Modulator to sound-OUT via a link into sound-IN to another instance providing a V.23 Demodulator and the transmitted file would appear on the second terminal.
Code: Select all
Transferring to a Pi3B it ran but barfed on the C-Media CM108 sound interface. A bit of research and a small update and this was resolved.
I also found:
Code: Select all
These two files describe BT's Caller ID structure and protocols.
My solution here was to add the Caller ID functionality. I did this by also including a Caller ID encoder function for testing. This was simply a pre-encoded block of data that got passed into the Modulator instance. Next was a function to take the Demodulated V.23 data and decode the content to standard-Out.
What I now have is a laptop able to generate a recurring squirt of V.23 encoded BT Caller ID and a Pi with a USB sound dongle decoding this and piping the content to a file. If this is to go anywhere I will need a means of safe and approved connection to my telephone line.
Turns out that one of the threads I found was someone wanting Caller ID as a school project. The route I've taken thus far would satisfy this one while also allowing the demonstration of simple V.23 Modulation and Demodulation and without risks of messing with a phone line.
Before anyone asks... I don't currently have any means of sharing what I've done but if an old guy can do it given the clues above it should be do-able for others.