Is there a modem expert in the house?

The M1 might be able to do what you want. Maybe others with that equipment can chime it. It appears to be able to detect on hook/off hook. And it appears to have a DTMF decoder although it may not listen to the phone line at the right times for call logging. A separate DTMF detector is pretty easy - I think several companies make them for under $100 but they may be kits.

The way2call is $250 which seems like a lot to get what you want. It has lots of extra features.
 
I've connected my voice modem (USR 5605), put into voice mode (AT#CLS=8) and observed what it is does ... not quite what I expected.

If you press the modem's "speaker" button, it goes off-hook and you hear the dialtone through the modem's speaker. While off-hook, Hyperterminal shows the DLE character (Hex 10) followed by a "d" (repeated about every 3 seconds) indicating the modem has detected a dialtone.

It looks promising except I want the modem to do that when any handset in the house goes off-hook. It fails to display the "d" when I lift the handset of the phone plugged into the modem. Nuts!

UltraJones, can you shed some light on this?
 
The M1 might be able to do what you want. . . It appears to be able to detect on hook/off hook.
These functions work for phones connected downstream from the M1 (i.e. on the "house" side of the RJ31X, which is the normal connection). The ring detect responds to every individual individual ring (i.e. multiple triggers per incoming call).
 
I haven't had any luck acquiring Hook Status from my Voice modem so I decided to see if I could acquire it from my ELK M1.

I created three Texts that represent custom, User-Defined (UD) commands for Hook Status and Ringing.

I chose the following format for the new User-Defined command:
UDXXXYYYY
where:
  1. UD indicates a User-Defined command.
  2. XXX is the user-defined type. I chose three characters to represent the type's acronym. Currently, I've defined "THS" for Telephone Hook Status and "TRS" for Telephone Ring Status.
  3. YYYY is the data. Four characters can be used to represent all sorts of data. For THS, Off Hook is "0001" and On Hook is "0000". For TRS, ringing is simply "0001"

I followed ELK M1's serial protocol format and added the packet length, reserved characters and CRC (using ELK's CRC Calculator) to arrive at the following Texts:
  • User Defined Telephone Hook Status On Hook: 0DUDTHS000000E4
  • User Defined Telephone Hook Status Off Hook: 0DUDTHS000100E3
  • User Defined Telephone Ring Status: 0DUDTRS000100D9

I created three Rules that send the appropriate Texts to Serial Port 0 whenever the telephone rings and the line goes on/off hook.

I modified my Premise ELK M1 driver to receive the new category of "UD" commands. At the moment, it simply prints the received status. I'll enhance it so that it updates the status of a Telephone object.

Too bad the M1 doesn't report Caller ID because then I'd have everything I need from one source!


If anyone knows how to get a voice modem to report Hook Status, please let me know. I'd still prefer to use a modem to handle everything (not everyone owns an M1).
 
I haven't had any luck acquiring Hook Status from my Voice modem so I decided to see if I could acquire it from my ELK M1. . .
Well I did exactly the same thing, except that I used "XPn" for the text message. X because Elk hasn't used it, P for phone, and n=0 1 or 2 for on-hook, off-hook and ringing. It would be helpful if Elk had reserved a character or two for user-defined functions, to guard against possible future conflicts.
 
... n=0 1 or 2 for on-hook, off-hook and ringing.

I like how you've summarized the states using one command. I also realized I should've looked at how a telephone's line status is defined in Premise's class library (it has models for many devices).

I'm sticking with "UD" as a catch-all for all non-ELK, user-defined commands. The three-letter type indicator serves to identify the specific purpose and allows for future expansion. Should ELK ever use "UD", I can change it to something else yet leave all the type indicators unchanged.

I'll scrap "THS" and "TRS" and replace it with a "TLS" for Telephone Line Status. TLS will contain four states:
  • Unknown (0)
  • Off Hook (1)
  • On Hook (2)
  • Ringing (3)

I still hope someone will chime in on how to handle hook status with a voice modem.
 

Attachments

  • TelephoneStates.png
    TelephoneStates.png
    6 KB · Views: 14
Most likely you can't do this with any normal voice modem. They all to my knowledge don't check if the line is free before trying to dial, they simply go off hook and wait for a dialtone (or if configured to ignore dialtone, go offhook and blindly dial regardless of line status).

pete_c said he's doing this today with some external device, but I didn't see where it was stated what device it was. Enlighten us, pete_c?
 
I use both a Way2Call device, HAI panel and CID serial device. (thought I had mentioned the W2C device). I purchased my W2C device for about $30 used. This is with Homeseer.

Phone line ==> HAI Panel ==> W2C ==> CID ==> Telephone
 
I misunderstood Way2Call to be another HS plugin, not a device itself, so I thought the only device was the unnamed serially interfaced CID device.
 
The Way2Call device that I am using is a USB connected device though and not serial. I do also have a serial W2C which also was purchased used for around $30. Found after a few years that the W2C device provides many features to control / monitor phone line. Might be something that 123 wants to look at.
 
Back
Top