Text message on incoming Caller ID


I currently have an answering machine which will page my digital pager with the telephone number when a call is received, and indicate whether the caller left a message.

I would like to duplicate this behavior with a home automation system.

I have a newly installed Elk which I have not yet done much with, and would also consider having a PC running home automation software. I have not chosen a specific piece of software yet, but am considering CQC, Powerhome, and HS but am open to others.

Any suggestions as to the easiest/best way to accomplish this?


I currently have PH send a text message with CID info to my mobile when a call comes in and I'm not home. I want to get some sort of VM set up, but have not got around to it yet. I'll be watching this thread for ideas.
Yeah, you should be able to duplicate that functionality with any of the HA software (may need to write a small script). Another idea is to use the phone company's voicemail which usually has functionality like this, I know Bellsouth does. Or... I just switched to VOIP from SunRocket and their VM can send a text msg, email, phone call or even the actual msg as a .wav file. I'm now working on how to get the VM into the HA stuff.
Here's what I use with HS + HSPhone. This also makes more accurate CID for MLCID as well. It bounces everything off the HSP address book before composing the message. This works really well for me. I used to use HSPhone as an answering machine, but we recently installed a nice Uniden multi-handeset 5.8ghz DSS phone system that has a nice answering machine, and decided to use it instead. So now, I get an email telling me who called, and then I can call back home and se if they left a message (answering machine's call saver feature lets me know if there is a message left if it picks-up on the second ring). I find this combination of using HSPhone to track, annoucne, and send CID messages and an answering machine to record them very robust.. and I still have HSP to make outgoing calls if I want (whether dialing from the address book or telling me the garage door is open, alarm is sounding, etc.)
This script is compiled from several other scripts other folks have written over on the HS board. I'll remove my personal info with generic:
Sub Main()

  Dim i, line, adr_count, contact
  Dim callname, callnmbr, dhit, addbk
  Dim TOaddress, TOaddress2, FROMaddress, subject, body
  Dim CallTime, CallDate, CallDate2, CallDay, CallWeekday, CallMonth, CallYear

  callname = hsp.cidname(1) ' get the caller directory name
  callnmbr = hsp.cidnumber(1) ' get the phone number

  if callnmbr = "O" then
  callnmbr = "*Out of Area"
  end if
  if callnmbr= "P" then
  callnmbr = "*Private"
  end if

  dhit = False ' init the directory hit flag
  adr_count = hsp.ADRCount ' number of address book entries

	if instr(1,callname,",") Then ' reverse if last, first format
  callname = trim(hs.stringItem(callname,2,",")&" "&hs.stringItem(callname,1,","))
	end if
	if left(callnmbr,1) <> "*" then

  if instr(1,callnmbr,"-") = 0 Then 'Is it a CID message, skip formatting
 	 callnmbr = trim(callnmbr) 'Are the dashes missing?
 	 callnmbr = left(callnmbr,3)&"-"&mid(callnmbr,4,3)&"-"&right(callnmbr,4) 'format it for voice if dashes are missing
  end if
	end if

	for i = 1 to adr_count                        ' look thru address book for number
  set contact = hsp.ADRGet(i)                ' get the reference to the addrbk entry
  select case callnmbr                       ' see if the number is in the book
  case contact.home_phone
     callname = contact.first&" "&contact.last     ' pickup the name
     addbk = "Home number"                       ' denote the source
     dhit     = true                               ' we had a hit in the address book
     exit for                                      ' performance - exit loop if found
  case contact.cell_phone
     callname = contact.first&" "&contact.last
     addbk = "Cell number"
     dhit     = true
     exit for
  case contact.business_phone
     callname = contact.first&" "&contact.last
     addbk = "Work number"
     dhit     = true
     exit for
  end select

	Const None = 0, Info = 1, Alert = 2, Error = 3

'update device strings
  hs.setDeviceString "r3", callname 'CIDName
  hs.setDeviceString "r4", callnmbr 'CIDNumber
  hs.setDeviceString "r5", CallTime 'CIDTime
  hs.setDeviceString "q80", callname & ": " &callnmbr & " at " & CallTime 'CID String

'send to MLCID
  hs.plugin("MLHSPlugin").MLServeCMD "MLServeCmd.MLCallerID|SendCID:" &callname & "~" &callnmbr

'send an email
  TOaddress = "[email protected]"
  TOaddress2 = "[email protected]"
  FROMaddress = "[email protected]"
  subject = "New Caller ID from: " &callnmbr &"."
  body="There was a phonecall at " &CallTime &", " &CallDate &", " &CallMonth &" " &CallDay &" " &CallYear &", from " &callname &", "&callnmbr &" which is a "&addbk &"." &" The existence of new caller ID information does not necessarily mean a message was left, however to remotely check your messages: (1) Call home with a touch-tone phone. (2) During the outgoing message, press 'secretcode'. The answering maching will then announce the number of messages stored in memory and issue voice promptes for additional commands. (3) To quit, hang up the phone. //// To turn the answering system on remotely: (1) Call your phone and let it ring 10 times until you here a beep. (2) Press 'secretcode'. (3) Press '05' to stop the announcement. (4) Press '06' to turn the answering system on. /// The following keys are used to control message playback: '01'-Repeat message; '02'-Play incoming messages; '03'-Skip message; '04'-Delete message; '05'-Stop operation; '06'-Answering system on; '07'-Memo record/stop; '08'-Greeting message record/stop; '09'-Answering system off; '10'-Help. /// Thank you, /// HACI - end of message"
  hs.SendEmail TOaddress, FROMaddress, subject, body
  hs.SendEmail TOaddress2, FROMaddress, subject, body
End Sub
I'd really like to make an html version of the email, but I can't get it to work yet (even using the roc html email plugin, becuase it does not sue SMTP authentication). Another neat thing you can do with this is make two different messages, with different ones sent to different addresses. So I could have the long message, as in the script now, sent to my personal and work email, and a short one sent to my cellphone.

I bet this can be used with WAFNetCallerID with a little modification.