Hello and thanks in advance for helping this newbie...
I am trying to do some basic testing so I can see how this might work for me. For this purpose, I am using an old Hayes Modem http://articles.yuikee.com.hk/technotes/POTS/accura288.html. I know it supports caller id. And it seems from what is noted in the reference page "it appears that most voice commands are simply not implemented". Rats!
For my simple needs, I really don't need/want anything beyond this:
-
Incoming call with caller id info comes in
-
The number and/or name from caller id info is checked
-
If determined to be blocked, simply hang up on the call and wait for the next call
-
If determined NOT to be blocked, simply let the phone ring and ring - at least until our telecom's voice mail answers
It seems like the modem's caller id support SHOULD be enough to get this done and I really am not sure that I need any real voice call support in the modem. Is this correct?
This modem has 2 RJ-11 ports. I have it set up with the line coming from my telecom's fiber modem goes into the line port and then the phone port is connected to all of the other extensions in my home. When an incoming call arrives, all of the phone extensions ring...
I have been able to force the app to directly open my modem's serial port file (without needless searching as it is always on /dev/ttyS2). And it seems like things are at least partially working after I changed this line in modem.py:
ENABLE_FORMATTED_CID = "AT+VCID=1"
to
ENABLE_FORMATTED_CID = "ATS0=2#CID=1"
and setting the following in the config file (as I am in the USA):
PHONE_DISPLAY_FORMAT = "###-###-####"
COUNTRY_CODE = "B5"
SCREENING_MODE = ("whitelist", "blacklist")
BLOCK_ENABLED = True
BLOCK_SERVICE = "NOMOROBO"
BLOCKED_ACTIONS = ("answer",)
SCREENED_ACTIONS = ("answer",)
PERMITTED_ACTIONS = ('ignore',)
I then started the app, went to the web interface, and added my cell phone's number (xxx-yyy-zzzz below) to the block list and tried to call. In the stdout, I see:
b'RING\r\n'
b'DATE = 0103\r\n'
b'TIME = 0953\r\n'
b'NMBR = xxxyyyzzzz\r\n'
b'NAME = WIRELESS CALLER\r\n'
> Queueing call xxxyyyzzzz for processing
Adding to caller queue:
{'DATE': '0103',
'NAME': 'WIRELESS CALLER',
'NMBR': 'xxxyyyzzzz',
'TIME': '0953'}
Incoming call from xxxyyyzzzz
> Checking next-call-permitted
> Checking blacklist(s)
> New call log entry #1
['WIRELESS CALLER',
'xxxyyyzzzz',
'Blocked',
'',
'03-Jan',
'09:53 AM',
'2024-01-03 09:53:18']
--> xxxyyyzzzz Blocked:
> Going off hook...
b'RING\r\n'
b'RING\r\n'
>>> Lock acquired in pick-up()
_send_and_read('AT+FCLASS=8','OK',5)
b'\r\n'
b'ERROR\r\n'
>>> _read_response returned ERROR
'Error in pick_up: Failed to put modem into voice mode.'
>>> Lock released in pick-up()
Waiting for next call...
HOWEVER,
The phone kept ringing and ringing. It was not hung up as I'd hoped it would be.
Also, I note that my one caller id enabled handset does NOT show any caller id information. Without using this app, it normally does. So I wonder if this app is somehow eating this information and not passing it along? Is that expected? Is it a function on how I have wired the phone line cables (see above)?
Thanks very much for any insight you can give me. I feel that I am close to an acceptable "solution" here.
Happy new year!