                  <<< CIDMan - Revision History >>>

--- 14-Jan-96 - Release 1.25 ------------------------------------------

Corrected a Null Pointer Fatal Error when editing the ghost numbers
when the Caller DB Maint panel is in "Add" mode but the name and
number fields are empty.

Modem Properties Panel - it should be 1 and 2 stop bits, not 1 and 0.
This is cosmetic only - in that if you clicked "0" before, it'd still
give you 2 stop bits.

Rolled Call Handling - corrected a bug in the number comparison
routines which determine if the rolled call is from the same number
or not.

Modem Properties Panel - The "View/Modify CID Parms" button is no
longer displayed if the modem type is one of the Rochelle CID devices.

Made some modifications to support some KNOWN Canadian CallerID non-
conformities.  These changes should allow CIDMan to read and process
the CID data provided by Canadian phone companies.

When "Modifying" a modem entry - if you make changes and then Cancel
the modifications, the modem entry is re-displayed on the panel to
revert back to the way the definition actually stands.

Made some modifications to the Serial Read portions - When the notify
routine is called, I read what is available on the port, and then wait
for 50 ticks, and then read again.  If I don't get any more data, then
I assume I'm finished reading the CID data from the port.  Otherwise,
I repeat the process.  This will allow for a more uniform handling of
the different baud rates which may be selected for a CID device.  Slow
baud rates == longer reporting times for the CID data to come from the
modem.

When a modem command is sent to the modem, all spaces are squeezed out.
For example, if you have a dial string that looks like this:

  AT %s DT W %s\r \p8 \p6 ATH0 \r

Then, previously CIDMan would send out the dial portion (ATDT...) and
then try to send out a "space" character (the character between the
"\r" and the "\p6") which would cause the modem to abort the dial.
This has been corrected, in that the above dial string would be
squeezed of all space characters before being processed.

Added an "Unknown Caller" announcement - for when a call comes in that
has CID data in it, but that data does not represent anyone in the 
Caller DB.

Added a "Clear Caller History" entry to the File menu.  This will
clear out (after confirmation) all history entries for all Caller DB
entries.

Modified the way "Debug Modem Messages" works.  The Message Box
approach for all incoming and outgoing modem traffic just wasn't 
working - and sometimes caused GPFs.  So, I reworked it such that when
the "Debug Modem Messages" selection (from the Misc. Props Panel) is
checked, then the "modemDebugFile" (now found in the CIDMAN.INI) file
is written to with a dump of the data going-to/coming-from the modem.
The default file for modem debug data is "modem.dbg".

Added "Unknown Number Announce".  When an incoming call is received for
which CID data is detected, but for which no entry in the Caller
Database is found - then the number is "read out".  This is enabled
via the "Sound Properties" panel.  The "Unknown Caller" setting and
the "Unknown Number Announce" settings are not mutually exclusive.
Both may be set.  If they are both set, then the Unknown Caller sound
file is played first, then the read out of the incoming number is
played.

When a Caller Database entry's Call Disposition is set to "Announce",
and no announce file is specified - the caller's *main* number (not
the ghost number) is "read out" by CIDMan.

--- 28-Dec-95 - Release 1.24 ------------------------------------------

Added capability for ignoring "Rolled Calls".  A rolled call is a call
that first appears on Line 1 (for example).  Then, because you have
the phone company's "Forward on Busy/No-Answer" service, it rolls to a
second line (where your answering machine is, for example).  When it
rolls to the second line, if you have the Rochelle multi-line CID
units, then CIDMan used to report the rolled call as a separate call
and the Caller List would show two entries for what is essentially one
call.  Now, CIDMan can be configured to ignore these types of "rolled
calls".  The "Ignore Rolled Calls" setting on the Misc. Props Panel
turns this feature on and off.  When a "duplicate" (rolled) call is
detected and if the "Ignore Rolled Calls" setting is enabled, then
CIDMan will display the message "duplicate call ignored" at the bottom
of the Main Window - but no duplicate call record will be added to the
Caller List.

Call History added.  The Caller History shows a list of the exact dates
and times that a given caller in the Caller Database has called in the
past.  Entries in the history list may be individually/group deleted,
or all of the history for the selected may be deleted.

The "Ghost #" button on CIDMan's Main Panel will, if a Caller DB entry
is associated with the call, turn into a "Caller History" button - 
which will bring up the "Caller History" panel showing all previous 
calls.  When no Caller DB entry is associated with a call in the Caller
List, the button is labeled as "Ghost #" and may be used to assign the
caller to another entry in the Caller DB (as before).

When CIDMan is iconized, its position is no longer saved as a result
of the minimization.  This will have the effect that if CIDMan is
iconized when terminateded (or when the system is rebooted/etc.),
CIDMan, upon its next invocation, will not be in a position other than
the one it was before it was minimized/iconized.

The "Hangup" and "OK/Close" buttons on the Dialing Directory panel were
separated.

The Prefix Long Distance "Dial" button on the Dialing Directory is no
longer shown if no long distance access code is defined (Telephone
Properties).  Also, if the Long Distance Access Code is defined, then
the prefix is shown in the button's text.

--- 18-Dec-95 - Release 1.23 ------------------------------------------

Callbacks to Out-of-area and Private calls are no longer attempted.

Caller Database entries associated with a range of numbers are now
allowed.  For example, if a telemarketing firm has a block of numbers
defined from 214-555-0000 to 214-555-0099, then you could define the
entry in the Caller Database as "214-555-00??", and then anytime one of
those lines is reported in the CID data, the call is associated with
the telemarketing firm's entry in the CDB.

Pheature Data File, if modified, is now saved at the end of the
CIDMan session if it wasn't written to disk during the course of
CIDMan execution.

--- 16-Dec-95 - Release 1.22 ------------------------------------------

Hangup after Pheature invocation now works properly - even if you
don't have a "hangup" portion to your modem's Dial Command.

A scroll-bar was added to all drop-down lists

A popup Message Box is displayed after a pheature is invoked giving
the result of the invocation.  This was done because the status message
at the bottom of the screen was getting truncated for long pheature
names.

Corrected a previously-hidden stack-overflow situation in the Paging
Function.

--- 14-Dec-95 - Release 1.21 ------------------------------------------

This release is mainly just a help file release - I added a "Step-by-
Step Guide to Modem Definition" to aid in the setup of the CID Device
used by CIDMan for collecting the Caller-ID information.  This is the
number one problem encountered by new users and I hadn't addressed it
well enough in a "User's Guide" fashion.

The only functional program change made was something that became
apparent while writing the "Step-by-Step" guide mentioned above - the
Alternate Modem Properties panel doesn't need to have a "View/Define
CallerID Parms" button - so it was removed.

--- 13-Dec-95 - Release 1.20 ------------------------------------------

Added "Page non-Line 1 Calls" to the Pager Properties panel.  This was
mainly added for users (like me) whose first line rolls to the second
line on Busy/No-Answer.

Corrected a modem release after page bug.

--- 11-Dec-95 - Release 1.19 ------------------------------------------

Corrected a bug with Pheature Invocation - added "Invocation Duration"
which indicates how long the modem is to be seized before it is to be
released (thereby terminating the feature's dial sequence).
Previously, the dial sequence of invoked pheatures get terminated 
immediately after they were invoked.

Added Modem Definition Import/Export Capability.  Using this feature,
I will collect modem definition files from users and make them
accessible from my home page - allowing new users of CIDMan to easily
define their modems - benefiting from other user's experience.

--- 10-Dec-95 - Release 1.18 ------------------------------------------

Added "Pheatures" (Phone Features) support.  Pheatures are dialing
sequences which can be used to enable and disable the CLASS functions
offered by the phone company (e.g. *70 turns off Call Waiting for
duration of the outgoing call).  In that any modem-supported command
character (including commas, "W", etc.) may be specified in the
sequence's Dial Sequence - elaborate sequences may be defined
(e.g. Check Voice Mail Messages).

Also, in conjunction with the above Pheatures support, you can now
specify whether or not, as a default, you want Call Waiting Disabled
for all outgoing calls placed by CIDMan.  You can also specify "Block
Caller-ID" as the default for all outgoing calls.  These default
settings may be overridden by the user on the Dialing Directory panel
- via the "Call Control" section.

The "Dial Prefix" support added in version 1.17 has been re-worked
slightly such that a "Pre-Dial Sequence" is now defined and activated.

--- 08-Dec-95 - Release 1.17 ------------------------------------------

Updated CIDMan to conform to changes made in the latest release of
PageMaster (1.62).  Older versions of PageMaster (<1.62) will no
longer work with this and future releases of CIDMan.  Older versions
of CIDMan will not work with newer versions (>= 1.62) of PageMaster.
Omnitrend, makers of PageMaster, changed the names of the DDE services
which CIDMan invokes to perform alpha-numeric paging.  Assurances have
been received by Omnitrend that backwards compatibility will be
maintained in future releases and that the deletion of the old service
name that CIDMan was using was accidental.

Added "Dial Prefix" to the Telephone Properties panel.  This was by
request of someone who wanted to have a way to dial "9" to access an
outside line when dialing from within the program.

--- 30-Nov-95 - Release 1.16 ------------------------------------------

Corrected a bug in the PageMaster DDE conversation sequence that
appeared when CIDMan auto-invoked PageMaster and made a page, then
PageMaster was killed by the user, and then another page had to be
made - CIDMan thought that the DDE server was still there even though
it wasn't.  CIDMan now checks for errors on the conversation and if an
error was detected, then tries to re-invoke PageMaster to start the
process over again.

--- 29-Nov-95 - Release 1.15 ------------------------------------------

Re-worked a small portion of the paging function initiation code to
give some more realistic messages.  Nothing big - just something
that's been bothering me for some time.

Fixed a modem seize problem - when the modem is seized by CIDMan, but
is actually in use by another program - CIDMan will no longer
experience a Fatal Error.

--- 22-Nov-95 - Release 1.14 ------------------------------------------

Corrected a modem-seize bug where the initialization string would
sometimes cancel out the dial string when trying to "Call Back" an
entry in the Caller List.

Made the "modem seize error" messages consistent throughout the
application (a modem seize error occurs when the modem seizure is
attempted but the modem is either already active, undefined, or not
command-receptive).

Corrected a "Fatal Error" when a callback from the Caller List is
attempted.  Approximately one minute after the callback call is
placed, the Fatal Error occurs.

Centralized the few "sleep" loops which exist in the program.  This
was mainly done just to insure consistency in handling the sleep loops
- such that other Windows events (both in CIDMan and in other
applications) could still be responded to.

On the Caller Database | Edit Ghost Number List panel, seven digit
phone numbers are now accepted (just like all other phone number
fields in the program) and the "Own Area Code" is prepended to the
number to build a ten-digit number..

The Registration Phone Number may no longer be entered as a Ghost
Number.

Corrected a bug with the formatting of the Alpha-Pager message where
the line of text is exactly the same length as the row of data on the
pager - it no longer wraps and screws up the formatting.

Added a "Pad Character" field to the Alpha-Pager properties field.
This was needed because some paging services coalesce a string of
multiple spaces into a single space, which screws up CIDMan's
nicely-formatted messages.  The pad character can be any character
which can be displayed on a pager.

--- 17-Nov-95 - Release 1.13 ------------------------------------------

Added functionality to the PageMaster "Pager Name" field on the
AlphaPager properties panel such that more than one pager may be sent
notifications.  Any number of pagers may be notified by separating the
individual pager names with commas.

Improved modem debug message handling.  Should help to reduce the
number of GPFs which occur when debug messages are on.

Found a path through the modem send code where a null pointer is
sometimes passed in.  This was corrected.

Also added a modemDebugFile entry to the CIDMan section on the WIN.INI
file.  When this item is present and set to a file name - all traffic
to and from modem devices (both CID Device and Alt Modem) will be
dumped to this file for later review/debugging.  This was mainly added
as a debugging aid for me when people experience problems with their
modem.  They don't have to tell me what came up in the Message Boxes,
they can dump the data to a file and send the file to me.

Added F8 and F9 as accelerator keys.  F8 will enable the pager, and F9
will disable the pager.

--- 14-Nov-95 - Release 1.12 ------------------------------------------

Added a field to the Alpha Pager Properties panel so that if an
unregistered evaluation copy of PageMaster is being used with CIDMan,
then a "pad" value can be entered such that the formatting that CIDMan
works so hard to accomplish won't come out on the pager looking like
total crap when PageMaster prepends their unregistered nag text
("Unregistered Version:") at the beginning of the page message.

--- 13-Nov-95 - Release 1.11 ------------------------------------------

Made some minor changes in the Alpha Pager properties panel.

--- 08-Nov-95 - Release 1.10 ------------------------------------------

Turned off that insidious "feature" where the Caller List is given
"focus" every 30 seconds.  This was supposed to insure that whenever
you press the "down" arrow key, no matter what previous actions you
had taken, the caller entry would be displayed.  I decided that the
costs vastly outweighed the benefits.

When an ECP entry is added, the "Parameters" field is cleared.

Added a field on the External Comm Programs setup panel for "Working
Directory".  Some programs need to be invoked in a specific directory.
If this field is left blank, then the directory in which the ECP
resides is used as the program's "home" (working) directory.

Straightened out that whole Paging Mess.  It was so confusing when a
call would be paged that even I didn't fully understand it and
certainly couldn't explain it.  Now, you have the choice of paging the
following types of calls: All Caller-Database calls (regardless of
"Page this caller" flag in the CDB panel), Selected Caller-Database
calls (only those calls marked "Page this caller" in the CDB panel
will be called), Unknown callers (callers for whom no entry exists in
the Caller Database), Out-of-area callers, and Anonymous callers.
Should be much easier to describe, document, and use.

Added Alpha-Pager support.  This support is currently offered in
conjuction with a shareware program called PageMaster from Omnitrend,
Inc.  PageMaster has a well-proven paging engine which handles all
aspects of the paging protocols used by paging services today.  This
approach was opted for because the internal structure of CIDMan
doesn't lend itself well to handling the processing of a protocol.

Made a change in CIDMan's modem management.  If you have an Alternate
Modem, then CIDMan will not "seize" the modem unless it is actually
going to do something with it.  Currently, the modem is "seized" for
the following situations: Call-back features, Dialing Directory
functions, ECP invocation, Call-block functions, and the Paging
Function.  Of course, if you just have one modem - the CID Device,
then CIDMan must keep that device open in order to obtain CID
information from the device.

--- 06-Oct-95 - Release 1.09 - First Release --------------------------

Made a modification such that the active list wouldn't be updated
every time a call from the Active Caller List wouldn't be updated in
the list.  This basically just stopped the listbox from flashing when
manuevering through the Active List.

Added F10 as an accelerator for "Cancel Outstanding Pages" - I was
tired of having my modem blast me with the page dial string during the
middle of a received call.  My modem, a Zyxel Elite 2864 is a nice
modem, but it's not too smart about how it waits for dial tone to
start dialing out.

Fixed a GPF caused when trying to add a ghost number for an entry in
the Caller Database and the ghost number entered is blank
(zero-length).

--- 29-Sep-95 - Release 1.08 - BETA -----------------------------------

Fixed a bug where Out-Of-Area and Private calls no longer get paged
properly at all, which was introduced in trying to fix a bug where
Out-of-area and Private calls didn't get paged properly when the "Own
Area Code" setting was not set.

Fixed a bug so that now you can add a previously-unknown caller to the
Caller Database via the "Add..." button on the main panel - and that
entry will immediately be displayed in the Caller Database Maintenance
panel.

--- 25-Sep-95 - Release 1.07 - BETA -----------------------------------

On CID Device and Alternate Modem Properties panels, the "Modify
Caller-ID Parameters" button changes its caption dependent upon the
context which the panel is in at the time (i.e. ADD and MODIFY state,
the button reads "Modify..." and in the SELECTED and LIST state, reads
"View...").

On Miscellaneous Properties panel, the "Set System Time..." checkbox
immediately notifies you when you try to turn the feature off on an
unregistered copy of the program.

On modem properties panels, you can now modify without getting "Memory
Allocation" Fatal Errors.

The Rochelle CDU 20040 was listed along with the Rochelle CDU-2802
device in the "Modem Type" combo-box on the Modem Properties panel.
The 20040 reports CID information for up to six telephone lines.

--- 25-Sep-95 - Release 1.06 - BETA -----------------------------------

Line on which call was received is now represented in the Call
Information box, as well as in the Caller List.  This feature is only
useful for devices which report incoming line information - currently
only the Rochelle CDU-2802, as well as Rochelle's six-line unit (model
number unknown).

Line status information received from the Rochelle CDU-2802 after CID
is reported no longer causes a GPF.

--- 23-Sep-95 - Release 1.05 - BETA -----------------------------------

Improved handling of missing Name Data on the Rochelle CDU-2802.

Auto-Add feature corrected so that seven-digit CID number data is now
not repeatedly auto-added to the Caller Database.

--- 23-Sep-95 - Release 1.04 - BETA -----------------------------------

Fixed an elusive GPF for modems who report date as MMDD (rather than
the expected MM-DD).  Same deal with HHMM.

Added debug capabilities to the parsing and call processing algoritms.

Pager Properties has a "Number Delimiter" field added.  This is to
support paging companies who use the '*' character as a terminator.
CIDMan was automatically putting the '*' in between the exchange and
rest of the number when being paged - so some people were getting only
the exchange information on paged calls.

Pager Initial Interval - minimum time has now been reduced to 1 second.

Dial Command for modem devices is now parsed to insure that there
exists two "%s" placeholders - and if they are specified as "%S", they
are converted to "%s", which is what the sprintf I use the Dial
Command string for wants.

Line Number data is now (kind of) supported.  If you're using the
Rochelle CDU-2802 unit, the Call Log will indicate on which line the
call was received.  Soon, the information will also be reflected on
the Main WIndow (if your CID device supports two lines).

Improve checking for when modem is active before re-initializing it.
In the past, this caused some problems with device hangings.

--- 22-Sep-95 - Release 1.03 - BETA -----------------------------------

Incoming calls from phone companies which provide only seven digits on
local calls will now have the "own area code" pre-pended to the data
to make it a ten digit number.  If no "own area code" is defined,
"000" is used instead.

Auto-add feature now sets number of calls to 1 and records date/time
of last call.

Evaluation now ends after X days, not X+1.  In other words, you won't
see a caption that says "0 of 3 evaluation days remain".

Various, sundry, and major modem assignment problems have hopefully
been ironed out.

Search string parsing of formatted CID data from modems has been
re-worked to improve robustness and reliability.

--- 19-Sep-95 - Release 1.02 - BETA -----------------------------------

Pressing "Previous" or "Next" when no entry in a caller list is
selected no longer causes a GPF.

If the Alternate Modem is set to the same device as the CID Device (or
vice versa) - the Alternate Modem setting is cleared.  The two devices
cannot be set to the same definition.  This should clear up several
spurious GPFs that have been reported.

Date/Time processing for Supra modems - who report CID date and time
on separate lines of data.

Baud Rates > 32K are now supported (and the modem will open
correctly).

--- 19-Sep-95 - Release 1.01 - BETA -----------------------------------

Corrected Telephone Properties GPFs when a value was initially defined
and then deleted.

--- 18-Sep-95 - Release 1.00 - BETA -----------------------------------
