Features introduced from suggestions from users are marked with a "*"


--- 25-Oct-96 - Release 1.30 ------------------------------------------

Corrected a reported bug regarding "Page on Unknown Callers" - no
matter what the setting, CIDMan would page on unknown callers. (v1.29a)

Corrected a GPF when "Auto-Add New Callers" is enabled and a new caller
calls and the record is added to the Caller DB - it no longer causes a
crash. (v1.29b)

Reworked the paging user-interface - AGAIN.  This is the last time, I
promise.  Panels were just getting too crowded and too busy.  Now there
are five panels:  (v1.29b)

  - General Pager Properties
  - Alpha/Numeric Formatting Properties
  - Pager Interface Properties
     - Numeric Pager Properties
     - External Page Program (EPP) Properties
     - PowerPage Pager Properties

* Added support for PowerPage - a alpha-numeric paging DLL.  This DLL
eliminates the need for an external paging program (but the EPP
interface will *not* be removed from CIDMan). (v1.29b)

Added "Do Not Disturb" functionality such that when you don't want
CIDMan announcing calls, executing scripts, and/or paging received
calls, "Do Not Disturb" mode may be invoked, which will result in the
"Do Not Disturb" dialog being posted to the screen.  For as long as
the "Do Not Disturb" dialog box is up (depending upon which options
(Announcements, Scripts and Pages) you wish to have "held"), you can
disco nap to your hearts content, secure in the fact that CIDMan won't
interfere or otherwise be noisy or bothersome. (v1.29b)

* Added support for AlphaPage - an alpha-numeric paging program which
performs external paging functions similar to PageMaster and
MessageFlash.  The interface by which CIDMan communicates with
AlphaPage is through DDE messages. *** Note - the AlphaPage version
that I worked with was never able to complete more than one DDE page
request - hopefully this will be resolved in future
revisions. (v1.29c)

* Added support for WinBeep - an alpha-numeric paging program which
performs external paging functions.  The interface by which CIDMan
communicates with WinBeep is through DDE messages. (v1.29c)

Added a "Test Page" function which will send a test page via the
defined CIDMan Pager Interface.  This function is accessed from the
Pager Menu (and by the F7 function key). (v1.29c)

* Added support for the Zeus Phonstuff line of CID devices. (v1.29d)

* Added support for Compaq internal modems (weird format I've never
seen before).  (v1.29e)

Added capability to select a number from one of the Call Lists and mark
that number as the new number for an entry in the Caller DB.  (v1.29g)

Added capability to change the area code for an entry in the Caller
DB (Dallas just underwent an area-code split this weekend). (v1.29g)

* When "De-Iconify on incoming call" is turned off and CIDMan is
minimized when an incoming call is received, the icon label will
reflect the caller info (for 30 seconds). (v1.29g)

* Added settings for "Show CID Number on Icon" - when enabled (and when
"De-Iconify on incoming call" is disabled), CIDMan will reflect CID
number info on the CIDMan icon. (v1.29h)

* Added settings for "Show CID Name on Icon" - when enabled (and when
"De-Iconify on incoming call" is disabled), CIDMan will reflect CID
name info on the CIDMan icon. (v1.29h)

* Added "Do Not Disturb" Sniffer File capability.  When the sniffer
file is specified, and the interval (in seconds) is > 0, CIDMan will
check (every specified number of seconds) for the existance of the
file.  When detected, CIDMan will automatically enter "Do Not Disturb"
mode.  When the file then disappears, CIDMan will cancel "Do Not
Disturb" mode.  This feature may be used with home automation programs
which can "detect" when you are home and will alter CIDMan behavior
based upon that information. (v1.29h)

* Added "Modem Release" Sniffer File capability.  When the sniffer
file is specified, and the interval (in seconds) is > 0, CIDMan will
check (every specified number of seconds) for the existance of the
file.  When detected, CIDMan will release the CID Device (or
Alt. Modem if one is specified) such that another program can come in
and use the modem.  Possible use: A cron job that you have running to
check your e-mail from your ISP.  The cron job would create the
sniffer file, wait x seconds, and then spin off your e-mail checking
program.  When the mail has been fetched and the e-mail program
terminates, the cron job would then delete the sniffer file.  CIDMan
will detect all this and release and then re-seize the modem
accordingly such that the e-mail program can use the modem. (v1.29h)

* Added "Hold Pages" Sniffer File capability.  When the sniffer file
is specified, and the interval (in seconds) is > 0, CIDMan will check
for the existance of the sniffer file before any outgoing CIDMan
Notification pager messages are sent out.  The "interval" setting is
used only to activate/deactivate the sniffer.

* Font Independence!  CIDMan will now load the Sans Serif system font
and control its size such that when "large fonts" are selected for the
desktop, CIDMan's field labels will not be truncated.

Names in the various lists presented by CIDMan are truncated (according
to the font size) during list construction such that long names will
not overflow the field width allocated for the CDB name.

--- 27-Jul-96 - Release 1.29 ------------------------------------------

A ghost number containing a wildcard may now be inserted into a Caller
DB entry's ghost number list - even if the wildcard would encompass
an already-existing entry in the ghost number list (e.g. 214-555-99??
could be added, even if 214-555-9922 was already in the ghost number
list for that caller).  Next time the Caller DB is read in from disk,
the 214-555-9922 entry would be taken out, since the 214-555-99??
entry encompasses it.  (v1.28a)

The "Reinitializing CID Device" entry does not get written to the modem
debug log unless modem debug messages are turned on. (v1.28a)

When "Auto-Add New Callers" is enabled in the EVALUATION version, if
the five-caller limit is already exceeded, CIDMan used to GPF. (v1.28a)

Added an entry on the "Help" menu of the Evaluation version of CIDMan
which explains the restrictions placed on the evaluation version.
(v1.28a)

On the Caller Database panel - when the panel is in the "List" or
"Selected" state, the ghost number list button reads "View Ghost Nbr 
List" - when the panel is in the "Add" or "Modify" state, the button
reads "Edit Ghost Nbr List". (v1.28a)

Pheature Invocations can now be cancelled during their invocation 
interval (and the modem will be placed back on-hook).  (v1.28b)

"CID Data Missing" messages are now "line-relevant" for those devices
capable of handling multiple lines (i.e. if the phone rings just once 
on Line 2 and no CID data is reported, then the "CID DATA MISSING"
log entry is marked as having been detected on Line 2 (rather than
Line 1, as occurred previously). (v1.28b)

* Line Number information is now sent to the pager (alpha-numeric pagers
only).  One-line devices will always report "Line: 1", but multi-line
devices (Rochelle CDU-2802) will page with the actual line the call
came in on. (v1.28b)

Entries in the Caller Database may now be marked as to whether or not
they are to be displayed in the Dialing Directory.  For example, if
you maintain a list of Telemarketers who call (which you subsequently
block), then you can mark those entries as to not appear in the
Dialing Directory.  (v1.28c)

Excessive rings now no longer produce a "CID DATA MISSING" entry in the
caller log.  (v1.28c)

--- 25-May-96 - Release 1.28 ------------------------------------------

* Added a field which can be printed when using the External Page
Program Interface (PageMaster, MessageFlash).  If a caller has the
"Message String" field set (from the Caller DB panel), then this
field will be sent to the alpha pager.  This is useful when you want
to send along some additional bit of info (like an extension, for
example).  For numeric pagers, the field behaves the same as before
(even though its name on the Caller DB panel has changed from "Pager
Ident String" to "Pager Message String"). (v1.27a)

* Added a "Missing CID" sound setting which is played when a ring is
detected on the phone line, but no CID data is reported. (v1.27a)

Corrected a bug where when the incoming call is to be blocked, if the
CID Device is the Rochelle CDU-2802, then the alternate modem is used
to block the call. (v1.27a)

Corrected a bug where when a call is blocked, the "blocked" sound is
played after the associated announcement. (v1.27a)

Corrected a bug where when Telephone Properties were saved but no
CID Device or Alt Modem were defined, CIDMan would GPF. (v1.27b)

* Added "Ring/CID Data Timeout" to Telephone Properties panel.  This
value (5 is the recommended value) should be adjusted to the period
of time between the first RING and the time that the CID data should
be appearing on the Comm port.  If this interval expires with no CID
data seen, then CIDMan reports "CID DATA MISSING" and assumes that
no CID data is forthcoming and play the "CID Missing" announcement (as
defined on the Sound Properties panel). (v1.27c)

When "Auto-Add New CDB Entries from CID Data" is enabled, when calls
are auto-added to the database, if the "Announce Unknown Numbers" 
setting is also enabled, then the disposition for the auto-added entry
is set to "Announce-Number".  Otherwise, the auto-added entry's
disposition is set to "Pass Thru".  (v1.27c)

* When the Caller History is displayed, the last "screen" of records is
displayed rather than the first. (v1.27e)

* Added support for the Nicollet DT-1041/DT-1082 and Telcomp PC-CLID-4/
PC-CLID-8 devices. (v1.27f)

Fixed a bug with the External Page Program interface.  When only a CID
Device is used (no Alt Modem is defined) and the Ext Page Program is
not active already such that CIDMan must start it, the return value
is not set correctly and CIDMan thinks it's okay to release the modem
(i.e. open it up again for reading CID data) and the Ext Page Program
is unable to open the modem.  (v1.27g)

When the modem release is attempted in CIDMan, if the modem cannot be
re-opened (the Ext Page Program still has the modem open), the timer
is reset such that the release is retried. (v1.27g)

The Pager Initial Delay value cannot be less than the Ring Timeout
value.  (v1.27g)

* Added a CID Device Reset timer - such that every so often (once per
hour), CIDMan will go out and close and then re-open the CID Device
(only if the CID Device isn't active doing something else at the
time). (v1.27h)

* Added a setting in the cidman.ini file called "reInitCidDeviceInterval"
which defines how often the CID device is reset (closed, opened, and
then sent the modem init string).  This setting is not modifiable via
any panel in CIDMan - but I wanted to give a way to "tweak" the setting
if a user so desires. (v1.27i)

Added capability to clear a pheature setting (such as the Pre-Dial
Sequence) from the telephone props panel.  Previously, once a pheature
was defined for a given sequence, the setting could never be cleared
or reset.  (v1.27j)

Modified the evaluation scheme used by the program.  The evaluation
interval is now unlimited (your license to use the program on a regular
basis still expires after 30 days, per the license agreement).  This 
was done so that people can try CIDMan - if they don't like it now, 
but want to revisit the program later, they can still see the utter
utility of the program.

This also alleviates the need for an Uninstall utility (you'd be
*amazed* at how registrations dropped off once I offered the
Uninstall program to reset the evaluation interval timers).

--- 19-Mar-96 - Release 1.27 ------------------------------------------

* Added "Ring" detection for the Rochelle CDU-2802.  This way, when the
first ring is detected, the screen can be unblanking and the CIDMan
window can be restoring before the CID data is processed - which
should allow for the CIDMan window to be completely restored and
filled in with data when the voice announcement is played over the
speakers.

* Added the capability for the Rochelle CDU-2802 to fetch all logged
entries (the docs say up to 150 entries in the log, but my 2802 only
holds 120 entries).  The logged entries are fetched and added to the
Active Caller List.  Logged entries are not paged and they are not
announced; no scripts will execute; no history information will be
recorded/updated; no numbers will be read out; no blocking of the call
will occur; duplicate entries in the list are NOT ignored (i.e. if
your lines roll from one to the other, you should throw a bucket of
cold water on them... oh... the 2802 log will reflect a call coming in
on line 1 and then on line 2, and the Active List will show both).  The
actual date and time that the call came in will, however, be accurately
reflected in the Caller List.

Moved "Retrieve Last CID Cmd" from the Caller-ID Parameters panel to
the Modem Properties panel.  It makes more sense there - I don't know
what I was thinking originally...

* The "Dial Cmd" can now have it's "%s" placeholders specified as either
"%S" or "%s" - case doesn't matter - it will be converted to "%s"
though.

* Adapted CIDMan for use with the MessageFlash paging software from AT&T
Wireless Messaging.  In doing this, I also renamed the "PageMaster
Interface" panel to the "External Page Program Interface" panel.  Some
of the field prompts have also been changed to be more generic.  Also
affected was the settings file.  Some of the settings with the string
"Pagemaster" in their name are now more generically named to
"extPageProgram...".  All "pagemaster..." settings will automatically
be carried forward to their "extPageProgram..." equivalents.

Removed the "Multiple Pager's" for the PageMaster interface (where you
could specify a series of pagers separated by commas).  Since
PageMaster v1.62 and beyond now allows DDE paging to a group of
pagers, this functionality is no longer needed in CIDMan and was
removed for the sake of consistency with future external paging
program interfaces which might be added.

* When the caller list is displayed, instead of displaying the top of
the list, it now displays the end of the list.

Corrected a bug in the incoming call handling when the incoming number
is either not found or garbled.  This manifests itself with CIDMan
indicating that the registration has been voided.  Even if no 
registration has yet been entered.

--- 14-Feb-96 - Release 1.26 ------------------------------------------

Modified the "Add new entry from Caller List" operation such that if
the caller being added has several call records in the "Active List",
then each of those calls will be reflected in the caller's history 
associated with the caller's entry in the Caller Database.

* Modems which do not report Date/Time information on the incoming call
are now supported.  For these modems - the Date/Time prefix strings
on the CID Parameters of the device properties should be LEFT BLANK -
and the incoming call timestamp is taken from the computer's internal
clock.  Sorry for all those who I told "you're crazy!" when they tried
to tell me that modems existed which didn't report Date/Time info.

* Modems which report "True Raw" CID data - as opposed to the ASCII-ized
version of raw data - are now supported.  These modems should be set
up as "Raw (binary)" on the CID Device's CallerID Parameters panel.  If
the modem reports "ASCII-ized" raw data - then the modem should be set
up as a "Raw (ASCII)" type of data format.

* Modems which provide date-of-call information as MM/DD (as opposed to
MM-DD) (i.e. slash instead of dash) are now supported.

The "Dial Local-7" button from the Dialing Directory is now unavailable
when the highlighted entry in the directory list is from a different
area code other than the one defined (via the Telephone Props panel)
as your "own" area code.  I kept dialing some poor family in the 214
area code when I actually meant to dial the number as a Local-10 number
to the 817 area code.

* Number "read outs" are now area-code sensitive.  If the area code of
the number being read out is the same as your "own" area code
(Telephone Props panel), then the area code is not read out.

* Added a "Reset After Each CID Message" feature for modems (the Boca
Communicator Gold comes to mind) who is incapable of receiving two
CID messages without an intervening modem reinitialization.

* Added an "Area code always relevant" setting to the Telephone Props
panel. This setting, when enabled, will always cause the Area Code
to be "read out" on unknown numbers, and included in the paged number
when the call is paged.  If this setting is disabled, then IF the
area code of the caller is the same as the "Own Area Code" (Telephone
Props panel), then the area code is ignored for both "read out" unknown
numbers and paged calls

Added a "Lines to Page" setting to the Pager Props dialog.  This will
allow users to specify the telephone lines on which calls are received
are to have those calls paged.  That is, "1,2" would result in calls
received on lines 1 and 2.  "1" would result in only calls received on
Line 1 to be paged.  "2" would result in only calls received on Line 2
to be paged.  You get the idea.

When the "Retrieve Last CID" command is issued, the datestamp on the
retrieved data is not used to set the System Time (if that feature is
enabled (via the Misc Props panel)).

Cleaned up the "Dialing Directory" panel and what gets displayed when
the "Lookup" function fails to find the requested number.

* Added code to enforce the "\r" portions of the various fields of the
CID Device and Alternate Modem properties panels.  That is, those 
fields which require a CR must have them, those that don't have a CR
must not have them.  This should at least guide the new user in the
right direction when defining the modem.

The "Pager Delimiter" character is always now a '-' (dash) when the
External Page Program interface is active.

Added some debugging messages for raw data as it's detected from the
modem.  These messages are turned on when Modem Debug Messages are
enabled.

Reworked the way "Out of Area" (OOA) and "Private" calls are
displayed.  I have name/number CID service, so I never saw this
problem - and I don't know why other people didn't complain - or if
they did, why I couldn't understand what they were talking about.  But
in previous releases, when you had Number-Only CID, if an OOA call
came in, it would be put into the list as Number "???-???-????" and
Name "Unavailable".  Now, entries will be put into the list with Name
"Out of Area".  Same thing for Private calls.

Fixed the "Add/Modify" button on the main panel so that it no longer
causes a crash.  This bug originally resulted because in earlier
versions, you could add an "Out-of-area" or "Private" call to the
database - something that really shouldn't be possible.

Fixed Raw Single-Message handling such that incoming calls are not
reported as Number="???-???-????", Name="Unavailable".

Added a "Enable Announcements" and "Enable Scripts" option to the File
Menu.  I mainly just wanted a quick way to turn on and off
announcements for when dates are over - they don't realize what a
total geek they're having dinner with...  You want to introduce such
facts slowly...

* Also slightly modified the way callbacks are handled.  The Dial String
of a modem definition shouldn't require a hangup command portion
anymore.  Rather, the "Dial Command Interval" from the Telephone
Properties panel should be set to the value (in seconds) of how long
the modem should remain off-hook when a "call back" or a dialing
directory-placed call is made via CIDMan.  When this interval expires,
the modem's hangup command will be issued.  To accomodate this change, 
the Paging Properties panel had a "Paging Duration Interval" item
added to it.  See below.

Reformatted the Pager Properties panel and added a "Pager Duration
Interval" item - this is the time period that CIDMan will keep the
modem seized for the Pager Function.  I recommend a value of 20 for
numeric pages and 45 for PageMaster pages.

--- 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 -----------------------------------
