PMON2 Phone Monitor Version 1.3.0

Introduction

PMON2 is a program used to block unwanted phone calls. It does this by using a dial-up type modem that has call display capability.

Most internet users don't use dial-up modems anymore, and they are often available for free. The modem must have call display/caller ID capability. Please refer to the manufacturer's specifications.

So, you hook up your modem to a serial port as if you were using it for dial-up. You can use a serial port to USB adapter. Windows assigns a COM port number to each serial port or modem.

Once running, PMON2 looks for call display information from incoming calls. If a call meets certain criteria, PMON2 answers the phone, then hangs up. You get one ring, but that's all.

PMON2 was written on a Windows 7 32 or 64 bit operating system. It should run under XP and newer windows versions, but I have no way to test it. If you get an error message like application can't be executed, you have to install the Visual C++ 2008 Redistributable Package.

Legal

PMON2 is provided free under the MIT license. There is no warranty or support. I retain the copyright to the source code ( PMON2 Copyright (C) Jack Botner 2017 ). The program can be used by anyone for any purpose. I do not provide support but am always interested in constructive comments.

The license for my code can be found here or here.

Installation and Modem Set-up

There is no set-up program. Copy PMON2.EXE and PMON2.HTML (and optionally AREACODE.TXT) wherever you like on your hard drive. It can be run through the Windows Start menu->Run, or you can manually create an icon on your desktop or in the start menu.

The first time you run PMON2 it will start offline. You have to go to the Options dialog (View->Options) and set or confirm the options there. First you have to enter the COM port number, a value between 1 and 10. If you don't know what it is. go to Windows Device Manager->Modems->(Select your modem)->Properties->Modem Tab and you should find it there.

At the bottom of the dialog are the modem commands needed for PMON2 to run. They are initialized to the commands I use for my modem, a US Robotics V.92 USB modem model USR5637. The 3 initialization commands turn echo off, hang up, and turn call display on. You can edit these commands and provide up to 5 commands. Following that are commands for answering the phone and hanging up. Check your modem's documentation in case your commands are different.

Check the global blocks items as you wish. 99% of the 8xx toll-free numbers are from telemarketers. There is the odd exception and you can use the friends list for those if you like.

PMON2 is provided with an area code database called AREACODE.TXT. Its use is optional. The areacode database is used to supply information on the PMON2 messages dialog after a call has been received. (For calls not blocked by PMON2 it is handy to know where they come from.) You can use it or another one as long as the format is the same. The file I proviide was downloaded from a web site which has since changed to a formatted display that is unsuited for download. Notepad can be on the file to add a new areacode.

Once the options have been set up, close PMON2 and start it again. If all goes well, it should initialize the modem and start monitoring phone calls.

The PMON2 Window

The PMON2 window is simply a list of messages. First, any messages arriving from the modem are displayed. Actions and information generated by PMON2 are also displayed. When a call is received, the modem sends the following 4 messages:

DATE = 0312
TIME = 0920
NAME = WILEY COYOTE
NMBR = 4165551234

When these messages are found, PMON2 assembles the following record:

4165551234  03/12/15  09:20  WILEY COYOTE

The name and number are inspected against the name and number databases and the program options to see if the call should be blocked.

I should point out here that other modems may format the data differently, in which case PMON2 will not work correctly. I have tested PMON2 with only one modem, so support for other modems is an open issue at this point.

Databases and Files

PMON2 supports three databases:
  1. Blocked numbers
  2. Blocked names
  3. Fridnds numbers
Functions are provided to add calls to these databases. When a call is received, you can place your pointer over the PMON2 formatted line shown above, and right click. A popup menu appears that allows you to place the call information on any of the databases, or copy the number to the clipboard.

You can also add a  friend or blocked number from the File->Add Manually menu.

In addition you can view any of the databases by clicking on the View menu and selecting one of the databases.

The databases are created by PMON2 and stored in your user application data area. On my system it is C:\USERS\[userid]\APPDATA\ROAMING\PMON2. (APPDATA is by default hidden on most computers, but the attribute can be changed.) The databases are pure text data and are named
These may be edited manually using a text editor such as Notepad, but PMON2 must be closed first. The same applies to the areacode database, wherever it is. Be careful with the format of the data in these files, or else PMON2 will malfunction.

PMON2 creates two logfiles. There is a program log called pmon2_log.txt. There is also a call log named call_log.txt. They may be viewed with Notepad if you wish. Finally PMON2 creates a file called pmon2.ini to store program options. It's best not to edit this file.

Program Update information

In 2017 I switched from landline to VOIP. The call display data changed, sometimes quite significantly. For one thing, nunbers could be 20 digits instead of the 10 I had previously supported. This resulted in a number of changes to the program to get everything working again.