home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / utility / misc / cid_d202 / read_me.cid < prev   
Text File  |  1995-01-04  |  46KB  |  997 lines

  1. CALLERID Accessory Utility (DEMO Version 2.02)  
  2.  
  3. 04 JAN 95
  4.  
  5.  
  6. This is the DEMO version of Caller ID Accessory.  Feel free to 
  7. use the 2.02 demo version with no obligation.
  8.  
  9.  
  10. NOTE:  No warranty is expressed or implied.  Use of this software 
  11. is at your own risk.  Paul Lyon cannot be held responsible for 
  12. any damage, loss of data, or any other 'complications/problems' 
  13. from use of this software.  Ensure the following 3 files are 
  14. together: 
  15.  
  16. 1) READ_ME.CID (this document) 
  17. 2) CID_D202.ACC (the accessory) 
  18. 3) CALLERID.NDX (the index file)   
  19.  
  20. This program reads and writes to disk. 
  21. Again - USE AT YOUR OWN RISK!
  22.  
  23.  
  24. NOTE:  Caller ID Accessory requires Caller ID service from your
  25. phone company and a modem (preferably Supra) with Caller ID
  26. capabilities.   It also does not appear to be MultiTOS compatible.
  27.  
  28. NOTE:  Always run and enable CID.ACC first before you run other 
  29. applications.  For some reason (at least unknown to me), when you
  30. exit other applications, some will 'close' the CallerID.NDX file.
  31. A newly added recovery procedure can 'resolve' this, but it is 
  32. an unnecessary task that can be avoided by enabling CID.ACC before
  33. you launch any other programs. 
  34.  
  35. NOTE:  If for some reason you get a TOS #6 alert (fseek() error),
  36. you should immediately be prompted if you want to invoke the
  37. recovery procedures.  If not, you will be locked out from 
  38. accessing the NDX file and 'Show'ing any received calls.  If you
  39. wish to use the recover procedure, do NOT completely exit out of
  40. the program.  'Enable' and 'Hide' the accessory, then select the
  41. accessory again.  Disable it and try your file or show option 
  42. again.  You should still get the error alert, but it will 
  43. immediately be followed by the recovery prompt.  The 'Hide' 
  44. option will clear the temporary error flag so that you may
  45. re-attempt your action again.  This will make sense once you are
  46. familiar with CID.ACC.
  47.  
  48. While managing your received calls and you ADD some new 
  49. numbers from the calls, it is best if you completely exit the 
  50. program so it may write them to the .NDX file.  All call data and 
  51. 'new/add' data is buffered.  Exiting the program will close the 
  52. .NDX file and write to it all new data.  Manipulating the .NDX 
  53. file and managing new incoming calls creates the potential for 
  54. unwanted loss of data if something happens with all that data 
  55. just being buffered.  Version 2.00's manual recovery procedure 
  56. should correct it if the file pointers get corrupted.  
  57. Unfortunately, however, this may not solve all problems that 
  58. could be encountered during a 'computing session'.
  59.  
  60. CallerID Accessory is designed to run with other GEM applications.
  61. If a TOS program is running, than CID cannot work when a call is 
  62. received.  If a GEM program is currently in the middle of some 
  63. action that is exclusively using the processor (not currently
  64. able to 'event-loop'), then Caller ID cannot instantly process
  65. the call, but it will when that particular process is complete. 
  66.  
  67. See changes from 2.00 to 2.02 at the end of this file.
  68.  
  69. With that out of the way, understand that I wrote this program 
  70. and have used it hundreds of times without any big problem so you  
  71. shouldn't have any at all.  However, until you are comfortable  
  72. that CID Accessory works on your system fine, it is wise to  
  73. perform consistent 'saves' if creating files with other  
  74. applications while CID Accessory is running in the background.   
  75. There are some 'misbehaved' programs (maybe even mine) that don't  
  76. work well with others.  Get used to CID from the desktop first,  
  77. then solicit some test calls from someone (I requested 'ringbacks'  
  78. from the phone company quite often).  Repeat the testing while  
  79. another application is running to see if they are compatible.  And  
  80. even when you are comfortable everything is fine, still practice  
  81. consistent saves of your files.  I'd hate for my program to be  
  82. blamed for any loss.
  83.  
  84. Note:  There are no known bugs (yeh, right) in this program.   
  85. However, any anomalies that I could not correct or chose not to  
  86. for various reason are noted in this text.  The Programmer's Notes  
  87. will include these as well.  If there is something I noted that I  
  88. could not change/correct, I am open to suggestions.  This was  
  89. developed with Lattice 5.52 on a 1040ST with 2.5 megs, 2 hard  
  90. drives, TOS 2.06, and lots of bad coffee, cheap cigarettes,  
  91. sleepless nights, questionable documentation, bloodshot eyes,  
  92. endless trial-and-error, serious bad breath, and one heck of a 
  93. desire to upgrade to Lattice 5.6, a Falcon, and a TT.
  94.  
  95. Also be aware that only one program at a time can access data on
  96. the serial port.  There may be an exception when multiple 
  97. applications are purposely designed to share data exchanged via the
  98. serial port.  Caller ID is NOT designed this way and should NOT be 
  99. 'Enabled' when a terminal program or any other application is running
  100. and looking for data on the serial (modem) port. 
  101.  
  102. CID.ACC has a .NDX file limit of 128 entries and is limited to
  103. 32 calls before needing the buffers cleared (the demo is limited
  104. to only 3 calls, but all other features are available).
  105.  
  106.  
  107.  
  108. Caller Id Service defined and Caller ID Accessory:
  109.   
  110. Well, Caller Id (as from the phone company) only provides the  
  111. date, time, and number of the calling person (the name is supposed 
  112. to be supplied in the future sometime). Also, a person can now  
  113. choose to 'block' their number from being viewed when placing a  
  114. call - Per Call Blocking.
  115.  
  116. If there are multiple phone companies in your area, you may not  
  117. get the Id data if the call is from a different service.  But we  
  118. are on the verge of the "Information Hiway", so it should be  
  119. national before too long.  
  120.  
  121. With a special device hooked up to the phone, you can view this  
  122. information - date, time, and number.  If the ID was blocked,  
  123. you'll only see the letter 'P' in place of a number.   With a  
  124. modem that has CallerId capability, this CallerId data can be  
  125. viewed on your computer, but only if you have a terminal program  
  126. running.  
  127.  
  128. It looks like this:
  129.  
  130. RING
  131. DATE=0108 
  132. TIME=1705 
  133. NMBR=8044222205
  134. RING
  135.  
  136. NAME=....is another line that may appear after the NMBR line if 
  137. you have Caller ID Service 'Deluxe'.  CID Accessory is designed to 
  138. handle it, if it is provided.
  139.  
  140. In addition to Per Call Blocking, if you have Caller Id service  
  141. (or for an additional $3 per month if you don't), you can invoke  
  142. Anonymous Call Rejection.  If activated, any 'blocked' calls will  
  143. automatically be rejected - your phone won't even ring.  Caller Id  
  144. accessory can be used to hang-up on any 'blocked' calls, and  
  145. you'll have a record of when you received the call!
  146.  
  147. Anyway, if you are using just a  computer and terminal program 
  148. to view this data, it is somewhat limited.  If you don't have 
  149. multi-tasking, then you must run a terminal program accessory (of 
  150. which there are very few) if you want to use your computer for  
  151. other things while 'capturing' the CID data.  But surely this is
  152. not enough to justify the service...until now!
  153.  
  154. CALLER ID ACCESSORY!
  155.  
  156. What can CALLERID Accessory do?   When a call is received, it:
  157.  
  158. -Searches your Index to display an Index name after 1st ring 
  159. -Can automatically Hang-up on a number if you desire 
  160. -Identify 'Blocked' calls and hang-up on them if desired 
  161. -Keeps track of the number of calls 
  162. -Keeps track of date, time, and number of rings per call 
  163. -Print to disk or to printer the above data for record purposes  
  164. -Let's you automatically add a received number to your Index
  165.  
  166. This can be great for a business because you'll know who the  
  167. client is and be prepared before you even answer the phone!
  168.  
  169.  
  170. With CID Accessory, you are free to use your computer for anything 
  171. (accept a terminal program which will want to capture the CID data  
  172. also) while it is in the background ready to process the ID data.
  173.  
  174. With CID Accessory, you create and maintain an Index file which 
  175. CID Accessory searches when a call is received.  If it finds a 
  176. match, it shows you the matching name automatically before  
  177. the second ring!  If there is no match but the number is provided, 
  178. then you can automatically add this number to the Index file and  
  179. enter an appropriate name for display the next time a call is  
  180. received from that number!  CID Accessory also converts the 4- 
  181. digit date to a 3-character month abbreviation with 2 digit date.
  182.  
  183. Caller Id is primarily for screening calls.  Most people use an 
  184. answering machine for this.  But a lot of people who call and get 
  185. an answering machine won't leave a message (maybe they think they  
  186. are being screened?).  With CID Accessory, you can view an actual 
  187. name vice trying to quickly interpret 10 numbers.  Then you'll 
  188. know whether you want to answer the call or not, and know who it 
  189. is even if they don't leave a message!
  190.  
  191. You can even define a number to be Hung-up on if you wish (they  
  192. can't even leave a message on your answering machine).  Just flag 
  193. the entry in the CallerId Index for "Auto Hang-up: Y", and after  
  194. the first ring...click, (pause) click!  
  195.  
  196. Hang-up on Blocked calls  will hang-up after the first ring - there 
  197. is no way to tell who is calling anyway, but you'll have a record 
  198. of it happening.
  199.  
  200. And you don't have to be present - CallerId Accessory will do all 
  201. this unattended (except for adding numbers - you have to make 
  202. that choice).
  203.  
  204. If you are gone for the weekend, your answering machine may tell 
  205. you that you only got two calls, but CallerId Accessory will tell 
  206. you:
  207.  
  208. - how many different calls (even if they don't leave a message) 
  209. - the number of the caller (if the Caller Id service provides it) 
  210. - time and date of each call (even if number is not provided) 
  211. - name of the caller as per your CID Index file 
  212. - how many times the phone actually rang per call 
  213. - if the Id was 'blocked' 
  214. - hard copy record (proof) 
  215. - and whether you had CallerId Accessory hang-up on them!
  216.  
  217. Once you use this, you'll leave it running all the time!
  218.  
  219. One user recently told of how he keeps a record of local phone
  220. solicitors to auto-hangup on!
  221.  
  222. One word of warning.  If you choose to auto-hangup on someone who
  223. calls regularly, be prepared for them to call several times in a
  224. row.  The only problem with this is you'll probably die laughing
  225. at the thought of them trying to get through!  CID ACC tells you
  226. if you hungup on someone when you check your calls - even if it is
  227. several times.  But beware, you'll have to do some explaining if
  228. they call and your not running CID ACC.  They're immediately going
  229. to say "Something's wrong with your phone 'cause the other day
  230. when I called it kept disconnecting me...I couldn't leave a 
  231. message...I told you not to buy that modem...blah, blah, blah..."
  232.  
  233.  
  234. The shareware version is still only $15 and comes with a booklet 
  235. for easier operation than a read.me file.  
  236.  
  237. Also included with the shareware version are some other interesting
  238. shareware products from various programmers.
  239.  
  240.  
  241. Paul Lyon 
  242. CID Offer 
  243. 1104 Charter Ct. 
  244. Virginia Beach VA  23454
  245. (804) 422-2205
  246.  
  247.  
  248.  
  249. Caller ID Accessory
  250.  
  251. First, understand that this program will do you little good if  
  252. you don't have Caller Id service to your phone line from the 
  253. local phone company, and you must have CallerId capability with 
  254. your modem.  You can still investigate the program, though. 
  255. Caller Id service is an additional cost to regular service 
  256. (about $6+ a month) and the your modem (or some other device) must 
  257. be able to send the ID data to your computer.  This program was 
  258. written to support the SupraFaxModem with the CallerID upgrade. 
  259. It could possibly support other CID capabilities (but I know of 
  260. no others).
  261.  
  262. Second, if for some reason this program does not work with your 
  263. modem or CallerId service, I will 'adjust' this program to make it 
  264. compatible.  But this will require additional information from you 
  265. (modem stats, Caller Id format, etc.). 
  266.  
  267.  
  268.  
  269. OPERATION of CID ACC
  270.  
  271. iNDeX File...
  272.  
  273. First, as with any other standard accessory, CID_D202.ACC must  
  274. reside in the bootup directory.  In addition, the CALLERID.NDX  
  275. file should be there also.  The file selector will prompt for  
  276. the .NDX file if it does not find it when you open the accessory.
  277. The .NDX file supplied contains me and a couple of other entries.   
  278. You can create your own .NDX file or let the accessory create it 
  279. for you.  This is a standard ASCII file, but it must be in the 
  280. following format:
  281.  
  282. 8044222205 
  283. Paul D. Lyon 
  284. CID Programmer 
  285. 4105446943 
  286. Toad Computers 
  287. My favorite Dealer 
  288. 5555551234 
  289. Phone Solicitor! 
  290. Oops, Auto-hangup! 
  291. Y
  292.  
  293. and so on for as many entries as you like.  
  294.  
  295. 1st line: phone number  must be 10 digits, no more - no less. 
  296. 2nd line: name up to 30 characters max. 
  297. 3rd line: comment up to 25 characters max. 
  298. 4th line: single character, capital Y or N for 'hangup' flag.
  299.  
  300. 4 lines for each file entry with no blank lines. 
  301.  
  302. More on the .NDX file is discussed later.  For your first look at  
  303. the program, just use this NDX file provided.   
  304.  
  305. And here's where you start.  From the Desk menu, select Caller ID.   
  306. It will immediately attempt to open the .NDX file.  When CALLERID 
  307. is selected, it opens the .NDX file and  brings you to the main 
  308. dialog (that's my picture on the front!).  Now for a description 
  309. of each button on the main dialog:
  310.  
  311.  
  312. On Line 
  313.  
  314. CID.ACC always check to see if a modem is present (sends the AT  
  315. command) when selected from the Desk Menu while disabled.  If it 
  316. detects one, a check mark will appear in the button.  Clicking on 
  317. this button just repeats it.  If the modem is off when the button 
  318. is click and a check mark was present, it will remove the check 
  319. mark.  If the modem is on and there is no check mark, click the 
  320. button.  If there is still no check mark, then you are not using 
  321. the standard ST serial line.
  322.  
  323. CID Mode 
  324.  
  325. This button is disabled (shadowed) if a modem is not present  
  326. during initialization.  If a modem is determined to be present,  
  327. then the button is selectable.
  328.  
  329. Once CID Mode button is selected, the CID Command dialog is shown.   
  330. This presents two lines of AT commands that can be sent to the  
  331. modem.  The first command is the default settings for the  
  332. SupraFaxModem.  The second command is the Caller ID command to set  
  333. the mode to Caller ID mode.  These fields can be edited to your  
  334. requirements, BUT (warning!) you do not want to send just any  
  335. modem command.  Caller Id accessory only looks for 'OK' being  
  336. returned and other returns may create problems for you.  Once the  
  337. data lines satisfy your Caller Id requirements, click Send.  If  
  338. both lines return 'OK', then the currently disabled OK box will  
  339. become normal.  Exit returns you to the main dialog where the Mode  
  340. button will now have a check mark.  CID ACC does not support 
  341. hexidecimal format.
  342.  
  343. Note:  Once you are comfortable with the CID accessory and all 
  344. built-in default settings work for your system, the you can invoke
  345. the 'quick sequence'.  When the main dialog shows up, you can hold
  346. down the <L.shift> key when selecting CID Mode which will: 1) send
  347. the CID AT command to the modem, 2) put it in 'Enable' mode, and 
  348. 3) hide the main dialog.  This saves you from having to perform
  349. an additional 4 'clicks' whenever you initialize CID ACC.  But 
  350. it's highly recommended you become familiar with the 'long'
  351. way of operating CID ACC before using short-cuts - just so you
  352. know what's actually happening.
  353.  
  354. File 
  355.  
  356. The File button provides access to the CID Index File dialog.   
  357. From here you can add, delete, or edit entries.  NOTE:  if you  
  358. have ten entries in your NDX file and you edit entry number 2, it  
  359. will be erased from its current position and written to the end of  
  360. the file.  It saved more code requirements to do it this way (at  
  361. least for me).  Caller Id is not a nation-wide service but you 
  362. still need to include the area code in the file because Caller Id 
  363. always provides it and NDX searches use the entire number.   
  364. Someday, CID should be available on a national level.
  365.  
  366. Anyway, this dialog should only be used to add entries primarily.   
  367. If you intend to do extensive and frequent editing of your NDX,  
  368. you should use an ASCII editor instead.  The file dialog is very  
  369. useful to ensure a proper format.  But creating an extensive file  
  370. and the reducing it (i.e., 30 entries down to just 10) will cause  
  371. 'ghost' characters at the end of the file that could corrupt it.   
  372. A good rule of thumb to ensure a good NDX file is created and  
  373. maintained with this dialog is that for every entry removed, a new  
  374. should be added.  So your total number of entries never actually  
  375. decreases this way.  But if you decide to use an ASCII file to  
  376. create on your own, remember the format must be as previously 
  377. described and each line, INCLUDING the last line, MUST have a 
  378. carriage return (CR) at the end of it.  Caller Id accessory 
  379. 'counts' CRs for file-pointer positioning during its search for a 
  380. file match.  CallerId is designed to manage a total of 128 NDX 
  381. file entries.
  382.  
  383. Note:  Caller ID accessory buffers all new data entered into (or
  384. changed in) the iNDeX file.  It writes most of the data to the file
  385. on disk after program exit (completely 'cancel'ing out of the
  386. accessory).  As such, you should not do extensive manipulation
  387. of the iNDeX file and still manage incoming calls.  When the
  388. file has been 'altered' and program exited, recall your last entry
  389. with the 'Find' option.  If the file is ever corrupt, use a text 
  390. editor to find the problem.
  391.  
  392. - New
  393. Select the New button to put in a new entry.  It will present the 
  394. same dialog but all fields will be blank.  Be sure to enter data in 
  395. all fields.  Name and Comment fields do not have to be completely
  396. filled in, but they do require something entered.  They can be any 
  397. combination of characters and numbers, upper or lower case.  The 
  398. Number field requires a complete ten digit number.  An alert will 
  399. warn you if a line is left blank.  And the Auto-Hangup option must 
  400. be either a capital Y or N - upper case only.  
  401.  
  402.  
  403. - Remove
  404. It simply removes the entry from your NDX file.  Remember to avoid
  405. removing more entries than you add because of the potential for
  406. 'ghost' characters.  So far this hasn't been a problem.  But if you
  407. plan to remove several entries, use a text editor and save as an
  408. ASCII file.
  409.  
  410. - Edit
  411. The Edit button will present a cursor on the first line.  Use your
  412. keyboard cursors keys to move the cursor around.  Selecting Cancel 
  413. after making any changes exits the dialog without doing anything 
  414. to the file.  Selecting OK will make all changes, but the edited 
  415. entry is moved to the end of the file.   
  416.  
  417. - Find
  418. The Find button presents a Search dialog that allows for a FILE  
  419. NAME search of the data base.  It must be case specific, but the  
  420. line entered does not have to match exactly the file name entry.   
  421. For example, a file name of  '5Big Bob Johnston' would be found if  
  422. just 5, or Big, Bob, Big Bob, Johnston, Bob Johnston, Big Bob  
  423. Johnston, 5Big, etc. were entered as the search criteria.  It  
  424. looks for a matching string.  However, a search entry of Big  
  425. Johnston would not match.  The search must find a matching string  
  426. somewhere in the comparison of the search entry and in one of the  
  427. file names.  If two entries share a search entry, then the first  
  428. will be found.  
  429.  
  430. Caller Id accessory version 2.00 now allows you to scroll your 
  431. NDX file.  It is still advisable to maintain a paper copy of
  432. your NDX file.  
  433.  
  434. At this point, go ahead and add some entries of people of whom you  
  435. know their number will be provided by Caller Id (if you have the  
  436. service).  By the end of this document you'll be dying for some  
  437. test calls.  
  438.  
  439.  
  440. Clear Buff 
  441.  
  442. Clear Buff clears out all data of received calls.  It does not  
  443. affect the NDX file.  When the 32 call limit of CID has been  
  444. reached, it will not process any more received calls.  If CID is 
  445. 'Cancel'ed while in the 'disabled' mode, it will clear the buffers 
  446. automatically.  Clearing the buffers resets all pointers as if no 
  447. calls had been received.  Be sure to print your calls before you
  448. clear the buffers if the calls are important to you.  An alert
  449. will warn you if you have newly received call data and you 
  450. attempt to exit out of the program without having printed the 
  451. calls.
  452.  
  453. Show
  454.  
  455. As you have probably noticed, the main dialog has two buttons with  
  456. an asterisks (*) next to them.  That's because they have dual  
  457. roles.  So remember that the Show button has two roles.  
  458.  
  459. When Caller Id accessory is not enabled, it will allow you to 
  460. view each received call one at a time.  If Caller Id is enabled, 
  461. then it will show only the most recent call.  If no calls have 
  462. been received when Show is clicked, it will indicate as such.  
  463. More on 'enabled' follows later.  But if calls have been received 
  464. and CID in currently not enabled, you can scroll through the calls.   
  465. It will indicate number of rings, number of calls left to view, if  
  466. the ID was blocked, if the caller was hung up on, and the ADD  
  467. button will be selectable if a number is provided in the call and  
  468. it is not already in the NDX.  Selecting ADD and providing all  
  469. additional required data in the subsequent dialog will write the  
  470. new entry to the end of the NDX file.
  471.  
  472. Note:  If there is more than one call from the SAME number where a  
  473. number is provided and you ADD one to your NDX, the same number in  
  474. the other calls previously received calls of that same number will 
  475. still indicate that the number was not in the NDX.  That is 
  476. because a pointer for that call indicates it wasn't in the NDX.  
  477. Any new calls from that number after the addition will reflect the 
  478. new NDX entry though.   The one just added will be updated in the 
  479. Show file.  And if you change the Hangup feature of a call 
  480. received after the fact, Show will indicate if the call was hungup 
  481. on based on the flag of the file entry, not necessarily if it was 
  482. actually hungup on.  Changes midstream to any file entries may not 
  483. always reflect exactly what happened when the call was received.  
  484. If and when you do ADD some new numbers,  it is best to immediately 
  485. cancel all the way out of the program so that the iNDeX file is 
  486. completely written and properly closed.  Otherwise, if there is 
  487. a system problem and it crashes or you have to reset, all that
  488. new NDX file information is going to be lost because it is only
  489. being buffered until CID ACC is exited.
  490.  
  491.  
  492. Enabled 
  493.  
  494. If the NDX file has been read correctly and the modem is in CID  
  495. mode, clicking this button will 'enable' the CID utility.  Once  
  496. enabled, several of the buttons are no longer selectable.  The  
  497. buttons that are available are selected a little bit differently  
  498. than with normal dialogs so the required 'click' must be held in  
  499. place for a few milliseconds longer.  A quick click won't select  
  500. an available button while in the enabled mode.
  501.  
  502. You may select *Show again while enabled.  This different dialog  
  503. is what you'll see pop-up on your screen when a call is received, 
  504. referred to as the Call Alert dialog.  If you select it while CID 
  505. is enabled and no calls have been received, it will indicate as 
  506. such.  When a call is received, it is here where an NDX matching 
  507. name is shown immediately after the first ring (remember it 
  508. pops-up automatically when CID is enabled and a call is received).  
  509. If there is a number but no match in your file, the number is 
  510. shown and indicates it was not in your NDX file.  If there is no 
  511. number provided, it says so.  And if the ID is block, it says so 
  512. also!
  513.  
  514.  
  515. This is an important note!
  516.  
  517. Included is an escape of <cntrl> <l.shft> <alt> to close the 
  518. "Received Call" dialog if another application has turned off the
  519. mouse.  It can be used even if the mouse is present.  (For a 
  520. long time I thought my program was crashing the system when a 
  521. call was received because there was no mouse to close the dialog.
  522. It finally hit me that it is a programming option to have a
  523. mouse present or not and some applications turn them off - 
  524. particularly word processors.)
  525.  
  526. Cancel
  527.  
  528. This button has two roles, indicated as such by the *.
  529. Selecting Cancel will disable CID.  But it takes a long click.   
  530. When the mouse turns into a busy-bee, it is currently disabling  
  531. and you should immediately release the button so that clicks are  
  532. not accidently read by Cancel of the main dialog when not enabled  
  533. (remember, the * indicates two roles: 1 - to disable; 2 - to exit  
  534. the main dialog and exit the program which will clear all your  
  535. buffers of all your calls).
  536.  
  537. Remember, CID accessory will not 'grab' any calls if not enabled.
  538.  
  539. HU on BLK
  540.  
  541. You have the option to automatically hangup on all blocked calls.   
  542. This will happen after the first ring.  You are not provided the  
  543. phone number of the caller of course, but at least you can  
  544. maintain a record of such calls.  Selecting yes to the provided  
  545. alert will place a check mark in the button to indicate your  
  546. selection.  But when CID is enabled, the check mark will  
  547. disappear.  It will return when CID is disabled if it was  
  548. previously present.
  549.  
  550. Print
  551.  
  552. You have the option to print to disk or printer.  Each option  
  553. checks to see if there had been any call in the first place.   
  554. The print-to-printer option will check for if a printer is on- 
  555. line.  The format is exactly the same for both when printed.   
  556. Printing to disk will first ask if you wish to append the new calls
  557. to an existing file or create a new file.  Then it will provide 
  558. the file selector with a default name.  If you pick a file name 
  559. that doesn't exist, it will be created.  If you do not want to 
  560. overwrite previous print-to-disk operations with the same name, 
  561. then pick alternate/serialized file names.  Understand that this 
  562. print option has nothing to do with the NDX file.
  563.  
  564. Note:  This uses the standard ST parallel printer port and the  
  565. Cprnout() function.  It has only been tested on a dot-matrix  
  566. printer (as far as I know) and I don't know if this supports all  
  567. printer setups available of the Atari line.
  568.  
  569. Hide 
  570.  
  571. This is the feature that removes the Main Dialog or the Call Alert 
  572. Dialog from the screen while CID is enabled.  It only serves one 
  573. purpose, but it also requires the 'long' click.  If the main 
  574. dialog is hidden, any received calls will present the 'Call Alert' 
  575. dialog.  Selecting Caller ID from the Desk menu will open the 
  576. accessory again - still in the enabled mode.
  577.  
  578. If the main dialog is on the screen and CID ACC is enabled, the 
  579. Main Dialog will be closed and the Call Alert dialog will pop-up 
  580. if a call is received.  Even the Call Alert Dialog will be updated
  581. if it is on screen and another call is received. 
  582.  
  583. Cancel
  584.   
  585. As mentioned before, it is a two purpose button: 1 - to quit/exit  
  586. the accessory; 2 - to disable CID (and a busybee indicates this  
  587. process).
  588.  
  589. Remember:  All received calls are buffered whether CID is enable  
  590. or not.  You can hide, unhide (select the accessory from the Desk  
  591. menu), disable, all as often as you want without affecting the  
  592. buffered data.  But if you actually Cancel - not just disable -  
  593. you will lose all buffered data of received calls.  Be sure to 
  594. print them if they are important.
  595.  
  596. Also, if you had previously set CID Mode, enabled it, and then
  597. exit CID ACC, the check mark on CID Mode button will be gone.
  598. This is because CID ACC cannot assume that nothing has changed
  599. since the modem was last put in CID mode if the accessory has 
  600. been exited.  The check mark is only provided after a successful
  601. modem command or after leaving the enable mode.  The Enable
  602. button will still be selectable, though, if the On Line check
  603. still passes.  If you know nothing has changed in your modem, you
  604. don't need to send the CID commands again.
  605.  
  606.  
  607. Recovery Procedures
  608.  
  609. When CID ACC is enabled, the NDX file is open.  When a call is 
  610. received, when you manipulate the NDX file, or when you scan
  611. through your received calls, the program looks for an entry in
  612. the NDX file.  Any matches from use of the 'Find' option or a
  613. received phone number results in a pointer established which 
  614. marks the position match in reference to the file.  Somehow the
  615. buffered file and the stored pointers do not match correctly.  
  616. This has happened when CID ACC was enabled while another 
  617. application was already active.  This does not happen (to me 
  618. yet) if CID ACC is run first before opening other applications.
  619.  
  620. But if a pointer problem does occur, CID ACC detects it and gives
  621. you the option of invoking a recovery procedure.  If you decide
  622. not to try the recovery, you will exit completely from CID.  This
  623. is so you can quickly exit CID ACC and start it again if no calls
  624. have been received.
  625.  
  626. If calls have been received, you should attempt the recovery.  
  627. This will close the NDX file,  open it again,  create the the list 
  628. of pointers again, and run any received calls through the matching 
  629. process again.  The buffered data from any phone numbers received 
  630. is  not  affected.   If  the recovery  fails,  an  alert  suggests 
  631. attempting to print your received caller data.
  632.  
  633. Note:   If you  are using another application when  this  occurs, 
  634. attempt  the  recovery when prompted.   If it fails  and  you  had 
  635. received calls previously,  do not exit CID ACC.   Any attempt  at 
  636. this point to use operations requiring the NDX file will be locked 
  637. out,  though.  Instead, ensure CID ACC is enabled, then 'Hide' the 
  638. main dialog.   This will clear the 'failure flag'.   Now, save and 
  639. exit the current application you are running.   When you are  back 
  640. to  the desktop,  attempt your CID ACC operation that  caused  the 
  641. failure  alert in the first place.   If there is another  failure, 
  642. answer yes to the recovery procedure  question.   Hopefully,  from 
  643. the desktop everything will work fine.  You can repeat the 'enable 
  644. &  hide'  again  if you like.   Eventually  though,  if  it  still 
  645. continues to fail,  print your calls for the buffered caller  data 
  646. and exit all the way out.
  647.  
  648.  
  649.  
  650.  
  651.  
  652. And in summary...
  653. That's all there really is to it.  Most options are self  
  654. explanatory and present alerts to help along the way.  Any  
  655. problems, be sure to let me know.  And even if you're not a  
  656. programmer, the Programming notes will be informative for all 
  657. users anyway.
  658.  
  659.  
  660. A 'Walk-through'...
  661.  
  662. A description of the functions does not lend itself to the actual 
  663. use  of a program.   Here is a 'walk-through' of CID to assist  in 
  664. daily use.
  665.  
  666. To Begin...
  667.  
  668. First,  CID  ACC  must reside in the bootup drive (or  where  your 
  669. system   loads  it  accessories  from).    Then  a   valid   iNDeX 
  670. (CallerId.NDX) file must exist in that same directory.   It can be 
  671. located  elsewhere,  you'll  just have to find it  with  the  file 
  672. selector  at  every  session though.   If after  having  read  the 
  673. previous  description  of  the  NDX file and  you  are  unsure  of 
  674. creating  one,  just use the one provided and edit  it.   Remember 
  675. that  each line of the NDX file must be exactly as  described  and 
  676. each  line  must  have a carriage return (CR)  at  the  end.   New 
  677. entries from the File Dialog will take care of this for you.
  678.  
  679. So, if  starting  from  scratch,  just  copy  CID_D202.ACC  and 
  680. CALLERID.NDX into your root directory and restart your computer.
  681.  
  682.  
  683. On Line
  684.  
  685. Ensure  your modem is on-line and select Caller ID from  the  Desk 
  686. (accessory) menu.   A busy-bee indicates it has found the NDX file 
  687. and is checking for a modem on the modem port.   If the NDX  file 
  688. was not found, it will prompt for it.  If the file still could not 
  689. be found, the program continues anyway.  You cannot use CID  ACC 
  690. for Caller ID purposes in this case, but you can still check  out 
  691. its functions.  If the modem is found, a check-mark is next to On 
  692. Line in the button.  If you turn on the modem after selecting 
  693. Caller Id accessory, you can click on the On Line  button  which 
  694. will invoke a modem check again.   Remember that CID ACC is not 
  695. designed to share the modem port with any other application.  When 
  696. a modem is determined to be on line, the the CID Mode button is 
  697. selectable.
  698.  
  699.  
  700. CID Mode
  701.  
  702. The  CID  Mode button presents the dialog to send  the  SupraModem 
  703. default command and the CID Mode command - both with one click  of 
  704. the  Send  button.   If all is OK,  the OK box will no  longer  be 
  705. shaded.   Do NOT put any other AT modem commands here that do  not 
  706. directly support Caller ID.   Returns other than 'OK' may  corrupt 
  707. CID ACC's operation.   When you return to the Main  Dialog,  there 
  708. will be a check mark in the CID Mode button and the Enable  button 
  709. will  be selectable.   If you exit CID ACC and return,  the  check 
  710. mark will be removed from CID Mode button,  but the Enable  button 
  711. will  still be selectable - this assumes the modem was  not  taken 
  712. out of CID mode.   If you have used the modem for other  purposes, 
  713. then send the CID Commands again.  
  714.  
  715. Remember, you can invoke the CID Command, Enable CID ACC, and Hide 
  716. the  dialog  by  a single click to the CID Mode  button  with  the 
  717. (L.shift) depressed.
  718.  
  719.  
  720. File
  721.  
  722. This  presents the NDX file manipulation dialog.   If you  haven't 
  723. already  done so,  add some New entries of some local  people  you 
  724. know who ID data will be provided.  Be sure to enter data into all 
  725. fields.  Name and Comments can be any character/number combination 
  726. and do not have to take up the entire line.  The Number field must 
  727. contain all ten numbers.  The auto-hangup field must be upper-case 
  728. Y or N.  
  729.  
  730. After adding a New entry, be sure to select the OK button with the 
  731. mouse.   Simply hitting <return> will lose your entry.   Once  you 
  732. have selected OK (with the mouse),  scroll your entries to  ensure 
  733. they're there.   If you have added several entries,  it's best  to 
  734. exit CID ACC completely so that they are written to your file  and 
  735. disk.  Then you can just reselect CID ACC again and continue here.  
  736. If you only made a few NDX file entries,  you can  procede.   Just 
  737. remember that these entries are curerntly buffered.  They'll still 
  738. be used during NDX file searches,  but they're really not part  of 
  739. the NDX file until you actually exit CID ACC completely.
  740.  
  741.  
  742. Enable
  743.  
  744. Now that we're On Line,  in CID Mode,  and have a file with  local 
  745. people entered into it,  let's enable the program!   This disables 
  746. some  functions  that can't be used while 'looking'  for  incoming 
  747. calls.  You may leave this dialog on the screen or Hide it and run 
  748. something else with CID ACC in the background to do its thing.
  749.  
  750.  
  751. CALL ME!
  752.  
  753. Now  have someone call you,  preferably someone whose  number  you 
  754. just  entered into the NDX file.   Even if their number is not  in 
  755. you file, you'll still see how CID ACC works.
  756.  
  757. When a call is received and CID ACC is enabled, it will present the 
  758. Call Alert Dialog.   It's best to wait until after the second ring 
  759. before  answering  the call because CID ACC is doing quite  a  bit 
  760. after the first ring - best not to rush anything.
  761.  
  762.  
  763. Hangup Calls
  764.  
  765. If  you  have a caller flagged to be hungup on,  the  modem  first 
  766. 'picks up' the line,  then after about 2 seconds it hangs it  back 
  767. up.   If you pick up the receiver soon after, they may still be on 
  768. the line.   If you have ever been hungup on,  you know you do  not 
  769. get a dial tone for a while.  It's the same thing here - the modem 
  770. was  instructed  to go 'off hook' then to go 'on  hook'.   But  it 
  771. works  great!   Viewing  calls via the Show option  will  indicate 
  772. whether  the caller was hungup on.   If you change the flag of  an 
  773. NDX  file  entry  after  a call  has  been  received,  the  Caller 
  774. Information  display will reflect the current  flag  setting,  not 
  775. necessarily what happened during the call.
  776.  
  777.  
  778. Escape Squence for missing mouse
  779.  
  780. Remember that if you have another application running when a  call 
  781. is received, the mouse might no be available.  Just use the escape 
  782. sequence of <control> <L.shift> <alternate> simultaneously to Hide 
  783. the dialog.  You can then select it again from the Desk menu.
  784.  
  785.  
  786. Show
  787.  
  788. When CID ACC is enabled,  selecting the Show button from the  Main 
  789. Dialog will return to the Call Received Alert Dialog with the most 
  790. recent caller information.   Select the Cancel button on the  Main 
  791. Dialog to disable CID ACC in order to use Show for viewing  caller 
  792. data.   From the Caller Information dialog, you can scroll through 
  793. your  calls and ADD any new numbers received.   It's best to  exit 
  794. completely out of CID ACC to write any changes to you NDX file  if 
  795. you  have ADDed any new calls.   Remember that any  numbers  added 
  796. will  update that Caller Information displayed but not  all  calls 
  797. received from that same number during the same 'enabled' session.
  798.  
  799.  
  800. Disabling CID ACC
  801.  
  802. Select  Cancel to disable CID ACC.   It will take a  longer  click 
  803. than normal alert dialog buttons.   Remember to release the  mouse 
  804. button once it changes to a busy-bee if disabling CID ACC. 
  805.  
  806.  
  807. Exiting CID ACC
  808.  
  809. Selecting  the  Cancel  button when CID ACC is  not  enabled  will 
  810. completely  exit the accessory.   If you have received  calls  and 
  811. have  not  printed  them,  CID ACC will alert  you  to  the  fact.  
  812. Exiting  the  accessory also closes the NDX file  and  writes  any 
  813. changes you may have made to it.
  814.  
  815.  
  816.  
  817. Supporting Utilities
  818.  
  819. Toad Computers recently released a utility that will tell you  
  820. numerous specs about your modem, including whether is has Caller  
  821. Id capabilities.  If you are unsure whether you have Caller Id 
  822. capabilities in your modem, this will tell you.
  823.  
  824.  
  825.  
  826. Programming Notes
  827.  
  828. I bought C-Manship Complete, then Lattice C, but I have NOT 
  829. purchased the Atari developer's kit (though I thought about buying 
  830. some parts of it).  I  had no programming experience prior to 
  831. C-Manship and Lattice C.  I now belong to GEnie and look for
  832. programming tips and hints there.  There is a Caller ID topic
  833. (Telecommunications BB category 8, topic 23) where information
  834. concerning Caller Id can be discussed.
  835.  
  836. If any of you have 'struggled' with the exact same scenario as I  
  837. and tried to develop a worth-while program, you probably look as  
  838. rough as I do and have no friends.  There ought to be a  
  839. brotherhood organization for those of us who tolerate such self- 
  840. abuse (preferably one with padded walls and all the Atari toys  
  841. that will fit).
  842.  
  843. Anyway, for all the dialogs present, there is only one function  
  844. that opens all objects and only one function closes all objects.   
  845. I had serious screen-redraw problems.  It seems every application
  846. wanted to redraw after, thus on top of, all of my CID.ACC dialogs.
  847. This was resolved by a 250 millisecond evnt_timer() call at the 
  848. end of my close_object() function so drawing of objects would 
  849. happen after its redraws.  I came up with some good code to put my 
  850. dialogs in windows - perhaps for a multitasking  environment, but 
  851. without such an environment to test with I opted for just dialogs.
  852.  
  853. As most programmers know, functions such as form_do() and  
  854. evnt_msg() suspend operations waiting for something specific.  In  
  855. the mean time, the process is in limbo - not doing squawt.  Now, I  
  856. have no idea how other programs do things while at the same time  
  857. waiting on these functions, but I resorted to graf_mkstate() and  
  858. objc_find() to find 'button clicks' while CID is enabled.  As hard  
  859. as this work-around was to come up with for me, I deserve a one  
  860. hour 'all you take' free shopping spree at TOAD for my efforts.
  861.  
  862. And not to slight Lattice C, I sure wish there were more examples  
  863. and function descriptions than were provided.  Most 'examples on  
  864. disk' were not provided.  A letter to HiSoft resulted in zilch.
  865. Using the RSC decompiler to have imbedded .rsc code was nice, but  
  866. getting the rscs_init() function in the exact place so that the  
  867. menu_register() call would place Caller Id in the menu through me  
  868. for a loop.  Some serious trial and error.  The reason I think 
  869. Lattice may be suspect is that all documentation I have on 
  870. accessories (and that's not much) indicates msg_buf[3] will be the 
  871. accessory's menu id.  I can only get the proper menu item 
  872. identified when looking for msg_buf[4].  Don't get me wrong, 
  873. Lattice C was a good choice, just kind of tough for a beginner.  
  874. But I don't think anything is better and as powerful.
  875.  
  876. I finally figured out that _addheap was needed to provide buffer  
  877. space when I used setvbuf() for file operations - due to accessory  
  878. and malloc/Malloc restrictions.  But I still don't have a clue as  
  879. to determining whether STACK space needs to be increased from the  
  880. 4k default.  I increase it to 8k just to be safe.  But where is 
  881. there good information on STACK, _addheap, environment variables
  882. and paths, etc?  Must I buy the developers' kit?...and which 
  883. 'sections'?  I hope Lattice 5.6 has better examples of function
  884. usage. 
  885.  
  886. As mentioned before, I think that if CallerID Accessory is run and 
  887. enabled after some applications are opened, exiting certain
  888. applications sends a 'close all opened files' which affects 
  889. CallerId.NDX.  Every fseek(...) calls fails in this scenario.  If
  890. CID.ACC is run and enabled before another application is run, 
  891. there is never a problem, only when CID.ACC is run and enabled
  892. while another application is running.  And even then is runs fine
  893. until the other application is exited and closes files.  My 
  894. recovery procedure is to flush, reopen the file, and send all
  895. received phone numbers through my 'search for match' routines.
  896. Anybody got any ideas?  
  897.  
  898. I really tried to minimize the amount of functions needed.   
  899. Several are used in many different ways based on flags I set.  But  
  900. any Atari programming expert could probably squeeze it more.
  901. As for *pointers, this has them out the ying-yang.  But isn't that  
  902. what 'code' is all about?  Anytime I take a few weeks off from this 
  903. for other projects, I am seriously lost when I return.  Talk about  
  904. biting off more than you can chew.  I ended up with so much nested  
  905. activity, I don't know how a real mumbly does it!
  906.  
  907. As vain as this may sound, for something that may appear rather  
  908. simple to some people, I am really proud of myself and think  
  909. anybody who has reached this point of this read_me doc should send  
  910. me a million dollars so I won't be tempted to program again.
  911.  
  912. What I would really like to do is make things happen via the  
  913. cartridge slot.  I have a fabulous idea and I might have to break  
  914. down and buy Atari's documentation for it.  There are not enough  
  915. programs (for any platform) that takes results from a program and  
  916. does anything more than put it on a printer page.  Where are all  
  917. the cool things that computers can do besides output to a printer  
  918. or screen?  The midi interface for music devices should just be  
  919. the tip of the iceberg!
  920.  
  921.  
  922.  
  923. New in 2.00
  924.  
  925. - Now prompted to 'print' call data when exiting if calls were
  926. received and you haven't done so.
  927.  
  928. - You can now scroll through your NDX file.
  929.  
  930. - You can append your disk 'printing' of calls to an existing
  931. file.
  932.  
  933. - Shows number of caller in Call Alert Dialog even if it wasn't 
  934. in the NDX file (if provided in the call, naturally).
  935.  
  936. - You can return to the Main Dialog from the Call Alert Dialog.
  937.  
  938. - ERROR Recovery Procedure to prevent loss of data!
  939.  
  940. - Updated Manual 
  941.  
  942.  
  943. Changes:
  944.  
  945. 2.01 contains a few upgrades from 2.00.  There are some better
  946. drawing routines, but the primary enhancement is the ability
  947. to identify a call by the area code and prefix only - ignoring
  948. the last four digits of the incoming phone number.  This is from
  949. a user's suggestion who stated that in his area, most phone
  950. solicitors are assigned a common prefix and that he would like to
  951. auto-hangup on specific prefixs.  Well, now you can.  Make an
  952. iNDeX file entry with all required entries, but for the phone
  953. number make the last 4 digits XXXX - that's 4 capital Xs.
  954. Understand that these are not wild cards, just an identifier to
  955. the program.  During an incoming call, the program compares
  956. the received number with the iNDeX file entries one at a time.
  957. Just prior to the comparison, the program looks to see if the 
  958. number in the iNDeX file has the 4 Xs.  If so, then only the 
  959. area code and the prefix are compared between the received
  960. phone number and the iNDeX file entry.  If those six digits
  961. match, then that entry is flagged and no more comparisons
  962. are performed.  If you want to auto-hangup on this prefix, 
  963. then identify it as such in the iNDeX entry.  But remember,
  964. no other phone numbers with the same area code and prefix will
  965. be compared if there is a match. 
  966.  
  967. 2.02 fixes a redraw problem in the 'Show' Caller Identification
  968. dialog (that I feel really stupid about not catching earlier!).
  969.  
  970. Final Note...
  971.  
  972. All suggestions and recommendations are welcomed.   2.00  includes 
  973. enhancements from several users - some not so noticable.  However, 
  974. doing more to enhance CID ACC generally increases its size and I'd 
  975. like to avoid that as much as possible.   There are a few things I 
  976. plan to do for a future release if feasible.  Even if you are just 
  977. using the demo version and have no plans to purchase the shareware 
  978. version,  your input is just as important - especially if it is  a 
  979. bug.   Any revisions will still be sent to registered owners  free 
  980. of charge.
  981.  
  982.  
  983. Paul D. Lyon
  984. 1104 Charter Ct.
  985. Virginia Beach, VA  23454
  986.  
  987. Phone # - (804) 422-2205
  988.  
  989. P.LYON1
  990. (GEnie)
  991.  
  992.  
  993.  
  994.  
  995.