home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 2
/
crawlyvol2.bin
/
utility
/
misc
/
cid_d202
/
read_me.cid
< prev
Wrap
Text File
|
1995-01-04
|
46KB
|
997 lines
CALLERID Accessory Utility (DEMO Version 2.02)
04 JAN 95
This is the DEMO version of Caller ID Accessory. Feel free to
use the 2.02 demo version with no obligation.
NOTE: No warranty is expressed or implied. Use of this software
is at your own risk. Paul Lyon cannot be held responsible for
any damage, loss of data, or any other 'complications/problems'
from use of this software. Ensure the following 3 files are
together:
1) READ_ME.CID (this document)
2) CID_D202.ACC (the accessory)
3) CALLERID.NDX (the index file)
This program reads and writes to disk.
Again - USE AT YOUR OWN RISK!
NOTE: Caller ID Accessory requires Caller ID service from your
phone company and a modem (preferably Supra) with Caller ID
capabilities. It also does not appear to be MultiTOS compatible.
NOTE: Always run and enable CID.ACC first before you run other
applications. For some reason (at least unknown to me), when you
exit other applications, some will 'close' the CallerID.NDX file.
A newly added recovery procedure can 'resolve' this, but it is
an unnecessary task that can be avoided by enabling CID.ACC before
you launch any other programs.
NOTE: If for some reason you get a TOS #6 alert (fseek() error),
you should immediately be prompted if you want to invoke the
recovery procedures. If not, you will be locked out from
accessing the NDX file and 'Show'ing any received calls. If you
wish to use the recover procedure, do NOT completely exit out of
the program. 'Enable' and 'Hide' the accessory, then select the
accessory again. Disable it and try your file or show option
again. You should still get the error alert, but it will
immediately be followed by the recovery prompt. The 'Hide'
option will clear the temporary error flag so that you may
re-attempt your action again. This will make sense once you are
familiar with CID.ACC.
While managing your received calls and you ADD some new
numbers from the calls, it is best if you completely exit the
program so it may write them to the .NDX file. All call data and
'new/add' data is buffered. Exiting the program will close the
.NDX file and write to it all new data. Manipulating the .NDX
file and managing new incoming calls creates the potential for
unwanted loss of data if something happens with all that data
just being buffered. Version 2.00's manual recovery procedure
should correct it if the file pointers get corrupted.
Unfortunately, however, this may not solve all problems that
could be encountered during a 'computing session'.
CallerID Accessory is designed to run with other GEM applications.
If a TOS program is running, than CID cannot work when a call is
received. If a GEM program is currently in the middle of some
action that is exclusively using the processor (not currently
able to 'event-loop'), then Caller ID cannot instantly process
the call, but it will when that particular process is complete.
See changes from 2.00 to 2.02 at the end of this file.
With that out of the way, understand that I wrote this program
and have used it hundreds of times without any big problem so you
shouldn't have any at all. However, until you are comfortable
that CID Accessory works on your system fine, it is wise to
perform consistent 'saves' if creating files with other
applications while CID Accessory is running in the background.
There are some 'misbehaved' programs (maybe even mine) that don't
work well with others. Get used to CID from the desktop first,
then solicit some test calls from someone (I requested 'ringbacks'
from the phone company quite often). Repeat the testing while
another application is running to see if they are compatible. And
even when you are comfortable everything is fine, still practice
consistent saves of your files. I'd hate for my program to be
blamed for any loss.
Note: There are no known bugs (yeh, right) in this program.
However, any anomalies that I could not correct or chose not to
for various reason are noted in this text. The Programmer's Notes
will include these as well. If there is something I noted that I
could not change/correct, I am open to suggestions. This was
developed with Lattice 5.52 on a 1040ST with 2.5 megs, 2 hard
drives, TOS 2.06, and lots of bad coffee, cheap cigarettes,
sleepless nights, questionable documentation, bloodshot eyes,
endless trial-and-error, serious bad breath, and one heck of a
desire to upgrade to Lattice 5.6, a Falcon, and a TT.
Also be aware that only one program at a time can access data on
the serial port. There may be an exception when multiple
applications are purposely designed to share data exchanged via the
serial port. Caller ID is NOT designed this way and should NOT be
'Enabled' when a terminal program or any other application is running
and looking for data on the serial (modem) port.
CID.ACC has a .NDX file limit of 128 entries and is limited to
32 calls before needing the buffers cleared (the demo is limited
to only 3 calls, but all other features are available).
Caller Id Service defined and Caller ID Accessory:
Well, Caller Id (as from the phone company) only provides the
date, time, and number of the calling person (the name is supposed
to be supplied in the future sometime). Also, a person can now
choose to 'block' their number from being viewed when placing a
call - Per Call Blocking.
If there are multiple phone companies in your area, you may not
get the Id data if the call is from a different service. But we
are on the verge of the "Information Hiway", so it should be
national before too long.
With a special device hooked up to the phone, you can view this
information - date, time, and number. If the ID was blocked,
you'll only see the letter 'P' in place of a number. With a
modem that has CallerId capability, this CallerId data can be
viewed on your computer, but only if you have a terminal program
running.
It looks like this:
RING
DATE=0108
TIME=1705
NMBR=8044222205
RING
NAME=....is another line that may appear after the NMBR line if
you have Caller ID Service 'Deluxe'. CID Accessory is designed to
handle it, if it is provided.
In addition to Per Call Blocking, if you have Caller Id service
(or for an additional $3 per month if you don't), you can invoke
Anonymous Call Rejection. If activated, any 'blocked' calls will
automatically be rejected - your phone won't even ring. Caller Id
accessory can be used to hang-up on any 'blocked' calls, and
you'll have a record of when you received the call!
Anyway, if you are using just a computer and terminal program
to view this data, it is somewhat limited. If you don't have
multi-tasking, then you must run a terminal program accessory (of
which there are very few) if you want to use your computer for
other things while 'capturing' the CID data. But surely this is
not enough to justify the service...until now!
CALLER ID ACCESSORY!
What can CALLERID Accessory do? When a call is received, it:
-Searches your Index to display an Index name after 1st ring
-Can automatically Hang-up on a number if you desire
-Identify 'Blocked' calls and hang-up on them if desired
-Keeps track of the number of calls
-Keeps track of date, time, and number of rings per call
-Print to disk or to printer the above data for record purposes
-Let's you automatically add a received number to your Index
This can be great for a business because you'll know who the
client is and be prepared before you even answer the phone!
With CID Accessory, you are free to use your computer for anything
(accept a terminal program which will want to capture the CID data
also) while it is in the background ready to process the ID data.
With CID Accessory, you create and maintain an Index file which
CID Accessory searches when a call is received. If it finds a
match, it shows you the matching name automatically before
the second ring! If there is no match but the number is provided,
then you can automatically add this number to the Index file and
enter an appropriate name for display the next time a call is
received from that number! CID Accessory also converts the 4-
digit date to a 3-character month abbreviation with 2 digit date.
Caller Id is primarily for screening calls. Most people use an
answering machine for this. But a lot of people who call and get
an answering machine won't leave a message (maybe they think they
are being screened?). With CID Accessory, you can view an actual
name vice trying to quickly interpret 10 numbers. Then you'll
know whether you want to answer the call or not, and know who it
is even if they don't leave a message!
You can even define a number to be Hung-up on if you wish (they
can't even leave a message on your answering machine). Just flag
the entry in the CallerId Index for "Auto Hang-up: Y", and after
the first ring...click, (pause) click!
Hang-up on Blocked calls will hang-up after the first ring - there
is no way to tell who is calling anyway, but you'll have a record
of it happening.
And you don't have to be present - CallerId Accessory will do all
this unattended (except for adding numbers - you have to make
that choice).
If you are gone for the weekend, your answering machine may tell
you that you only got two calls, but CallerId Accessory will tell
you:
- how many different calls (even if they don't leave a message)
- the number of the caller (if the Caller Id service provides it)
- time and date of each call (even if number is not provided)
- name of the caller as per your CID Index file
- how many times the phone actually rang per call
- if the Id was 'blocked'
- hard copy record (proof)
- and whether you had CallerId Accessory hang-up on them!
Once you use this, you'll leave it running all the time!
One user recently told of how he keeps a record of local phone
solicitors to auto-hangup on!
One word of warning. If you choose to auto-hangup on someone who
calls regularly, be prepared for them to call several times in a
row. The only problem with this is you'll probably die laughing
at the thought of them trying to get through! CID ACC tells you
if you hungup on someone when you check your calls - even if it is
several times. But beware, you'll have to do some explaining if
they call and your not running CID ACC. They're immediately going
to say "Something's wrong with your phone 'cause the other day
when I called it kept disconnecting me...I couldn't leave a
message...I told you not to buy that modem...blah, blah, blah..."
The shareware version is still only $15 and comes with a booklet
for easier operation than a read.me file.
Also included with the shareware version are some other interesting
shareware products from various programmers.
Paul Lyon
CID Offer
1104 Charter Ct.
Virginia Beach VA 23454
(804) 422-2205
Caller ID Accessory
First, understand that this program will do you little good if
you don't have Caller Id service to your phone line from the
local phone company, and you must have CallerId capability with
your modem. You can still investigate the program, though.
Caller Id service is an additional cost to regular service
(about $6+ a month) and the your modem (or some other device) must
be able to send the ID data to your computer. This program was
written to support the SupraFaxModem with the CallerID upgrade.
It could possibly support other CID capabilities (but I know of
no others).
Second, if for some reason this program does not work with your
modem or CallerId service, I will 'adjust' this program to make it
compatible. But this will require additional information from you
(modem stats, Caller Id format, etc.).
OPERATION of CID ACC
iNDeX File...
First, as with any other standard accessory, CID_D202.ACC must
reside in the bootup directory. In addition, the CALLERID.NDX
file should be there also. The file selector will prompt for
the .NDX file if it does not find it when you open the accessory.
The .NDX file supplied contains me and a couple of other entries.
You can create your own .NDX file or let the accessory create it
for you. This is a standard ASCII file, but it must be in the
following format:
8044222205
Paul D. Lyon
CID Programmer
N
4105446943
Toad Computers
My favorite Dealer
N
5555551234
Phone Solicitor!
Oops, Auto-hangup!
Y
and so on for as many entries as you like.
1st line: phone number must be 10 digits, no more - no less.
2nd line: name up to 30 characters max.
3rd line: comment up to 25 characters max.
4th line: single character, capital Y or N for 'hangup' flag.
4 lines for each file entry with no blank lines.
More on the .NDX file is discussed later. For your first look at
the program, just use this NDX file provided.
And here's where you start. From the Desk menu, select Caller ID.
It will immediately attempt to open the .NDX file. When CALLERID
is selected, it opens the .NDX file and brings you to the main
dialog (that's my picture on the front!). Now for a description
of each button on the main dialog:
On Line
CID.ACC always check to see if a modem is present (sends the AT
command) when selected from the Desk Menu while disabled. If it
detects one, a check mark will appear in the button. Clicking on
this button just repeats it. If the modem is off when the button
is click and a check mark was present, it will remove the check
mark. If the modem is on and there is no check mark, click the
button. If there is still no check mark, then you are not using
the standard ST serial line.
CID Mode
This button is disabled (shadowed) if a modem is not present
during initialization. If a modem is determined to be present,
then the button is selectable.
Once CID Mode button is selected, the CID Command dialog is shown.
This presents two lines of AT commands that can be sent to the
modem. The first command is the default settings for the
SupraFaxModem. The second command is the Caller ID command to set
the mode to Caller ID mode. These fields can be edited to your
requirements, BUT (warning!) you do not want to send just any
modem command. Caller Id accessory only looks for 'OK' being
returned and other returns may create problems for you. Once the
data lines satisfy your Caller Id requirements, click Send. If
both lines return 'OK', then the currently disabled OK box will
become normal. Exit returns you to the main dialog where the Mode
button will now have a check mark. CID ACC does not support
hexidecimal format.
Note: Once you are comfortable with the CID accessory and all
built-in default settings work for your system, the you can invoke
the 'quick sequence'. When the main dialog shows up, you can hold
down the <L.shift> key when selecting CID Mode which will: 1) send
the CID AT command to the modem, 2) put it in 'Enable' mode, and
3) hide the main dialog. This saves you from having to perform
an additional 4 'clicks' whenever you initialize CID ACC. But
it's highly recommended you become familiar with the 'long'
way of operating CID ACC before using short-cuts - just so you
know what's actually happening.
File
The File button provides access to the CID Index File dialog.
From here you can add, delete, or edit entries. NOTE: if you
have ten entries in your NDX file and you edit entry number 2, it
will be erased from its current position and written to the end of
the file. It saved more code requirements to do it this way (at
least for me). Caller Id is not a nation-wide service but you
still need to include the area code in the file because Caller Id
always provides it and NDX searches use the entire number.
Someday, CID should be available on a national level.
Anyway, this dialog should only be used to add entries primarily.
If you intend to do extensive and frequent editing of your NDX,
you should use an ASCII editor instead. The file dialog is very
useful to ensure a proper format. But creating an extensive file
and the reducing it (i.e., 30 entries down to just 10) will cause
'ghost' characters at the end of the file that could corrupt it.
A good rule of thumb to ensure a good NDX file is created and
maintained with this dialog is that for every entry removed, a new
should be added. So your total number of entries never actually
decreases this way. But if you decide to use an ASCII file to
create on your own, remember the format must be as previously
described and each line, INCLUDING the last line, MUST have a
carriage return (CR) at the end of it. Caller Id accessory
'counts' CRs for file-pointer positioning during its search for a
file match. CallerId is designed to manage a total of 128 NDX
file entries.
Note: Caller ID accessory buffers all new data entered into (or
changed in) the iNDeX file. It writes most of the data to the file
on disk after program exit (completely 'cancel'ing out of the
accessory). As such, you should not do extensive manipulation
of the iNDeX file and still manage incoming calls. When the
file has been 'altered' and program exited, recall your last entry
with the 'Find' option. If the file is ever corrupt, use a text
editor to find the problem.
- New
Select the New button to put in a new entry. It will present the
same dialog but all fields will be blank. Be sure to enter data in
all fields. Name and Comment fields do not have to be completely
filled in, but they do require something entered. They can be any
combination of characters and numbers, upper or lower case. The
Number field requires a complete ten digit number. An alert will
warn you if a line is left blank. And the Auto-Hangup option must
be either a capital Y or N - upper case only.
- Remove
It simply removes the entry from your NDX file. Remember to avoid
removing more entries than you add because of the potential for
'ghost' characters. So far this hasn't been a problem. But if you
plan to remove several entries, use a text editor and save as an
ASCII file.
- Edit
The Edit button will present a cursor on the first line. Use your
keyboard cursors keys to move the cursor around. Selecting Cancel
after making any changes exits the dialog without doing anything
to the file. Selecting OK will make all changes, but the edited
entry is moved to the end of the file.
- Find
The Find button presents a Search dialog that allows for a FILE
NAME search of the data base. It must be case specific, but the
line entered does not have to match exactly the file name entry.
For example, a file name of '5Big Bob Johnston' would be found if
just 5, or Big, Bob, Big Bob, Johnston, Bob Johnston, Big Bob
Johnston, 5Big, etc. were entered as the search criteria. It
looks for a matching string. However, a search entry of Big
Johnston would not match. The search must find a matching string
somewhere in the comparison of the search entry and in one of the
file names. If two entries share a search entry, then the first
will be found.
Caller Id accessory version 2.00 now allows you to scroll your
NDX file. It is still advisable to maintain a paper copy of
your NDX file.
At this point, go ahead and add some entries of people of whom you
know their number will be provided by Caller Id (if you have the
service). By the end of this document you'll be dying for some
test calls.
Clear Buff
Clear Buff clears out all data of received calls. It does not
affect the NDX file. When the 32 call limit of CID has been
reached, it will not process any more received calls. If CID is
'Cancel'ed while in the 'disabled' mode, it will clear the buffers
automatically. Clearing the buffers resets all pointers as if no
calls had been received. Be sure to print your calls before you
clear the buffers if the calls are important to you. An alert
will warn you if you have newly received call data and you
attempt to exit out of the program without having printed the
calls.
Show
As you have probably noticed, the main dialog has two buttons with
an asterisks (*) next to them. That's because they have dual
roles. So remember that the Show button has two roles.
When Caller Id accessory is not enabled, it will allow you to
view each received call one at a time. If Caller Id is enabled,
then it will show only the most recent call. If no calls have
been received when Show is clicked, it will indicate as such.
More on 'enabled' follows later. But if calls have been received
and CID in currently not enabled, you can scroll through the calls.
It will indicate number of rings, number of calls left to view, if
the ID was blocked, if the caller was hung up on, and the ADD
button will be selectable if a number is provided in the call and
it is not already in the NDX. Selecting ADD and providing all
additional required data in the subsequent dialog will write the
new entry to the end of the NDX file.
Note: If there is more than one call from the SAME number where a
number is provided and you ADD one to your NDX, the same number in
the other calls previously received calls of that same number will
still indicate that the number was not in the NDX. That is
because a pointer for that call indicates it wasn't in the NDX.
Any new calls from that number after the addition will reflect the
new NDX entry though. The one just added will be updated in the
Show file. And if you change the Hangup feature of a call
received after the fact, Show will indicate if the call was hungup
on based on the flag of the file entry, not necessarily if it was
actually hungup on. Changes midstream to any file entries may not
always reflect exactly what happened when the call was received.
If and when you do ADD some new numbers, it is best to immediately
cancel all the way out of the program so that the iNDeX file is
completely written and properly closed. Otherwise, if there is
a system problem and it crashes or you have to reset, all that
new NDX file information is going to be lost because it is only
being buffered until CID ACC is exited.
Enabled
If the NDX file has been read correctly and the modem is in CID
mode, clicking this button will 'enable' the CID utility. Once
enabled, several of the buttons are no longer selectable. The
buttons that are available are selected a little bit differently
than with normal dialogs so the required 'click' must be held in
place for a few milliseconds longer. A quick click won't select
an available button while in the enabled mode.
You may select *Show again while enabled. This different dialog
is what you'll see pop-up on your screen when a call is received,
referred to as the Call Alert dialog. If you select it while CID
is enabled and no calls have been received, it will indicate as
such. When a call is received, it is here where an NDX matching
name is shown immediately after the first ring (remember it
pops-up automatically when CID is enabled and a call is received).
If there is a number but no match in your file, the number is
shown and indicates it was not in your NDX file. If there is no
number provided, it says so. And if the ID is block, it says so
also!
This is an important note!
Included is an escape of <cntrl> <l.shft> <alt> to close the
"Received Call" dialog if another application has turned off the
mouse. It can be used even if the mouse is present. (For a
long time I thought my program was crashing the system when a
call was received because there was no mouse to close the dialog.
It finally hit me that it is a programming option to have a
mouse present or not and some applications turn them off -
particularly word processors.)
Cancel
This button has two roles, indicated as such by the *.
Selecting Cancel will disable CID. But it takes a long click.
When the mouse turns into a busy-bee, it is currently disabling
and you should immediately release the button so that clicks are
not accidently read by Cancel of the main dialog when not enabled
(remember, the * indicates two roles: 1 - to disable; 2 - to exit
the main dialog and exit the program which will clear all your
buffers of all your calls).
Remember, CID accessory will not 'grab' any calls if not enabled.
HU on BLK
You have the option to automatically hangup on all blocked calls.
This will happen after the first ring. You are not provided the
phone number of the caller of course, but at least you can
maintain a record of such calls. Selecting yes to the provided
alert will place a check mark in the button to indicate your
selection. But when CID is enabled, the check mark will
disappear. It will return when CID is disabled if it was
previously present.
Print
You have the option to print to disk or printer. Each option
checks to see if there had been any call in the first place.
The print-to-printer option will check for if a printer is on-
line. The format is exactly the same for both when printed.
Printing to disk will first ask if you wish to append the new calls
to an existing file or create a new file. Then it will provide
the file selector with a default name. If you pick a file name
that doesn't exist, it will be created. If you do not want to
overwrite previous print-to-disk operations with the same name,
then pick alternate/serialized file names. Understand that this
print option has nothing to do with the NDX file.
Note: This uses the standard ST parallel printer port and the
Cprnout() function. It has only been tested on a dot-matrix
printer (as far as I know) and I don't know if this supports all
printer setups available of the Atari line.
Hide
This is the feature that removes the Main Dialog or the Call Alert
Dialog from the screen while CID is enabled. It only serves one
purpose, but it also requires the 'long' click. If the main
dialog is hidden, any received calls will present the 'Call Alert'
dialog. Selecting Caller ID from the Desk menu will open the
accessory again - still in the enabled mode.
If the main dialog is on the screen and CID ACC is enabled, the
Main Dialog will be closed and the Call Alert dialog will pop-up
if a call is received. Even the Call Alert Dialog will be updated
if it is on screen and another call is received.
Cancel
As mentioned before, it is a two purpose button: 1 - to quit/exit
the accessory; 2 - to disable CID (and a busybee indicates this
process).
Remember: All received calls are buffered whether CID is enable
or not. You can hide, unhide (select the accessory from the Desk
menu), disable, all as often as you want without affecting the
buffered data. But if you actually Cancel - not just disable -
you will lose all buffered data of received calls. Be sure to
print them if they are important.
Also, if you had previously set CID Mode, enabled it, and then
exit CID ACC, the check mark on CID Mode button will be gone.
This is because CID ACC cannot assume that nothing has changed
since the modem was last put in CID mode if the accessory has
been exited. The check mark is only provided after a successful
modem command or after leaving the enable mode. The Enable
button will still be selectable, though, if the On Line check
still passes. If you know nothing has changed in your modem, you
don't need to send the CID commands again.
Recovery Procedures
When CID ACC is enabled, the NDX file is open. When a call is
received, when you manipulate the NDX file, or when you scan
through your received calls, the program looks for an entry in
the NDX file. Any matches from use of the 'Find' option or a
received phone number results in a pointer established which
marks the position match in reference to the file. Somehow the
buffered file and the stored pointers do not match correctly.
This has happened when CID ACC was enabled while another
application was already active. This does not happen (to me
yet) if CID ACC is run first before opening other applications.
But if a pointer problem does occur, CID ACC detects it and gives
you the option of invoking a recovery procedure. If you decide
not to try the recovery, you will exit completely from CID. This
is so you can quickly exit CID ACC and start it again if no calls
have been received.
If calls have been received, you should attempt the recovery.
This will close the NDX file, open it again, create the the list
of pointers again, and run any received calls through the matching
process again. The buffered data from any phone numbers received
is not affected. If the recovery fails, an alert suggests
attempting to print your received caller data.
Note: If you are using another application when this occurs,
attempt the recovery when prompted. If it fails and you had
received calls previously, do not exit CID ACC. Any attempt at
this point to use operations requiring the NDX file will be locked
out, though. Instead, ensure CID ACC is enabled, then 'Hide' the
main dialog. This will clear the 'failure flag'. Now, save and
exit the current application you are running. When you are back
to the desktop, attempt your CID ACC operation that caused the
failure alert in the first place. If there is another failure,
answer yes to the recovery procedure question. Hopefully, from
the desktop everything will work fine. You can repeat the 'enable
& hide' again if you like. Eventually though, if it still
continues to fail, print your calls for the buffered caller data
and exit all the way out.
And in summary...
That's all there really is to it. Most options are self
explanatory and present alerts to help along the way. Any
problems, be sure to let me know. And even if you're not a
programmer, the Programming notes will be informative for all
users anyway.
A 'Walk-through'...
A description of the functions does not lend itself to the actual
use of a program. Here is a 'walk-through' of CID to assist in
daily use.
To Begin...
First, CID ACC must reside in the bootup drive (or where your
system loads it accessories from). Then a valid iNDeX
(CallerId.NDX) file must exist in that same directory. It can be
located elsewhere, you'll just have to find it with the file
selector at every session though. If after having read the
previous description of the NDX file and you are unsure of
creating one, just use the one provided and edit it. Remember
that each line of the NDX file must be exactly as described and
each line must have a carriage return (CR) at the end. New
entries from the File Dialog will take care of this for you.
So, if starting from scratch, just copy CID_D202.ACC and
CALLERID.NDX into your root directory and restart your computer.
On Line
Ensure your modem is on-line and select Caller ID from the Desk
(accessory) menu. A busy-bee indicates it has found the NDX file
and is checking for a modem on the modem port. If the NDX file
was not found, it will prompt for it. If the file still could not
be found, the program continues anyway. You cannot use CID ACC
for Caller ID purposes in this case, but you can still check out
its functions. If the modem is found, a check-mark is next to On
Line in the button. If you turn on the modem after selecting
Caller Id accessory, you can click on the On Line button which
will invoke a modem check again. Remember that CID ACC is not
designed to share the modem port with any other application. When
a modem is determined to be on line, the the CID Mode button is
selectable.
CID Mode
The CID Mode button presents the dialog to send the SupraModem
default command and the CID Mode command - both with one click of
the Send button. If all is OK, the OK box will no longer be
shaded. Do NOT put any other AT modem commands here that do not
directly support Caller ID. Returns other than 'OK' may corrupt
CID ACC's operation. When you return to the Main Dialog, there
will be a check mark in the CID Mode button and the Enable button
will be selectable. If you exit CID ACC and return, the check
mark will be removed from CID Mode button, but the Enable button
will still be selectable - this assumes the modem was not taken
out of CID mode. If you have used the modem for other purposes,
then send the CID Commands again.
Remember, you can invoke the CID Command, Enable CID ACC, and Hide
the dialog by a single click to the CID Mode button with the
(L.shift) depressed.
File
This presents the NDX file manipulation dialog. If you haven't
already done so, add some New entries of some local people you
know who ID data will be provided. Be sure to enter data into all
fields. Name and Comments can be any character/number combination
and do not have to take up the entire line. The Number field must
contain all ten numbers. The auto-hangup field must be upper-case
Y or N.
After adding a New entry, be sure to select the OK button with the
mouse. Simply hitting <return> will lose your entry. Once you
have selected OK (with the mouse), scroll your entries to ensure
they're there. If you have added several entries, it's best to
exit CID ACC completely so that they are written to your file and
disk. Then you can just reselect CID ACC again and continue here.
If you only made a few NDX file entries, you can procede. Just
remember that these entries are curerntly buffered. They'll still
be used during NDX file searches, but they're really not part of
the NDX file until you actually exit CID ACC completely.
Enable
Now that we're On Line, in CID Mode, and have a file with local
people entered into it, let's enable the program! This disables
some functions that can't be used while 'looking' for incoming
calls. You may leave this dialog on the screen or Hide it and run
something else with CID ACC in the background to do its thing.
CALL ME!
Now have someone call you, preferably someone whose number you
just entered into the NDX file. Even if their number is not in
you file, you'll still see how CID ACC works.
When a call is received and CID ACC is enabled, it will present the
Call Alert Dialog. It's best to wait until after the second ring
before answering the call because CID ACC is doing quite a bit
after the first ring - best not to rush anything.
Hangup Calls
If you have a caller flagged to be hungup on, the modem first
'picks up' the line, then after about 2 seconds it hangs it back
up. If you pick up the receiver soon after, they may still be on
the line. If you have ever been hungup on, you know you do not
get a dial tone for a while. It's the same thing here - the modem
was instructed to go 'off hook' then to go 'on hook'. But it
works great! Viewing calls via the Show option will indicate
whether the caller was hungup on. If you change the flag of an
NDX file entry after a call has been received, the Caller
Information display will reflect the current flag setting, not
necessarily what happened during the call.
Escape Squence for missing mouse
Remember that if you have another application running when a call
is received, the mouse might no be available. Just use the escape
sequence of <control> <L.shift> <alternate> simultaneously to Hide
the dialog. You can then select it again from the Desk menu.
Show
When CID ACC is enabled, selecting the Show button from the Main
Dialog will return to the Call Received Alert Dialog with the most
recent caller information. Select the Cancel button on the Main
Dialog to disable CID ACC in order to use Show for viewing caller
data. From the Caller Information dialog, you can scroll through
your calls and ADD any new numbers received. It's best to exit
completely out of CID ACC to write any changes to you NDX file if
you have ADDed any new calls. Remember that any numbers added
will update that Caller Information displayed but not all calls
received from that same number during the same 'enabled' session.
Disabling CID ACC
Select Cancel to disable CID ACC. It will take a longer click
than normal alert dialog buttons. Remember to release the mouse
button once it changes to a busy-bee if disabling CID ACC.
Exiting CID ACC
Selecting the Cancel button when CID ACC is not enabled will
completely exit the accessory. If you have received calls and
have not printed them, CID ACC will alert you to the fact.
Exiting the accessory also closes the NDX file and writes any
changes you may have made to it.
Supporting Utilities
Toad Computers recently released a utility that will tell you
numerous specs about your modem, including whether is has Caller
Id capabilities. If you are unsure whether you have Caller Id
capabilities in your modem, this will tell you.
Programming Notes
I bought C-Manship Complete, then Lattice C, but I have NOT
purchased the Atari developer's kit (though I thought about buying
some parts of it). I had no programming experience prior to
C-Manship and Lattice C. I now belong to GEnie and look for
programming tips and hints there. There is a Caller ID topic
(Telecommunications BB category 8, topic 23) where information
concerning Caller Id can be discussed.
If any of you have 'struggled' with the exact same scenario as I
and tried to develop a worth-while program, you probably look as
rough as I do and have no friends. There ought to be a
brotherhood organization for those of us who tolerate such self-
abuse (preferably one with padded walls and all the Atari toys
that will fit).
Anyway, for all the dialogs present, there is only one function
that opens all objects and only one function closes all objects.
I had serious screen-redraw problems. It seems every application
wanted to redraw after, thus on top of, all of my CID.ACC dialogs.
This was resolved by a 250 millisecond evnt_timer() call at the
end of my close_object() function so drawing of objects would
happen after its redraws. I came up with some good code to put my
dialogs in windows - perhaps for a multitasking environment, but
without such an environment to test with I opted for just dialogs.
As most programmers know, functions such as form_do() and
evnt_msg() suspend operations waiting for something specific. In
the mean time, the process is in limbo - not doing squawt. Now, I
have no idea how other programs do things while at the same time
waiting on these functions, but I resorted to graf_mkstate() and
objc_find() to find 'button clicks' while CID is enabled. As hard
as this work-around was to come up with for me, I deserve a one
hour 'all you take' free shopping spree at TOAD for my efforts.
And not to slight Lattice C, I sure wish there were more examples
and function descriptions than were provided. Most 'examples on
disk' were not provided. A letter to HiSoft resulted in zilch.
Using the RSC decompiler to have imbedded .rsc code was nice, but
getting the rscs_init() function in the exact place so that the
menu_register() call would place Caller Id in the menu through me
for a loop. Some serious trial and error. The reason I think
Lattice may be suspect is that all documentation I have on
accessories (and that's not much) indicates msg_buf[3] will be the
accessory's menu id. I can only get the proper menu item
identified when looking for msg_buf[4]. Don't get me wrong,
Lattice C was a good choice, just kind of tough for a beginner.
But I don't think anything is better and as powerful.
I finally figured out that _addheap was needed to provide buffer
space when I used setvbuf() for file operations - due to accessory
and malloc/Malloc restrictions. But I still don't have a clue as
to determining whether STACK space needs to be increased from the
4k default. I increase it to 8k just to be safe. But where is
there good information on STACK, _addheap, environment variables
and paths, etc? Must I buy the developers' kit?...and which
'sections'? I hope Lattice 5.6 has better examples of function
usage.
As mentioned before, I think that if CallerID Accessory is run and
enabled after some applications are opened, exiting certain
applications sends a 'close all opened files' which affects
CallerId.NDX. Every fseek(...) calls fails in this scenario. If
CID.ACC is run and enabled before another application is run,
there is never a problem, only when CID.ACC is run and enabled
while another application is running. And even then is runs fine
until the other application is exited and closes files. My
recovery procedure is to flush, reopen the file, and send all
received phone numbers through my 'search for match' routines.
Anybody got any ideas?
I really tried to minimize the amount of functions needed.
Several are used in many different ways based on flags I set. But
any Atari programming expert could probably squeeze it more.
As for *pointers, this has them out the ying-yang. But isn't that
what 'code' is all about? Anytime I take a few weeks off from this
for other projects, I am seriously lost when I return. Talk about
biting off more than you can chew. I ended up with so much nested
activity, I don't know how a real mumbly does it!
As vain as this may sound, for something that may appear rather
simple to some people, I am really proud of myself and think
anybody who has reached this point of this read_me doc should send
me a million dollars so I won't be tempted to program again.
What I would really like to do is make things happen via the
cartridge slot. I have a fabulous idea and I might have to break
down and buy Atari's documentation for it. There are not enough
programs (for any platform) that takes results from a program and
does anything more than put it on a printer page. Where are all
the cool things that computers can do besides output to a printer
or screen? The midi interface for music devices should just be
the tip of the iceberg!
New in 2.00
- Now prompted to 'print' call data when exiting if calls were
received and you haven't done so.
- You can now scroll through your NDX file.
- You can append your disk 'printing' of calls to an existing
file.
- Shows number of caller in Call Alert Dialog even if it wasn't
in the NDX file (if provided in the call, naturally).
- You can return to the Main Dialog from the Call Alert Dialog.
- ERROR Recovery Procedure to prevent loss of data!
- Updated Manual
Changes:
2.01 contains a few upgrades from 2.00. There are some better
drawing routines, but the primary enhancement is the ability
to identify a call by the area code and prefix only - ignoring
the last four digits of the incoming phone number. This is from
a user's suggestion who stated that in his area, most phone
solicitors are assigned a common prefix and that he would like to
auto-hangup on specific prefixs. Well, now you can. Make an
iNDeX file entry with all required entries, but for the phone
number make the last 4 digits XXXX - that's 4 capital Xs.
Understand that these are not wild cards, just an identifier to
the program. During an incoming call, the program compares
the received number with the iNDeX file entries one at a time.
Just prior to the comparison, the program looks to see if the
number in the iNDeX file has the 4 Xs. If so, then only the
area code and the prefix are compared between the received
phone number and the iNDeX file entry. If those six digits
match, then that entry is flagged and no more comparisons
are performed. If you want to auto-hangup on this prefix,
then identify it as such in the iNDeX entry. But remember,
no other phone numbers with the same area code and prefix will
be compared if there is a match.
2.02 fixes a redraw problem in the 'Show' Caller Identification
dialog (that I feel really stupid about not catching earlier!).
Final Note...
All suggestions and recommendations are welcomed. 2.00 includes
enhancements from several users - some not so noticable. However,
doing more to enhance CID ACC generally increases its size and I'd
like to avoid that as much as possible. There are a few things I
plan to do for a future release if feasible. Even if you are just
using the demo version and have no plans to purchase the shareware
version, your input is just as important - especially if it is a
bug. Any revisions will still be sent to registered owners free
of charge.
Paul D. Lyon
1104 Charter Ct.
Virginia Beach, VA 23454
Phone # - (804) 422-2205
P.LYON1
(GEnie)