United States Patent5566339
Perholtz , ; et al.October 15, 1996

Title

System and method for monitoring computer environment and operation

Abstract

An advanced electronic alert system for monitoring computer network(s), environment, security and the status of tasks being processed by a computer. The system stores voice recorded and text alert messages on computer readable magnetic media; automatically dials designated persons when alert situation(s) are detected; and then replays the applicable recorded voice alert message(s) once an alert call has been completed. Alternatively, alert messages may be transmitted by the system using phone dialing tones, in those cases where an alert call is placed to a digital device, such as a pager. The system issues automatic alert warnings to one or more designated persons when main electrical power fails or is restored; the temperature becomes too hot or too cold; a loud sound is detected, such as that produced by a smoke detector, fire alarm, etc.; a central network computer/file server fails; an intruder and/or water has been detected; main and/or backup power fails; a computer software program fails and/or is successfully completed; or a microprocessor based computer used as part of the system fails.


Inventors:Perholtz; Ronald J. (Silver Spring, MD), Elmquest; Eric J.  (Arlington, VA)
Assignee:Fox Network Systems, Inc. (Rockville, MD)
Appl. No.:966081
Filed:October 23, 1992

Current U.S. Class:713/340 379/38 379/41 708/109 
Field of Search:395/750,700 364/200,900,705.05 379/6,5,8,59,93,143,413,38 371/66

U.S. Patent Documents
4051326September 1977Badagnani et al.
4213015July 1980Kimbrough
4371751February 1983Hilligoss, Jr. et al.
4381427April 1983Cheal et al.
4390750June 1983Bartelink
4475193October 1984Brown
4503291March 1985Von Holten et al.
4593323June 1986Kanda et al.
4656318April 1987Noyes
4692941September 1987Jacks et al.
4731815March 1988Hanscom et al.
4748656May 1988Gibbs
4873712October 1989Porco
4878196October 1989Rose
4937850June 1990Borbas et al.
4964065October 1990Hicks et al.
4972452November 1990Chack et al.
4972504November 1990Daniel, Jr. et al.
5220597June 1993Horiuchi
5233642August 1993Renton
5283905February 1994Saadeh et al.
5311582May 1994Davenport et al.
5375163December 1994Kamimoto et al.
5438607August 1995Przygoda, Jr. et al.
Other References
Enviro Com II-Environmental Monitor and Modem, Operating Instructions. .
Server-Monitoring Software: Getting Inside Your File Server, by Frank Derfler, Jr., PC Magazine, Sep. 15, 1992. .
Watchdog Board, Home Automation Laboratories. .
Sensaphone Security System. .
Compaq System Manager, Features/Specifications. .
Watchdog Keeps Finger on Network Pulse, By Eric J. Bowden Products, Feb. 10, 1992. .
Innovative Data Communication Products. .
NetAlarm 3.1 Offers Pager, E-Mail Alerts, By Nico Krohn, PC Week, Jun. 22, 1992. .
Lan Server Watch-Proactive Disaster Prevention, Lan Times Readers Choice 1992. .
Enviro Com I-Environmental Monitor, Operating Instructions..~
Primary Examiner: Davis; George B.
Attorney, Agent or Firm:Sixbey, Friedman, Leedom & Ferguson, P.C. Smith; Evan R. Robinson; Eric J.

Claims


We claim:
1. A monitoring apparatus for monitoring an operation of a power supply system connected to a computer, comprising:
first connecting means for connecting an external AC power source to the monitoring apparatus;
power output means connected to said first connecting means for supplying said AC power from the monitoring apparatus to said computer;
detecting means connected to said first connecting means for detecting the presence or absence of said AC power and generating an indicating signal in response;
communication means connected to said detecting means for selectively connecting the monitoring apparatus to a telephone network and placing a telephone call to a person in a location away from the system; and
control means connected to said detecting means and said communication means for receiving said indicating signal and activating said communication means to place said telephone call when said detecting means detects the presence or absence of said AC power.

2. The monitoring apparatus of claim 1 further comprising:
second connecting means for selectively connecting a source of backup AC power to said power output means; and
switching means connected to said first and second connecting means, said detecting means, and said power output means for switching the supply of said power output means from said external AC power source to said backup AC power source in response to said indicating signal from the detecting means when said signal indicates that said external AC power is absent.

3. The monitoring apparatus of claim 2 further comprising second detecting means connected to said second connecting means and said control means for detecting the presence or absence of said backup AC power and generating a second indicating signal in response;
wherein said control means further receives said second indicating signal and activate said communication means to place said telephone call when said detecting means detects the presence or absence of said backup AC power.

4. The monitoring apparatus of claim 1 wherein said communication means includes means for transmitting a user-recorded voice message.

5. The monitoring apparatus of claim 3 further comprising:
a mass storage device associated with said computer;
data interface means connected to said control means and said computer for connecting the monitoring apparatus to said computer to transfer data between the monitoring apparatus and said mass storage device associated with said computer in response to signals received from said control means; and
data conversion means connected to said control means and said communication means for receiving digital data defining a user-recorded voice message and generating an output to said communication means compatible with said telephone network, to generate said voice message on said telephone network;
wherein said digital data defining said user recorded voice message is stored on said mass storage device within the computer, and said control means retrieves said digital data and transmits said data to the data conversion means whereby said voice message is generated and transmitted.

6. The monitoring apparatus of claim 1 further comprising recording means connected to the communication means and the control means for recording a response from the person receiving the telephone call.

7. The monitoring apparatus of claim 5 further comprising:
a mass storage device associated with said computer;
data interface means connected to said control means and said computer for connecting the monitoring apparatus to said computer to permit transfer of data between the monitoring apparatus and said mass storage device associated with said computer in response to signals received from said control means;
data conversion means connected to said control means and said communication means for receiving a voice message from said communication means, generating a digital output representative of said voice message, and transmitting said digital output to said control means;
wherein said data interface means transfers said digital output representing said voice message to said computer where said digital data is stored in said mass storage device.

8. A method of monitoring an operation of an external AC power supply system connected to a computer, comprising the steps of:
monitoring power output of said power supply to the computer;
detecting a change in the presence or absence of said power output;
generating an indicating signal when said change in the presence or absence of said power output is detected; and
transmitting said indicating signal to an automatic telephone communications means for selectively establishing a connection between said automatic telephone communications means and a telephone network, and placing a telephone call to a person in a location away from the computer when said change in the presence or absence of said power outant is detected.

9. The method of claim 8 comprising the further steps of:
providing a selectively operable source of backup AC power; and
providing switching means for switching the power supply of the computer from said external AC power supply to said backup AC source in response to said generated indicating signal when said signal indicates that said external AC power is absent.

10. The method of claim 8 comprising the further steps of:
selectively obtaining digital data from a mass storage device associated with said computer, said digital data representing a user-recorded voice message;
converting the digital data to a signal format compatible with said telephone network to form said voice message; and
transmitting said voice message signal format in said telephone call.

11. The method of claim 8 comprising the further steps of:
receiving a voice response signal from the recipient of said telephone call;
converting the voice response signal into a digital data format compatible with a mass storage device associated with said computer and representing said voice response signal; and
storing said digital data in said mass storage device for later retrieval and review.

Description

A portion of this disclosure contains material in which copyright is claimed by the applicant. The applicant has no objection to the copying of this material in the course of making copies of the application file or any patents that may issue on the application, but all other rights whatsoever in the copyrighted material are reserved. statement which was inadvertently omitted from the patent application

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to automated computer network monitoring, environment monitoring, and automatic telephone dialing and message transmission apparatus enabling emergency messages to be transmitted.

Millions of microprocessor based computer networks presently are in use. The term "Network" refers to one or more Work Stations connected by communications lines or cables to one or more central computers, herein referred to as "File Servers". In some File Servers magnetic data storage is often divided into segments, hereinafter referred to as "Volumes". A Network permits users to store data files in a central location to reduce the cost of file storage, eliminate the need for duplicate software systems, and permit all users of the Network to access centrally maintained, up-to-date data files. Because data files are centralized, Network users depend on reliable uninterrupted access to file servers to do their jobs. If one or more File Servers within a Network fails, most companies are literally "out of business" until processing is restored.

Most Networks operate 24 hours per day, but are rarely used more than 12 hours per day. During the period that a Network is not in use, failures can occur. Moreover, the Networks are more vulnerable to major damage due to fire, theft, water, temperature fluctuations, or employee sabotage because no one is typically accessible when the damage starts. In such events occur, the problem would not be detected until someone attempted to use the network at the start of the next business day. When the problem is finally detected, it may take several hours or days to restore normal Network processing. Had the problem been detected when it occurred, damages would be minimized and Network processing could be restored sooner, possibly before the next business day began. Accordingly, there is currently an urgent need for a device designed specifically to monitor Networks during non-business hours. Ideally, this device should be designed to be Fail Safe, activate itself automatically, when deemed appropriate by the user, and use available completer resources where possible. Further, the system should be capable of alerting persons responsible for administering the Network of any file server failures, power failures, intruders, fire, water, smoke or excessive temperature changes, or other similar events that require immediate attention.

The device may also be utilized during normal business hours to monitor computer tasks (i.e. jobs) running on a Work Station and place alert calls when a job within a task has been completed or fails.

2. Background Art

COMPAQ corporation has developed a monitoring system consisting of a 32-bit computer interface board designed to be inserted directly into a File Server. The board must be installed into the File Server and obtains its normal operating power from the File Server's internal low voltage power supply. One board is required for each File Server monitored. The system will not function in existing File Servers that do not have 32-bit EISA slots. Environmental monitoring is limited to voltage and internal temperature sensors. No provision is made for intruder, water, fire or smoke detection. Further, no provision is made to directly monitor AC power flowing into the File Server from an external source(s) so that a main AC power failure will be detected. Instead, the Compaq system monitors only DC voltage flowing to the EISA slot where the interface board is installed. Accordingly, should main AC power fail and the File Server continue to operate off of backup reserve power (e.g. battery power), no provision is made to place a power failure alert until after the reserve power and/or File Server fails.

In the Compaq monitoring system, all alert calls are placed via modem circuitry included on the board or all optional external modem using a serial interface provided on the back plate of the board. No speaker is provided on the board to facilitate call monitoring or localized announcements. Alert messages are delivered via a speech synthesizer or touch tones in the case of an alert call to a pager. No provision is made for recording or replaying user spoken voice messages.

When a call is placed by the Compaq System to a person, no audio analysis is performed to detect when a person has answered the phone call and finished speaking. Instead, after the call is placed, the system assumes someone will answer and hear a pre-recorded message requesting that a tone password be entered. This pre-recorded message is delivered as soon as the call rings, which typically results in the answering party initially receiving only part of the intended message. If the requested touch tone password is not entered and detected by the Compaq system within a specified period of time or the pre-recorded message is fully delivered before someone answers the phone, the call will be aborted and retried later. Accordingly, no alert message will be transmitted, for example, if the person called forgets the required password or the call was answered by an answering machine. Similarly, an alert call placed to a paging service will not be delivered unless a required tone is received from the paging service. No provision is made for paging services that do not use the required tone or attempt made to automatically analyze when the pre-recorded paging service voice prompt has ended, so that the required alert message may be transmitted. Finally, no provision is made in the Compaq system to relate the delivery of alert messages to a specific type of failure. Instead, the same set of alert phone numbers are called, regardless of the type of failure encountered and the number of phone numbers the system can handle is limited to 16 phone numbers.

An alarm device, referred to as SYMON, is being sold by Dataprobe Corporation (170 Coolidge Avenue Englewood, N.J.). The system requires a user supplied external monitoring systems to detect all alarm situations. The system is limited to a maximum of eight alarms. An external modem is required to relay alarm messages in digital (ASCII II) text message form only to user pagers. No provision is made for voice transmitted alert messages. Further, no provision is made for the detection of any alarm situations.

Various software-only products have been developed to monitor File Servers. One product is NetAlarm from Avanti Technology in Austin, Tex. and another product is LAN Server Watch from Brightwork Development Inc. in Tinton Falls, N.J. 07724. These products monitor the status of File Servers using software installed on one of the Work Stations connected to the File Server. This software coexists with other software running in the Work Station memory. Alert calls can be placed though a modem connected to the Work Station to a pager. No provision is made for alert calls to other than a pager. No provision is made for monitoring power, temperature, intruders, water, fire or smoke. Further, no provision is made for a failure in the Work Station used for monitoring should the Work Station's processor lock up or AC power be lost.

Various devices exist to monitor the environment and issue pre-set voice messages by placing phone calls to predefined numbers, when an alarm condition is detected. Two such products are the EnviroCom I and EnviroCom II manufactured by Best Power Technology, Inc. P.O. Box 280, Needah, Wis. 54646. These products monitor AC electrical power; temperature; loud sound levels, which presumable will be a burglar alarm, fire alarm, or smoke alarm; motion; or the presence of water. No provision by these products is made to permit the monitoring of file servers; recording of user spoken voice alert messages; logging failures detected or the results of alert calls placed; detecting the exact progress of an alert calls placed; so that an alert messages will only be delivered after someone or some device has answered the phone and finished speaking; analyzing the frequency of sound levels detected to discern the exact source of the sound level (e.g. sounds produced by a smoke alarm as opposed to those sounds produced by a fire alarm or some other non-alarm, loud sound level source). Finally, the same set: of alert phone numbers are called, regardless of the type of failure encountered and the number of phone numbers the system can handle is limited.

None of the monitoring devices discussed above make any provision to monitor the status of computer jobs being processed by a Work Station, so that alerts may be issued when the job(s) are completed or a job fails. In addition, no provision is made for more than one AC power input source or the ability to automatically switch between multiple AC input power sources should the primary source of AC input power fail, so that a constant source of AC output power can be provided and controlled to an external device, such as a computer Work Station, and multiple sources of power can be monitored directly by the device. Finally, no provision is made to control the functionality of an external device, such as a Work Station, by temporarily cutting AC power to the Work Station and forcing the Work Station to boot and initiate a predetermined procedure.

SUMMARY OF THE INVENTION

The present invention provides a stand alone Unit containing its own microprocessor designed to monitor the environment and control microprocessor based computers to which the Unit is connected. This Unit is designed for connection to a Work Station. The Unit is controlled by a micro-processor based software operating system residing in the Unit and/or software programs installed in the Work Station to which the Unit is connected. The apparatus is capable of (1) detecting if the Work Station fails; (2) monitoring an unlimited number of File Servers connected over a Local Area Network (LAN); (3) monitoring the availability of public utility power or backup reserve power; (4) switching between main public utility power and backup power sources should main power fail or main power be subsequently restored; (5) detecting the presence of loud audible sounds and discerning the type of device generating said sound by analyzing the sound produced by the device's audible siren (e.g. smoke detector, fire alarm, etc.); (6) permitting a person called to listen over the phone line to any loud sounds present during a loud sound alert call; (7) detecting excessive heat or cold; (8) detecting intruders or other alert conditions detected by external monitoring devices, such as a water sensor; (9) placing alert phone calls to pagers or individuals when alert situations are detected via a direct interface between the microprocessor and the phone line, (10) analyzing sound transmitted over the phone line when alert calls are in progress to determine why a call could not be completed; or, when a call has been successfully completed, the party called has stopped speaking, and the alert message should be delivered; (11) permitting persons alerted to remotely listen to the sound level being produced by an audible alarm siren in a case where a loud sound level has been detected; (11) recording what is spoken by the answering party when an alert message is delivered to a person; (12) monitoring the status of user jobs being processed on any microprocessor based computer to determine when the job has been completed or fails; (13) contacting via telephone and delivering user recorded or pre-recorded voice messages alert messages to an unlimited number of designated persons should a alert situation be detected; (14) detecting (via the Work Station) when the Unit has failed so that alert calls can optionally be placed to a pager using a user supplied modem; (15) permitting persons called during an alert situation to confirm that the alert call has been received by pressing a touch tone on their telephone; and (16) permitting persons called to remotely abort any pending alert calls to others from being delivered by pressing a touch tone on their telephone during the time an alert message is being delivered.

The Unit has two input AC power receptacles that are designed to obtain electrical power from an AC public utility power receptacle or an external backup power supply. Should public utility power fail, the microprocessor in the Unit would immediately switch to backup power, if present, so as to prevent any interruption in Work Station processing and permit the Unit to immediately detect that main power failed. If a sustained public utility power failure occurs for more than a specified number of seconds, alert phone calls would be placed to user designated persons indicating primary power has failed and an appropriate announcement would be made locally, using the speaker contained in the Unit. Similarly, if all external sources of power should fail, the Unit would rely on its internal rechargeable battery to deliver user designated alert calls indicating all power has failed.

One AC output power receptacle is provided on the Unit. The Work Station plugs into this receptacle to obtain AC power. When necessary, the Unit will cut power to the Work Station for several seconds forcing the Work Station to re-start (i.e. cold boot). During the boot process, a monitoring session would be initiated automatically, as discussed below. Situations that would require power to be cut in this manner are also discussed below.

Two phones jacks are included in the Unit. The first jack permits the Unit to attach to a public utility phone line. The second jack is used to pass through the phone signal to a standard, external, touch-tone telephone.

Two adapter jacks are presently provided in the Unit to provide low voltage electrical power to and receive alerts from optional intruder detection or environmental monitoring devices. Examples of monitoring devices that can be connected to these jacks include a water alarm, motion alarm, fire alarm, and/or an entrance alarm. The security devices may be temporarily disabled at any time by pressing a security (pulse style) switch, herein referred to as a "Watch Dog" switch, located on the back of the Unit.

A microphone is provided in the Unit to facilitate the capture of user recorded alert messages, that will be replayed by the Unit should a alert situation be detected. This microphone is also used to periodically listen for loud sound levels normally produced by the alarm sirens on devices such as smoke detectors, fire alarms or burglar alarms. This approach permits the Unit to detect external alarm situations without the need for an interface cable from the Unit to the detection device. The sound frequency and level produced when a loud sound level occurs is analyzed by the Unit's microprocessor to determine the probable type of device causing the alert, so that a appropriate alert call can be placed indicating the specific type of alert that has been detected. Once the alert message has been transmitted, the microphone would then be further used to permit the person contacted to listen to any sound presently being detected by the Unit.

A speaker is contained in the Unit to (1) locally notify anyone present in the area of the Unit that a alert condition has been detected or (2) to permit users to monitor calls or alert messages spoken during system testing. A volume control knob is provided on the Unit to adjust the speaker's sound level.

The internal circuitry of the Unit is presently designed to operate on 10 volts of power. Power converters and transformers installed in the Unit are provided to reduce incoming public utility power to the required voltage levels and protect the Unit from power brownouts or surges. A user replaceable fuse is also provided to further protect the electrical circuitry.

A Unit ON/OFF switch is provided to disable all monitoring functions of the Unit. This switch does not disable the ability of the Unit to pass through power to the Work Station or to prevent the internal battery contained within the Unit from recharging.

Various on/off status lights are presently provided on the front panel of the Unit, which indicate (1) the power status of the Unit's internal low voltage rechargeable battery, (2) if the Unit is receiving input main (public utility) power, (3) if the Unit is receiving input AC backup power, (4) if the Unit is in a "Ready" monitoring status, (5) if the serial linkage is working properly between the Unit and Work Station attached to the Unit, (6) if there is serial activity between the Work Station and the Unit, (7) if the Unit is about to boot the Work Station attached to the Unit, (8) if an alert call is in progress, (9) if the adapter ports are activated, and (10) if the user replaceable fuse has blown.

The Unit includes several pre-recorded voice messages stored in digital form in the Unit's Read Only Memory. These messages are used in special alert situations, herein referred to as "Fail Safe" processing, where (1) all external power supplied into the Unit has failed, (2) the Work Station attached to the Unit has failed or serial communications between the Unit and Work Station have failed, and/or (3) a loud sound level has been detected (e.g. smoke detector's siren). User specified dialing strings related to these special Fail Safe alert situations are stored in non-volatile RAM installed in the Unit capable of retaining the dialing strings in memory even if there is a total power failure. In addition, the system contains prerecorded speech for the numbers from 0 through 9, so that users who have installed more than one Unit may assign each Unit with a unique number to help isolate which Unit has issued an alert message. This pre-recorded message feature coupled with the internal battery and dialing strings stored in the Unit, permit the Unit to be virtually Fail Safe, meaning that if all power and processing support from the Work Station is lost, the Unit will still have the stand-alone capability to place alert calls to those persons designated to be notified.

Calls placed by the Unit are monitored and controlled by a micro-processor contained in the Unit, thereby eliminating the need for modem circuitry. The processor performs sophisticated call progress analysis of sound intervals to determine when a phone line has failed, the number called is busy, there is no answer to the call, the call has been successfully completed, and when party called has finished speaking. Such precise sound analysis is essential to insure that alert messages are accurately and reliably delivered, even in cases where a phone is answered by an answering machine or paging service that involves long pre-recorded messages. The microprocessor also generates the exact tones required by FCC regulations to place a phone call, thereby eliminating the need for dialing circuitry and related tone generating mechanisms in the Unit.

Except for the Fail Safe processing features discussed above, all of the Unit's monitoring actions are scheduled by the Work Station attached to the Unit via a standard serial interface cable connecting the serial port of the Work Station to a serial receptacle contained on the Unit. As mentioned, this Work Station would obtain all of its AC electrical power from the AC power output receptacle on the Unit.

The Work Station attached to the Unit could continue to be used as a normal Network Work Station. The Work Station need not be connected to a Network in cases where the apparatus is used only to monitor the status of a job running on the Work Station.

Various computer software programs provided with the Unit are installed on the Work Station to activate the system. The installation process alters the start up (i.e. AUTOEXEC.BAT) processing of the Work Station, so that each time it is booted a full monitoring session begins automatically. Since the Unit controls the flow of electrical power to the Work Station, the Unit can initiate a monitoring session whenever required by briefly cutting off power to the Work Station, thereby forcing the Work Station to boot (i.e. cold boot). A monitoring session can be ended automatically by pressing the F1 key. When the session is ended in this manner, the Work Station automatically returns to a normal processing mode. No Terminate and Stay Resident (TSR) programs related to this system are needed or reside in memory at this point. Normally, monitoring sessions are scheduled by the user to occur during non-business hours.

During the software installation process, the installer speaks alert voice messages to be used by the system into the Unit's microphone. Each spoken message is immediately digitized and stored on magnetic media within the Work Station, such as a hard disk drive. Then, the user would enter the necessary dialing strings to be called for each type of alert issued by the system. For each dialing string entered the user would specify if the voice message recorded should be spoken. Normally, the message would always be spoken, except for calls placed to a pager. Special codes are allowed in the dialing strings to permit (1) pauses in the dialing sequence; (2) instruct the Unit to suspend dialing string processing until the call has been completed; (3) require that person called confirm the receipt of the alert call by pressing a designated touch tone key on their telephone; (4) permit a person called during an alert to cancel any pending alerts calls to others by pressing a designated touch tone key on their telephone; (5) permit an alert message to be replayed more or less than 3 times, which is presently the default number of times a message is repeated. The latter feature is necessary for calls placed to businesses with automated call forwarding systems where a caller must pass though multiple levels of voice recordings to reach their intended party. In additional to voice recorded messages, text strings describing each type of alert situation are entered by the user during system installation. These text strings would be saved to a log file each time an alert situation is detected along with the time and date the situation occurred.

The installation process also permits the user to identify the specific name(s) of the File Server(s) to be monitored, the desired maximum size of the alert message log file maintained by the system, as well as the scheduled times each day the Work Station must be booted Typically, users would only want a monitoring session to begin during non-business hours. The boot times entered permit the system to automatically force the Work Station to boot at the requested time causing a monitoring session to begin automatically, as previously described. Moreover, this feature permits the Work Station to be used normally during the work day with the assurance that it will begin monitoring activities automatically after the work day has ended.

Software has been developed and provided with the system permitting changes to be made to the system configuration after the installation process is complete.

Once the installation process is complete, monitoring begins automatically whenever the Work Station is booted. The Work Station's AUTOEXEC.BAT file is used to automatically start the monitoring system.

As the first step in AUTOEXEC.BAT processing, the Network start up interface programs, supplied with the vendor's Network operating system, must be executed to attach the Work Station to any available File Server(s). Then, a software program supplied with the system is invoked in the Work Station as the next step in AUTOEXEC.BAT processing.

This program, named N911RUN, establishes and tests the serial communications linkage from the Work Station to the Unit. If this linkage cannot be established, a error message describing the nature of the problem encountered will be displayed to the Work Station's display screen. Messages used include "Unit Serial Cable Not Properly Connected" or "Unit Power Switch is Off". If a linkage cannot be established or is lost during a monitoring session, further system processing is aborted on the Work Station and optionally the Work Station can be used to deliver a digitized alert code to a designated pager via a user supplied modem accessible to the Work Station. If a linkage is established, N911RUN sends configuration information to the Unit to setup or refresh various operating parameters. This information includes the number of minutes remaining until the next scheduled boot time, dialing strings to be called in the event a Fail Safe situation is encountered by the Unit, dialing strings to be called for job status monitoring alerts and a code indicating that a monitoring session is beginning. Then, N911RUN begins a monitoring session.

N911RUN operates in a continuous monitoring loop until the F1 key is pressed to terminate processing. Each processing loop is referred to as a cycle. When the F1 key is pressed, the remainder of any AUTOEXEC.BAT file processing for the Work Station occurs permitting anyone to use the Work Station normally. At this point the N911RUN program is removed entirely from the Work Station's memory. The period from the time a monitoring processing begins until the time the F1 key is pressed is referred to as a session.

When a session begins a "STATUS REPORT" screen will appear on the Work Station in approximately one minute. The "STATUS OF THE ENVIRONMENT" section of this screen displays the results of each area monitored by system except for file servers. The "STATUS OF FILE SERVERS SECTION" displays briefly the status of each active file server and will display messages on file servers that have failed. The final section shows the "HISTORY OF PROCESSING SESSIONS". This section displays the date and time the last 15 sessions began which is a useful to insure the System is activating itself properly.

During a cycle, the Work Station requests the Unit to check each of the areas the System has been configured to monitor, once. As a test is completed and the results returned from the Unit to the Work Station, the results of the test (normally "OK") will blink on the STATUS REPORT screen on the Work Station. If a particular feature is not being monitored by the system, the message "NOT INSTALLED" will be displayed. If a alert situation is detected, an alert message will be displayed (in red or bright white) next to the applicable line item in the STATUS OF THE ENVIRONMENT SECTION. File server alert messages will appear in red or bright white (on monochrome monitors) in the STATUS OF THE FILE SERVERS SECTION. A typical monitoring cycle takes approximately a minute to complete. When a cycle is complete, the system loops back and starts the next cycle and will continue processing in this manner until the F1 key is pressed to end system monitoring processing.

A cycle consists of the following major processing steps:

A. Testing that Primary power is OK.

Testing that Primary power has been restored after a power failure and alerting anyone actually notified of the power failure that power has been restored.

C. Checking the status of any power backup system installed. A message appears only on the screen and the error log should a battery failure be detected during a session. No calls are placed as a result of a power backup failure.

D. Making sure the current temperature is within the minimum and maximum limits allowable by the user as specified during system installation or re-configuration processing.

E. Checking any devices attached to either of the system Unit's Adapter ports to insure that a problem has not been detected (e.g. an intruder, water, etc.)

F. Testing for an external loud sound level, such as produced by a smoke detector, burglar alarm or fire alarm sirens.

G. Testing that all File Server Volumes designated by the user to be monitored by the system are operational.

H. Placing applicable phone calls related to any new alert situations detected during the above processing steps and re-attempting to call anyone not contacted during the prior processing cycles because phone line busy, no answer, etc. (NOTE: the Unit's internal speaker is disabled when calls are placed during a monitoring session so that the system will operate in a silent alarm mode. This approach avoids alerting any intruders that may be present that calls are being placed by the Unit.)

When an alert situation is detected by the system, a phone call will be placed to those phone numbers designated to be called. If there is no answer to the call, the phone line fails, no speech is detected when a phone call is answered, or the phone line is busy; the system will automatically place a call to any remaining persons to be notified, log the uncompleted call, and then retry any uncompleted calls during the next processing cycle. Any uncompleted calls will also be added to the disk log file on the Work Station. If the call is completed, sound level and frequency analysis tests are performed to automatically detect when the person or device answering the call has finished speaking. Once the call is answered and someone begins speaking, whatever is spoken is recorded onto magnetic media on the Work Station (e.g. hard disk drive). This approach insures an audit trail is retained to prove the alert call was delivered. Then, the applicable digitized voice alert message is replayed (in the case of a call to a person), digitized paging dialing tones are played (in the case of a call to a paging service), or a combination of dialing tones and voice alert messages are replayed in the case of a call to an automated call forwarding telephone answering system. In cases where a call is placed to a person (as opposed to a digital device such as a pager) and the alert resulted from a loud sound level detected by the Unit (via the Unit's microphone), the sound present when the call is placed would also be transmitted to whomever or whatever answers the alert call placed. Furthermore, when a call is placed to a person, the alert message is spoken 3 times (or the number of repetitions specified by the user during configuration processing). After each message is spoken, there is a several seconds of silence, presently set to 2 seconds. If the person called presses a designated touch tone key on the telephone during this period, the call will be regarded as delivered and a tone reply will be issued by the Unit to acknowledge the call was confirmed.

All major events and alert situations detected during a monitoring session are archived to a disk log file maintained in the Work Station's directory where the software system was installed. Events logged include: when each session began; alerts that were detected; persons that were successfully contacted; and persons that could not be contacted (e.g. no answer to phone call placed). Each entry in the log has the corresponding date and time the log entry was made. The number of entries that the log will retain is specified during the configuration of the system. The system software permits contents of the log file to either be viewed on the Work Station's screen or printed.

If during a cycle, monitoring is halted for any reason (e.g. parity error, processor lockup, program failure, etc.), communications from the Work Station will cease. Should communications cease for a sustained period of time, the Unit assumes the Work Station has failed and attempts to re-establish the linkage by forcing the Work Station to boot. In this case, the BOOT WARN indicator light on the Unit will flash and the Work Station will be booted after two minutes.

The Unit causes the Work Station to boot when necessary by temporarily cutting power to the Work Station. This temporary power of period is presently set to 15 seconds. A period of 15 seconds was chosen to give any hard disk drives in the Work Station time to stop spinning before AC power was re-activated.

When a specific type of alert is detected during a session, persons scheduled to called will be contacted only once per session regarding the alert situation. If the contact cannot be completed because the phone line is busy, there is no answer to the call, etc.; the system will repeat the call until the call is completed. When the call is completed any voice recording played related to the alert situation is repeated three times with a three second delay between repetitions to insure the receiving party actually gets the message. In the case of calls resulting from a loud sound alert being detected, the three second delay would not occur. Instead, once an alert message has been transmitted, the Unit's microphone would then turned on between each repetition for 5 seconds to permit the person contacted to listen to any sound detected. Once a phone call has been completed for a given alert condition, no further calls for that alert condition will occur until a new monitoring session begins. This approach avoids repeatedly pestering the person or their family in the middle of the night regarding a given alert condition.

Whenever a monitoring session is active, the internal speaker in the Unit is disabled. The speaker is disabled intentionally to permit a "silent alarm" operating environment. Normally, no one would be present during a monitoring session, so there is no need for the speaker to be turned on. Moreover, if, for example, a alert was triggered because an intruder was attempting to cut power, steal a File Server, steal the Work Station, etc.; it would not be desirable for the Unit to alert the intruder (via) the Unit's internal speaker that alert calls are in progress. Disabling the internal speaker has no effect on the ability of the Unit to deliver any required alert messages over the phone lines.

A monitoring session continues looping through processing cycles until someone strikes the F1 key on the Work Station to abort processing. This means, for example, if processing begins on a Friday night, processing will automatically continue over a week end or longer until the monitoring session is ended. When the session is terminated, the Work Station continues it's normal boot up procedure and can be used as a normal Work Station. At this point it is assumed someone on the premises is capable of dealing with any of the problems a monitoring session is designed to detect and most of the activities performed during a session are unnecessary. As a monitoring session ends, the Unit is instructed by the monitoring session software to automatically re-enable it's internal speaker and no longer operate in a "silent alarm" mode.

Several situations cause the Unit to force new monitoring session to begin (by cutting power and forcing the Work Station to boot) as follows:

A. If an active file server monitored by the system should fail during a monitoring session, booting permits the system to confirm that a failure has occurred. This approach avoids cases where the failure was actually caused by a LAN card in the Work Station that may have merely temporarily "locked up".

B. If public utility power fails when a session is not active, booting permits the system to immediately notify all designated persons of the failure. In this case the Unit announces, through it's speaker, that the Work Station will be booted in two minutes. If someone is present, this announcement gives that person an opportunity to either prepare for the boot or abort the boot process by turning off the Unit. This approach is necessary, for example, to prevent a situation where a business day has ended, the first session has not yet been scheduled to be activated, and power fails. If nothing was done about this scenario until a monitoring session begins, it is likely the power backup system attached to the Unit would be drained of power and all designated persons would not be notified of the public utility power failure. However, designated person would be notified of the "total" power failure by the Fail Safe feature of the Unit.

C. At those times specified during the system installation or configuration that a new monitoring session should begin.

D. Whenever, the communication link between the Work Station and the Unit is interrupted during a monitoring session for a sustained period of 90 seconds or more. This could occur if the Work Station locked up for some reason such as a parity error, communications card failure, etc.

As mentioned, whenever a monitoring session is ended by pressing the F1 key, the rest of the Work Station's AUTOEXEC.BAT file will be executed and the Work Station automatically returns to operating as a normal Work Station. The next scheduled boot time passed to the Unit at the beginning of the session controls the next time the Unit will cut power to begin another processing session. The time passed is expressed as the number of minutes remaining until the next scheduled boot. The microprocessor's timer is then used to decrement the number of minutes received until a value of zero is reached. At that point, the Unit announces through it's speaker that a schedule boot will occur in two minutes. During that two minute period the scheduled boot can be deferred by thirty minutes by pressing the Watch Dog switch located on the back of the Unit or deferred indefinitely by turning the Unit off.

The optional sound level alarm devices and devices attached to the adapter ports of the Unit are designed to fully integrate with routine monitoring sessions. In the case of adapter port alarms, the devices are designed to activate automatically whenever a monitoring session begins. Delays can be specified for the alarm system dial out process, so the first person who arrives can disarm the alarm system by either pressing the Watch Dog pulse button on the back panel of the Unit or terminating the session on the Work Station by pressing the F1 key. The Unit has been designed to listen for loud sound levels whenever the Unit has been activated, whether or not a monitoring session is in progress.

A separate and distinct capability of this invention is it's ability to monitor the status of computer tasks (i.e. jobs) running on the Work Station to which the Unit is connected. This feature is referred to herein as "Job Status Monitoring". Job Status Monitoring does not require the Work Station to be connected to a network, since monitoring activities are directed solely at tasks running on the Work Station to which the Unit is connected.

Job Status Monitoring is selectively turned off and on by using software programs supplied with the system. When a Job Status Monitoring session is active, the system monitors disk accesses to either local or network disk drives and if such accesses cease for a user specified number of seconds, power is lost, or the Work Station locks up; an alert called is placed to those persons designated by the user to be contacted. After the alert call is completed, an appropriate pre-recorded message is spoken or pager alert code delivered.

The Job Status Monitoring feature of this invention permits programs, located in the directory where the system was installed, to be activated from a batch file to monitor when a user program (job) or series of jobs is complete or if the job has failed. For example, assume a series of programs (Jobs) has to be run by the accounting department to close the books at month end. These jobs include ACCTREC, ACCTPAY, PAYROLL, and GLEDGER. Each job took anywhere from fifty minutes to two hours. All jobs had to be completed by the beginning of the next business day and any problems in closing the books had to be resolved that night. When the PAYROLL job begins someone must insert pay checks into the printer. Normally, someone in the accounting department would be paid overtime each month to observe that this entire closing process completed properly.

Job Status Monitoring eliminates the need to worry about the status of time consuming computer jobs. In this example, special programs can now be included and executed from a computer batch file used during the closing process to automatically monitor the closing process and alert one or more persons when a job step failed and/or was completed. Alternatively, the system could be instructed to only place calls if a job fails using the concept "no news is good news". An example of exactly how the batch file could be modified in a Disk Operating System (DOS) environment to let the system monitor the status of closing is as follows:

______________________________________ rem ** Begin Job Status Monitoring Session TRAKBEG 200 rem ** Begin User Accounts Receivable Closing TRAKSTEP 1 acctrec rem ** Begin User Accounts Payable Closing TRAKSTEP 2 acctpay rem ** Call user that step 2 TRAKCALL rem ** Now wait for user to insert paychecks in printer pause TRAKSTEP 3 payroll rem ** Begin General Ledger closing TRAKSTEP 4 gledger TRAKCALL TRAKEND ______________________________________

Before beginning the closing process and starting the batch file in this example, the accounting department decided that two people should be notified by the system of the status of closing. Accordingly, the system configuration software (SETUP) programs were run and the "WORK STATION JOB STATUS MONITORING" main menu option was selected. Then, two dialing strings were entered one calling the Chief Accountant's home phone and the other calling the Controller's pager. A code of @*999* was setup at the end of the pager dialing string to indicate to the controller that the system was calling the pager regarding closing status.

When the batch file is initiated, a program called TRAKBEG (located in the directory where the system was installed) must be executed to begin a job tracking session. An optional parameter may be given to TRAKBEG to set the maximum number of seconds that may occur between successive disk/network accesses. In this example, the system is being told to wait no more than 200 seconds between disk accesses. If either of these limits are exceeded, it should be assumed the application has failed and failure calls should be placed. The current system default for TRAKBEG is 300 seconds for disk accesses. Disk/network accesses for most business applications occur at least every few seconds and rarely over 1 minute apart. A default parameter of
300 seconds was selected as a conservative estimate to avoid the possibility of a false failure call. For DOS based systems, local hard or floppy disk and network disk activity is monitored by intercepting DOS interrupt 21 disk accesses services, including but not limited to sub-function 63 and 64 of this interrupt.

In this example, if the TRAKBEG disk access parameter is exceeded, a system pager call would be placed automatically to the Controller's pager with the code *999**97*1, where *97 means the job appears to have failed and *1 indicates the job failure occurred during step 1. A sample of the codes that the system adds to a pager call related to Job Status Monitoring is as follows:

______________________________________ *0* (step#) Issued by TRAKCALL when step successfully completed *96* (step#) Main Power Failed *97* (step#) Job Step Failed *98* (step#) Work Station Failed *99* (step#) Total Power Failed ______________________________________

When the system detects a job step failure no actions are taken to interfere with normal program execution should there be a case where the application has not in fact failed. When corresponding calls are made to the Chief Accountants home, the Unit would speak an appropriate prerecorded message such as:

______________________________________ SYSTEM ALERT JOB STEP nn SUCCESSFULLY COMPLETED SYSTEM ALERT JOB STEP nn MAIN POWER FAILED SYSTEM ALERT JOB STEP nn HAS FAILED SYSTEM ALERT JOB STEP nn WORK STATION FAILED SYSTEM ALERT JOB STEP nn TOTAL POWER FAILURE ______________________________________

The nn in the above messages would be replaced by the applicable job step number.

The second system program executed in the sample batch file shown above is TRAKSTEP. This command to execute this program must always have a parameter indicating a NUMERIC step number. In this batch file the numbers 1,2,3 and 4 are used as parameters. If a alert or failure call is placed during Job Status Monitoring, step numbering will help the person called determine how far all jobs have progressed. The Job Status Monitoring system does not require that the TRAKSTEP programs be used. The default step assumed by the system when the TRAKSTEP feature is not used is step 1.

The third program used in the Job Status Monitoring system is TRAKCALL. Whenever the TRAKCALL program is run, the system places a call to everyone contained in the Job Status Monitoring call table indicating the last step number that was successfully completed. In this example the TRAKCALL program is necessary before the PAYROLL program begins processing so that someone will put the required payroll checks into the printer. When the closing process is complete, the TRAKCALL program was again used to alert both the controller and chief account that the closing process was done. If the TRAKCALL program had not been included the batch file, no calls would have placed when the closing process was complete and the Controller and chief accountant would assume that "no news is good news". This latter approach has the advantage of avoiding an unnecessary "wake up" call in the middle of the night, but may be a slightly less reliable method of assuring the closing process had been completed.

The final Job Status Monitoring system program in the batch file example is TRAKEND. This program is always run as the last step in a Job Status Tracking session. The TRAKEND program simply tells the TRAKBEG software programs that a Job tracking session is over.

A less preferred embodiment of the present invention could be used in which the Unit's circuitry is installed onto a board that would be inserted directly into an expansion slot in the Work Station. The AC power input cable used by the Work Station could be redesigned so that either (1) the positive or negative side of AC power would pass into and out of special connectors added to the back plate of the board or (2) a switch would be installed on the cord with a probe that would plugged into the back of the board to permit AC power to be either monitored or cut. Either of these alternatives would permit the board to employ a switch to temporarily break power being supplied to the Work Station where it was installed, forcing the Work Station to boot. After power was cut, the board circuitry would continue to operate off of a battery installed on the board permitting full power to be switched back on after several seconds. The back plate of the board would also contain the required phone jacks and on/off switches. A separate back plate would also be provided and attached to the board using an interface cable, which would contain the adapter ports, microphone jack, speaker volume control, speaker jacks and an adapter jack to interface with an intelligent power backup system. The status lights would be discarded under this approach. There are several reasons why this embodiment of the present invention is less preferred:

A. The system requires an intelligent power backup system in order to achieve the functionality of the present invention.

B. An excessive number of interface connectors would have to engineered into the relatively small space available on the back plates used by the board.

C. The user would be required to open up the Work Station in order to install the system.

D. Temperature monitoring would be distorted by any heat created within the Work Station.

E. An electrical shortage or failure of the Work Station could damage the board and prevent necessary alerts from being issued.

A second less preferred embodiment similar to that discussed above, could be used in which the board would force the Work Station to reset by using the board's low voltage power interface to the Work Station to briefly short out the Work Station's power supply forcing the Work Station to boot (i.e. "crow bar" approach). With this embodiment, however, electrical damage may occur to the Work Station or the hard disk drives installed therein when the power supply is shorted out.

A third less preferred embodiment of the present invention would employ a voice synthesizer as an alternative to capturing user or pre-recorded digitized speech to magnetic media. Since a microphone was already required for use with the invention in detecting sound levels this alternative was considered less desirable. A fourth less preferred embodiment of the present invention would use a parallel port for communication between the Work Station and the Unit instead of the serial port used in the preferred embodiment. Although this alternative would allow faster communications between the Unit and Work Station there are several reasons why this solution is less desirable than the use of serial communications as follows:

A. Work Stations typically have only one parallel port and this port is generally used by a printer, which would leave no port normally available for the apparatus. In contrast, two serial ports are normally present and at least one such port is typically available for the apparatus.

B. Serial port processing is more suited to communications between microprocessor controlled devices making serial processing easier to employ for the apparatus.

C. High speed communications are not needed for the apparatus to function effectively.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings consist of thirteen figures numbered 1 to 13. Figures that consist of more than one sheet contain a unique alphabetic suffix for each sheet. When a figure is referred to in it's entirety, the alphabetic suffix is omitted. A brief description of each figure is as follows:

FIG. 1 is an functional overview of the invention interrelating other figures submitted.

FIG. 2 is engineering diagram representing the internal circuitry of the Unit.

FIG. 3 is front external view of the Unit.

FIG. 4 is a rear external view of the Unit.

FIGS. 5A, 5B, 5C, 5D, 5E, 5F, 5G, 5H, 5J, 5K, 5L, 5M, 5N, 5O, 5P, 5Q, 5R, 5S, 5T, 5U, 5V, 5W, 5X, 5Y, 5Z, 5AA, 5AB, 5AC, 5AD, 5AE, 5AF, 5AG, 5AH, 5AJ, 5AK, 5AL, 5AM, 5AN, 5AP, 5AQ, 5AR, 5AS, 5AT, 5AU are block diagrams of the microprocessor based software operating system controlling processing occurring in the Unit.

FIGS. 6A and 6B are block diagrams describing the installation procedure for the computer software programs necessary to interface the Work Station with the Unit and File Servers to be monitored.

FIGS. 7A and 7B are block diagrams describing the overall software menu process necessary to setup the invention to the user's requirements and test the apparatus is functioning properly.

FIGS. 8A, 8B and 8C are block diagrams describing the software operating in the Work Station that controls processing during a monitoring session.

FIGS. 9A, 9B, 9C, 9D, 9E, 9G, 9H, 9J, 9K are block diagrams describing the software interface program that permits the Work Station to communicate with the Unit.

FIGS. 10A and 10B are block diagrams describing the software programs executed by the user to install or reconfigure the invention.

FIGS. 11A and 11B are block diagrams describing the software programs executed by the user to test the system is operating properly.

FIG. 12 is a block diagram describing the software, programs executed by the user to obtain reports from the system.

FIG. 13 is a block diagram describing the software programs used during a Job Status Monitoring session.

DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 is a operational overview of the invention. Oval objects on this diagram represent physical (i.e. hardware) components of the apparatus and bold line rectangular objects represent software programs necessary to operate the invention.

One or more Central Network computers 1 are connected to the Work Station 2 by network communication interface boards 3 through cables transferring data to and from the Central Network Computer(s) 1, herein referred to as "File Server(s)", to the Work Station 2. Optionally, a Modem Interface program 3A may be invoked during a Monitoring 7 session to place an alert call to a pager in a case where the Work Station 2 has detected a possible failure of the Monitoring Unit 10, herein referred to as "Unit", during a monitoring session. This program is only invoked if a Hayes compatible Modem 3B has been installed in the Work Station and a phone number has been specified during system Setup 6 processing. In this case the alert call would be placed via the Hayes compatible modem 3B. An Install 5 software program developed for the apparatus is used to initially load all software programs from a floppy installation disk supplied as part of the apparatus to effect all required interfaces from the Work Station 3 to the File Servers 1 and Unit 10 for purposes of activating the apparatus. The Install 5 software is also used to initially configure and test that the apparatus is operating properly. Thereafter, the apparatus can be reconfigured, tested and various reports produced using the Setup 6 software programs provided with the apparatus. A block diagram detailing the Install 5 and Setup 6 programs is included as FIG. 6 and FIG. 7 respectively.

Once the apparatus has been configured as desired, a Monitoring 7 software program is invoked whenever the Work Station 2 is re-booted. This Monitoring 7 process is detailed in FIG. 8. A separate monitoring process occurs for a Job Status Monitoring session. This monitoring process is described in FIG. 13. A detailed example of Job Status Monitoring processing is discussed in Section 2, ("Summary Of Invention" section of this filing). All communications between the Install 5, Setup 6, and Monitoring 7 software programs and the Unit 10 are handled by a Interface program 8 developed as part of the apparatus. A detailed block diagram specifying the functions performed by the Interface program is included as FIG. 9. Communications are accomplished by a series of three digit codes that request the Unit 10 to perform a specific monitoring action and to return to the Interface program 8 a three digit code indicating the results of the action. For example a request code of 002 would request the current status of main power. A result code of 200 indicates that main power is present and a result code of 201 indicates that main power has failed. The Interface program 9 also includes the necessary software to access one of the Work Station's 2 serial ports 9 and to send and receive data to and from the serial communications port 9. Similarly, the Microprocessor Based Firmware 20 residing permanently in the Unit 10 includes the necessary software to access, send and receive data through the Serial Interface 11 of the Unit 10 to and from the Serial Interface 9 of the Work Station 2.

The Install 5, Setup 6, and Monitoring 7 programs communicate directly with each File Server 1 monitored through the Network Interface board 3 installed in the Work Station 2. Communications include sending data to the File Server(s) 1 and receiving data from the File Server(s) 1.

A more detailed diagram of the internal circuitry of the Unit 10 is shown in FIG. 2, discussed below.

An external view of the back panel of the Unit 10 is included as FIG. 4, discussed in more detail below. The back panel, as shown in FIG. 1, presently consists of several components. First, there is a Serial Interface Port 11 which is interconnected to the Work Station 2 via a serial cable attached to the Serial Interface Port 9 of the Work Station 2. Second, there is an AC Power Output receptacle 12 for supplying all AC power to the AC Power Input receptacle 4 on the Work Station 2. AC power supplied to the Power Output receptacle 12, is obtained from either the AC Commercial Power Input Receptacle 13 or the Backup Power Input Receptacle 14 under the control of the Microprocessor Based Firmware 20 residing in the Unit 10. When necessary the Microprocessor Based Firmware 20, also controls temporarily cutting off all AC Power to the Power Output Receptacle 12, thereby forcing the Work Station 2 to boot and initiate a new Monitoring session 7. Third, there is an AC Commercial Power receptacle 13 where incoming AC power would be obtained as a primary source of electrical power for the Unit 10. Fourth, there is a Backup Power receptacle 14 which is used as an ,alternate source of AC electrical power for the Unit 10 should primary power fail. Fifth, there is a telephone interface 15 with two jacks designed to accept a standard RJ-11 public utility phone line into one jack and optionally a telephone into the remaining jack. Sixth, there are two available Adapter Ports 16
to which up to two types of commercially available, external detection ("Adapter") Devices, such as motion alarm, water alarm, or entrance alarm contact switches, may be attached. An example of one such device is the Safe House motion detector sold by Radio Shack. Seventh, there is a Fuse 17 designed to protect all low voltage circuitry of the Unit 10. Finally, there are three Switches 18 on the back panel that are a Unit ON/OFF switch, a Watch Dog pulse switch, a volume control knob for the Unit's
10 internal speaker. When the ON/OFF switch is turned off, the Unit still performs two functions as long as AC power is being supplied to the Unit through the AC Commercial Power 13 receptacle. These functions are recharging the Unit's internal rechargeable battery (not shown on this Figure but installed in the Unit 10) and supplying AC power to the Power Input 4 receptacle of the Work Station 2. The Watch Dog pulse switch is depressed to (1) defer a scheduled boot for 30 minutes, when a boot warning is announced by the Unit 10; (2) disable the adapter port monitoring function of the Unit 10 during a monitoring session; (3) terminate alert calls being placed when a monitoring session is not active; and (4) cause the Unit 10 to reset all internal processing and circuits (i.e. cold boot), when the Unit's 10 ON/OFF switch is in the OFF position.

An external view of the front panel of the Unit 10 is included as FIG. 3, discussed in more detail below. This panel presently includes ten Status Indicator Lights 21 designed to reflect the internal operating status of the Unit 10; a Microphone
22 that permits the Unit to pick up spoken messages and to periodically listen for the external smoke (or other alarm device's) Alarm Siren(s) 24; and a Speaker 23 used to replay voice recorded messages or make alert announcements.

An optional, commercially available, Smoke Detector 24, such as a First Alert model no. 83R, is presently incorporated into the apparatus to detect smoke. The micro-processor based Firmware 20 periodically turns on the Microphone 22 for several seconds, then digitizes and analyzes any sound detected. If the level and frequency of any sound detected match the corresponding level and frequency of the Smoke Detector's 24 siren, which has been determined to be 3000 hertz or higher, herein referred to as a Sonalert; smoke alerts are issued by the apparatus. Similar procedures may be followed for other optional devices, such as fire alarms or burglar alarms to permit the Unit to identify different sound levels and frequencies by associating a given hertz level with the specific sound produced by each additional device used. In cases where a loud sound level cannot be precisely identified, a general loud sound level alert is issued. Whenever, a loud sound level is detected, the sound present is transmitted to the user at the time an alert call is completed.

A Temperature sensor 19 is installed in the bottom of Unit 10 over a hole drilled in the bottom of the Unit's 10 case. Mounting the Temperature Sensor 19 in this manner avoids any false temperature readings due a heat build up in the Unit 10. Current temperature data from the Temperature Sensor 19 is obtained and converted to digital form by the Micro-Processor based Firmware 20.

Processing occurring within the Micro-Processor Based Firmware 20 installed within the Unit 10 is detailed as a block diagram in FIG. 5, which is discussed in more detail below. This Micro-processor Based Firmware 20 schedules, processes and controls the activities of the Unit 10.

Referring next to FIG. 2, the internal circuitry of the Unit will be discussed in more detail. A main AC power source and optionally an AC backup power source supplies power to the Unit and the Work Station via the AC control circuit 801. This circuit contains a power selection device or relay which under microprocessor 806B control selects backup power should main power fail (providing backup power is present). This approach insures that either available source of AC power will be used to provide uninterrupted AC power to the Unit and Work Station that is plugged into the Unit's AC power output receptacle. AC Power out to the Work Station is further controlled by a circuit which can temporarily "break" AC power under microprocessor control causing the Work Station to re-boot when power is restored. The software programs developed for the apparatus automatically determine when to break power in this manner. Power is broken when the Work Station fails to communicate with the Unit for 90 seconds during a monitoring session, a user schedule boot time occurs, or main power fails when a monitoring session is not active. The AC control circuit 801 evaluates the two power sources via AC input opto-isolators and supplies their status to the microprocessor 806B.

The power supply 803 supplies a constant voltage and limited current, to charge the internal battery 802, which then powers the five volt regulator through circuitry. In front of the regulator is a current passing circuit which is a discrete model of an SCR (silicon controlled rectifier) using a pair of transistors so that when AC power is applied and a small current is introduced, the circuit turns on and will continue even after total power is lost unless turned off by the microprocessor
806B.

The indicators 804 are under control of the microprocessor 806B except for the fuse blown indicator which assumes the current that would have been flowing through an intact fuse.

The serial port 805 is converted to logic levels and supplied to the microprocessor's serial pins. Furthermore, a circuit is provided that senses a positive or negative voltage on one of the RS-232 status signals and provides this status to the microprocessor. This approach allows the apparatus to discern that either the cable is not connected, the Work Station has no power, or a hardware failure has occurred. Also, one of the RS-232 input status signals is looped back to an RS-232 output status signal permitting the Work Station Interface program to discern that the cable is connected to the Unit and the serial port assignments to be verified (i.e. to detect a serial port user assignment error or interrupt conflict).

The on-off switch 811 is only logical in nature and through a debouncing circuit supplies it's state to the CPU. The momentary "watch-dog" push button switch 812 is similarly wired and it's status is provided to the microprocessor.

The CPU 806B could be an 80C32 microprocessor which supports a serial port and has two internal timers. One timer is used for generating sampled voice signals and DTMF touch tone telephone signals and the other timer is fixed at 100 times a second rate to monitor the internal hardware status of the Unit. Also, this microprocessor presently has 256 bytes of internal RAM (Random Access Memory) and another 128 bytes of non-volatile RAM 806A which is used primarily for storing emergency phone numbers.

The CPU Section 806 contains an analog-to-digital converter 806E for recording verbal messages from the microphone 810 and sending this via the serial port to the interface program 8. In addition, this microphone 810, after amplification, goes to a circuit which detects "loud" sounds and converts these to "square" waves which are provided to the CPU so that, for example, the frequency from sonalert tones from a smoke detector can be detected. Also, this converter 806E is used to measure the current temperature using the temperature sensing thermistor 807 via the analog switch which selects what to measure.

The CPU Section 806 contains a digital to analog converter which generates telephone DTMF touch tone signals internally stored in program memory 806C or the verbal messages internally stored in program memory 806C or received from the serial port via the interface program 8 (FIG. 1). The digital to analog output is provided to the telephone circuit 808. This circuit connects, via a coupling transformer and off-hook relay, to a standard public utility telephone line using an RJ-11 connector. Also for convenience, a second RJ-11 connector is provided for an optional telephone. The signal tapped across the coupling transformer and a 600 ohm resistor (an industry standard interface) is provided to the analog-to-digital converter for recording sound from the phone and interfaces with a circuit supplying call-progress (or sound-sensed) status to the microprocessor, when phone calls are placed. The audio signal tapped at the resistor/transformer connection mentioned above is provided to the audio circuit 809, which (via volume control) is amplified before being sent to a speaker contained in the Unit. Digitized voice announcements not related to phone calls also pass through this circuit to be announced in humanly intelligible form via the speaker. As a result, the off-hook relay is DPDT (double pole--double throw) so that when on-hook, it is connected to a 600 ohm "dummy" resistor which provides the proper impedance or load so the sound heard via the speaker is comparable to the sound heard when the phone is offhook. The amplifier (speaker) circuit is controlled by the microprocessor thus allowing the speaker to be disabled during a monitoring session permitting the apparatus to operate in a "silent alarm" mode.

Two adapters are supported 807 and their statuses are provided to the CPU. The connection to these adapters provide a nominal ten volts as power. Input to these adapters are security and/or environmental monitoring devices that operate in a normally-closed condition.

More detailed electrical circuit diagrams presently employed in the Unit are contained in part 9 of the microfiche appendix. A listing the specific parts presently used in the Unit and referenced in the circuit diagrams is included in part 10 of the microfiche appendix.

FIG. 3 is a block diagram detailing a frontal view of the Unit. This front panel of the Unit presently consists of a speaker 250, microphone 251 and various indicator lights 252-260. Going from left to right the left most indicator light reflects the status of the Unit's internal rechargeable battery. The next two indicator lights display the status of AC POWER coming into the Unit from a wall outlet or UPS (power backup system) and going out of the Unit to power the Work Station. The right most seven lights indicate the status of various activities that occur within the Unit.

The speaker 250 and microphone 251 presently are located on the left side of the front panel and permits (1) recording alert messages, (2) listening to a phone call placed by the Unit and (3) listening to a playback of recorded alert messages.

All ten indicator lights will be off until the ON/OFF power switch, located on the left rear side of the Unit is turned ON. When the Unit is turned off with NO external source of power, the Unit will run using it's internal batteries and the status lights will activate, assuming the internal battery has not been drained of power. When external power is available, the Unit will automatically recharge it's internal battery as necessary.

A detailed description of the purpose of each of the ten indicator lights going from left to right is as follows:

BAT. STATUS 252--This indicator shows the current status of the Unit's internal battery. When the battery is fully charged, the light will be green. As the battery is drained of power the light will turn yellow. The light will turn red when the battery is drained of power.

AC IN MAIN 253--When this indicator is OFFs it means that the power from the wall outlet has failed; the power cable from the wall outlet to the Unit is not properly connected or making a good connection; or the power cable plugged into the Unit's POWER input receptacle on the rear panel of the Unit may be defective. When this indicator is ON, it means that power from the wall outlet is being received by the Unit.

AC IN UPS 254--When this indicator is OFF, it means an external power backup system is not in use or has failed; the power cable from the battery output to the Unit is not properly connected or making a good connection; or the power cable plugged into the Unit's BATTERY input plug on rear panel of the Unit may be defective. When this indicator is ON, it means that power from an external UPS Backup system is being supplied to the Unit.

UNIT READY 255--If this indicator light is on, the system is in a normal monitoring mode. When the Unit's power is first turned this light will be OFF and stay OFF until after a processing session has began. Thereafter, the light should always remain ON until the Unit is turned off again. When this indicator light is off, all system monitoring capabilities are disabled. During system installation processing, this light will remain OFF until the installation process is completed.

SERIAL LINK 256--If this indicator light is ON, it means that the serial cable is properly connected to the Work Station and the Work Station is turned ON (i.e. voltage is detected within the serial cable). When this light is OFF, it means either (1) the serial cable is not securely connected at both ends, (2) the Work Station is not turned ON, (3) the serial cable is defective, (4) the Work Station's serial port is defective, disabled or not configured properly (i.e. serial port interrupts conflicts with another device, such as a mouse, modem, etc.) or (6) the Unit's serial port is defective.

SERIAL ACTV 257--When flashing or ON, this light indicates that data is being sent from the Unit to the Work Station or vice versa. When OFF, this light indicates no data transmission activity is occurring between the Unit and the Work Station.

BOOT WARN 258--Whenever power fails, the Unit loses communications with the Work Station or the Unit is scheduled to boot the Work Station, this light will begin flashing. When any of these events occur, the Unit waits for 2 minutes before actually cutting power to the Work Station to force the Work Station to boot. During this period, this light will flash; and, if a monitoring session is not active, the Unit will announce through it's speaker system that Work Station will be booted. This approach gives any user on the Work Station ample time to save any open files before the Work Station is booted.

CALL ACTV 259--When a phone call is being placed by the Unit, this light remains ON until the call has been completed and the Unit hangs up the phone. When this light is off, no phone calls are in progress.

WATCH DOG 260--When the Watch Dog light is ON, the Unit's adapter ports have been enabled and alert calls will be placed should an alert be detected by a device attached to either adapter port. The first person arriving at the office would normally depress the Watch Dog pulse button located on the back of the Unit to disable the adapter ports (in cases where intruder detection devices are plugged into either adapter port) before alert calls are placed. When this pulse button is depressed the Watch Dog light will turn OFF. The Watch Dog light will also be turned OFF by pressing the F1 key to end a monitoring session. If the intruder detection options of the System has been installed, this indicator light serves as a reminder that the system is active. This is important, because the first person who arrives at the office on a work day will be treated as an intruder unless the Watch Dog pulse switch is depressed upon arrival.

FUSE BAD 261--If this indicator light is ON, it means the fuse on the rear panel of the Unit needs to be replaced. The fuse is accessible by unscrewing the fuse cap. The fuse presently used is a 5 amp slow blow fuse. If this indicator light is OFF, the fuse is OK.

FIG. 4 is a block diagram detailing a rear view of the Unit. The rear panel of the Unit presently contains the power receptacles, telephone cable jacks, 9 pin serial port, speaker volume control, fuse, adapter ports and ON/OFF switches. A detailed description of each item on the back panel going from left to right is as follows:

UNIT ON 262--When this switch is pushed in at the top, the Unit will be activated. Otherwise, the Unit will be deactivated. (NOTE: The Unit will still supply power to the Work Station even when the Unit has been deactivated.) when the Unit is being installed or moved, the ON/OFF switch should always be in the off position to avoid draining the internal battery of power.

AC POWER IN MAIN 263--One of the two power cables supplied with the apparatus should be plugged into this receptacle. The other end of the power cable must be then plugged into a commercial power electrical power outlet.

AC POWER IN UPS 264--The second power cable supplied with the Unit should be plugged into this receptacle. Then, the other end of this cable should be plugged into an AC backup power system (UPS). If no AC power backup system is available, then this cable should not be installed.

5 AMP FUSE 265--A user serviceable 5 amp, slow blow, fuse protects the Unit.

AC POWER OUT TO PC 266--The end of the power cable used to supply power to the Work Station where the Unit is connected must be plugged into this receptacle.

ADAPTER #1 /ADAPTER #2 267 & 268--These two ports permit optional commercially available monitoring devices to be connected to the Unit, such as a Safe House motion detector or entrance alarm devices available, from Radio Shack. Both Ports are identical allowing up to two devices to be added to the system. If only one feature is added, either adapter port may be used when activating the feature.

VOLUME KNOB 269--This knob is used to adjust the Unit's speaker volume.

SERIAL PORT 270--One end of the serial cable supplied with the Unit must be plugged into this port and the other end should be plugged into an available serial port on the Work Station. A serial adapter plug is supplied, if necessary to connect the cable into the Work Station's serial port.

WATCH DOG SWITCH 271--When this pulse switch is depressed during a monitoring session both adapter ports on the rear panel will be disabled for the remainder of the monitoring session. As previously mentioned, these adapter ports are used to interface with optional external devices such as door alarms or motion detection devices. If no security monitoring features have been added to the adapter ports, depressing this pulse switch will have no effect. Otherwise, anytime a monitoring session begins, the adapter ports will be monitored automatically and remain active until either this pulse switch is depressed or the session is ended by pressing the F1 function key.

This switch can also be used for four other purposes that have nothing to do with either adapter port. First, when the Unit announces through it's speaker that a scheduled boot is about to occur, this switch can be depressed to defer the schedule boot from occurring for 30 additional minutes. If more that a 30 minute delay is required, the switch can be depressed again when the Unit re-announces the boot warning (after 30 minutes have passed). Second, if the Unit should ever lock-up or operate incorrectly, the Unit can be turned OFF and this button depressed to reset the Unit back to a normal operating mode. When this procedure is followed, the Unit's ready light will be turned OFF. Third, if a Fail Safe alert condition is detected while a monitoring session is not active, this button can be pressed to immediately discard any uncompleted alert calls, meaning someone is aware of the alert and no further alert notifications are necessary. Finally, when a loud sound is detected (e.g. a smoke alarm siren) while a monitoring session is not active, this switch can be pressed to disable loud sound alert calls, after the loud sound detected message is announced through the Unit's internal speaker (during a two minute warning period).

PHONE/LINE 272 & 273--One end of the telephone cable supplied with the Unit should be plugged into the "Line" jack and then the other end plugged into a standard telephone company outlet. If necessary, a standard telephone may then be plugged into the remaining "Phone" jack. The telephone jacks have surge protection and is electrically isolated from all other circuitry so as to comply with FCC part 68 regulations.

FIG. 5 is a block diagram of the Unit's operating system that is stored in the Unit's memory, presently consisting of a read-only EPROM. A copy of the actual operating system assembler source code presently used by the apparatus is contained in the microfiche appendix, Part 1.

This figure plus FIGS. 6 to 13 follow standard computer software flow chart conventions familiar to any person skilled in the trade. A circle block indicates the processing flow is branching to or from a different location within the figure (i.e. an off-page or on-page connector. This branch may occur to another sheet within the figure or to a different location on the same sheet. The letters contained within the circle are unique for each possible branching path taken. In some cases multiple branches may be made within the figure to a single location within a figure. A rectangular block is sometimes divided into two sections as shown in block 506 on FIG. 5Q. This format is used to indicate a sub-routine is being called and, when the sub-routine is complete, processing resumes at back at the next block on the block diagram. In this case the upper rectangular section of the block contains the figure number (left side of the rectangle) and alphabetic identification (right side of the rectangle) referring to the identification inside the circle where the sub-routine block diagram begins. A rectangular block which is not divided, as illustrated by block 301 on FIG. 5A indicates a specific process is being performed. A diamond shaped box, as illustrated by block 304 on FIG. 5A, indicates a YES or NO decision must be made. A oval shaped block indicates a program or routine is beginning and a hexagon shaped block indicates a program or routine is ending.

The Unit's operating system block diagram begins on FIG. 5A at block 300. The program source code for the Unit's operating system is written in assembly language. This operating system is comprised of several parts. There are three interrupt routines consisting of a Fast-Interrupt, a Slow-Interrupt, and a RS-232 Serial-Interrupt routine. Also, there is the Main-Loop routine, which is the main processing routine, and various other sub-routines which services commands received via the serial port and other conditions which occur.

The Fast-Interrupt routine, detailed on FIGS. 5A to 5C, is responsible for generating sound and for monitoring sound. This is presently the 80C32's timer number 0 interrupt. Sound sampling occurs 12,800 times a second for sound monitoring. Sound generation occurs either 12,800 times a second for DTMF touch tone generation or 5,760 times a second for generating voice. When service is needed from the Fast-Interrupt routine, the Main-Loop routine (beginning on FIG. 5P) sets the necessary flags and data pointers indicative of the action to be taken and enables the Fast-Interrupt routine.

The fast interrupt begins at block 300. Initially, the Fast-Interrupt routine determines if Sound-Generation mode is requested 300A, which occurs when a Fail Safe prerecorded alert message needs to be spoken. If it is a Sound-Generation mode, a sound data byte is fetched from memory 301. This byte is tested 302 for an end of sound value (hex FF) meaning the alert message being spoken is complete. If it is an end of sound value, then the interrupt is disabled (turned off) 305 and processing exits from the Fast-Interrupt routine. Otherwise, the byte is output to the Digital-To-Analog converter 303, the sound data pointer is incremented 306 to point at the next data byte, and processing temporarily exits from the Fast-Interrupt routine to continue other task processing and automatically returns at the specified frequency until-the message to be spoken is completed.

If it is not Sound-Generation mode 300A, the Fast-Interrupt routine checks the Loud-Sound-Detection-Mode flag 304 to determine if sound monitoring should occur. If this flag is off, processing continues at block 304A to check the next status flag. Otherwise, the routine samples sound via the Unit's microphone to determine if the sound present at that instant is above a fixed decibel level possibly indicative of a external alarm siren as set forth on FIG. 5B. A counter is updated for each sample taken 307, which tallies the number of samples occurring during one sound fluctuation. The relative frequency of the sound is derived from the number of samples tallied. A continuous high decibel sound typical of a fire, burglar or other alarm siren presently set to a value of 900 hertz or higher is herein referred to as a "loud sound". A known loud sound pattern produced over a sustained period of time, such as the sound produced by the specific smoke detector designated for use with the apparatus, is herein referred to as a "sonalert". An unknown loud sound pattern produced over a sustained period of time, which appears to be indicative of some form of fire, burglar or other alarm siren, is herein referred to as "loud sound" alert.

If a sound sample does not exceed an upper decibel threshold 308, the Was-Above flag is cleared. This flag keeps track of the previous state of sound to determine how frequently the sound level exceeds the upper limit. After this flag is cleared 309, processing exits from the Fast-Interrupt routine until the next Fast-Interrupt cycle. If the sound sample exceeds the upper limit 308 and, during the last cycle the sound sample also exceeded the upper decibel level 310, then processing exits from this routine until the next Fast-Interrupt cycle. Otherwise, the sound sampled has just crossed over the loud sound threshold, the Was-Above flag is set accordingly 311, and now it is time to examine the number of samples tallied since the last cross over occurred.

If the Interface program 8 has invoked this interrupt 312A, the tallied period count is returned to the Work Station via the serial port to the Interface program 312B. Then, the period count is cleared 315 to begin tallying for the next cross over period and processing exits from this routine until the next Fast-Interrupt cycle.

If the value contained in the period counter is less than 6 313A, this indicates a frequency of greater than 2500 hertz, which corresponds to the known sonalert for the specific smoke alarm siren, supplied with the apparatus. As a result, the counter for the smoke alarm is incremented 313B. If at the conclusion of the overall sampling session, which is currently set to 5 seconds, this counter represents over 90% of the total periods occurring 534A; smoke alerts are issued 534B by the Unit. Then, the period count is cleared 315 to begin tallying for the next cross over period and then processing exits from this routine until the next Fast-Interrupt cycle.

If the value contained in the period counter is 14 or greater 314A, it indicates a frequency of less than 900 hertz, which is not a loud sound. Then, the period count is cleared 315 to begin tallying for the next cross over period and then processing exits from this routine until the next Fast-Interrupt cycle.

If the value contained in the period counter is less than 14 314A, it indicates a frequency of greater than 900 hertz, which corresponds to a loud sound. As a result, the counter for the loud sound is incremented 314B. (Note: If at the conclusion of the overall sampling session, which is currently set to 5 seconds, this counter represents over 90% of the total periods occurring; then loud sound alerts are issued by the Unit, as set forth in blocks 535A and 535B of the Mainloop Routine). Next, the period count is cleared 315 to begin tallying for the next cross over period, and processing exits from the Fast-Interrupt routine until the next Fast-Interrupt cycle.

If the Loud-Sound-Detection-Mode flag is off 304, a send A/D to serial port flag is checked 304A. If this flag is set, it means that digitized sound data has been received via the Unit's microphone, which needs to be sent to the Work Station for storage on magnetic media with the Work Station. This digitized sound is captured from the microphone input 304B and each digitized sound byte received is sent to the Work Station via the serial port 304C. Then, processing exits from the Fast-Interrupt routine until the next Fast-Interrupt cycle.

If the A/D to serial port flag is not set 304A, a Pass-Thru flag is then tested 304E. If this flag is set, it means that a loud sound alert call has been placed and any sound present in the area where the Unit is installed must be passed from the Unit's microphone out directly to the telephone line so the person being alerted can listen to any sounds that are present during the alert call. The digitized sound is captured from the microphone input 304F then passed through to the phone line
304G. Then, processing exits from the Fast-Interrupt routine until the next Fast-Interrupt cycle.

If the Pass-thru flag is not set 304E, a Check-DTMFT-one flag is then tested 304H. If this flag is set, it means that any sound received over the phone line during the silence period between when alert messages are repeated needs to be captured and tested to determine if the person called has pressed and held a specific touch tone on their telephone, indicating that the call has been confirmed. Currently, the specific touch tone key used to confirm a call is an "*". To accomplish this process, a time counter 315K is incremented each time the Fast-Interrupt routine is invoked (i.e. 12800 times per second). Then any sound present is digitized 315L and compared to prior value present during the previous Fast-Interrupt cycle. If a sound direction flag indicates that the sound wave pattern has been increasing in value and the current value is greater than or equal to the previous value, then the waveform direction has not changed. Similarly, if a sound direction flag indicates that the sound wave pattern has been decreasing in value and the current value is less than or equal to the previous value, then the waveform direction has not changed. If either of these two conditions are met 315M, the time count is Set to zero 315S, then processing exits from the Fast-Interrupt routine until the next Fast-Interrupt cycle. Otherwise, the frequency of the changes is represented by the value in the time count accumulator. If the count is 16 or more, it is outside of the DTMF touch tone frequency range 315N and processing exits from the Fast-Interrupt routine until the next Fast-Interrupt cycle. Otherwise, one of 16 accumulators is located based on the time count 315P & 315Q, then this accumulator is then increment by 1 315R. An accumulator is also maintained to count up the number of changes that have occurred during an 1/10 of a second time interval. The specific values that are accumulated in the array during this 1/10 of a second interval are compared with a specific set of values expected that are indicative of an "*" touch tone sound. This comparison is done at block 704C in the Call-Phone Routine on FIG. 5AJ and block 677 of the Service Command routine starting on FIG. 5Z. Then, the time count is set to zero 315S, then processing exits from the Fast-Interrupt routine until the next Fast-Interrupt cycle. (Note: An alternative to this process (i.e. blocks 304H, 315K-315S) would be to incorporate a DTMF decoder chip (such as the MT8870 integrated circuit chip) on the Unit's circuit board.)

If the Check-DTMF-Tone is not set 304H, a Call Progress flag is then tested 304J. If this flag is not set, it means there are no tasks for the Fast-Interrupt routine to perform and processing exits from the Fast Interrupt routine until the next Fast-Interrupt cycle.

If this flag is set 304J, it means that an alert call has been placed and whatever sound is detected on the phone line must be digitized and returned to the Work Station for ultimate storage on magnetic media directly accessible to the Work Station, for purposes of recording whatever is spoken when a call is answered, as an audit trail to confirm the call was completed. Multiplexed with this sound data transmitted is call progress data which indicates whether sound is present or not. This call progress data is analyzed by the Work Station to determine the status of the call.

If the Check-DTMF-Tone is set 304J, the CP-Ready Flag is checked 315A. If Call Progress is available for transmission (as set at blocks 403 & 404), the CP-Ready flag is cleared 315AA and register 3 is set to zero as a default value 315B. If sound has been sensed on the phone line 315C (i.e. the CP-ON Flag is on), the register value is set to 1 315D. Otherwise, the register is left at it's default value 0. Then, the value in the register is transmitted to the Work Station 315E and processing exits from the Fast Interrupt routine until the next Fast-Interrupt cycle.

If the CP-Ready Flag is not set 315A, a byte of digitized sound data occurring on the phone line is read 315F. If the A/D value is less than 2 315G, the value is set to 2 315H to avoid being confused with 0 & 1 values reserved for call progress. This approach results in undetectable sound distortion and minimizes the amount of data needed to be transferred to the serial port to accomplish both call progress monitoring and sound recording data in a single data stream. Then, the digitized sound byte is sent to the serial port 315J and processing exits from the Fast Interrupts routine until the next Fast-Interrupt cycle.

The Serial-Interrupt (starting on FIG. 5D on block 316) communicates with the Work Station's Interface 8 program via a serial cable at a data transfer rate presently set to 56,700 baud. This routine is activated whenever a serial byte is received or the transmission of a byte is completed. This routine handles data sent from the Work Station including command protocols; digitized sound data; and data to be stored in the Unit's memory. Also, this routine supports a sound recording mode, where a voice alert message is spoken into the Unit's microphone, digitized, then sent to the Work Station via the serial port.

Initially, the Serial Interrupt routine tests whether a transmit buffer empty condition caused the interrupt 317. If so, the Transmit-Busy flag is cleared 319 indicating the port is ready to send another byte. This flag is set whenever any routine in Main-Loop processing sends a byte to the Work Station.

Then, the Serial-Interrupt tests to determine if a received character generated the interrupt 320. If a received character did not generate the interrupt, the processing exits from the Serial-Interrupt routine. Otherwise, if the light indicators are enabled 321, the serial activity indicator light is turned on 322. Normally, all light indicators are enabled except when the Unit is first turned on and all indicator lights are being sequentially tested.

Next, the routine determines which general category of data is being received from the serial port. There are four categories (i.e. modes) of data that can be received, namely digitized sound data (Play-Sound), data to be loaded in memory (Data-Load), Immediate-Data or Protocol-Data mode. Initially, a Protocol-Data mode is assumed and when complete and verified, the protocol data packet contains a valid command. This command is processed by the Main-Loop routine and is used as the basis for setting specific data modes, as well as other processing actions taken.

First, the Play-Sound mode 323 is tested. If the most recent command received has caused the Play-Sound mode to be set, the received byte is digitized sound data to be converted to audible form. Accordingly, it is written directly to the Digital-To-Analog converter 324, then a quarter second timeout is set 325 and processing exits from the Serial-Interrupt routine. (The Slow-Interrupt routine decrements this timeout 353 and should it reach zero 354, then the Play-Sound mode is terminated 355, meaning the sound data stream for the message has completed).

Second, the Data-Load mode 326 is tested. If the most recent command received has caused the Data-Load mode to be set, then the received byte is written to internal memory 327 and then the load pointer is incremented 328 to permit a block of data received to be processed. If the ending address is reached 329, indicating that all data for this block is loaded, then the Data-Load mode is terminated 330 and processing exits from the Serial-Interrupt routine. This process would be used, for example, to load a Fail Safe phone number into the Unit's non-volatile RAM.

Third, the Immediate-Data mode is tested 331. This mode handles one or two data bytes that accompany certain command as opposed to a block of data handled by the Data-Load mode discussed above. An example of an immediate command would be setting the number of delay seconds applicable to an adapter port where the immediate data following the command would be one byte containing the number of delay seconds. This mode is enabled whenever a command is received as the default mode so as to prevent the data from being treated as command protocol. After the command is processed, this mode is cleared in Main-Loop so that the system is ready for additional command protocol. When this mode is enabled, the data byte is stored for further processing 341A. Then, the Immediate-Data-Ready flag is set to alert the command processor that data related to a command has been received 341B; the Work Station timeout is cleared 340, indicating the Work Station linkage is OK; the reboot counter is cleared 341 indicating that no reboot attempts have occurred since the last time data was received from the Work Station; then processing exits from the Serial-Interrupt routine.

Finally, at this point in Serial-Interrupt routine processing, the data received must be a command protocol 332. The command dialogue consists of a multi-byte protocol. Without revealing actual byte values, each command processed must have the following sequence occur. First a Command-Start-1 byte is received whereby a Ready-1 byte is sent back. Then a Command-Start-2 byte is received whereby a Ready-2 byte is sent back. Then, the Command byte is received and echoed back to the Work Station. Then, a Command-Go byte is received at which point the command protocol is successful and a valid command has been received. If this sequence is not received then a NAK is sent back and the process repeated.

If a command has not yet been fully received 333, processing exits from the Serial-Interrupt routine until another byte is received.

If a command is correctly received 333, then immediate commands are checked for a system status command. If the command is Get-System-Status (e.g. status of on/off switch or scheduled boot in progress) 334 and emergency calls are being made 342, then the Abort-To-Mainloop flag is set 343. This flag will cause any phone call in progress to terminate. Then, if the Unit's on-off switch is off 344, this status is sent 345 to the Work Station and processing exits from the Serial-Interrupt routine. If a scheduled boot is in effect 346, then this status is sent 348 to the Work Station and processing exits from the Serial-Interrupt routine. Otherwise an Acknowledge-byte is sent 347 and processing exits from the Serial-Interrupt routine.

If a system status command is not received 334 and the command is session-end 335, indicating the end of a Work Station monitoring session, the Emergency-Boot flag is set 336A, an Acknowledge-byte is sent back 336B, and processing exits from the Serial-Interrupt routine. If the command is not a session end, the command code is stored 337, the Command-Ready flag is set 338, the Immediate-Data mode is set 339, the Work Station timeout is cleared 340, the boot counter is cleared 341, and processing exits from the Serial-Interrupt routine.

The Slow-Interrupt starting on FIG. 5F at block 349, is the 80C32's timer 2 interrupt and occurs at a fixed rate of 100 times a second. This interrupt is responsible for maintaining various system software timers; checking timeouts; monitoring hardware status circuit signals from AC power sources, adapters, switches, etc.; updating system status flags; and setting the Unit's front panel light indicators.

As the first processing step, this interrupt toggles the hardware reset circuit to prevent a reset 349A. If this toggling does not occur for a period currently set to 0.25 seconds, then the Unit is malfunctioning and the microprocessor will be automatically reset by the hardware circuit.

Then, a wait timer is incremented 350 which is used in timing various processing activities such as the two second delay in hanging up the phone. Next, the serial receive timeout is updated 351. If the serial receive Play-Sound mode is on 352, then this timeout is decremented 353 and should it reach zero 354 then the Play-Sound mode is terminated 355, indicating the message to be spoken is complete. If the serial receive Play-Sound mode is off 352, then processing continues at block 356. Hardware status signals, such as the status of AC power, are then input and their corresponding flags are set 356. Then, if the Unit's on-off power switch is off 357, the Abort-To-Mainloop flag is set 358 and the Emergency-Unit-off flag is set 359. (NOTE: limited processing still occurs within the Unit even when the Unit's on/off switch is in the off position). If the Unit's on-off power switch is on 357, then processing continues at block 360.

Next, if RS-232 serial voltage is not sensed 360, then the Emergency-Serial flag is set 361. Otherwise processing continues at block 362. If the momentary Watch Dog switch 18 is pressed 362 and the Momentary-Enable flag is on 363, then the Button-Pressed flag is set 364. Otherwise, processing continues at block 365.

If main power is present 365, then the Main-Power-Fail flag 368 and Timer flag 369 are cleared. Otherwise, when main power is not present the main power good timer is cleared 366. If the Main-Power Good flag is on 367 meaning main power has Just failed, the Main-Power-Good flag is cleared 370 and, if backup power is present 371, the power selection relay is turned on to switch to backup power 372.

If backup power is present 373, processing continues at block 377. If backup power is not present 373, the Backup-Power-Good flag is cleared 374, the backup power timer is reset 375, and the switch power selection relay is switched back to main power 376.

If the Button-Pressed flag is on 377 while the on-off switch is off 378, then processing halts and the hardware circuitry resets the microprocessor and performs the Reset sub-routine (see FIG. 50 starting at block 475). Otherwise, when the Button-Pressed flag is on and any adapter flags are on 379, indicating the adapter monitoring system is active, then the button pressed condition will clear the Button-Pressed flag 380, adapter mode 381, Watch Dog indicator light 382 and all adapter flags 383, which in effect disables all adapter monitoring. If the Button-Pressed flag is off 377 or the adapter flags are off 379, then processing continues at block 384.

Next, both adapter statuses are monitored, If the Monitoring-Session flag 384 indicates a monitoring session is not active, then Adapter-Breach flags directly reflect that adapter inputs 385, 386, 387, and 388 have triggered when a breach flag is on, the device attached to the adapter has detected an alert (i.e. breach) condition. This process permits testing of the adapter ports. Processing then continues at block 401.

Otherwise, if the Monitoring-Session flag is on 384; a device is installed on adapter 1 389; the device has detected an alert condition 390; and the Adapter-Triggered flag is off 391, meaning the device has just detected the alert condition; then the Triggered-Flag is set 392, the delay before alarm timer is initialized 393, and the Button-Enable flag is set 394, allowing the momentary button to clear the alert condition. Then, the same process is performed for adapter 2 in blocks 395-400.

Next, the call progress 100's timer is maintained. If it not at maximum 401, then it is incremented 402. This allows for 2.55 second maximum with 0.01 second resolution for call progress determination, as discussed in more detail in the Get-Call-Progress sub-routine beginning on FIG. 5AN. Then, the Call-Progress-On flag (i.e. CP-On flag) is updated from the call progress input 403 and the Call-Progress-Ready flag set 404. If call progress monitoring is in effect 405, the session timeout timer 406 is set to zero and the call-progress-on (or off) status is sent to the serial port 407. This permits the Interface program running on the Work Station 2 to monitor the progress of telephone calls placed by the Unit.

Next, the 1/20th second timer is tested 408. If 1/20th second has not elapsed, then processing exits from the Slow-Interrupt routine. Otherwise, processing continues at a 20 times per second rate and the call-progress 20's timer is updated 409. This timer allows call progress timing of a maximum of 12.75 seconds and is presently used for 5 and 10 second call progress timeouts.

Then, a quarter second timer is tested 410. If a quarter second has not elapsed, then processing exits from the Slow-Interrupt routine. Otherwise, if indicators are enabled 411, then any indicators which are set to blink (e.g. boot warning indicator) are turned on and off for a quarter second 412.

Next, a one second timer is checked 413. If one second has not elapsed, then processing exits from the Slow-Interrupt routine. Otherw