WO1995004422A1 - Method and apparatus for limiting the duration of a telephone call - Google Patents

Method and apparatus for limiting the duration of a telephone call Download PDF

Info

Publication number
WO1995004422A1
WO1995004422A1 PCT/US1993/007255 US9307255W WO9504422A1 WO 1995004422 A1 WO1995004422 A1 WO 1995004422A1 US 9307255 W US9307255 W US 9307255W WO 9504422 A1 WO9504422 A1 WO 9504422A1
Authority
WO
WIPO (PCT)
Prior art keywords
telephone
time
network
lines
numbers
Prior art date
Application number
PCT/US1993/007255
Other languages
French (fr)
Inventor
Harry B. Hahn
Lawrence A. Ball
James G. Ferro
Travis Marlatte
Original Assignee
Rauland-Borg Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rauland-Borg Corporation filed Critical Rauland-Borg Corporation
Publication of WO1995004422A1 publication Critical patent/WO1995004422A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/38Graded-service arrangements, i.e. some subscribers prevented from establishing certain connections

Definitions

  • the present invention relates generally to private branch exchange telephone systems, and more particularly to an apparatus and method for controlling access to selected telephones connected thereto.
  • PBX private branch exchange
  • Telephone calls are often made from public telephone booths and the like wherein the calling telephone is disconnected at the central station after a time expires, but not locally in private branch exchanges. Moreover, such telephones are disconnected in dependence on the expiration of purchased time, which typically depends on the location of the number dialed, and not on a fixed, preprogrammed basis independent of these other factors.
  • Another related object is to provide a telephone system of the above kind incorporating other conventional features including limited prefix dialing capabilities, limited area code dialing capabilities, blocking of incoming calls, and the like.
  • the present invention provides an apparatus and method for limiting the connection time of at least one selected telephone extension in a private branch exchange telephone system.
  • the system first awaits a request for connecting the selected telephone extension to a telephone having a telephone number associated with the public telephone network.
  • the requested number is then switched to the network to connect the selected extension to the network telephone.
  • the elapsed time of the call monitored, and the call is terminated upon the earlier occurrence of either a manual request for
  • FIGURE 1 is a block diagram of a computer controlled multi-link administrative telephone system according to the invention.
  • FIG. 2 is a block diagram of a system controller for the telephone system of Figure 1, including a
  • FIG. 3A-3B are a flow diagram describing the control by the system of a "student" telephone according to the invention.
  • FIGS. 4A and 4B are tables illustrating the format of data stored in memory for use by the system controller in accordance with the invention
  • FIG. 4C are state machine diagrams (i), (ii) and (iii) of the system controller for controlling the student phone in connection with the data stored in the memory illustrated by the tables of FIGS. 4a and 4b;
  • FIGS. 5A and 5B are tables illustrating the format of data stored in memory for use by the system controller in accordance with the invention.
  • FIG. 5C are state machine diagrams (i), (ii) and (iii) of the system controller for controlling the student phone in connection with the data stored in the memory illustrated by the tables of FIGS. 5A and 5B;
  • FIG. 6A is a table illustrating the format of data stored in memory for use by the system controller in accordance with the invention.
  • FIG. 6B are state machine diagrams (i), (ii) and (iii) of the system controller for controlling the student phone in connection with the data stored in the memory illustrated by the table of FIGS. 6A and 7A;
  • FIG. 7A is a table illustrating the format of data stored in memory for use by the system controller in accordance with the invention;
  • FIG. 7B is a state machine diagram of the system controller for controlling the student phone in
  • FIG. 8A is a table illustrating the format of data stored in memory for use by the system controller in accordance with the invention
  • FIG. 8B are state machine diagrams (i) and (ii) of the system controller for controlling the student phone in connection with the data stored in the memory
  • FIGS. 9A and 9B are user interfaces for configuring the system controller in accordance with the invention.
  • FIG. 10 is a flow diagram for executing an override feature from a system telephone in accordance with the invention.
  • FIG. 11 is a flow diagram for configuring one of the telephone lines in the telephone system as a "student" phone in accordance with the invention by way of
  • a Private Branch Exchange (PBX) telephone system 20 connects telephone extensions 22(1) to 22 (N 1 ) associated therewith to telephones in a public network 24 and to each other.
  • the PBX system 20 is substantially as disclosed and illustrated in U.S. Patent No. 4,744,103 to Dahlquist et al., which is assigned to the same assignee as that of this invention.
  • the Dahlquist et al. patent is incorporated herein by reference.
  • the PBX system 20 links
  • trunk lines 26 are connected to a central office (CO) 28 that connects a call to a particular one of the telephones 29(1) to 29 (N 2 ) on respective lines
  • CO central office
  • N 2 25(1) - 25 (N 2 ), where N 2 may or may not be the same value as N 1 .
  • some of the telephone lines may include a display 27 in series connection with the telephone 23(1).
  • the display 27 functions as a prompt for the user of the telephone 23(1) as explained hereinafter in connection with FIG. 11.
  • the PBX 20 is primarily controlled by a system controller 30, which is preferably microprocessor-based.
  • the plurality of telephone lines 22(1) to 22 (N 1 ) serviced by the PBX system 20 are received by a switching network 31 that selectively connects the lines to one another and to the trunk lines 26 of the public network 24.
  • a system controller 30 which is preferably microprocessor-based.
  • the plurality of telephone lines 22(1) to 22 (N 1 ) serviced by the PBX system 20 are received by a switching network 31 that selectively connects the lines to one another and to the trunk lines 26 of the public network 24.
  • data and command signals are transmitted along bi-directional communications paths and an input/output module 33 that interfaces the controller 30 to the switching network 31.
  • the system controller 30 preferably includes a microprocessor 32 connected in a conventional manner to a system clock 35 and storage devices such as a random access memory (RAM) 34, a read only memory (ROM) 36 and an erasable/programmable read only memory (EEPROM) 38.
  • RAM random access memory
  • ROM read only memory
  • EEPROM erasable/programmable read only memory
  • microprocessor 32 to external devices, a universal asynchronous receiver/transmitter (UART) 40 and a
  • conventional buffer 42 serve as input/output devices that allow various functions to be performed as described below.
  • one or more of the plurality of telephone lines 22(1) to 22 (N 1 ) are selected by the system
  • the system controller 30 to have a maximum time T2 of connection for each call. If a call on one of the selected lines equals or exceeds the maximum time T2, the system controller 30 disconnects the call. In order to warn the caller that termination of the call is imminent, the system
  • controller provides a warning signal to the caller at a time T1, which is preferably equal to the time T2 minus a fixed interval (e.g., five (5) seconds). Unless the number dialed by the caller is of a special category (e.g., emergency numbers such as 911), the system
  • controller 30 always terminates the call when the time of the call equals or exceeds the time T2. In this manner, the intended use of the phone is assured. Specifically, by selecting an appropriate value of the time T2, calls placed on the selected telephone must be brief and to the point. In an environment such as a school, this
  • the invention is executed by the system controller 30 under program control.
  • the program is stored in the ROM 36.
  • a copy of the program is attached as Appendix A.
  • the program is part of a larger system program that controls other aspects of the PBX system 20 that are unrelated to the invention.
  • patent includes a copy of an object code stored in the ROM 36 for configuring the general functioning of the PBX system 20.
  • an authorized operator enters a value for the time T2 as well as the values of other parameters
  • the input device is simply a standard
  • PC personal computer
  • FIGS. 3A-3B the features of the present invention are described by the steps taken by the system controller 30 under program control in response to a request from one of the telephone lines 22(1) to 22 (N 1 ) for a connection to the public telephone network 24.
  • the telephone line described in the flow diagram is identified as a "student phone,” although there is no intention to limit the invention to an educational environment.
  • the system controller 30 polls the status of a designated student phone (such as telephone line 22 (N 1 ) on a regular basis to determine whether the student phone is indicating that it is off-hook. If the phone is not off-hook, no further action other than regular status polling takes place.
  • a designated student phone such as telephone line 22 (N 1 )
  • the system determines at step 102 if the telephone is enabled at the current moment in time.
  • the telephone line corresponding to the student phone i.e., line
  • the system 22 (N 1 )) may be automatically enabled or disabled at certain times by the system controller 30 or by manual override from a properly authorized one of the lines 22(1) to 22 (N 1 ). If the student phone is not enabled, the system waits for the extension to be returned to on-hook status (i.e., hung up, step 101) before taking any further action. Of course, a message, signal or alarm may be provided by the system to notify the caller of the extension's disabled status, or to indicate that the phone has not been hung up in a timely manner.
  • a dial tone is provided, which may be a conventional dial tone or any similar such signal.
  • the system awaits the "dialing" of a telephone number.
  • a "dialing" of a telephone number means the entering of data to identify a telephone line for connecting to the requesting line.
  • the data can be entered in any number of ways, but it typically is achieved by keystrokes to a keypad at the telephone serviced by the requesting line. Should the number not be dialed in a timely manner, the system again can take appropriate action such as sounding an appropriate tone to the caller.
  • the dialed number is analyzed by the system to determine if access to that dialed number will be allowed. For example, certain prefixes, area codes, and other such unauthorized numbers are blocked by the system 20, while numbers such as those corresponding to local numbers and emergency (311 or the like) numbers are acceptable.
  • disallowance of a dialed number triggers a message or other such signal to notify the caller of the denial of access to that number.
  • the system 20 first determines in step 108 if the number was recently dialed at a previous time. The dialed number is compared against those stored in a student phone log accumulated within the system RAM 34. This comparison prevents the caller from defeating the time-limitation feature by simply re-dialing a called number. If the number has been determined by the system
  • the amount of time that transpires before a caller will be allowed to re-dial a previously dialed number is programmable into the system 20 by an authorized
  • the system 20 can be arranged to base the determination of when to allow a number to be re-dialed on the number of calls that have occurred between re-dialed numbers. For example, if four (4) or more calls have occurred since a telephone number has been previously called, the redialing may be allowed.
  • the system next determines in step 110 if one of the trunk lines 26 to the public network 24 is available so that the call can be placed. If all the trunk lines 26 available to the PBX system 20 are
  • the system controller 30 provides a busy signal to the caller (step 111) and awaits the hanging up of the student phone line. As shown by step 112, if a trunk is available, the PBX system 20 echoes the previously dialed digits to the select one of the trunk lines 26 and connects the trunk to the student phone.
  • the measurement of an elapsed time of the call is initialized as indicated in step 114.
  • the initialization step comprises the obtaining of an initial time reading by the system 20 from an internal clock, and storing the reading to correspond with the student phone.
  • the time initialization step may consist of starting an internal timer or resetting a counter to zero or the like for that telephone extension.
  • the system regularly checks at step 116 to determine if the phone has gone on hook (i.e., the caller has hung up). If so, the system branches to step 117 and compares the amount of time that has elapsed since the initialization of the timer with an authorized-operator preprogrammed time T3 (previously entered as a parameter). This is preferably done by obtaining a new time from the clock, subtracting the previously stored initialization time therefrom, and comparing the difference with the preprogrammed time T3.
  • the system does not log the called number in the student phone log (step 118), so that the caller can re-dial the number soon thereafter instead of having the call blocked at step 108. If a time equal to or greater than T3 has elapsed, the number is written into the student phone log within the system RAM 34 at step 119. Regardless of whether logged or not, the system 20 then returns to await another call request.
  • T3 is ordinarily a short time interval that
  • the number is not logged into the recently dialed log so that the caller is not blocked (at step 108) from attempting another call to the same number a short time later.
  • step 116 the system checks to see if an emergency call (for example to 911) is in progress at step 120. If this is the case, the caller is given unlimited time to complete the call. Similarly, for this exceptional case it can be appreciated that calls to an emergency number will not be blocked if previously dialed (step 108), and may even be arranged to automatically enable the student phone if otherwise disabled (see step 102).
  • an emergency call for example to 911
  • the system 20 compares the elapsed time against another (previously entered parameter) operator-programmed time T1.
  • T1 corresponds to a warning time that is used to indicate to the caller that the student phone will be automatically disconnected from the trunk lines 26 if the call is not manually terminated in a short time.
  • the comparison is done in a like manner to that of T3 ⁇ i.e., obtaining the current time, subtracting the stored initialization time, and comparing the difference against T1. If the time T1 has not yet elapsed, the system 20 returns to step 116 to determine if the caller has hung up.
  • the system 20 provides a series of warning beeps or the like at step 124 to inform the caller that the call will soon be terminated. For example, this feature might notify the student of the need to quickly provide essential information to the called party.
  • the system 20 again checks at step 126 to detect if the student phone has gone on hook, that is, to determine if the caller has manually terminated the call. If so, the system 20 logs the call into the student phone log (step 119) and returns to await another call. It can be readily appreciated that the warning time T1 is
  • the system 20 compares the time that has elapsed since the timer initialization (step 114) with a maximum connection time T2 previously programmed as a parameter into the system by the authorized operator/programmer. The caller may either continue the call or terminate the call manually until the elapsed call time equals or exceeds the maximum connection time T2. If the elapsed time equals the time T2, at step 130 the system 20 automatically terminates the call by disconnecting the student phone from the trunk lines 26. Subsequently, the dialed number is stored in the student phone log at step 119, before the system 20 awaits hang-up at step 101 to standby for a new call.
  • the system controller 30 accesses various tables of information stored in the RAM 34 and EEPROM 38.
  • the controller 30 is illustrated as various state machines in each of FIGS. 4-7 in connection with execution of particular ones of the steps of the flow diagram.
  • the state machine is illustrated as a comparator having two inputs and an output. One of the inputs is either data from a table in memory or data from a previous state machine.
  • the other input is typically data generated as a direct result of a student taking the student phone off the hook and dialing a number, typically by way of keystrokes to a keypad on the student phone.
  • the output of the comparator is the output of the controller 30 that selectively allows the switching network 24 to connect the student phone to the trunk lines 26 of the public telephone network.
  • each of the telephone lines 22 as a particular class of lines having features defined by the class.
  • some of the telephone lines 22(1) to 22 (N 1 ) may be assigned a class that allows only calls within the network of lines in the PBX system 20.
  • Other telephone lines 22(1) to 22 (N 1 ) may have access to the public telephone network 24 but only to local numbers.
  • Still other ones of the telephone lines 22(1) to 22 (N 1 ) may be assigned a class that utilizes the display 27, which can be used to display prompts to the user.
  • each configuration or class available to the telephone lines 22(1) to 22 (N 1 ) is identified by a data word.
  • the total number of different classes is indicated as being N 3 , which can be any number.
  • telephone lines 22(1) to 22 (N 1 ) is memorialized in the table of FIG. 4B.
  • the assignment of a class to one of the telephone lines 22(1) to 22 (N 1 ) can be done either by way of appropriate keystrokes to the PC 44 connected to the system controller 30 as illustrated in FIGS. 1 and 2 or by way of keystrokes to a keypad of one of the
  • the system controller 30 is configured as a
  • comparator 50 that receives data at one input that identifies which one of the telephone lines 22(1) to
  • the system controller 30 compares the input data identifying the class of student phone to the data stored in the EEPROM 38 (i.e., the data of table of FIG. 4B). If the requested telephone line is assigned the class designation for a student phone, the controller 30 enables the switching network 31, but only if the status of the class of student phones is indicated in memory to be enabled.
  • the third state machine of the controller 30 shown in FIG. 4C (III) is configured as a detector whose function is best
  • an AND gate 54 having a first input from the output of the second state machine and a second input from the memory indicating whether the class of student phones is presently enabled or disabled.
  • the memory indicating the present enable/disable state of the student phone is typically a single bit as shown in FIG. 4C (III). If both inputs are detected as enable signals, the AND gate passes an enable signal to the switching network 31 and the student phone is connected to the public telephone network 24.
  • step 106 of the flow diagram of FIGS. 3A-3B the system controller 30 determines if the number requested on line 23 (N 1 ) has an area code and prefix that is permitted. In order to make this determination, a table of allowed area codes and a table of restricted local prefixes as
  • FIGS. 5A and 5B are stored in the EEPROM 38.
  • the system controller 30 can be described as the state machines of FIGS. 5C (I), (II) and (III).
  • the system controller 30 functions as a comparator 56 to compare the area code of the requested number and each of the area codes in the table of FIG. 5A. If the comparison provides a match, an enable signal ENABLE 1 is generated.
  • the local prefix of the requested number is compared by the system controller 30 to each of the prefixes in the list of prefixes stored in the EEPROM 38 as illustrated by the table of FIG. 5B. If the prefix of the requested number does not match one of the prefixes in the table of FIG.
  • the system controller 30 shown as a comparator 58 in FIG. 5C (II) generates a second enable signal ENABLE 2 .
  • the system controller 30 compares the signals from the comparators 56 and 58 of the first two states in keeping with an AND function as illustrated.
  • the system controller functions as an AND gate 60; that is, if both enable signals ENABLE 1 and ENABLE 2 are present, the system controller 30 enables the switching network 31 to connect the telephone line 22 (N 1 ) to the trunk lines 26 of the public telephone network 24.
  • the RAM 34 of the system controller 30 is the RAM 34 of the system controller 30
  • the system controller 30 contains a historical listing of the most recently called numbers that is referenced each time a number is dialed for the purpose of preventing a user from defeating the limitation on the time of connection by simply re-dialing the same number after the call is disconnected.
  • the time a connection is made for each dialed number is recorded with the number.
  • the historical record of previous calls and the times they are made is compared to the present time and the number presently requested. If the value of the elapsed time between the present request for a number and the most recent previous request is less than a minimum value, the system controller 30 will not enable the switching network 31. Alternatively, if the value of the elapsed time is greater than the minimum value, the system controller 30 enables the switching network 31 to connect the student phone to one of the trunk lines 26.
  • the system controller 30 may be configured to simply count the number of calls to different numbers between consecutive calls to the same number. If the value of the count is less than a minimum value, the system controller 30 will not enable the switching network 31.
  • the RAM 34 of the system controller 30 includes a historical record of the numbers called from the student phone as exemplified by the table of FIG. 6A. In the illustrated embodiment, the
  • historical record includes a time that each of the calls was placed. In the illustrated table, the time is recorded at the start of the call, but it could be the time of any other conveniently detected event associated with a phone call.
  • step 108 of the flow diagram of FIGS. 3A-3B the system controller 30 determines whether the number dialed from the student phone has been previously called within a predetermined minimum time period. To make this determination, the system controller 30 accesses the data stored in the table of FIG. 6A and sequences through the state machines of FIGS. 6B (I), (II) and (III) in order to determine whether to enable the switching network 31 in response to the request from the student phone for one of the trunk lines 26.
  • the system controller 30 functions as a comparator 62 that compares the dialed number with each of the previously dialed numbers in the table of FIG. 6A. If a match is not found, the system controller 30 enables the switching network 31 as indicated by the state machine of FIG. 6B (I). Step 108 of the flow diagram is then complete.
  • the system controller 30 compares the present time with the "start" time of the same number re-orded in the table.
  • the system controller 30 is configured as a
  • comparator 64 that compares the "start” time of the recorded number and the present time from timer 65, which in effect is the "start” time of the dialed number. The comparator 64 subtracts these two "start” times to provide an elapsed time between times of the two calls.
  • a third state machine of the system controller 30 illustrated in FIG. 6B (III) the value of the elapsed time determined by the second state machine is compared to a minimum value, which has been programmed into the system and stored in the EEPROM 38 (see the table of FIG. 7A).
  • the system controller 30 is illustrated as a comparator 66 whose inputs are the value of the elapsed time determined by the second state machine and the minimum value for the elapsed time held in the EEPROM 38. If the value of the elapsed time is greater than the value of the minimum, then the system controller 30 enables the switching network 31.
  • the table of historical numbers in FIG. 6A lists the numbers in a time sequence.
  • the state machine of the system controller 30 in FIG. 6B (I) looks for a match with a dialed number it starts at the top of the list (i.e., the most recent previously called number) and then proceeds down the list to successively earlier called numbers. In this manner, the system controller 30 only needs to check the first occurrence in the table of the same number as that dialed, even though the number may appear more than once in the table.
  • FIG. 7A a table is illustrated that exemplifies the memory locations in the EEPROM 38 that hold the primary configuration data for the student phone.
  • the value of the minimum elapsed time between successive calls to the same number is stored.
  • a value for the maximum duration T2 of a call is stored.
  • the third location in the table of FIG. 7A holds the enable/disable bit, which represents the present state of the student phone; that is, whether it is enabled or disabled. This bit can be toggled as discussed herein in connection with FIGS. 8 and 10.
  • the system controller 30 compares an elapsed time of a call to the value of the maximum elapsed time T2 for a call held in memory as illustrated by the table of FIG. 7A.
  • the system controller 30 compares an elapsed time of a call to the value of the maximum elapsed time T2 for a call held in memory as illustrated by the table of FIG. 7A.
  • the system controller 30 compares an elapsed time of a call to the value of the maximum elapsed time T2 for a call held in memory as illustrated by the table of FIG. 7A.
  • the system controller 30 compares an elapsed time of a call to the value of the maximum elapsed time T2 for a call held in memory as illustrated by the table of FIG. 7A.
  • the system controller 30 compares an elapsed time of a call to the value of the maximum elapsed time T2 for a call held in memory as illustrated by the table of FIG. 7A.
  • the system controller 30 compares an e
  • controller 30 is configured as a comparator 68 that receives the value of the maximum elapsed time T2 at one input and a value of a timer 70 at a second input.
  • the timer 70 is initialized at the start of a call so that its output is in effect an elapsed time of the call that can be directly compared to the value of a maximum elapsed time T2 held in the EEPROM 38.
  • the timer 70 can start from any initial base value in measuring the elapsed time.
  • the timer 70 can simply start from zero and count forward, or it can read and store the real time when a connection is made and compare it to the present real time in order to adjust the time to a zero base and, thereby, provide an elapsed time value.
  • the comparator 68 of the system controller 30 in FIG. 7B disables the switching network 31 to disconnect the student phone from one of the trunk lines 26 only if the value of the elapsed time from the timer 70 exceeds the value of the maximum time T2 stored in the EEPROM 38.
  • the system controller 30 disables and enables the student phone in accordance with a schedule that is recorded in an event table stored in the EEPROM 38.
  • An illustration of the event table is shown in FIG. 8A.
  • each event is scheduled by two data words.
  • the first data word defines the event to be executed, and the second data word defines the time of execution.
  • the event is either enabling or disabling it.
  • the data word for the time of each event is compared to the real time derived from a timer 72. If the time of the event equals the real time, the system controller 30 executes the event ⁇ i.e, toggles the enable/disable bit stored in the third location of the table of FIG. 7A.
  • the system controller 30 is configured as a comparator 74 in a first state (FIG. 8B (I)) that
  • the system controller 30 compares each of the times stored in the table of FIG. 8A with the real time from the timer 72, which is simply a real time clock. If no match is found, the system controller 30 returns to the steps of the flow diagram of FIGS. 3A and 3B. If a match is found, however, the event data word is read and the event is executed. With respect to the invention, the event that is executed is the updating of the status of the student phone as defined by the enable/disable bit held in the third location of the table in FIG. 7A.
  • a second state machine of FIG. 8B compares identification of the line or group of the lines 22(1) to 22 (N 1 ) involved in the event with the
  • the line associated with the event is the student phone, then the remaining data in the event word simply defines the enable/disable status of the phone and the enable/disable bit is updated accordingly as
  • FIGS. 9A and 9B are exemplary illustrations of user interface screens that prompt a programmer to enter or update data stored in the EEPROM 38 related to the operation of the student phone. Each of the screens appears on the display screen of the PC 44 in connection with the programming of the system
  • controller 30 by way of data and commands entered through keystrokes to a keyboard (not shown) of the PC.
  • the data in the first two locations of the table of FIG. 7A may be entered or updated ⁇ i.e., the maximum elapsed time T2 and the minimum time between calls to the same number.
  • the data in the table of events of FIG. 8A may be updated.
  • the event for toggling the enable/disable bit in the third location of the table in FIG. 7A is encoded as numbers 5 and 6 as indicated by the annotation at the base of the screen.
  • the student phone is enabled at 3:30 P.M. each day and disabled at 6:00 P.M.
  • the invention also contemplates at least some limited ability to program the controller by way of keystrokes entered into a keypad of one of the telephones 23(1) to 23(N 1 ).
  • keystrokes entered into a keypad of one of the telephones 23(1) to 23(N 1 ) can access and update data locations in the EEPROM 38.
  • enable/disable status of the student phone as defined by the enable/disable bit by accessing the memory location and toggling the value of the bit. In its normal
  • the information on the display 27 is the number of the last extension dialed from the telephone 23(1).
  • a left-hand column entitled “DISPLAY” is a series of prompts 27a, 27b and 27c displayed by the display 27 in response to a sequence of keystrokes to the keypad 51, which are illustrated in a column under the heading "INPUT.”
  • the display 27 prompts the user of the telephone 23(1) with the last number called.
  • display 27a of FIG. 10 three (3) asterisks are illustrated to indicate that the three digits of the last number called can be any number.
  • the user enters the sequence "#", "5" and "3" by keystrokes to the appropriate keys of the keypad 51.
  • the display 27 changes its prompt image to that of display 27b, which is the present status of the enable/disable bit in the third location in the table of FIG. 7A.
  • display 27b which is the present status of the enable/disable bit in the third location in the table of FIG. 7A.
  • the bit is presently set to enable the student phone.
  • the user of the telephone 23(1) simply enters a keystroke to the asterisk key (*) as shown in FIG. 10. That keystroke changes the status of the enable/disable bit in memory, and the user of the telephone 23(1) is prompted by display 27c that the toggling has been executed. Assuming the status of the student phone is now as desired, the user places the telephone 23(1) on hook as indicated in FIG. 10 in order to terminate the sequence.
  • a student phone class can be assigned to one of the telephone lines 22(1) to 22 (N 1 ) by way of
  • the programming telephone is
  • FIG. 11 illustrates a sequence of keystrokes and visual prompts displayed by the display 27 (FIG. 1) that identifies a specific one of the telephone lines and assigns it a student phone class.
  • a sequence of prompts is illustrated that is displayed by the display 27 and which result from a sequence of keystrokes to the keypad 51 of the telephone 23(1) (FIG. 1).
  • the sequence of keystrokes is illustrated in a right-hand column of FIG. 11 under the heading "INPUT".
  • the arrows spanning the two columns indicate,
  • keystrokes cause a change in the information displayed on the display 27, which prompts the user to enter data or commands by way of further keystrokes until the sequence of keystrokes resulting in the assignment of a student phone class is complete.
  • the display is ordinarily the last number dialed from the telephone 23(1) to another telephone within the PBX system 20, which is typically a three digit number. Because this number can be any combination of digits, the digits in display 27a are shown as three (3) asterisks to indicate they can be any value. Sequential keystrokes "# 9 9" to the keypad of the telephone 23(1) transmit commands to the system controller 30 that allow the user to access a programming mode of the controller, which is acknowledged by a prompt illustrated by the second display 27b.
  • the user After the programming mode of the system controller 30 has been accessed, the user must know the proper system identification of the telephone line to be configured as a student phone. From the prompt in the second display 27b, the user must identify which one of the exemplary four (4) groups or blocks of telephone lines 22(1) to 22 (N 1 ) includes the line to be configured as a student phone. In FIG. 11, the selected telephone line is in block 1, so the user enters the appropriate data word into the system controller 30 by way of a keystroke to the one (1) key of the telephone keypad.
  • the system controller 30 responds to this keystroke by generating a new prompt that is illustrated by the third display 27c, which asks whether the user wants to review the configuration of the lines in the block ("1 - ATTRIB") or review the available classes for use in the block ("2 - CLASS"). Assuming a student phone class is available for the lines of block 1, a keystroke to the one (1) key of the keypad 51 changes the displayed prompt to a listing of the configurations of the telephones in the block, starting with the first telephone line in numerical order.
  • the first telephone line is assigned the number zero (0), so the display reads "P", which stands for the "port” or "physical number" of the
  • the display indicates an architectural number ("n:000" in FIG. 11) that is not related to the present invention.
  • the prompt of the display 27d causes the user to enter the number five (5) by way of keystrokes to the keypad 51 of the telephone 23(1), followed by entry of a pound sign (#).
  • the pound sign acts as an end of data word so that the system controller 30 knows the complete number has been transmitted.
  • the system controller 30 scrolls down the list of
  • a keystroke to the key for the pound sign (#) key causes the display 27f to appear, which includes a "hunt bit” denoted by "H” on the display.
  • the icon “ ⁇ ” in the display 27f denotes a flashing cursor position, and the symbol “S” denotes the class of the line.
  • the class of line five (5) is presently "01", which might be a full service configuration that allows unlimited access to the public telephone network 24.
  • the cursor is moved to the data field for the class by a further keystroke to the pound (#) key as shown by display 27g in FIG. 11. Then the user enters "3", "4" and "#" by way of appropriate keystrokes to the keypad 51, which causes the system controller 30 to replace the present class of "01" with that of "34", which configures the telephone line five (5) as a "student phone.”
  • the final display 27h in FIG. 11 prompts the user to program "zone" attributes of the telephone line. In this
  • the re-configuration of the telephone line is complete so the phone is returned on the hook as
  • an apparatus and method are provided for limiting the connection time of at least one selected telephone line of the telephone lines 22(1) to 22 (N 1 ) of the PBX system 20 and the public networks 24.
  • the selected line or student phone is prevented from re-dialing the called number for a certain period of time or for a number of subsequent calls once the call exceeds a predetermined amount of time.
  • the student phone may be enabled and disabled by the system only at predetermined times. If desired, the telephone system may also
  • StdPhnRestricted is a table of numbers that should not be allowed
  • STDPHNNUMBER is the number of entries in
  • STDPHNSIZE is the size of the table in bytes.
  • /* Limit is reasonable, we track 60ths of a second. Set /* limit 10 seconds short to allow for warning beep.
  • al_point->param (unsigned) ((eeptr->StdPhnCallLimit - 10)
  • OldestTime MilitaryTime(); /* Current Time */
  • TimeLimit TimeLimit + MAXMILITARYTIME; if ((TimeLimit - StdPhnRestricted[i].TimeStamp) > (unsigned) eeptr->StdPhnRestrictTime)
  • Time stamp is within restricted time. Disallow */
  • Time time_date.hour * 60 + time_date.min;
  • Time Time * 60 + (inp(RTC_REG(0 ⁇ 1)) & 0 ⁇ 7) * 10 + (inp(RTC_REG(0 ⁇ 0)) & 0 ⁇ f); return(Time);
  • case 5 /* look out for echo digit function */ case 9 :
  • Head (Head + 2) % Fifo->max_elm
  • Head (Head + 1) % Fifo->max_elm
  • Number->AreaCode (Number->AreaCode * 10) + *NextKey;
  • Number->Suffix (Number->Suffix * 10) + *NextKey;
  • Head (Head + 1) % Fifo->max_elm

Abstract

An apparatus and method is provided for limiting the connection time of selected telephone lines in a private branch exchange (PBX 20). A maximum connection time is programmed into the system for selected lines (22(1)-22(n)). Calls are automatically terminated if the duration of the call exceeds the maximum time. The selected line is prevented from re-dialing the called number for a certain period of time. If desired, the selected telephone line is automatically enabled and disabled by the system at predetermined times. The telephone system may also incorporate other conventional features for certain ones of the telephone lines in the PBX system (20), including limited prefix dialing capabilities, limited area code dialing capabilities, blocking of incoming calls, and the like.

Description

"Method and Apparatus for Limiting the Duration of a Telephone Call"
FIELD OF THE INVENTION
The present invention relates generally to private branch exchange telephone systems, and more particularly to an apparatus and method for controlling access to selected telephones connected thereto.
BACKGROUND OF THE INVENTION
Conventional private branch exchange (PBX) telephone systems often incorporate features which limit the capabilities of certain extensions. For example, certain extensions may be set up to block incoming calls, while others are set to prevent outgoing calls from being made therefrom. Other limitations include allowing outgoing calls, but preventing the caller from connecting to certain area codes and prefixes. While these phone systems thus limit the connection capabilities of
extensions connected thereto, there is no time limit to the calls made.
Telephone calls are often made from public telephone booths and the like wherein the calling telephone is disconnected at the central station after a time expires, but not locally in private branch exchanges. Moreover, such telephones are disconnected in dependence on the expiration of purchased time, which typically depends on the location of the number dialed, and not on a fixed, preprogrammed basis independent of these other factors.
Nevertheless, in certain environments such as schools, students often need access to a telephone, for example to call home to arrange a ride. Schools often provide one or more telephone extensions for this
purpose. However, if a significant number of students need access to such telephones at approximately the same time, for example following an after-school activity, the students are required to wait their turn until a telephone becomes available. However, without
supervision, a single student is able to tie-up one of the telephones provided for an excessive amount of time, inconveniencing other students or otherwise abusing telephone privileges.
OBJECTS AND SUMMARY OF THE INVENTION
Accordingly, it is a primary aim of the present invention to provide a private branch exchange telephone system capable of limiting the connection time of at least one selected telephone extension to telephone numbers dialed therefrom.
It is a related aim to provide a telephone system of the above kind that prevents the selected extension from re-dialing the called number soon thereafter.
It is another object of the present invention to provide a telephone system of the above kind that
activates such extensions only at predetermined times.
Another related object is to provide a telephone system of the above kind incorporating other conventional features including limited prefix dialing capabilities, limited area code dialing capabilities, blocking of incoming calls, and the like.
It is another object to provide a telephone system that limits the connection time of calls made therefrom independent of purchased time.
Briefly, the present invention provides an apparatus and method for limiting the connection time of at least one selected telephone extension in a private branch exchange telephone system. The system first awaits a request for connecting the selected telephone extension to a telephone having a telephone number associated with the public telephone network. The requested number is then switched to the network to connect the selected extension to the network telephone. The elapsed time of the call monitored, and the call is terminated upon the earlier occurrence of either a manual request for
termination or the elapsed time achieving a predetermined maximum duration.
Other objects and advantages will become apparent from the following detailed description when taken in conjunction with drawings, in which:
BRIEF DESCRIPTION OF THE DRAWINGS FIGURE 1 is a block diagram of a computer controlled multi-link administrative telephone system according to the invention;
FIG. 2 is a block diagram of a system controller for the telephone system of Figure 1, including a
microcomputer and its interfaces;
FIG. 3A-3B are a flow diagram describing the control by the system of a "student" telephone according to the invention;
FIGS. 4A and 4B are tables illustrating the format of data stored in memory for use by the system controller in accordance with the invention; FIG. 4C are state machine diagrams (i), (ii) and (iii) of the system controller for controlling the student phone in connection with the data stored in the memory illustrated by the tables of FIGS. 4a and 4b;
FIGS. 5A and 5B are tables illustrating the format of data stored in memory for use by the system controller in accordance with the invention;
FIG. 5C are state machine diagrams (i), (ii) and (iii) of the system controller for controlling the student phone in connection with the data stored in the memory illustrated by the tables of FIGS. 5A and 5B;
FIG. 6A is a table illustrating the format of data stored in memory for use by the system controller in accordance with the invention;
FIG. 6B are state machine diagrams (i), (ii) and (iii) of the system controller for controlling the student phone in connection with the data stored in the memory illustrated by the table of FIGS. 6A and 7A; FIG. 7A is a table illustrating the format of data stored in memory for use by the system controller in accordance with the invention;
FIG. 7B is a state machine diagram of the system controller for controlling the student phone in
connection with the data stored in the memory illustrated by the table of FIG. 7A;
FIG. 8A is a table illustrating the format of data stored in memory for use by the system controller in accordance with the invention; FIG. 8B are state machine diagrams (i) and (ii) of the system controller for controlling the student phone in connection with the data stored in the memory
illustrated by the table of FIG. 8A;
FIGS. 9A and 9B are user interfaces for configuring the system controller in accordance with the invention;
FIG. 10 is a flow diagram for executing an override feature from a system telephone in accordance with the invention; and FIG. 11 is a flow diagram for configuring one of the telephone lines in the telephone system as a "student" phone in accordance with the invention by way of
keystrokes to the keypad of a telephone in the system. While the invention is susceptible of various modifications and alternative constructions, a certain illustrated embodiment thereof has been shown in the drawings and will be described below in detail. It should be understood, however, that there is no intention to limit the invention to the specific form disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
Turning now to the drawings and referring first to Figure 1, a Private Branch Exchange (PBX) telephone system 20 connects telephone extensions 22(1) to 22 (N1) associated therewith to telephones in a public network 24 and to each other. The PBX system 20 is substantially as disclosed and illustrated in U.S. Patent No. 4,744,103 to Dahlquist et al., which is assigned to the same assignee as that of this invention. The Dahlquist et al. patent is incorporated herein by reference. As explained in the Dahlquist et al. patent, the PBX system 20 links
telephone lines 22(1) to 22 (N1) and their respective telephones 23(1) to 23 (N1) to one another and to trunk lines 26 of a public network 24. In a conventional fashion, the trunk lines are connected to a central office (CO) 28 that connects a call to a particular one of the telephones 29(1) to 29 (N2) on respective lines
25(1) - 25 (N2), where N2 may or may not be the same value as N1.
As exemplified by the telephone line 22(1) in FIGURE 1, some of the telephone lines may include a display 27 in series connection with the telephone 23(1). The display 27 functions as a prompt for the user of the telephone 23(1) as explained hereinafter in connection with FIG. 11.
As set forth in greater detail in the Dahlquist et al. patent, the PBX 20 is primarily controlled by a system controller 30, which is preferably microprocessor-based. The plurality of telephone lines 22(1) to 22 (N1) serviced by the PBX system 20 are received by a switching network 31 that selectively connects the lines to one another and to the trunk lines 26 of the public network 24. As set forth in detail in the Dahlquist et al.
patent, which is incorporated herein by reference, data and command signals are transmitted along bi-directional communications paths and an input/output module 33 that interfaces the controller 30 to the switching network 31.
As illustrated in FIG. 2, the system controller 30 preferably includes a microprocessor 32 connected in a conventional manner to a system clock 35 and storage devices such as a random access memory (RAM) 34, a read only memory (ROM) 36 and an erasable/programmable read only memory (EEPROM) 38. In order to port the
microprocessor 32 to external devices, a universal asynchronous receiver/transmitter (UART) 40 and a
conventional buffer 42 serve as input/output devices that allow various functions to be performed as described below.
In accordance with one important aspect of the invention, one or more of the plurality of telephone lines 22(1) to 22 (N1) are selected by the system
controller 30 to have a maximum time T2 of connection for each call. If a call on one of the selected lines equals or exceeds the maximum time T2, the system controller 30 disconnects the call. In order to warn the caller that termination of the call is imminent, the system
controller provides a warning signal to the caller at a time T1, which is preferably equal to the time T2 minus a fixed interval (e.g., five (5) seconds). Unless the number dialed by the caller is of a special category (e.g., emergency numbers such as 911), the system
controller 30 always terminates the call when the time of the call equals or exceeds the time T2. In this manner, the intended use of the phone is assured. Specifically, by selecting an appropriate value of the time T2, calls placed on the selected telephone must be brief and to the point. In an environment such as a school, this
requirement prevents one of the telephones 22(1) to 22 (N1) intended for student use from being monopolized by a few students who engage in long conversations unrelated to school activities. Instead, the telephone is free for short calls such as those necessaay to make arrangements for rides home and the like.
In the preferred embodiment, the invention is executed by the system controller 30 under program control. The program is stored in the ROM 36. A copy of the program is attached as Appendix A. The program is part of a larger system program that controls other aspects of the PBX system 20 that are unrelated to the invention. In this connection, the Dahlquist et al.
patent includes a copy of an object code stored in the ROM 36 for configuring the general functioning of the PBX system 20. As part of the task of initializing the PBX system 20, an authorized operator enters a value for the time T2 as well as the values of other parameters
described hereinafter by way of a port to the system controller provided by the UART 40. In the preferred embodiment, the input device is simply a standard
personal computer (PC), generally designated 44 in FIGURE 1.
Turning to the diagrams of FIGS. 3A-3B, the features of the present invention are described by the steps taken by the system controller 30 under program control in response to a request from one of the telephone lines 22(1) to 22 (N1) for a connection to the public telephone network 24. For ease of understanding, the telephone line described in the flow diagram is identified as a "student phone," although there is no intention to limit the invention to an educational environment.
In the initial step 100, the system controller 30 polls the status of a designated student phone (such as telephone line 22 (N1) on a regular basis to determine whether the student phone is indicating that it is off-hook. If the phone is not off-hook, no further action other than regular status polling takes place.
In accordance with another aspect of the invention, if the student phone is detected to be in an off-hook status, the system then determines at step 102 if the telephone is enabled at the current moment in time. As discussed in greater detail hereinafter, the telephone line corresponding to the student phone (i.e., line
22 (N1)) may be automatically enabled or disabled at certain times by the system controller 30 or by manual override from a properly authorized one of the lines 22(1) to 22 (N1). If the student phone is not enabled, the system waits for the extension to be returned to on-hook status (i.e., hung up, step 101) before taking any further action. Of course, a message, signal or alarm may be provided by the system to notify the caller of the extension's disabled status, or to indicate that the phone has not been hung up in a timely manner.
In step 104, when the student phone is taken off-hook while enabled, a dial tone is provided, which may be a conventional dial tone or any similar such signal. At this time, the system awaits the "dialing" of a telephone number. As used herein, a "dialing" of a telephone number means the entering of data to identify a telephone line for connecting to the requesting line. The data can be entered in any number of ways, but it typically is achieved by keystrokes to a keypad at the telephone serviced by the requesting line. Should the number not be dialed in a timely manner, the system again can take appropriate action such as sounding an appropriate tone to the caller.
Once an appropriate telephone number has been entered into the system 20 at step 106, the dialed number is analyzed by the system to determine if access to that dialed number will be allowed. For example, certain prefixes, area codes, and other such unauthorized numbers are blocked by the system 20, while numbers such as those corresponding to local numbers and emergency (311 or the like) numbers are acceptable. In a preferred embodiment, as shown in step 107, disallowance of a dialed number triggers a message or other such signal to notify the caller of the denial of access to that number.
Assuming that the dialed number is otherwise
allowable, before attempting to connect the telephone to the dialed number, the system 20 first determines in step 108 if the number was recently dialed at a previous time. The dialed number is compared against those stored in a student phone log accumulated within the system RAM 34. This comparison prevents the caller from defeating the time-limitation feature by simply re-dialing a called number. If the number has been determined by the system
20 to have been dialed too recently, a similar
disallowance message or signal such as in step 107 is provided.
The amount of time that transpires before a caller will be allowed to re-dial a previously dialed number is programmable into the system 20 by an authorized
operator/programmer as a parameter. Alternatively, the system 20 can be arranged to base the determination of when to allow a number to be re-dialed on the number of calls that have occurred between re-dialed numbers. For example, if four (4) or more calls have occurred since a telephone number has been previously called, the redialing may be allowed.
If the PBX system 20 has not disallowed the number for the above reasons, the system next determines in step 110 if one of the trunk lines 26 to the public network 24 is available so that the call can be placed. If all the trunk lines 26 available to the PBX system 20 are
currently being utilized, the system controller 30 provides a busy signal to the caller (step 111) and awaits the hanging up of the student phone line. As shown by step 112, if a trunk is available, the PBX system 20 echoes the previously dialed digits to the select one of the trunk lines 26 and connects the trunk to the student phone.
Once connection has been made, the measurement of an elapsed time of the call is initialized as indicated in step 114. Preferably, the initialization step comprises the obtaining of an initial time reading by the system 20 from an internal clock, and storing the reading to correspond with the student phone. Alternatively, the time initialization step may consist of starting an internal timer or resetting a counter to zero or the like for that telephone extension.
As the call is in progress, the system regularly checks at step 116 to determine if the phone has gone on hook (i.e., the caller has hung up). If so, the system branches to step 117 and compares the amount of time that has elapsed since the initialization of the timer with an authorized-operator preprogrammed time T3 (previously entered as a parameter). This is preferably done by obtaining a new time from the clock, subtracting the previously stored initialization time therefrom, and comparing the difference with the preprogrammed time T3. If the elapsed time is less than the preprogrammed time T3, the system does not log the called number in the student phone log (step 118), so that the caller can re-dial the number soon thereafter instead of having the call blocked at step 108. If a time equal to or greater than T3 has elapsed, the number is written into the student phone log within the system RAM 34 at step 119. Regardless of whether logged or not, the system 20 then returns to await another call request.
T3 is ordinarily a short time interval that
approximates the amount of time that it takes for a caller to be connected to one of the trunk lines 26 and subsequently hang up after receiving a busy signal, no answer, an answering machine instead of the party
desired, and so on. If this is the case, the number is not logged into the recently dialed log so that the caller is not blocked (at step 108) from attempting another call to the same number a short time later.
If the student phone has not gone on hook at step 116, the system checks to see if an emergency call (for example to 911) is in progress at step 120. If this is the case, the caller is given unlimited time to complete the call. Similarly, for this exceptional case it can be appreciated that calls to an emergency number will not be blocked if previously dialed (step 108), and may even be arranged to automatically enable the student phone if otherwise disabled (see step 102).
In the ordinary case of a non-emergency call, while a call is in progress, at step 122 the system 20 compares the elapsed time against another (previously entered parameter) operator-programmed time T1. T1 corresponds to a warning time that is used to indicate to the caller that the student phone will be automatically disconnected from the trunk lines 26 if the call is not manually terminated in a short time. The comparison is done in a like manner to that of T3 ╌ i.e., obtaining the current time, subtracting the stored initialization time, and comparing the difference against T1. If the time T1 has not yet elapsed, the system 20 returns to step 116 to determine if the caller has hung up. Alternatively, if the time interval T1 has elapsed, the system 20 provides a series of warning beeps or the like at step 124 to inform the caller that the call will soon be terminated. For example, this feature might notify the student of the need to quickly provide essential information to the called party.
Once the warning has been earlier provided, the system 20 again checks at step 126 to detect if the student phone has gone on hook, that is, to determine if the caller has manually terminated the call. If so, the system 20 logs the call into the student phone log (step 119) and returns to await another call. It can be readily appreciated that the warning time T1 is
ordinarily substantially greater than the time T3 allowed for determining whether to log the call or not, so it is not necessary to compare the elapsed time with the time interval T3 before logging the just-terminated call.
If the call is still in progress at step 126, at step 128 the system 20 compares the time that has elapsed since the timer initialization (step 114) with a maximum connection time T2 previously programmed as a parameter into the system by the authorized operator/programmer. The caller may either continue the call or terminate the call manually until the elapsed call time equals or exceeds the maximum connection time T2. If the elapsed time equals the time T2, at step 130 the system 20 automatically terminates the call by disconnecting the student phone from the trunk lines 26. Subsequently, the dialed number is stored in the student phone log at step 119, before the system 20 awaits hang-up at step 101 to standby for a new call.
Referring to the illustrations of FIGS. 4-7, in executing the steps of the flow diagram of FIGS. 3A-3B, the system controller 30 accesses various tables of information stored in the RAM 34 and EEPROM 38. In a manner well understood in the art of computer-based systems, the controller 30 is illustrated as various state machines in each of FIGS. 4-7 in connection with execution of particular ones of the steps of the flow diagram. In each of the FIGS. 4-7, the state machine is illustrated as a comparator having two inputs and an output. One of the inputs is either data from a table in memory or data from a previous state machine. The other input is typically data generated as a direct result of a student taking the student phone off the hook and dialing a number, typically by way of keystrokes to a keypad on the student phone. The output of the comparator is the output of the controller 30 that selectively allows the switching network 24 to connect the student phone to the trunk lines 26 of the public telephone network.
In the EEPROM 38 of FIG. 2, the data formatted as illustrated in the exemplary tables of FIGS. 4A and 4B configure each of the telephone lines 22 as a particular class of lines having features defined by the class. For example, some of the telephone lines 22(1) to 22 (N1) may be assigned a class that allows only calls within the network of lines in the PBX system 20. Other telephone lines 22(1) to 22 (N1) may have access to the public telephone network 24 but only to local numbers. Still other ones of the telephone lines 22(1) to 22 (N1) may be assigned a class that utilizes the display 27, which can be used to display prompts to the user.
In the table of FIG. 4A, each configuration or class available to the telephone lines 22(1) to 22 (N1) is identified by a data word. The total number of different classes is indicated as being N3, which can be any number. The assignment of a classification to each of the
telephone lines 22(1) to 22 (N1) is memorialized in the table of FIG. 4B. The assignment of a class to one of the telephone lines 22(1) to 22 (N1) can be done either by way of appropriate keystrokes to the PC 44 connected to the system controller 30 as illustrated in FIGS. 1 and 2 or by way of keystrokes to a keypad of one of the
telephones connected to one of the telephone lines 22(1) to 22 (N1). The assignment of a class to one of telephone lines 22(1) to 22 (N1) using a keypad of a telephone 23(1) to 23 (N1) on one of the lines is discussed hereinafter in connection with FIG. 11.
The system controller 30, as represented by the state machines of FIG. 4C, identifies a request from one of the telephone lines 22(1) to 22 (N1) as a request from a student phone and then interrogates a memory location in the EEPROM 38 to determine whether the student phone is enabled or disabled. In step 102 of FIG. 3A, if the student phone is enabled, the switching network 31 is enabled to connect the student phone to the trunk lines 26 of the public telephone network 24.
In the first state machine illustrated in FIG. 4C (I), the system controller 30 is configured as a
comparator 50 that receives data at one input that identifies which one of the telephone lines 22(1) to
22 (N1) is requesting a connection to the public telephone network 24. At the other input of the comparator 50, the data from the table of FIG. 4B for each of the telephone lines are sequentially presented. When the system controller 30 detects a match between the two data inputs, it changes states to interrogate the data that defines the class of the requesting telephone line.
Configured as a comparator 52 in a second state machine illustrated in FIG. 4C (II), the system controller 30 compares the input data identifying the class of student phone to the data stored in the EEPROM 38 (i.e., the data of table of FIG. 4B). If the requested telephone line is assigned the class designation for a student phone, the controller 30 enables the switching network 31, but only if the status of the class of student phones is indicated in memory to be enabled. In this regard, the third state machine of the controller 30 shown in FIG. 4C (III) is configured as a detector whose function is best
illustrated as an AND gate 54, having a first input from the output of the second state machine and a second input from the memory indicating whether the class of student phones is presently enabled or disabled. The memory indicating the present enable/disable state of the student phone is typically a single bit as shown in FIG. 4C (III). If both inputs are detected as enable signals, the AND gate passes an enable signal to the switching network 31 and the student phone is connected to the public telephone network 24.
When configured as a student phone, only numbers having selected area codes and local prefixes can be accessed by the telephone line 23 (N1) of FIGURE 1. In step 106 of the flow diagram of FIGS. 3A-3B, the system controller 30 determines if the number requested on line 23 (N1) has an area code and prefix that is permitted. In order to make this determination, a table of allowed area codes and a table of restricted local prefixes as
illustrated in FIGS. 5A and 5B are stored in the EEPROM 38.
To execute step 106 of the flow diagram of FIGS. 3A-3B, the system controller 30 can be described as the state machines of FIGS. 5C (I), (II) and (III). In the first state machine of FIG. 5C (I), the system controller 30 functions as a comparator 56 to compare the area code of the requested number and each of the area codes in the table of FIG. 5A. If the comparison provides a match, an enable signal ENABLE 1 is generated. Next, the local prefix of the requested number is compared by the system controller 30 to each of the prefixes in the list of prefixes stored in the EEPROM 38 as illustrated by the table of FIG. 5B. If the prefix of the requested number does not match one of the prefixes in the table of FIG. 5B, the system controller 30 shown as a comparator 58 in FIG. 5C (II) generates a second enable signal ENABLE 2 . In its third state shown in FIG. 5C (III), the system controller 30 compares the signals from the comparators 56 and 58 of the first two states in keeping with an AND function as illustrated. In its third state, the system controller functions as an AND gate 60; that is, if both enable signals ENABLE 1 and ENABLE 2 are present, the system controller 30 enables the switching network 31 to connect the telephone line 22 (N1) to the trunk lines 26 of the public telephone network 24.
In keeping with another important feature of the invention, the RAM 34 of the system controller 30
contains a historical listing of the most recently called numbers that is referenced each time a number is dialed for the purpose of preventing a user from defeating the limitation on the time of connection by simply re-dialing the same number after the call is disconnected. In the embodiment of the invention illustrated herein, the time a connection is made for each dialed number is recorded with the number. The historical record of previous calls and the times they are made is compared to the present time and the number presently requested. If the value of the elapsed time between the present request for a number and the most recent previous request is less than a minimum value, the system controller 30 will not enable the switching network 31. Alternatively, if the value of the elapsed time is greater than the minimum value, the system controller 30 enables the switching network 31 to connect the student phone to one of the trunk lines 26.
Instead of comparing the value of an elapsed time between successive calls to the same number, the system controller 30 may be configured to simply count the number of calls to different numbers between consecutive calls to the same number. If the value of the count is less than a minimum value, the system controller 30 will not enable the switching network 31. Referring to FIGS. 6A-6B, the RAM 34 of the system controller 30 includes a historical record of the numbers called from the student phone as exemplified by the table of FIG. 6A. In the illustrated embodiment, the
historical record includes a time that each of the calls was placed. In the illustrated table, the time is recorded at the start of the call, but it could be the time of any other conveniently detected event associated with a phone call.
In step 108 of the flow diagram of FIGS. 3A-3B, the system controller 30 determines whether the number dialed from the student phone has been previously called within a predetermined minimum time period. To make this determination, the system controller 30 accesses the data stored in the table of FIG. 6A and sequences through the state machines of FIGS. 6B (I), (II) and (III) in order to determine whether to enable the switching network 31 in response to the request from the student phone for one of the trunk lines 26.
In the first state machine of FIG. 6B (I), the system controller 30 functions as a comparator 62 that compares the dialed number with each of the previously dialed numbers in the table of FIG. 6A. If a match is not found, the system controller 30 enables the switching network 31 as indicated by the state machine of FIG. 6B (I). Step 108 of the flow diagram is then complete.
Alternatively, if a match is found by the first state machine between the dialed number and one of the numbers of the table, the system controller 30 then compares the present time with the "start" time of the same number re-orded in the table. In the state machine of FIG. 6B (II), the system controller 30 is configured as a
comparator 64 that compares the "start" time of the recorded number and the present time from timer 65, which in effect is the "start" time of the dialed number. The comparator 64 subtracts these two "start" times to provide an elapsed time between times of the two calls. In a third state machine of the system controller 30 illustrated in FIG. 6B (III), the value of the elapsed time determined by the second state machine is compared to a minimum value, which has been programmed into the system and stored in the EEPROM 38 (see the table of FIG. 7A). In the third state machine of FIG. 6B (III), the system controller 30 is illustrated as a comparator 66 whose inputs are the value of the elapsed time determined by the second state machine and the minimum value for the elapsed time held in the EEPROM 38. If the value of the elapsed time is greater than the value of the minimum, then the system controller 30 enables the switching network 31.
Preferably, the table of historical numbers in FIG. 6A lists the numbers in a time sequence. When the state machine of the system controller 30 in FIG. 6B (I) looks for a match with a dialed number it starts at the top of the list (i.e., the most recent previously called number) and then proceeds down the list to successively earlier called numbers. In this manner, the system controller 30 only needs to check the first occurrence in the table of the same number as that dialed, even though the number may appear more than once in the table.
In FIG. 7A, a table is illustrated that exemplifies the memory locations in the EEPROM 38 that hold the primary configuration data for the student phone. At a first location, the value of the minimum elapsed time between successive calls to the same number is stored. At a second location, a value for the maximum duration T2 of a call is stored. The third location in the table of FIG. 7A holds the enable/disable bit, which represents the present state of the student phone; that is, whether it is enabled or disabled. This bit can be toggled as discussed herein in connection with FIGS. 8 and 10. In step 128 of the flow diagrams of FIGS. 3A and 3B, the system controller 30 compares an elapsed time of a call to the value of the maximum elapsed time T2 for a call held in memory as illustrated by the table of FIG. 7A. In the state machine of FIG. 7B, the system
controller 30 is configured as a comparator 68 that receives the value of the maximum elapsed time T2 at one input and a value of a timer 70 at a second input. In the illustrated embodiment,, the timer 70 is initialized at the start of a call so that its output is in effect an elapsed time of the call that can be directly compared to the value of a maximum elapsed time T2 held in the EEPROM 38. As those skilled in the art of digital systems will appreciate, however, the timer 70 can start from any initial base value in measuring the elapsed time. For example, the timer 70 can simply start from zero and count forward, or it can read and store the real time when a connection is made and compare it to the present real time in order to adjust the time to a zero base and, thereby, provide an elapsed time value. However the timer 70 is configured, the comparator 68 of the system controller 30 in FIG. 7B disables the switching network 31 to disconnect the student phone from one of the trunk lines 26 only if the value of the elapsed time from the timer 70 exceeds the value of the maximum time T2 stored in the EEPROM 38.
As part of step 102 of the flow diagram of FIGS. 3A and 3B, the system controller 30 disables and enables the student phone in accordance with a schedule that is recorded in an event table stored in the EEPROM 38. An illustration of the event table is shown in FIG. 8A.
Although the events controlled by the schedule in the event table include events other than the toggling of the enable/disable status of the student phone, it is only this event that is discussed herein. In the table of
FIG. 8A, each event is scheduled by two data words. The first data word defines the event to be executed, and the second data word defines the time of execution. In connection with the student phone, the event is either enabling or disabling it. At periodic intervals (e.g., one each minute), the data word for the time of each event is compared to the real time derived from a timer 72. If the time of the event equals the real time, the system controller 30 executes the event ╌ i.e, toggles the enable/disable bit stored in the third location of the table of FIG. 7A.
Referring to the state machines of FIG. 8B (I) and 8B (II), the system controller 30 is configured as a comparator 74 in a first state (FIG. 8B (I)) that
compares each of the times stored in the table of FIG. 8A with the real time from the timer 72, which is simply a real time clock. If no match is found, the system controller 30 returns to the steps of the flow diagram of FIGS. 3A and 3B. If a match is found, however, the event data word is read and the event is executed. With respect to the invention, the event that is executed is the updating of the status of the student phone as defined by the enable/disable bit held in the third location of the table in FIG. 7A.
After the first state machine identifies an event for execution, a second state machine of FIG. 8B (II) compares identification of the line or group of the lines 22(1) to 22 (N1) involved in the event with the
identification of the line assigned a student phone class. If the line associated with the event is the student phone, then the remaining data in the event word simply defines the enable/disable status of the phone and the enable/disable bit is updated accordingly as
indicated by the output signal from a comparator 76 of the state machine of FIG. 8B (II).
Referring briefly to the programming of the system controller 30, FIGS. 9A and 9B are exemplary illustrations of user interface screens that prompt a programmer to enter or update data stored in the EEPROM 38 related to the operation of the student phone. Each of the screens appears on the display screen of the PC 44 in connection with the programming of the system
controller 30 by way of data and commands entered through keystrokes to a keyboard (not shown) of the PC. In the interface screen of FIG. 9A, the data in the first two locations of the table of FIG. 7A may be entered or updated ╌ i.e., the maximum elapsed time T2 and the minimum time between calls to the same number. From the interface screen of FIG. 9B, the data in the table of events of FIG. 8A may be updated. In the illustrated example of the screen for programming the event table, the event for toggling the enable/disable bit in the third location of the table in FIG. 7A is encoded as numbers 5 and 6 as indicated by the annotation at the base of the screen. In the illustrated example, the student phone is enabled at 3:30 P.M. each day and disabled at 6:00 P.M.
In addition to programming the system controller 30 by way of the PC 44, the invention also contemplates at least some limited ability to program the controller by way of keystrokes entered into a keypad of one of the telephones 23(1) to 23(N1). For example, in each of FIGS. 10 and 11 a sequence of keystrokes to a conventional keypad of one of the telephones 22(1) to 22 (N1) can access and update data locations in the EEPROM 38.
In FIG. 10, a sequence of keystrokes to a keypad 51 of the telephone 23(1) manually overrides the
enable/disable status of the student phone as defined by the enable/disable bit by accessing the memory location and toggling the value of the bit. In its normal
operation, the information on the display 27 is the number of the last extension dialed from the telephone 23(1). In the illustration of FIG. 10, a left-hand column entitled "DISPLAY" is a series of prompts 27a, 27b and 27c displayed by the display 27 in response to a sequence of keystrokes to the keypad 51, which are illustrated in a column under the heading "INPUT."
Initially the display 27 prompts the user of the telephone 23(1) with the last number called. In display 27a of FIG. 10, three (3) asterisks are illustrated to indicate that the three digits of the last number called can be any number. After taking the telephone 23(1) off hook, the user enters the sequence "#", "5" and "3" by keystrokes to the appropriate keys of the keypad 51. In response to the entry of this command, the display 27 changes its prompt image to that of display 27b, which is the present status of the enable/disable bit in the third location in the table of FIG. 7A. In the example
illustrated in FIG. 10, the bit is presently set to enable the student phone. To toggle the value of the bit and thus "override" the cycling of the student phone between enabled and disabled conditions as defined by the events in the event table of FIG. 8A, the user of the telephone 23(1) simply enters a keystroke to the asterisk key (*) as shown in FIG. 10. That keystroke changes the status of the enable/disable bit in memory, and the user of the telephone 23(1) is prompted by display 27c that the toggling has been executed. Assuming the status of the student phone is now as desired, the user places the telephone 23(1) on hook as indicated in FIG. 10 in order to terminate the sequence.
In accordance with another important feature of the invention, a student phone class can be assigned to one of the telephone lines 22(1) to 22 (N1) by way of
keystrokes to the keypad 51 of a telephone on one of the lines. Preferably, the programming telephone is
complemented by the display 27 as shown with the
telephone 23(1) in FIGURE 1 in order to prompt the user during the sequence of keystrokes necessary to assign a student phone class.
By way of example, FIG. 11 illustrates a sequence of keystrokes and visual prompts displayed by the display 27 (FIG. 1) that identifies a specific one of the telephone lines and assigns it a student phone class. In a left-hand column of FIG. 11 under the heading "DISPLAY", a sequence of prompts is illustrated that is displayed by the display 27 and which result from a sequence of keystrokes to the keypad 51 of the telephone 23(1) (FIG. 1). The sequence of keystrokes is illustrated in a right-hand column of FIG. 11 under the heading "INPUT". As the arrows spanning the two columns indicate,
keystrokes cause a change in the information displayed on the display 27, which prompts the user to enter data or commands by way of further keystrokes until the sequence of keystrokes resulting in the assignment of a student phone class is complete.
Referring first to the first display 27a at the top of the column labeled "DISPLAY" in FIG. 11, the display is ordinarily the last number dialed from the telephone 23(1) to another telephone within the PBX system 20, which is typically a three digit number. Because this number can be any combination of digits, the digits in display 27a are shown as three (3) asterisks to indicate they can be any value. Sequential keystrokes "# 9 9" to the keypad of the telephone 23(1) transmit commands to the system controller 30 that allow the user to access a programming mode of the controller, which is acknowledged by a prompt illustrated by the second display 27b.
After the programming mode of the system controller 30 has been accessed, the user must know the proper system identification of the telephone line to be configured as a student phone. From the prompt in the second display 27b, the user must identify which one of the exemplary four (4) groups or blocks of telephone lines 22(1) to 22 (N1) includes the line to be configured as a student phone. In FIG. 11, the selected telephone line is in block 1, so the user enters the appropriate data word into the system controller 30 by way of a keystroke to the one (1) key of the telephone keypad.
The system controller 30 responds to this keystroke by generating a new prompt that is illustrated by the third display 27c, which asks whether the user wants to review the configuration of the lines in the block ("1 - ATTRIB") or review the available classes for use in the block ("2 - CLASS"). Assuming a student phone class is available for the lines of block 1, a keystroke to the one (1) key of the keypad 51 changes the displayed prompt to a listing of the configurations of the telephones in the block, starting with the first telephone line in numerical order.
In display 27d, the first telephone line is assigned the number zero (0), so the display reads "P", which stands for the "port" or "physical number" of the
telephone line, followed by a colon and the number zero. For this first telephone line, the display indicates an architectural number ("n:000" in FIG. 11) that is not related to the present invention.
Assuming the first telephone line is to be
configured as a student phone, the prompt of the display 27d causes the user to enter the number five (5) by way of keystrokes to the keypad 51 of the telephone 23(1), followed by entry of a pound sign (#). In this instance, the pound sign acts as an end of data word so that the system controller 30 knows the complete number has been transmitted. In response to the entry of the pound sign, the system controller 30 scrolls down the list of
telephone lines in the group to the line identified as the fifth line as shown by the display 27e. By way of a keystroke to the key for the pound sign (#), the various data fields for configuring the fifth line can be scrolled across the display 27. A first keystroke to the pound (#) key causes the display 27f to appear, which includes a "hunt bit" denoted by "H" on the display. The icon "⊠" in the display 27f denotes a flashing cursor position, and the symbol "S" denotes the class of the line. In the display 27f of FIG. 11, the class of line five (5) is presently "01", which might be a full service configuration that allows unlimited access to the public telephone network 24. To change the class of line five (5), the cursor is moved to the data field for the class by a further keystroke to the pound (#) key as shown by display 27g in FIG. 11. Then the user enters "3", "4" and "#" by way of appropriate keystrokes to the keypad 51, which causes the system controller 30 to replace the present class of "01" with that of "34", which configures the telephone line five (5) as a "student phone." The final display 27h in FIG. 11 prompts the user to program "zone" attributes of the telephone line. In this
example, the re-configuration of the telephone line is complete so the phone is returned on the hook as
indicated in FIG. 11.
As can be seen from the foregoing, an apparatus and method are provided for limiting the connection time of at least one selected telephone line of the telephone lines 22(1) to 22 (N1) of the PBX system 20 and the public networks 24. In keeping with the invention, the selected line or student phone is prevented from re-dialing the called number for a certain period of time or for a number of subsequent calls once the call exceeds a predetermined amount of time. The student phone may be enabled and disabled by the system only at predetermined times. If desired, the telephone system may also
incorporate other conventional features including limited prefix dialing capabilities, limited area code dialing capabilities, blocking of incoming calls, and the like.
Figure imgf000028_0001
Mar 09 15:55 1993 stdphn.c Page 2 #def ine RTC_BASE 0×1280 /* base 1/0 address of Real Time Clock */
#def ine RTC_REG(x) RTC_BASE+(2*x)
extern FI FO_TYPE tone_buf [MAX_DTMF_XCVRS] ;
/* StdPhnEnabled control access to the student phone features.
/* == 0 blocks access. == 1 allows access.
*/
/* StdPhnRestricted is a table of numbers that should not be allowed
/* within some time period. STDPHNNUMBER is the number of entries in
/* the table. STDPHNSIZE is the size of the table in bytes.
*/
/define STDPHNNUMBER 50
/define STDPHNSIZE (STDPHNNUMBER*sizeof(tStdPhnRestricted)) tStdPhnRestricted StdPhnRestricted[STDPHNNUMBER];
/def ine MAXMILITARYTIME (24*60*60)
unsigned long MilitaryTime(void);
void CreateNumber (int dtnum, tStdPhnRestricted *Number);
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/*
/* StdPhn_proc
/*
/* Active list process for student phone line calls.
/*
Mar 09 15:55 1993 stdphn.c Page 3 / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
void StdPhn_proc(void)
{
int SubjLine;
int DTMFRec;
int dtnum; SubjLine = al_point->sline;
link_supv_set(); /* set link count down to show supvised */ if ((al_point->param == STDPHNINVALID) && (eeptr->StdPhnRestrictTime != 0))
{
/* Table Index is invalid and it shouldn't be. This is an illegal
/* student call.
*/
hangup(); /* disconnect line & handle LEDs */
return;
}
if ((ct_ln_lk(al_point->link) == 1) || ((lsel(al_point->sline, 0) & LLMMSK)
== ONHOOK) )
{
/* Alone on link or on hook, cause disconnect */
if (al_point->state <= 1)
Mar 09 15:55 1993 stdphn.c Page 4
{
/* We are within the first 20 seconds of the call. Delete the /* number entry from the table.
*/
StdPhnDelete(al_point->param);
}
hangup( ); /* disconnect line & handle LEDs */
return;
}
/* State definition:
/* 0: setup
/* 1: first 20 seconds of call
/* 2: body of call until 10 seconds prior to disconnect
/* 3: beeping
/* 4: last 10 seconds of call
*/
switch (al_point->state)
{
case 0:
/* Setup beginning of student phone call */
setime( );
al_point->state = 1;
break; case 1:
/* Wait for 20 seconds. If call ends during state 1, remove
Mar 09 15:55 1993 stdphn. c Page 5
/* number dialed from restricted table. At end of 20 seconds
/* move on to state 2.
*/
if (timeup(20 * SECONDS))
{
/* Determine the timeout value to start a beep */
if ((eeptr->StdPhnCallLimit == 0) || (al_point->param
== STDPHNNOLIMIT))
/* Limit is 0, there is no time limit on the call. */ al_point->param = 0; else if (eeptr->StdPhnCallLimιt <= 30)
/* Limit is less than 30, set to 20 seconds for beep */ al_point->param = 20 * SECONDS; else if (eeptr->StdPhnCallLimit >= 900)
/* Limit is greater than 15 minutes, set to
/* 14 min 50 sec for beep.
*/
al_point->param = (880) * SECONDS; else
/* Limit is reasonable, we track 60ths of a second. Set /* limit 10 seconds short to allow for warning beep.
*/
al_point->param = (unsigned) ((eeptr->StdPhnCallLimit - 10)
* SECONDS);
Mar 09 15:55 1993 stdphn.c Page 6 al_point->state = 2;
}
break; case 2:
/* if param is 0, there is no limit to the length of the call. */ if ((al_point->param != 0) && timeup(al_point->param + 600))
{
/* Unable to produce beep during last 10 seconds. End call now. */ hangup();
}
else if ((al_point->param != 0) && timeup(al_point->param))
{
/* Set up a beep to both parties */
if ((dtnum=findor(al_point->link)) != NIL)
{
tone (dtnum, 1); /* beep */
tone(dtnum, 0×21); /* diasble high band */
al_point->state = 3;
setime ( );
}
}
break; case 3:
if ((DTMFRec=orexist(al_point->link)) != NIL)
{
Mar 09 15:55 1993 stdphn.c Page 7 if (timeup(2*SECONDS))
{
/* Beep is finished, release DTMF receiver and
/* connect conversation to a DUMB link.
*/
unconn(DTMFRec);
/* Set a timer and wait for end of call */ setime();
al_point->state = 4;
}
}
else
{
/* Somethings wrong. There should be a DTMF receiver.
/* End call now.
*/
hangup();
}
break; case 4:
/* When 10 seconds is up, end call. */
if (timeup(10 * SECONDS))
{
hangup( );
}
break;
Figure imgf000035_0001
Figure imgf000036_0001
Mar 09 15:55 1993 stdphn.c Page 10
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/ *
/ * STDPHNAllowed
/ *
/* Use the digits in the fifo buffer for the specified DTMF receiver
/* to search the restricted number table. If the number is found, and
/* the time stamp is within the restricted time, return NO (number
/* not allowed). If the number is not found or the number is found but
/* the time stamp is beyond the restricted time, return YES (number
/* is allowed). If the number is allowed, add the number to the table
/* or update the time stamp.
/*
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
int StdPhnAllowed(int dtnum)
{
unsigned i;
unsigned long OldestTime;
unsigned Oldestlndex;
tStdPhnRestricted Number;
unsigned long TimeLimit; /* If the restrict time is 0, numbers are unrestricted */ if (eeptr->StdPhnRestrictTime == 0)
return(YES);
Mar 09 15:55 1993 stdphn.c Page 11
OldestTime = MilitaryTime(); /* Current Time */
OldestIndex = STDPHNINVALID;
/* Create table entry from DTMF receiver fifo */
CreateNumber (dtnum, &Number); if ((Number.Prefix == 911) && (Number.Suffix == 0))
{
StdPhnIndex[dtnum] = STDPHNNOLIMIT;
return(YES);
}
if ((Number.Suffix == 0) && (Number.Prefix == 0))
{
StdPhnIndex[dtnum] = STDPHNINVALID;
return(NO);
}
/* Search the table for the number specified. */
for (i=0; i<STDPHNNUMBER; i++)
{
if ((StdPhnRestricted[i].AreaCode == Number.AreaCode)
&& (StdPhnRestricted[i].Prefix == Number.Prefix)
&& (StdphnRestricted[i].Suffix == Number.Suffix))
/* Found the number. Check time stamp */
TimeLimit = MilitaryTime();
if (TimeLimit < StdPhnRestricted[i].TimeStamp)
Mar 09 15:55 1993 stdphn.c Page 12
TimeLimit = TimeLimit + MAXMILITARYTIME; if ((TimeLimit - StdPhnRestricted[i].TimeStamp) > (unsigned) eeptr->StdPhnRestrictTime)
{
/* Number is allowed. Update time stamp and allow */
StdPhnRestricted[i].TimeStamp = MilitaryTime();
StdPhnIndex[dtnum] = i;
return(YES);
}
else
{
/* Time stamp is within restricted time. Disallow */
StdPhnIndex[dtnum] = STDPHNINVALID;
return(NO);
}
}
/* Keep track of the oldest entry seen */
if (StdPhnRestricted[i].TimeStamp < OldestTime)
{
OldestTime = StdPhnRestricted[i].TimeStamp;
Oldestlndex = i;
}
}
/* Did not find entry. Find an unused entry, add the number
/* and allow.
*/
Mar 09 15:55 1993 stdphn.c Page 13 for (i=0; i<STDPHNNUMBER; i++)
{
if ((StdPhnRestricted[i].Suffix == 0) && (StdPhnRestricted[i].Prefix == 0))
{
/* Found an open entry. Add the number and time stamp. */
StdPhnRestricted[i] .AreaCode = Number.AreaCode;
StdPhnRestricted[i] .Prefix = Number.Pref ix;
StdPhnRestricted[i].Suffix = Number.Suffix;
StdPhnRestricted[i].TimeStamp = MilitaryTime();
StdPhnlndex[dtnum] = i;
return(YES);
}
}
/* No open entries. Use the oldest entry found during the search. */
/* Allow the number dialed */
StdPhnRestricted[Oldestlndex] .AreaCode = Number.AreaCode;
StdPhnRestricted[Oldestlndex] .Prefix = Number.Prefix;
StdPhnRestricted[Oldestlndex] .Suffix = Number.Suffix;
StdPhnRestricted[Oldestlndex].TimeStamp = MilitaryTime();
StdPhnlndex[dtnum] = Oldestlndex;
return(YES);
}
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/*
Mar 09 15:55 1993 stdphn.c Page 14
/* StdPhnCleanup
/*
/* Clean out obsolete entries in StdPhnRestricted.
/*
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
void StdPhnCleanup(void)
{
unsigned i;
unsigned long CurrentTime;
CurrentTime = MilitaryTime();
/* Search the table for obsolete entries */
for (i=0; i<STDPHNNUMBER; i++)
{
if ((StdPhnRestrictedfi].Suffix != 0) || (StdPhnRestricted[i].Prefix
!= 0))
{
if (CurrentTime < StdPhnRestricted[i] .TimeStamp)
if ((CurrentTime + MAXMILITARYTIME - StdPhnRestricted[i].TimeStamp)
> (unsigned) eeptr->StdPhnRestrict
StdPhnDelete( i);
else
if ((CurrentTime - StdPhnRestricted[i].TimeStamp) > (unsigned) eeptr->StdPhnRestrictTime)
Mar 09 15:55 1993 stdphn.c Page 15
StdPhnDelete( i);
}
}
} / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/ *
/* StdPhnDelete
/*
/* Delete the specified number entry from the table.
/*
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ void StdPhnDelete (unsigned Index)
{
if ((Index == STDPHNINVALID) || (Index >= STDPHNNUMBER))
return;
StdPhnRestricted[Index] .AreaCode = 0;
StdPhnRestricted[Index].Prefix = 0;
StdPhnRestricted[Index].Suffix = 0;
Mar 09 15:55 1993 stdphn.c Page 16
}
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*
/* StdPhnDisplay
/*
/* Display the current student phone enable setting. Parsing will /* continue to collect digits. This function is called during parsing / * to start student phone programming from an LCD console.
/*
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
void StdPhnDisplay (int dtnum)
{
char DispString[20]; if (auchek(dtnum) == NO)
return; if (EE_BLOCK_1->StdPhnEnabled == 0)
sprintf (DispString, "STUDENT - OFF");
else
sprintf (DispString, "STUDENT - ON");
Mar 09 15:55 1993 stdphn.c Page 17 display (getlcd( ) , DispString) ;
}
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /*
/* StdPhnToggle
/*
/* Toggle the status of the student phone feature during programming. /* This function is called during parsing.
/*
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* /
void StdPhnToggle(int dtnum)
{
char DispString[20]; switch (dtdig[dtnum])
{
case STAR:
if (EE_BLOCK_1->StdPhnEnabled == 0)
/* Disable access to the feature */
StdPhnEnable();
else
/* Enable access to the feature */
Mar 09 15:55 1993 stdphn.c Page 18
StdPhnDisable ( );
break; default:
break;
}
if (EE_BLOCK_1->StdPhnEnabled == 0)
sprintf(DispString, "STUDENT - OFF");
else
sprintf(DispString, "STUDENT - ON"); display (getlcd( ), DispString);
}
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * / *
/* MilitaryTime
/*
/* Determine the current time in a military format.
/*
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
unsigned long MilitaryTime (void)
Mar 09 15:55 1993 stdphn.c Page 19 {
unsigned long Time;
Time = time_date.hour * 60 + time_date.min;
Time = Time * 60 + (inp(RTC_REG(0×1)) & 0×7) * 10 + (inp(RTC_REG(0×0)) & 0×f); return(Time);
} / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/*
/* CreateNumber
/ *
/ * Create a number structure from the digits in the DTMF fifo.
/*
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/ void CreateNumber (int dtnum, tStdPhnRestricted *Number)
{
unsigned i;
FIFO_TYPE *Fifo;
unsigned NumKeys;
unsigned Head;
unsigned char *NextKey;
Mar 09 15:55 1993 stdphn.c Page 20
Number->AreaCode = 0;
Number->Prefix = 0;
Number->Suffix = 0;
Number->TimeStamp = 0;
Fifo = &(tone_buf[dtnum]);
NumKeys = Fifo->num_elm;
Head = Fifo->head;
NextKey = & (Fifo->data[Head]); switch (NumKeys)
{
case 3 :
case 7 :
case 8:
case 11:
break; case 5: /* look out for echo digit function */ case 9 :
case 10:
case 13: /* skip echo and delay */
Head = (Head + 2) % Fifo->max_elm;
NextKey = &(Fifo->data[Head]);
NumKeys-=2;
break; default:
Mar 09 15:55 1993 stdphn.c Page 21 return;
}
if ((NumKeys == 8) || (NumKeys == 11))
{
if (*NextKey != 1)
return;
else
{
Head = (Head + 1) % Fifo->max_elm;
NextKey = &(Fifo->data[Head]);
NumKeys╌;
}
} if (NumKeys == 10)
{
Number->AreaCode = 0;
for (i=0; i<3; i++)
{
Number->AreaCode = (Number->AreaCode * 10) + *NextKey;
Head = (Head + 1) % Fifo->max_elm
NextKey = &(Fifo->data[Head]);
}
}
Mar 09 15:55 1993 stdphn.c Page 22
/* Convert digits dialed for a prefix to an integer */
for (i=0; i<3; i++)
{
{
Number->Prefix = (Number->Pref ix * 10) + *NextKey; Head = (Head + 1) % Fifo->max_elm;
NextKey = &(Fifo->data[Head]);
}
} if (NumKeys == 3)
{
if (Number->Prefix == 911)
{
/* Number dialed is 911. Handle as a special case. */ return;
}
else
{
/* No other 3 digit numbers allowed. */
Number->Pref ix = 0;
return;
}
}
/* Convert digits dialed for the suffix to an integer */
Mar 09 15:55 1993 stdphn.c Page 23 for (1=0; i<4; i++)
{
{
Number->Suffix = (Number->Suffix * 10) + *NextKey;
Head = (Head + 1) % Fifo->max_elm;
NextKey = &(Fifo->data[Head]);
}
}
}

Claims

WHAT IS CLAIMED IS:
1. In a private branch exchange telephone system (PBX) arranged to connect telephone lines associated therewith to a public telephone network, a method of limiting the time of connection of at least one of the telephone lines, comprising the steps of:
detecting a request for connecting the telephone line to the public telephone network and a particular telephone identified by a sequence of numbers generated by keystrokes to a keypad connected to the telephone line;
switching the sequence of numbers to the network to connect the telephone line to the particular telephone of the public telephone network;
monitoring the elapsed time the telephone line is connected to the network;
monitoring the telephone line for a manually entered request to terminate the connection to the network; and terminating the connection from the telephone line to the network telephone upon the earlier occurrence of:
1) a manually entered request for termination; or
2) the elapsed time achieving a maximum
predetermined duration.
2. The method of claim 1 including the steps of detecting the connection of the telephone line to the network and in response thereto initializing the elapsed time.
3. The method of claim 2 including the steps of 1) obtaining a time value corresponding to the time of day and 2) storing the time value as an initial time.
4. The method of claim 2 wherein the step of monitoring the elapsed time comprises the steps of 1) obtaining an updated time value corresponding to the time of day and 2) comparing the updated time value to the initial time.
5. The method of claim 1 further comprising the step of enabling the telephone line only at predetermined time intervals such that the step of switching of the sequence of numbers to the network can occur only during the predetermined time intervals.
6. The method of claim 1 further comprising the steps of selecting a specific the telephone line from the plurality of telephone lines and storing in a memory the maximum predetermined duration for a connection to the public telephone network from the telephone line.
7. The method of claim 1 further comprising the steps of recording in a memory sequences of numbers that have been previously connected to the public telephone network, and comparing the requested network sequence of numbers with the recorded sequences of numbers for selectively denying the switching of a requested network sequence of numbers when the sequence corresponds to one of the previously recorded sequences of numbers.
8. The method of claim 7 further comprising the steps of 1) obtaining the time of connection for the telephone line, and 2) comparing the connection time to a predetermined minimum time, wherein the step of recording previously connected sequences of numbers occurs only if the connection time exceeds the minimum time.
9. The method of claim 7 wherein the previously connected sequences of numbers are recorded sequentially, and the selective denial of the switching to the network of a requested sequence of numbers is determined by the quantity of previously connected sequences of numbers recorded between the requested network sequence of numbers and the corresponding recorded sequence.
10. The method of claim 7 further comprising the step of recording a value identifying the time of day when a requested sequence of numbers is recorded, wherein the step of denying the switching of a requested sequence of numbers is selectively executed depending on a value of an elapsed time determined by the time between the current request to connect to the public telephone network and the recorded time of day for previous
requests for that number.
11. The method of claim 1 further comprising the step of providing a warning to the user of the telephone line prior to the elapsed time achieving the maximum predetermined call time duration.
12. The method of claim 11 wherein the warning is an audible tone.
13. A telephone system for controlling access to trunk lines of a public telephone system, the system comprising a plurality of telephone lines, a switching network for connecting the lines to one another and to the trunk lines of the public system, a controller for selecting one or more of the telephone lines to have a limited allowable connection time to the trunk lines of the public system and disconnecting the connection between each of the selected telephone lines and the trunk lines provided by the network when the time of the connection equals a maximum time of connection, and a memory in the controller for storing a value for the maximum time of connection.
14. A telephone system as set forth in claim 13 wherein the controller includes a historical table of the most recently called telephone numbers from the one or more selected telephone lines and the times of the calls and a comparator for comparing a telephone number
presently being called from one of the selected telephone lines to the telephone numbers in the historical table and a second comparator for comparing the time of the present call with the time of the most recent call to the same number and enabling the switching network only if a value of the differences between the times is greater than a minimum value stored in the memory.
15. A telephone system as set forth in claim 13 wherein the memory of the system controller includes a disabled/enabled status of the one or more selected lines and the controller includes a detector for detecting a request from one of the selected telephone lines for a connection to the trunk lines and enabling the switching network to provide the connection only when the status indicates the one or more selected lines is enabled.
16. A telephone system as set forth in claim 15 wherein the memory of the system controller includes a table of events that comprises events and the times they are to be executed and the controller includes a
comparator for comparing the present times to the times of the events and executing one of the events when the present time equals the time of an event stored in the table.
17. A telephone system as set forth in claim 16 wherein one of the events in the table of events is the toggling of the value of the disabled/enabled status of the one or more selected telephone lines.
18. A telephone system as set forth in claim 13 wherein the system controller includes a comparator for comparing an area code of a dialed number, if any, from the one or more selected telephone lines to a table of area codes stored in the memory, comparing a prefix of the dialed number to a table of prefixes stored in the memory and enabling the switching network to connect the one or more selected telephone lines to the trunk lines only if the values of the area code and prefix are values allowed by the tables.
19. A telephone system as set forth in claim 17 including a user interface for overriding the toggling of the enabled/disabled status by the event table.
20. A telephone system as set forth in claim 19 wherein the user interface is a keypad of a telephone connected to one of the plurality of telephone lines.
21. A private branch exchange telephone system arranged to connect telephone extensions associated therewith to the public telephone network, the system comprising:
a switching network for connecting and disconnecting telephone extensions to and from the public telephone network;
a controller for controlling the switching network; and
the controller including a processor and memory for comparing a connection time of a call to a predetermined maximum time and disconnecting the connection provided by the switching network when the connection time equals or exceeds the predetermined maximum time.
22. A private branch exchange telephone system as set forth in claim 21 including means for warning a caller before disconnecting the extension from the network.
PCT/US1993/007255 1993-07-30 1993-08-02 Method and apparatus for limiting the duration of a telephone call WO1995004422A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US9995893A 1993-07-30 1993-07-30
US099,958 1993-07-30

Publications (1)

Publication Number Publication Date
WO1995004422A1 true WO1995004422A1 (en) 1995-02-09

Family

ID=22277421

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1993/007255 WO1995004422A1 (en) 1993-07-30 1993-08-02 Method and apparatus for limiting the duration of a telephone call

Country Status (2)

Country Link
CA (1) CA2145855C (en)
WO (1) WO1995004422A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19706779A1 (en) * 1997-02-20 1998-08-27 Siemens Ag Communications system with automatic billing for service
JP2015154356A (en) * 2014-02-17 2015-08-24 日本電信電話株式会社 Call limitation method for pbx apparatus, pbx apparatus, and pbx control program

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5662492A (en) * 1979-10-26 1981-05-28 Nec Corp Forced cut-off system for inter-office trunk line
US4346264A (en) * 1980-04-02 1982-08-24 Cindon Research Inc. Telephone call restriction apparatus
JPS5923666A (en) * 1982-07-29 1984-02-07 Matsushita Electric Ind Co Ltd Forcible disconnecting method of automatic exchange
US4511765A (en) * 1983-05-11 1985-04-16 Aurora Mechatronics Corporation Universal control device for restricting dialing and time limiting telephone calls
US4656657A (en) * 1985-10-15 1987-04-07 Richard Hunsicker Telephone monitoring device
JPS6471253A (en) * 1987-09-11 1989-03-16 Nec Corp Telephone set
US4924499A (en) * 1988-02-25 1990-05-08 Serby Victor M Timer control for telephone

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5662492A (en) * 1979-10-26 1981-05-28 Nec Corp Forced cut-off system for inter-office trunk line
US4346264A (en) * 1980-04-02 1982-08-24 Cindon Research Inc. Telephone call restriction apparatus
JPS5923666A (en) * 1982-07-29 1984-02-07 Matsushita Electric Ind Co Ltd Forcible disconnecting method of automatic exchange
US4511765A (en) * 1983-05-11 1985-04-16 Aurora Mechatronics Corporation Universal control device for restricting dialing and time limiting telephone calls
US4656657A (en) * 1985-10-15 1987-04-07 Richard Hunsicker Telephone monitoring device
JPS6471253A (en) * 1987-09-11 1989-03-16 Nec Corp Telephone set
US4924499A (en) * 1988-02-25 1990-05-08 Serby Victor M Timer control for telephone

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HELLO DIRECT CATALOG, 1991, page 38. *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19706779A1 (en) * 1997-02-20 1998-08-27 Siemens Ag Communications system with automatic billing for service
DE19706779C2 (en) * 1997-02-20 2000-05-18 Siemens Ag Communication system with a special service for subscriber stations
JP2015154356A (en) * 2014-02-17 2015-08-24 日本電信電話株式会社 Call limitation method for pbx apparatus, pbx apparatus, and pbx control program

Also Published As

Publication number Publication date
CA2145855A1 (en) 1995-02-09
CA2145855C (en) 1998-12-08

Similar Documents

Publication Publication Date Title
US5454033A (en) Apparatus and method for controlling access to a telephone
US5274698A (en) Method of restricting telephone calls in a private branch exchange system
US4993062A (en) Telephone control system including stored blocked and allowed telephone numbers
US5388150A (en) Automatic incoming telephone call identification and disposition system
US5898772A (en) Logical PC agent
US5745559A (en) Restricted access telephones for logical telephone networks
DE69936830T2 (en) Portable communication terminal with a remotely controllable dialing option
US5377261A (en) Apparatus and method for accessing both local and network-based features at a telephone terminal
KR100590349B1 (en) Method for controlling personal lock in a mobile station
US6370400B1 (en) Method for avoiding fraudulent use of a mobile radiotelephone by blocking an interface after a certain inactive period of time and mobile radiotelephone performing the same
US7510580B2 (en) Method and apparatus to eliminate theft of electronic equipment using existing telephone jack
WO2002069657A1 (en) A method to realize invisible automatic dial up to report the loss for handset
US5802158A (en) Method and apparatus for providing an alarm call to a remotely located user using a DISA line in a private exchange
WO1995004422A1 (en) Method and apparatus for limiting the duration of a telephone call
US6111942A (en) Communication transfer apparatus
WO1999057880A1 (en) Programmable time-controlled functions in mobile terminal handsets
JPH0715537A (en) Isdn tele-control system
KR100749184B1 (en) Method of management sending in communication device having phonebook function
KR100251437B1 (en) Digital telephone communication system
KR0138178B1 (en) Private exchange
KR0162614B1 (en) Controlling multi-party phone calls
JPH01160147A (en) Communication system
EP1104633B1 (en) Intelligent network services
KR0150084B1 (en) Telephone with changing system
KR100210811B1 (en) Method for accomplishing timer function of centrex/attendant console apparatus in private exchanger

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA

WWE Wipo information: entry into national phase

Ref document number: 2145855

Country of ref document: CA