Enhanced call waiting

Information

  • Patent Grant
  • 6026156
  • Patent Number
    6,026,156
  • Date Filed
    Monday, October 19, 1998
    26 years ago
  • Date Issued
    Tuesday, February 15, 2000
    24 years ago
Abstract
A method of and apparatus for providing telecommunication services to a user. When the user is engaged in a first telephone call via a telephone switch with a first party and a second party attempts to place a second telephone call to the user via the switch, the method and apparatus advise the second caller that the user is engaged in a telephone conversation and allow the second caller to determine whether to interrupt the user or choose another alternative. The user can then decide whether to accept the call from the second caller, putting the first caller on hold, or to refuse the second call. Alternative embodiments are disclosed where the user is advised of the identity of the second caller (or wherein the user has previously authorized certain callers to interrupt a current call with a new call), and then the user can decide whether to accept the call from the second party (placing the first party on hold) or to deny the second party (in which case the second party is transferred to a message center).
Description

TECHNICAL FIELD
This invention relates to the field of telecommunications and more particularly to an enhanced call waiting service which telecommunication providers can provide to their customers.
BACKGROUND OF THE INVENTION
Telephone companies have provided, for a number of years, a call waiting service to which their customers may subscribe. If a customer subscribes to the call waiting service, then when the customer is on the telephone talking with a first party and a second party telephones them during the course of the conversation with the first party, then the customer will hear a beep in the earpiece of the telephone to alert them to the fact that another call is waiting. The customer can then transmit a flash hook to the telephone company's central office, placing the conversation with the first party on hold and connecting the customer with the second party, allowing the customer to then enter into a conversation with the second party. However, the customer has no way of knowing who the second party is when they hear the beep in the earpiece and they have no idea whether or not the call from the second party is sufficiently urgent to warrant interrupting the conversation with the fist party.
Newer methods for call delivery to a customer are or will soon be implemented. For example, the Integrated Services Digital Network (ISDN) will have digital signaling channels for notification of an attempt, on the part of the network, to deliver a call to a customer. With ISDN, a customer can be notified of the attempt to deliver the call even though the customer may be engaged in a telephone call or connection with another party. Such notification can be made at the customer's telephone station or at a separate terminal. Additionally, the customer can also receive information related to the second call, such as Calling Line IDentification (CLID). This information may be displayed on the customer's station. Given this information, i.e., the telephone number of the calling party, the customer may elect to put the call in progress on hold and to connect with the new call. Other options are also available, as is described, e.g., in the AT&T document 5ESS ISDN Basic Rate Interface Spec. 5E6 Software Release, the Bellcore "National ISDN-1" Document No. SR-NWT-001937, February 1991, the Bellcore "National ISDN-2" Document No. SR-NWT-002120, May 1992, and the AT&T document "5ESS Switch--The Premier Solution Feature Handbook" Document No. 235-390-500, dated September 1987, all of which are hereby incorporated herein by reference. However, ISDN does not allow the calling party to identify the urgency of their call or to provide the user with a notification initiated by and defined by the calling party.
The instant invention addresses the problems noted above by providing an Enhanced Call Waiting System which pre-screens the call from the second caller to determine a level of urgency before interrupting the customer advising that a call is waiting. The invention also includes means by which information regarding the new call can be communicated to the customer so that they can decide what action should be taken, if any.
BRIEF DESCRIPTION OF THE INVENTION
In general terms, the invention provides a method and apparatus for providing an enhanced call waiting telecommunication service to a user when the user is engaged in a telephone conversation via a telephone switch with a first party at the same time a second party attempts to place a telephone call to the user. In accordance with the invention, telephonic instructions are received from the second caller to initiate a telephone call between the second party and the user. Generally speaking, the telephonic instructions take the form of the user's telephone number which is inputted by the second party at their telephone instrument. The fact that the user's telephone is busy is detected and, in response thereto, a courtesy message is transmitted to the second party, for example, inviting the second party to input a command corresponding to available options. The courtesy message may include the command to be inputted or the command may not be explicitly given during the courtesy message. In any event, the method and apparatus allow the second party to input a command, if they know it. Otherwise the call is handled in a predetermined fashion when no command is entered. The command may comprise, for example, a number or other code to be entered at the keypad of the second party's telephone. The command can include other commands, including spoken commands which would then be detected and interpreted by a computer system. Voice detection apparatuses are currently available and indeed are already embodied in some computer systems and therefore they are not described herein. Those skilled in the art will appreciate that commands which are described as being entered at a keypad herein may be implemented by responding instead to voice commands if appropriate voice detection subsystems are added. If desired, a hierarchy of commands may be available for use which correspond to alternatives the caller may select. Additionally, or alternatively, in some embodiments, the method and apparatus may issue a courtesy message asking the second party to state their name or purpose of the call before routing the call. Assuming that the command is inputted by the second party (or their name or other information is stated, in those embodiments, as their spoken name or other information may comprise the command), then the call from the second caller is directed according to the command received indicating direction to the user with a priority forwarding code causing a beep or other indication to be heard at the user's telephone.





BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic diagram of the Enhanced Call Waiting System of the present invention; and
FIG. 2 is a flow diagram showing the processing capabilities of the call processing facility of the Enhanced Call Waiting System of FIG. 1;
FIG. 3 is a schematic diagram of another embodiment of the Enhanced Call Waiting System of the present invention, this embodiment having an embedded switch; and
FIGS. 4A through 4I are flow diagrams showing the processing capabilities of the call processing facility of the Enhanced Call Waiting System of FIG. 3.





DETAILED DESCRIPTION
Adjunct Switch Embodiment
FIG. 1 is a schematic diagram of one embodiment of the Enhanced Call Waiting System 40 of the present invention. In this embodiment the apparatus and method of the invention control a switch which may be located, for example, in the central office of the telephone company directly. Another embodiment is described subsequently in detail in which a controlled switch is embedded with the apparatus of the present invention. The embedded switch embodiment can provide additional features which would not be currently available using switches currently installed in telephone company central offices.
While a plurality of users may be connected to the Enhanced Call Waiting System 40, a single user having a telephone device 10 is depicted in FIG. 1 for clarity's sake. Telephone device 10, which may be a conventional telephone, is connected to a switch at the telephone company's central office 20 or any other branch exchange and even to a PBX switch. A number of other callers having telephones 11 and 12 are also coupled to the switch at the telephone company's central office 20, either directly or via the public switched telephone network (PSTN) 30. The other callers may be users of the Enhanced Call Waiting System 40 or not, depending on how this service is provided. Thus, the Enhanced Call Waiting System service may be provided to all callers connected to a switch or it may only be provided to those callers who elect to subscribe to this service.
The Enhanced Call Waiting System includes a programmed call processing facility 50 which, under software control, provides the Enhanced Call Waiting System 50 which will be described henceforth. The programmed call processing facility is coupled to the telephone company's central office switch 20 by means of a hunt group of telephone lines or other suitable communication facility 52 as well as preferably via a datalink 54. The datalink 54 preferably provides information regarding the identification of the calling party as well as the reason that the call is being delivered. For example, the Simplified Message Desk Interface (SMDI) datalink provided by DMS 100 switches manufactured by Northern Telecom provide the sort of information desired. The CMSS datalink in 5ESS switches provide similar information. The call processing facility, from a hardware aspect, may be embodied as is described in U.S. patent application Ser. No. 07/480,242 filed Feb. 15, 1990, the disclosure of which is hereby incorporated herein by reference. As described in U.S. patent application Ser. No. 07/480,242, a call processing facility includes a computer 56 and an interface 58 for interacting the telephone lines 52 to the computer 56. The computer 56 may be an industry standard device well known in the art, such as, for example, a fault-tolerant computer, such as a Stratus R-5, or even a personal computer of the well known IBM PC type and preferably using the Intel 486 chip (or better) with a disk operating system (such as the UNIX operating system). The telephone line interface 58 may be provided by cards which plug into the computer 56, such as model D41B interface cards manufactured by Dialogic. The SMDI datalink 54 is connected to computer 56 via an RS232 serial port on the computer.
The hunt group 52 is associated with the datalink 54 such that when a call is received by the Enhanced Call Waiting System 40 over one of the lines in the hunt group 52, a data message is also passed by the telephone company's central office switch 20 over the SMDI datalink indicating the reason for the call, the number which was called and, if available, the telephone number of the telephone or party from which the call originated. This latter feature is known by several names, including Automatic Number Identification (ANI) and Calling Line IDentification (CLID), among others. Using CLID is preferred since ANI is often used to convey a billing number rather than the actual number associated with the third party. For many telephone users, the ANI and CLID are the same, but that will often not be the case in businesses which used Direct Inward Dial (DID) numbers. The telephone lines in the hunt group 52 have a feature provided by the telephone company's central office switch 20 known as call transfer capability.
The users of the Enhanced Call Waiting System 40 have the well-known Busy Forwarding, and may have No Answer Forwarding, features available in switch 20 for their telephones 10. If the user station 10 is busy with a call from one caller (e.g., a caller at station 11) directly, then calls from a different caller (e.g., a caller at station 12) will be busy forwarded to the Enhanced Call Waiting System 40 by switch 20, assuming that the user's telephone 10 has the Busy Forwarding feature of switch 20 enabled. A transfer will also occur when the user fails to answer telephone 10 assuming that the No Answer Forwarding feature of switch 20 is enabled. As will be seen, in order for the Enhanced Call Waiting System to function as described herein, the telephone company central office switch 20 must be permitted to override (i.e., ignore) the Busy Forwarding feature of the user's phone by employing a so-called "Dial Call Waiting Feature" commonly available on telephone company central office switches 20 such as the 5ESS switch manufactured by AT&T. In this case all users are defined as belonging to a Terminal Group so that the Dial Call Waiting Feature is effective for them.
Users of the Enhanced Call Waiting System 40 are identified preferably by their telephone numbers which are preferably stored in a database 55. In that way, the computer, under program control, can check the database to verify who are users and who are not, to retrieve recorded announcements and various operational parameters.
This Enhanced Call Waiting System 40 operates as follows. When a caller at station 11 or 12 attempts to reach a user 10, if the user's line is busy, then the central office switch 20 forwards the call to a lead number in hunt group 52. Referring to the flow chart of FIG. 2, the computer 56 in the call processing facility 50 of the Enhanced Call Waiting System 40 waits for a call to come in on one of the lines of the hunt group. This waiting is handled by loop 62. When a call comes in, the call is answered and the SMDI datalink is examined for the data accompanying the call at steps 64,70,76 and 80. A test made at step 64 is to determine whether or not the call coming into the hunt group is a direct or transfer call from a user. If it is not from the user (either directly or via a transfer), then the SMDI will contain an ANI or CLID which cannot be found in database 55. If the ANI or CLID is from the user's telephone, as identified in database 55, then the SMDI reason code will correspond to the letter D (for direct call from the user), the letter N (for a call forwarded due to a no answer at the user's phone) or B (for a call forwarded due to a busy user's telephone). The test at step 64 will catch those callers who accidentally miss-dial the number of the hunt group. They are shuttled off to step 66 where they may be advised how they may order the system and then the system hangs up on them and returns back to the loop at steps 60 and 62 via step 68. The information conveyed regarding how the system may be ordered can be stored, for example, in database 55.
Assuming that the incoming call on the hunt group is from the user's telephone, i.e., the ANI or CLID corresponds to a user's telephone number stored in database 55, then the accompanying SMDI reason code will be either the letter D, the letter N or the letter B. If it is the letter D, as tested at step 70, that means that the call from the user's telephone is a direct call from the user, and not a forwarded call. In that case, the user is asked for a Personal Identification Number (PIN) at step 72 and, assuming the PIN is entered correctly (i.e., it corresponds to the user's PIN stored in database 55), the user is permitted to listen to previously recorded messages stored in database 55 or advised that there are no messages stored. Recorded messages can, of course, be deleted from database 55 in a manner well known in the prior art. The program again returns to loop 62 at step 74.
If the SMDI reason code is the letter N, as tested at step 76, that means that the user did not answer the telephone and therefore the central office switch is transferring the call for that reason. The Enhanced Call Waiting System 40 then plays a message (which may be stored in database 55) at block 78 indicating that the party is unavailable and thereafter, at step 86, the caller is invited to leave a message for the user they are trying to call and the caller's message is recorded and stored in database 55, in a manner well known in the art. If Message Waiting Indication (MWI) facilities are available at the user's telephone station, as tested at step 90, then MWI is set at the user's telephone station at step 92. This could comprise, for example, turning on an LED at the user's telephone indicating that the user has a message waiting.
If the SMDI reason code is the letter B, as tested at step 80, that indicates that the call was forwarded to the Enhanced Call Waiting System 40 due to a user's busy telephone. In that case, the caller is advised at step 82 that the line is busy and is invited to enter a command or code and optionally also to state their name or reason for the call at the tone or alternatively to hold the line and leave a message. If the command or code is not properly received at step 84, or if no command or code is entered, then the caller is prompted to leave a message and the message is recorded at step 86. If the caller enters the correct command or code at block 84, then the Enhanced Call Waiting System 40 responds by effectuating the appropriate alternative corresponding to such command including, if appropriate, sending a signal to the telephone company office switch 20 at block 88. For the model 5ESS switch manufactured by AT&T, the signal may comprise a special access code indicating that the Dial Call Waiting feature is to be invoked followed by the user's home telephone number. This number may be one of several numbers assigned to the user's phone line designed to produce differing indications to the user through the invocation of the Distinctive Alerting feature in conjunction with the Dial Call Waiting treatment to the line. Thereafter, this system 40 hangs up and it goes back to the loop comprising steps 60 and 62. The switch 20, in response to the Dial Call Waiting feature capability of the 5ESS switch, will cause a call waiting tone at the user's busy telephone to occur, thereby advising the user that a call is waiting. Other switches may not have a Dial Call Waiting feature exactly as described above. However, when such central office switches are used, then other techniques can be used to ensure that the call from the system 40 gets through to the user 10 while other calls to the user are forwarded to the Enhanced Call Waiting System.
The user can be advised of the relative urgency or importance of the call as will now be described. If the user has the Distinctive Ringing feature of the 5ESS switches enabled, then when a call is transferred by the system using the Dial Call Waiting feature, the call waiting tone heard by the user is a function of which telephone number is used to contact the user. As is known in the art, Distinctive Ringing allows a user to have multiple telephone numbers associated with a given line and the telephone(s) connected to the line ring distinctively depending upon the number called. In this case the Enhanced Call Waiting System previously described may be modified slightly to receive urgency information from the caller and then to selectively dial a telephone number associated with the user's telephone line as a function of the indicated urgency. Alternatively, the Enhanced Call Waiting System may selectively dial the telephone numbers associated with the user's telephone line as a function of the CPID of the caller. CPID is Calling Party IDentification and can be derived, in some cases, from ANI, CLID, or by information input by the caller. The Enhanced Call Waiting System then dials out to the user's phone using the special access code needed to invoke the Dial Call Waiting feature plus a telephone number associated with the indicated urgency/importance of the call. The number selected is one of the numbers associated with the Distinctive Ringing feature on the user's phone. The user, who is then engaged in a telephone call with a first person, will hear a distinctive call waiting tone which indicates the level of urgency or importance identified by the caller directly, or by the caller's CPID. While the flow diagram of FIG. 2 does not provide for this particular feature, those skilled in the art should be able to modify them to include it. Moreover, another embodiment of the Enhanced Call Waiting System will be described with respect to FIGS. 3 and 4A-4I which also provide for not only this feature but other additional features.
The Enhanced Call Waiting System, which has been described above, works as follows. Assume that Pat is trying to reach Bob. She calls Bob's home telephone number and Bob is not on the line, so the central office delivers the call to Bob's home phone and Bob answers the call. Bob and Pat now engage in a telephone conversation.
Now, assume that while Bob and Pat are talking, Fred tries to telephone Bob. This time, Bob's telephone line is busy, so the central office uses its busy forwarding feature, which Bob has, to forward the second call from Fred to the Enhanced Call Waiting System 40. The Enhanced Call Waiting System 40 answers the call and recognizes that since it received the call with a proper ANI (due to the fact that the call was forwarded from Bob's number and Bob's number is stored in database 55) and with a SMDI reason code of "B", that means that Bob's phone is busy and the system then plays a courtesy message to the caller saying something like "I'm sorry, Bob is on the line, but if it is urgent that you to speak with him now, touch 1 and I will try to connect you. Otherwise, please hold the line and leave a message". If Fred touches 1, because he needs to get through to Bob, the Enhanced Call Waiting System 40 will send a signal to the public switch (typically in the form of a flash hook to acquire a second dial tone, dial a call waiting code, and then dial Bob's home telephone number). Since Bob is already on the telephone, ordinarily calls to him would be busy forwarded right back to the Enhanced Call Waiting System 40. However, since the Enhanced Call Waiting System dialed the Dialed Call Waiting Code, and since the group of lines serving the Enhanced Call Waiting System 40 are so equipped, they are permitted to override the busy forwarding feature on Bob's home telephone line, and Bob hears a prompt (usually a tone or beep) indicating that a call is waiting. Therefore, the call from Fred will be sent through to Bob and Bob will hear a call waiting tone permitting him to excuse himself temporarily from his telephone conversation with Pat, do a flash hook and pick up the second call. The system 40 need not wait for Bob to act on the transfer call from Fred, since that function is provided by the telephone company central office switch 20.
With this system, a large majority of the calls to Bob will flow to him without ever activating the Enhanced Call Waiting System 40. Only those calls when Bob is actually on the line or when Bob does not answer the telephone call will go through the Enhanced Call Waiting System 40. Of course, this system can be modified or programmed so that it only handles "busy forwarded calls", and not "no answer forwarded calls", or vice versa. In any case, the Enhanced Call Waiting System 40 uses relatively inexpensive equipment to provide this feature as an adjunct to the telephone company central office switch, without having to modify the software in that switch, which is a time consuming and tedious process. Moreover, the Enhanced Call Waiting System 40 is only coupled to the caller for a relatively short period of time to play the courtesy message and to receive a reply (or to timeout waiting for a reply), and therefore, from a resource aspect, a relatively small amount of computational power is used by the Enhanced Call Waiting System to provide this feature to customers. These features are preferably interrupt driven so that the Enhanced Call Waiting System 40 can handle a plurality of transferred calls at the same time for a number of different users. Thus, the system is capable of handling many, many users.
The flow chart of FIG. 2 presents an embodiment of the invention which can be used with many of the central office switches in use today in the United States. Those skilled in the art will appreciate that the Dial Call Waiting feature is a special feature of the 5ESS switch sold by AT&T, but that there are techniques for implementing the features described above in other switches.
However, there still exist switches serving customers which have very little capability to transfer or forward calls. Such switches are often called step by step or cross bar switches. In order to use the present invention with such switches, another embodiment of the present invention will be described which has its own switch as a part of the Enhanced Call Waiting System. A block diagram of such an Enhanced Call Waiting System with an Embedded Switch is depicted in FIG. 3. This embodiment functions independently of the type of switch used in the local office and thus provides a number of benefits over the embodiment described above. First, as will be seen, additional features can be provided. Second, it is simpler to provide the Enhanced Call Waiting System features in a sophisticated context using a single switch as opposed to supplying these features in the context of many different models of switches which already exist in telephone company local switching offices. Third, it is desirable for these features to move with the user as he or she changes physical location. As is described in U.S. patent application Ser. No. 07/480,242 filed Feb. 15, 1990, it is desirable for a user to be assigned a single telephone number which they use irrespective of their physical location. Their telephone number in effect follows them as they move from home to car to office to elsewhere. The resulting call waiting service provided by the method and apparatus described herein will be much more uniform (and easier to control and deliver) in such an environment if the computer 56 only has to control one type of switch, and that is possible when an embedded switch 20' is provided in the Enhanced Call Waiting System While this embodiment can be used with unsophisticated switches, there are good reasons to use it with highly sophisticated switches as well, since it simplifies programming efforts and provides greater uniformity in the telephone environment as seen by users of the public telephone system.
Embedded Switch Embodiment
FIGS. 4A-4I present flow diagrams which may be used with the embodiment of FIG. 3. The embedded switch 20' is, in this embodiment, preferably a model LNX2000 switch built by Excel Corporation of Sagamore Beach, Mass.
Those skilled in the art will appreciate that certain of the features which will now be described are susceptible to being used with non-embedded switches 20, including the 5ESS manufactured by AT&T or the DMS100 switch manufactured by Northern Telecom and commonly used today as central office switches by telephone companies. The Embedded Switch embodiment of the Enhanced Call Waiting System will now be described.
In FIG. 3, the Enhanced Call Waiting System with embedded switch 20' includes a programmed call processing facility 50 which, under software control, provides the Enhanced Call Waiting System which will be described henceforth. The programmed call processing facility is coupled to the embedded switch 20' by means of a group of telephone lines 52 as well as via a control link 53 coupled to a serial port of computer 56. The call processing facility, from a hardware aspect, may be embodied as is described in U.S. patent application Ser. No. 07/480,242 filed Feb. 15, 1990, the disclosure of which is hereby incorporated herein by reference. As described in U.S. patent application Ser. No. 07/480,242, a call processing facility includes a computer 56 and an interface 58 for interacting the telephone lines 52 to the computer 56. The computer 56 may be an industry standard device well known in the art, such as, for example, a fault-tolerant computer such as the Stratus R-5 or even a personal computer of the well known IBM PC type and preferably using the Intel 486 chip with a disk operating system (such as the UNIX operating system). The telephone line interface 58 may be provided by cards which plug into the computer 56, such as model D41B interface cards manufactured by Dialogic. The embedded switch 20' is connected with the PSTN 30 typically via a local telephone company switch (for tariff reasons), although conceptually, the embedded switch could be thought of as having direct access to the PSTN 30. Interface 58 is coupled to embedded switch 20' via a hunt group 52. Embedded switch 20' is connected with switch 20 via Direct Inward Dial (DID) trunk 51.
Each user 10 of the system preferably has a unique personal telephone number which is identified with switch 20' (that is, when the unique personal number is used on the PSTN 30, the call is delivered via switch 20'). A user may instead have a personal telephone number which is identified with another telephone company switch on the PSTN. If another (i.e., remote) telephone switch serves a user 10, then that switch should preferably be located such that calls delivered via the embedded switch do not result in additional tolls being paid by the user. Each user can be contacted at one or more physical locations (i.e., at telephone stations). The telephone numbers at the various stations at which the user may be located are preferably different. Thus when a caller 11 wishes to contact user 10 the caller 11 uses the unique personal telephone number of the user and the call is completed via switch 20' to the user 10 who is physically located at some location. Switch 20' can transfer the caller's call to the user since the telephone number at the user's physical location is stored in database 55. The telephone number at the physical location may be thought of as an unpublished telephone address routable by the PSTN and the user can control the routable telephone number which switch 20' will use to transfer calls to the user.
Turning now to FIGS. 4A-4I, FIGS. 4A-4C comprise flow diagrams which show the steps used to handle an incoming call and, more particularly, an incoming call from the user (when located at a known telephone number) which permits the user, in a supervisory mode, to retrieve stored messages and/or to change certain user-selectable functions.
FIGS. 4D-4H comprise a flow diagram which shows how a call is handled when it comes in from a third party telephone. If the call is from the user, then he or she is permitted to enter a PIN and enter the supervisory mode described with reference to FIGS. 4A-4C. The flow diagram of FIGS. 4A-4H represents a computer program, known herein as the Host Computer Call Control Process, which program runs on computer 56.
FIG. 4I is a flow diagram of a user notification process which notifies the user whenever a caller has unsuccessfully attempted to reach the user. Thus this figure represents a computer program, known herein as the Host Computer User Notification Process, which program also runs on computer 56. Since computer 56 preferably supports pre-emptive co-processing, both the Host Computer Call Control Process and the Host Computer User Notification Process can run at the same time. Moreover, these processes can be adapted by those skilled in the art to support numerous telephone connections at the same time with the different connections being independently handled concurrently by different portions of the flow diagrams.
I. Host Computer Call Control Process
Beginning at step 100 is the flow chart for a Host Computer Call Control Process, which is a software control program which executes on computer 56. This program controls the embedded switch 20' and the telephone interface 58 to implement Enhanced Call Waiting functions. A separate, related software program, the Host Computer User Notification Process, is also shown in these flow charts, starting at step 900 and it also executes on computer 56.
The Host Computer Call Control Process starts at step 100. At step 100 a determination is made as to whether an incoming call has been detected by the switch 20'. Control remains in a loop at step 102 until an incoming call is detected, at which point control passes to step 104 where the computer 56 checks the ANI (Automatic Number Identification), CLID (Calling Line IDentification), and/or CPID (Calling Party IDentification) of the incoming call. The ANI tends to be a billing number, so it is not a highly reliable source for identifying a particular caller. CLID is better, since it identifies the particular telephone line which was used to originate the call. CPID is meant to identify the caller specifically. In this embodiment that caller should preferably make outbound calls via the embedded switch 20'. In that case the CLID would be associated with the particular line used by switch 20' to originate an outbound call, while the CPID would be identified with a particular caller and it preferably reflects the telephone address of the calling party irrespective of their physical location. In this entire specification, the term CPID is used to reflect an identifier associated with the person making a call. It is envisioned that the system would use whatever facilities are available to identify the calling party correctly in order to handle their calls appropriately. It is also envisioned that the user will have a feature called Hot-Line Service by which the user, when they pick up their phone, is automatically connected via their local switch 20 and the embedded switch 20' to the Enhanced Call Waiting System 40. Thus when a user picks up their telephone their CPID is checked at step 104 and the process continues on to step 108.
The CPID may be delivered to the switch via a number of different means, all generally known in the art, including Feature Group D trunks, Caller ID lines, etc. and may include a Personal Identification Number (PIN) input by the caller. If the computer 56 determines, by comparing the CPID of the call with the numbers stored in the database 55, that the call is from a phone associated with a user of the system (i.e., the user calling from home to check messages or program his service), then control passes to step 108. If the system does not recognize the CPID as belonging to a user of the system, then control passes to a flow connector labeled "Anyone Else" at step 400 via step 106.
At step 108, the system instructs the switch to connect the incoming call from the user 10 to an available port on the telephone interface 58, and then passes control to step 112, where the user 10 is provided with a dial tone or other greeting, such as "Good Morning". This and other messages may be stored in database 55, together with telephone numbers and addresses, individualized voice greetings, PIN numbers, valid CPIDs, and various control parameters which will be described. A loop formed by steps 114, 118 and 134 is entered where a determination is made at step 114 to see if a valid PIN Code has been entered by the user (prior to allowing the user to access his or her messages and programming functions). If a valid PIN Code is detected (by a prefixed * or # key, for example) then control passes to a connector labeled "Main Menu" at step 200 via step 116.
If the correct PIN Code was not entered, then control passes to step 118, where a determination is made as to whether a maximum time limit or a maximum number of PIN Code attempts has been reached. If either maximum limit is reached, then control passes to a connector labeled "Thank You" at step 120. If neither limit has been reached, then control passes to step 134 where a determination is made as to whether the user 10 input a telephone number for an outbound call. If so, control passes to step 134. If not, control returns (perhaps again) to step 114.
At connector step 120, labeled "Thank You," control immediately passes to step 122 where the user or caller is advised: "Thank you for calling . . . Good-bye." Control then passes to a connector labeled "Port Disconnect"at step 124, and then on to step 126 where computer 56 instructs the telephone interface 58 to release its port on this call. Control then passes to a connector labeled "Switch Disconnect" at step 128, and then on to step 130, where computer 56 instructs switch 20' to disconnect any remaining switch resources allocated to this call, thereby disconnecting the call. Control then passes to step 132, where control returns to the start of the Host Computer Call Control Process.
At step 136 the embedded switch 20' is instructed to seize an available outbound channel or port and to dial out to the phone number picked up at step 134. The inbound call from the user 10 is connected to the outbound channel. At step 138 the switch 20' is instructed to leave this outbound call connected (unless otherwise instructed) and to automatically disconnect this call and tear down the associated switch connections if disconnect supervision is detected on the channel.
At connector step 200, labeled "Main Menu," control immediately passes to step 202 where the user is prompted: "Hello. You have (number) messages. Touch 1 to listen to messages, 2 to change screening modes, or 3 to edit screening lists." Control then passes to a connector labeled "Main Menu Loop" at step 204, and then control immediately passes on to step 206 where a determination is made as to whether the user has touched the digit "1". If not, control passes to step 216. If "1" was entered, then control passes to step 208, where the user is provided the opportunity to listen to any of his or her voice mail messages, and save or delete them as desired. Control then passes to step 210 where a check is made to determine if the user has elected to return to the main menu. If so, then control returns to step 200. If not, then control passes to step 212, where a check is made as to whether the user is still on the line, by determining if no further commands have been entered by the user, or if disconnect supervision has been detected. If it is determined that the user is still on the line, then control returns to step 208. If the user has disconnected, or has not made any command entries within a preset interval, then control passes from step 212 to a connector labeled "Port Disconnect" at step 124 via step 214.
If, as described above, the user 10 did not touch the digit "1" at step 206, then control passes to step 216, where a determination is made as to whether the user has touched the digit "2." If not, then control passes to a connector labeled "Touch 3" at step 218. If the user did touch the digit "2," then control passes to step 220, where the user is prompted: "Touch 1 for standard screening, 2 for VIP code screening, 3 for voice screening, or 4 for caller number screening." Control then passes to step 222 where the user is provided with the opportunity to select a screening mode and store this selection as the current mode by which the Enhanced Call Waiting System will handle his or her calls. Control then passes to step 224 where a determination is made as to whether the user 10 elects to return to the main menu, and if so, control passes to a connector labeled "Main Menu" at step 200 via step 226. If the user does not elect to return to the main menu at step 224, then control passes to step 228, where a check is made as to whether the user 10 is still on the line, by determining if no further commands have been entered by the user, or if disconnect supervision has been detected. If it is determined that the user is still on the line, then control returns to step 222. If the user has disconnected, or has not made any command entries within a preset interval, then control passes from step 228 to a connector labeled "Port Disconnect" at step 124 via step 230.
At step 300, a connector labeled "Touch 3," control passes to step 302 where a determination is made as to whether the user has touched the digit "3," and if not, control passes to step 318. If the user has touched the digit "3" at step 302, then control passes to step 304 where the user is prompted: "Touch 1 to edit the VIP code screening list, or 2 to edit the caller number screening list." Control then passes to step 306, where a determination is made as to whether the user has entered the digit "1," and if not control passes to step 324. If so, then control passes to step 308 where the user is provided with the opportunity to add or delete VIP codes to his or her personal VIP code list stored in the computer 56. A plurality of VIP codes can be stored in database 55 and a different potential caller may be identified with each VIP code. As such, a different name may be stored and associated with each code, so that when a caller enters a VIP code in the processing of an incoming call, the user can be advised of the name of the person whose call is waiting to be picked up by the user. Thus, at step 308, the user is also provided with the opportunity to record a name to be associated with each VIP code in the list.
Control then passes to step 310 where a determination is made as to whether the user elects to return to the main menu, and if so, control passes to a connector labeled "Main Menu" at step 200 via step 312. If the user does not elect to return to the main menu at step 312, then control passes to step 314, where a check is made as to whether the user is still on the line, by determining if no further commands have been entered by the user, or if disconnect supervision has been detected. If it is determined that the user is still on the line, then control returns to step 308. If the user has disconnected, or has not made any command entries within a preset interval, then control passes from step 314 to a connector labeled "Port Disconnect" at step 124 via step 316.
If, as described above, the user had not touched the digit "3" at step 302, then control passes to step 318, where a check is made as to whether the user is still on the line, by determining if no further commands have been entered by the user, or if disconnect supervision has been detected. If it is determined that the user is still on the line, then control passes to a connector labeled "Main Menu Loop" at step 320. If the user has disconnected, or has not made any command entries within a preset interval, then control passes from step 318 to a connector labeled "Port Disconnect" at step 124 via step 322.
If, as described above, the user had not touched the digit "1" at step 306, then control had passed to step 324 where a determination is made as to whether the user has touched the digit "2", and if not control then passes to step 336. If so, then control passes to step 326 where the user is provided with the opportunity to add or delete entries from his or her personal list of caller phone numbers as stored by the computer 56. At step 326, the user is also provided with an opportunity to record the name of the person associated with each phone number in the list. Control then passes to step 328 where a determination is made as to whether the user elects to return to the main menu, and if so, control passes to a connector labeled "Main Menu" at step 200 via step 320. If the user does not elect to return to the main menu at step 328, then control passes to step 332, where a check is made as to whether the user is still on the line, by determining if no further commands have been entered by the user, or if disconnect supervision has been detected. If it is determined that the user is still on the line, then control returns to step 326. If the user has disconnected, or has not made any command entries within a preset interval, then control passes from step 332 to a connector labeled "Port Disconnect" at step 124 via step 334.
If, as described above, the user had not touched the digit "2" at step 324, then control had passed to step 336 where a determination is made as to whether the user elects to return to the main menu, and if so, control passes to a connector labeled "Main Menu" at step 200 via step 342. If the user does not elect to return to the main menu at step 336, then control passes to step 338, where a check is made as to whether the user is still on the line, by determining if no further commands have been entered by the user, or if disconnect supervision has been detected. If it is determined that the user is still on the line, then control returns to step 304. If the user has disconnected, or has not made any command entries within a preset interval, then control passes from step 338 to a connector labeled "Port Disconnect" at step 124 via step 340.
When control reaches the connector labeled "Anyone Else" at step 400, it has already been determined that a caller other than the user is attempting to reach the user or that the user is calling the system from a telephone which is not recognized as belonging to the user according to the data stored in database 55. Control passes from step 400 to step 402 where a determination is made as to whether anyone else is currently connected to the user via the switch. In other words, the computer 56 determines whether a caller and the user are already connected, and if that call connection is still active in switch 20'. If this is the case, then control passes to step 424 where a determination is made as to whether the user is free to accept another call. If the user already is engaged with a caller and already has a another caller on hold, then the user is not free to accept another call since this embodiment is limited to allowing the user to have only one party on hold at a given time. Also, some practicing the present invention may wish to provide a "Do Not Interrupt" function, in which case a user controlled bit would be set and tested at step 426 and the "No" branch would then be taken if either the user already had a caller on hold or if the "Do Not Interrupt" bit had been set. If the user is free to accept another caller, then control passes to a connector labeled "New Caller" at step 404. If the user is not free to accept another caller, then control passes to step 426 which advises the caller that "I'm sorry, the line is busy. Please hold the line and leave a message." and control passes via label 428 to the connector labeled "Take Message" at step 800.
If no other callers are connected to the user via the switch as tested at step 402, then control passes to step 406 where computer 56 instructs the switch to seize an available outbound channel and to dial out to the user's phone, and then connect the new caller to the user. Control then passes to step 410, where a determination is made as to whether busy or no answer is detected on the user's line, and if so control passes to a connector labeled "Take Message" at step 412. Ordinarily, you would not expect a busy response, since switch 20' should be able to report to computer 56 whether or not it has an active call with user 10. However, since the user 10 has an unpublished telephone address associated with his or her present location, it is possible, with today's technology, that a telephone call may have been made directly to the unpublished telephone address via the PSTN 30 bypassing the Enhanced Call Waiting System. In some end office switches such as the DMS-100, relationships between the lines serving the Enhanced Call Waiting System and the user's telephone such as secretarial forwarding can be enabled so that calls dialed to the unpublished number are not connected. Therefore, in the future, the telephone address will likely be a telephone number which is not directly accessible by a caller 11, but only directly accessible via switch 20', thereby avoiding that possibility.
If busy or no answer is not detected at step 410, then control passes to step 414, where a determination is made as to whether a PIN code has been entered, signifying that this is the user 10 who has called in to access his or her messages and/or to program the system from a phone which does not have CPID service or which is not recognized in database 55. For example, the user 10 may be accessing the system from a pay phone and the CPID of the pay phone would not be recognized in database 55. If a valid PIN code is detected, then control passes to a connector labeled "Main Menu" at step 416. If a valid PIN code is not detected, at step 414, then control passes to step 418 where a determination is made as to whether the call has been answered, and if not control returns to step 410. If the call has been answered, then control passes to step 420, where the computer 56 instructs switch 20' to leave this call connected unless otherwise instructed, and to disconnect this call automatically if disconnect supervision is detected on the call. Control then returns to the start of the Host Computer Call Control Process at step 100 via step 422.
When control reaches the connector labeled "New Caller" at step 500, it has already been determined that the switch has a new incoming call for a user, and that the user is already connected on an existing call to another party via embedded switch 20'. From step 500, control passes to step 502 where computer 56 instructs switch 20' to connect the new caller to an available port on the telephone interface 58. Control then passes to step 504 where a determination is made as to whether the user 10 selected caller number screening as the mode of operation, and if not control passes to step 512. If the user did select caller number screening, then control passes from step 504 to step 506 where a determination is made as to whether the CPID of the caller matches a valid caller number previously stored in the user's caller number list in database 55, and if no match is found control passes to a connector labeled "Take Message" at step 508. If a match is found, then control passes to a connector labeled "Attempt Connect" at step 510.
At step 512, database 55 is checked to determine whether the user selected VIP code screening as the mode of operation, and, if not, control passes to step 522. If the user did select VIP code screening, a parameter which is stored in database 55, then control passes from step 512 to step 514 where the caller is prompted: "I'm sorry, the line is busy. If you know your party's private code, touch it in now. Otherwise, hold the line and leave a message." Control then passes to step 516 where a determination is made as to whether the caller has entered a valid VIP code which matches a code previously stored in the user's VIP code list in database 55, and if no match is found, then control passes to a connector labeled "Take Message" at step 518. If a match is found, then control passes to a connector labeled "Attempt Connect" at step 520.
At step 522, a determination is made as to whether the user selected voice screening as the mode of operation, and if not control passes to step 530. If the user did select voice screening, then control passes from step 522 to step 524 where the caller is prompted: "I'm sorry, the line is busy. Please state your name and business at the tone, and we will attempt to connect your call." Control then passes to step 526 where the caller is given the opportunity to record his or her name and the reason for the call. Control then passes to a connector labeled "Attempt Connect" at step 528.
At step 530, it is assumed that the user must have selected standard screening mode, and therefore the user is prompted: "I'm sorry, the line is busy. Touch 0 if this call is urgent and we will interrupt your party and attempt to put your call through. Touch 1 if you would like to hold until your party is free, at which time we will connect you to your party. Or hold the line and leave a message which we will promptly attempt to deliver to your party." Control then passes to step 532, where a determination is made as to whether the caller has entered the digit "0," and if not control passes to step 538 where a determination is made as to whether the caller has entered the digit "1". If neither a digit "0" nor a digit "1" is entered within a reasonable period of time then control passes to a connector labeled "Take Message" at step 534. If the caller did touch "0" then control passes to a connector labeled "Attempt Connect" at step 536. If the caller did touch "1" then control passes to step 540 where the caller is placed on hold and music is played for them. Control passes to step 542 where a determination is made as to whether the caller is still connected on another call. Since all calls, both outgoing by the user and incoming to the user, are preferably conveyed via embedded switch 20', this information is readily available to the Enhanced Call Waiting System 40. When the user hangs up, then control passes to the connector labeled "Outbound" at 424 via step 548, provided that the new caller is still waiting, as that is detected at step 544. If they are still waiting, the process loops at step 542 and 544, waiting for the user to hang up. If the new caller hangs up, then the associated port disconnects at steps 124 and 126 via step 546.
A nice modification of the foregoing would be to provide a test at step 510 (instead of transferring directly to "Attempt Connect") to determine which of several categories that the new caller's CLID or CPID falls into. For example, the user may have set up several categories of callers and the manner in which the Enhanced Call Waiting System will handle the callers'calls will depend on the category in which they fall (as defined by their CLIDs or CPIDs). After the test is made, then the new call could be transferred to steps 514, 524, 530 or directly to "Attempt Connect" at step 600 as a function of the category into which the new caller falls. Of course, some callers are directly transferred to "Take Message" via step 508 as a function of their CLID as initially tested at step 506.
When control reaches the connector labeled "Attempt Connect" at step 600, it has been determined that switch 20' has a new incoming call for the user, and that the user is already connected on an existing call to another caller via the switch. It has also already been determined that the new caller has passed a screening criteria as established by the particular mode of operation pre-selected by the user. Control then passes from step 600 to step 602, where telephone interface 58 is instructed to play hold music to the new caller. Control then passes to step 603 where a test is made to determine whether the user is still engaged in a telephone connection with the existing caller. In the event the user terminated the original call by the time step 603 is reached, then the processing branches to connect the new caller directly to the user via the connector labeled "Outbound" to step 406 (FIG. 4D) via step 424. If the user is still engaged, the processing proceeds to step 604 where the computer 56 instructs switch 20' to disconnect the original caller to user connection in the switch. Control then passes to step 606 where computer 56 instructs the switch to park the original caller and then control passes to step 608 where computer 56 instructs the switch to connect the user to an available port on the telephone interface 58. Control then passes to step 610 where a determination is made as to whether the mode of operation is caller number screening or VIP code screening, and if not, then control passes to step 618. If the mode was caller number or VIP code screening, then control passes to step 612 where the computer 56 retrieves the recorded name associated with this number of code. Control then passes to step 614 where the user is prompted: "BEEP . . . We have a call holding for you from (name)." Control then passes to a connector labeled "Reconnect" at step 616.
At step 618 a determination is made as to whether voice screening is the selected mode, and if not control passes to step 626. If voice screening is the selected mode, then control passes from step 618 to step 620 where the computer 56 retrieves the recorded name and business as just recorded by the caller. Control then passes to step 622 where the user is prompted: "BEEP . . . We have a call holding for you from (name and business)." Control then passes to a connector labeled "Reconnect" at step 624.
At step 626, since the mode has been determined not to be voice screen, VIP code screening, or caller number screening, it is assumed that the mode is standard screening, and the user is simply prompted: "BEEP . . . we have a call holding for you." Control then passes to a connector labeled "Reconnect" at step 628, and then to step 630 where the computer 56 instructs the switch to reconnect the original caller to user connection. Control then passes to a connector labeled "Wait for User" at step 632.
In steps 604-630 above, the another-party-to-user connection was interrupted temporarily in order to allow the user to be informed that a new caller was holding. Note that, using the embedded switch, this can be accomplished either by completely interrupting the existing call by parking the existing caller (the `another party`) as described above, or alternatively by only partially interrupting the call by creating a conference connection so that the user hears both the prompt regarding the new caller, and the continuing conversation from the existing caller. In this option, the conference would be constructed so as to allow the existing caller to continue to hear audio from the user, but not to hear the prompt concerning the new caller. In this description, the original connection is made between the user and another party. Sometimes the `another party` is referred to as the `existing caller,` depending on the context. Those skilled in the art will appreciate that the present system handles the new caller's call independently of how the original another-party-to-user connection was formed (i.e., either the user or the another party could have initiated the another-party-to-user connection).
When control reaches the connector labeled "Wait for User" at step 700, it has already been determined that the switch has a new incoming call for a user, and that the user is already connected on an existing call to another caller via the switch. It has also already been determined that the new caller has passed a screening criteria as established by the mode of operation pre-selected by the user. Further the system has notified the user that the new caller is holding. From step 700, control passes to step 702 where a loop is entered consisting of steps 702, 706, and 710. If it is determined at step 702 that the new caller has elected not to wait, and instead chooses simply to leave a message, then control passes to a connector labeled "Take Message" at step 704. This can be done, for example, by having the caller enter a digit if they wish to leave a message instead of waiting for the user. Recall that, as provided at step 602, music is being played to the incoming caller. This music can be interrupted with a message such as "Touch X to leave a message." Thus step 702 may detect the presence of a DTMF sound corresponding to the depression of the particular key (X) mentioned in the message.
If it is determined at step 706 that the new caller has hung up instead of waiting to be connected or leaving a message, then control passes to a connector labeled "Port Disconnect" at step 124 via step 708. If it is determined at step 710 that the user has touched the digits "##" to connect to the waiting party, control passes on to step 714. Note that switch 20' preferably has the ability to detect DTMF tones on these lines and that the preferred switch has such capabilities. Otherwise some other signal method must be selected, such as a flash hook The loop of steps 702, 706, and 710 persists until one of these conditions is met. The loop preferably includes a test, which is made at step 711, to determine whether the user has terminated the other party with the original caller. If so, the processing immediately branches via the connector labeled "Outbound" to step 406.
A connector labeled "Park" is encountered at step 712, and control passes to step 714 where computer 56 instructs switch 20' to disconnect the then existing caller and user connection, place information regarding the existing caller in a Held Caller Data Stack and place the existing caller on hold. Control then passes to step 716 where the telephone interface is instructed to play hold music for the caller who was just placed on hold. Control passes via connector 718 labeled "Connect Caller" to step 720 where a determination is made as to whether the user touched "##" to be connected to a new caller or to be connected to the oldest caller in the Held Caller Data Stack. The first time through this loop the user is trying to connect to a new caller and therefore the "yes" branch is taken to step 722 where switch 20' is instructed to connect the user to the new caller. As will be seen, the program loops, allowing the user to alternate between at least two callers, i.e., the present caller with whom the user is speaking and the held caller, who is hearing music. Moreover, more than one caller can be placed on hold, allowing the user to rotate through a plurality of callers. The information regarding the held callers is placed in the Held Caller Data Stack and, as will be seen, when a caller is retrieved from the stack, it is preferably the oldest caller first.
The first time through the loop the original caller is put on hold at step 716 and the new caller becomes the present caller. Control passes from step 722 to step 740 where a determination is made as to whether the user touched the digits "##" again, and, if so, control passes back to the connector labeled "Park" at step 712 via step 762, assuming that a held caller is still available (i.e., they have not hung up their phone(s)) as tested at step 742. Step 742 would typically poll the various held connections to determine whether the parties are still holding and, if not, update the Held Caller Data Stack to reflect any disconnections and tear down any switch connections which might be needed. If the user fails to touch "##" again or if they do and a held caller is no longer available, then control passes to step 744 where a determination is made as to whether a disconnect caused by the present caller hanging up is detected in the user-to-present-caller connection. If the present caller has not disconnected, then control passes to step 746 where a determination is made as to whether the user disconnected and, if so, then all held callers are advised of this fact by a prompt at step 748 advising them "(Name--from database 55) has disconnected. Thank you for calling" and then the held callers are disconnected at step 750. Step 750 also tears down the associated switch connections and empties the Held Caller Data Stack for the user. Control passes to a connector labeled "Switch Disconnect" at step 124 via step 760. If a disconnect is not detected at step 746, then control returns to step 720 so the system loops at steps 740, 744 and 746 looking for either a command (the ## keys) from the user or for the present caller to hang up while the user has an open voice channel with the present caller or for the user to hang up.
If the present caller disconnects (i.e., hangs up), that is detected at step 744 and then the user is reconnected via step 752 with the longest held caller (assuming that more than one caller has been placed on hold--if only one caller has been placed on hold then the user is connected to that held caller as that caller is the longest held caller by definition). A test is made at step 752 to determine whether there are any remaining held callers in the Held Caller Data Stack. If the stack is empty, the user is disconnected via step 760. Assuming that one or more held callers are still available, the user is advised by a courtesy message at step 754 "You have N remaining parties on hold. Touch ## to connect to them". "N" in the prompt indicates the number of parties still on hold. If the user touches "##", that is detected at step 756, and control passes to step 718 via step 764. If the user hangs up, that is detected at step 758, and control passes back to step 748. The program loops at steps 756 and 758 looking for either a "##" or a disconnect from the user. If the user touches "##", then control passes to step 718 and then on to step 720 where the aforedescribed test is encountered. This time the "No" branch is taken since the user is being reconnected with a held caller. If a new caller calls while the user has a party on hold, for example, then after the user touches "##" the "Yes" branch is taken at step 720. If no new caller has called when the user touches "##" then the "No" branch is taken instead. When the "No" branch at step 720 is taken, first the oldest caller is retrieved from the Held Caller Data Stack at step 724 and control passes to step 726 where a determination is made as to whether the system has stored information regarding the identity of the retrieved party. For example, if caller number screening, VIP screening or voice screening were used in screening the caller, then the system has at least that information available. If the system can collect the party's ANI or CLID or preferably the party's CPID, then that information is available. In any event, if information regarding the identity of the retrieved caller is available, then control passes to step 728 where that information is retrieved and then on to step 730 where the user is prompted "You are being connected to (name)." This prompt would preferably be changed to suit the type of identification information available. Control then passes to step 734 where switch 20' is instructed to connect the user to the retrieved caller. If no identification information is available, then the user may be simply prompted "Connecting" at step 732 before control passes to step 734. After step 734 control passes to step 740, which has already been described.
When control reaches the connector labeled "Take Message" at step 800, control immediately passes to step 802 where the caller is prompted: "Please leave your message at the tone." Control then passes to step 804 where the caller is provided with an opportunity to record and store a message to the user. Control then returns to the start of the Host Computer Call Control Process at step 100 via step 806.
II. Host Computer User Notification Process
Step 900 represents the start of the Host Computer User Notification Process, which is a software program which also executes on computer 56. This process is intended to notify the user whenever a caller has unsuccessfully attempted to reach the user, whether or not a voice mail message was left.
Control passes from step 900 to step 902, where a determination is made as to whether the user 10 has indicated that he or she desires to be notified of unsuccessful call attempt, and if not control returns to step 902. If the user does desire to be notified, then control passes to step 904 where a determination is made as to whether any calls are currently connected via the switch to the user, and if so, the notification is held off, by returning control to step 902. If no callers are currently connected to the user, then control passes to step 906 where computer 56 instructs the switch to seize an outbound trunk and dial out to the user's phone. Control then passes to step 908 where a determination is made as to whether busy or no answer has been detected, and if so control passes to a connector labeled "Disconnect" at step 910, then to step 912 where computer 56 instructs the switch to disconnect this call, and then back to the loop at step 902. If at step 908, busy or no answer was not detected, then control passes to step 914, where a determination is made if the call has been answered, and if not control returns to step 914. If the call is answered, then control passes to step 916 where the computer 56 instructs the switch to connect an available port on the phone interface to this call. Control then passes to step 918 where a determination is made if the user is required to enter a PIN code, and if not control passes to step 920. If a PIN code is required, then control passes to step 932 where the user is prompted: "Please enter your code." Control then passes to step 934 where a determination is made if a valid PIN code is entered, and if so control passes to step 920. If not, control passes to step 936 where a determination is made if a maximum time limit or maximum number of PIN code attempts has been made, and if so control passes to a connector labeled "Disconnect" at step 910 via step 938. If the maximum conditions have not been met at step 936, then control returns to step 934.
At step 920 a determination is made if any messages are available for the user, and if so control passes to the connector labeled "Main Menu" at step 200 via step 922. If not, control passes to step 924 where a determination is made as to whether a caller has recently unsuccessfully attempted to reach the user, and did not leave a message. If not, control passes to a connector labeled "Disconnect" at step 926. If so, the user is prompted: "You had a call (`from NAME` if available) while you were on the line, however they did not leave a message." Control then passes to a connector labeled "Main Menu" at step 200 via step 930.
Other Embodiments
With the implementation of many new intelligent network capabilities such as Signaling System 7 (SS7), Integrated Services Digital Network (ISDN), and Advanced Intelligent Network (AIN) there may emerge a multiplicity of ways in which to implement the Enhanced Call Waiting System with particular network switching, database, routing, and signaling capabilities. The previous system descriptions of implementations are only intended to show two possible embodiments of the invention. The invention is not restricted to these embodiments or implementations but may end up being realized in a variety of forms especially as these new capabilities become available in the telecommunications network. In fact, there may be new network capabilities that have not yet been disclosed which would facilitate the implementation of the Enhanced Call Waiting System disclosed herein.
Having described the invention in connection with certain embodiments thereof, modification will now suggest itself to those skilled in the art. For example, the voice prompts set forth in the specification are only exemplary. They will very likely be changed by those desiring to practice the instant invention. In the above description of the invention, the connection of callers to the user was accomplished with a "switch". The connection of callers and the user by means of a "switch" was described for illustrative purposes only and does not imply that it is the exclusive method of connection. The switch is not limited to a network switch, but also includes other equivalent mechanisms to connect parties together. Such mechanisms include, but are not limited to, time slot interchanges, conference bridges, circuit selectors, digital cross connect systems, bridges, and routes. For this and other reasons, the invention is not to be limited to the embodiments described herein, except as required in the appended claims.
Claims
  • 1. A method of providing telecommunication services to a user when the user is engaged in a first telephone call with a first party over a voice channel while a second party attempts to place a second telephone call to the user, the method comprising the steps of:
  • (a) after the second party places the second telephone call, receiving information relating to the second party; and
  • (b) transmitting an audible signal indicative of the received information to the user via said voice channel while the user remains engaged with the first telephone call so that the user receives at least the audible signal indicative of the received information while the first party continues to receive signals sent to the first party by the user, but without transmitting the audible signal indicative of the received information to the first party over said voice channel.
  • 2. The method of claim 1 wherein the user continues to receive audio sent to the user by the first party while also receiving the audible signal indicative of the received information.
  • 3. The method of claim 2 further including:
  • (c) detecting whether or not the user inputs a command to connect to the second telephone call, and in response to the detection of said command, coupling the second telephone call from the second party with the user.
  • 4. The method of claim 3 further wherein when a third party attempts to place a third telephone call to the user when said user is actively engaged with a previous party including either said first party or said second party, then:
  • (a) after the third party places the third telephone call, receiving information relating to the third party; and
  • (b) transmitting an audible signal indicative of the received information to the user via said voice channel while the user remains engaged with the previous party so that the user receives at least the audible signal indicative of the received information while the previous party continues to receive signals sent to the previous party by the user, but without transmitting the audible signal indicative of the received information to the previous party over said voice channel,
  • (c) detecting whether or not the user inputs a command to connect to the third telephone call, and in response to the detection of said command, coupling the third telephone call from the third party with the user.
  • 5. The method of claim 1 wherein the second party is prompted to provide information which then is transmitted to the user as said received information.
  • 6. The method of claim 4 wherein the information is an audible signal provided by the second party.
  • 7. The method of claim 1 wherein step (b) is selectively performed based upon previously stored selection criteria.
  • 8. An apparatus for providing communication services to a user, said apparatus comprising:
  • (a) a switch for connecting an audio path between the user and a first party to establish a first telephone call; and
  • (b) a programmed call processor coupled to said switch and, responsive to a second party attempting to place a second telephone call to the user while the user is connected in said first telephone call, said call processor being programmed to:
  • (i) receive information relating to the second party;
  • (ii) transmit an audio signal indicative of the received information relating to the second party to the user via the audio path of the first telephone call, without directly transmitting the audio signal indicative of the received information relating to the second party to the first party and without muting the first party from the audio path to the user.
  • 9. The apparatus of claim 7 wherein said call processor is programmed to allow the user to continue to receive audio emissions of the first party while also receiving the audio signal indicative of the received information relating to the second party.
  • 10. The apparatus of claim 8 wherein said call processor is further programmed to:
  • (iii) detect whether or not the user inputs a command to connect to the second party; and
  • (iv) instruct said switch to place the second party in telephone communication with the user upon receiving said command to connect to the second party from the user.
  • 11. The apparatus of claim 9 wherein said call processor is further programmed to instruct said switch to couple said second telephone call to a voice mail facility if said command to connect to the second party is not received within a period of time.
  • 12. The apparatus of claim 7 wherein the call processor is programmed to prompt the second party to identify himself or herself and to transmit any response provided by the second party to the user as said received identification information.
  • 13. The apparatus of claim 11 wherein the response provided by the second party is an audible response and wherein said call processor is programmed to transmit the audible response to the user as said audio signal indicative of the received information relating to the second party.
  • 14. The apparatus of claim 7 wherein said caller processor is programmed to advise the user that there is a call waiting only if the received information relating to the second party meets certain previously stored selection criteria.
  • 15. The apparatus of claim 7 wherein said call processor is further programmed to receive the information relating to the second party in a first format and transmit it in a different format.
CROSS REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. patent application Ser. No. 08/210,347, filed Mar. 18, 1994, now U.S. Pat. No. 5,825,867, which is hereby incorporated herein by reference.

US Referenced Citations (247)
Number Name Date Kind
RE32365 Sebestyen Mar 1987
2272947 Nilsson Dec 1942
2957047 Wennemer Oct 1960
2966554 Dubois Dec 1960
3178516 Bonanno Apr 1965
3182134 Hochgraf May 1965
3506791 Halaby Apr 1970
3614328 McNaughton et al. Oct 1971
3627955 Stone Dec 1971
3676603 Budrys et al. Jul 1972
3704346 Smith et al. Nov 1972
3739329 Lester Jun 1973
3784721 Kilby Jan 1974
3800283 Gropper Mar 1974
3809824 Dahlquist et al. May 1974
3854013 Altenburger et al. Dec 1974
3898390 Wells et al. Aug 1975
3925622 Robinson Dec 1975
3959600 Sousa May 1976
3963873 Pommerening et al. Jun 1976
3973200 Akerberg Aug 1976
3997731 Wilmot et al. Dec 1976
4028498 Mehaffey et al. Jun 1977
4028500 McClure et al. Jun 1977
4054756 Comella et al. Oct 1977
4057757 Darden, Jr. Nov 1977
4065642 McClure Dec 1977
4069397 Hashimoto Jan 1978
4071699 Jovic et al. Jan 1978
4072824 Phillips Feb 1978
4086438 Kahn et al. Apr 1978
4107473 Pierce Aug 1978
4144409 Utano et al. Mar 1979
4150255 Theis et al. Apr 1979
4154988 Fechalos et al. May 1979
4162377 Mearns Jul 1979
4187498 Creekmore Feb 1980
4188507 Meri et al. Feb 1980
4191860 Weber Mar 1980
4209787 Freeny, Jr. Jun 1980
4242539 Hashimoto Dec 1980
4254329 Gokey et al. Mar 1981
4266098 Novak May 1981
4266102 Stanley et al. May 1981
4277649 Sheinbein Jul 1981
4278844 Jones Jul 1981
4296282 O'Neil et al. Oct 1981
4298775 Buck et al. Nov 1981
4313025 Grube, Jr. Jan 1982
4313035 Jordan et al. Jan 1982
4326123 Haosterman Apr 1982
4332985 Samuel Jun 1982
4336524 Levine Jun 1982
4342882 Gravenhorst et al. Aug 1982
4345113 Shelley Aug 1982
4352955 Kai et al. Oct 1982
4361851 Asip et al. Nov 1982
4369339 Castro et al. Jan 1983
4371752 Matthews et al. Feb 1983
4393278 Miyoshi Jul 1983
4413158 Danford Nov 1983
4420656 Freeman Dec 1983
4424418 Moore et al. Jan 1984
4439636 Newkirk et al. Mar 1984
4442321 Stehman Apr 1984
4447676 Harris et al. May 1984
4459434 Benning et al. Jul 1984
4475009 Rais et al. Oct 1984
4481384 Matthews Nov 1984
4488005 Frantz Dec 1984
4503288 Kessler Mar 1985
4538031 Benning et al. Aug 1985
4567323 Lottes et al. Jan 1986
4577062 Hilleary Mar 1986
4577067 Levy et al. Mar 1986
4578540 Borg et al. Mar 1986
4580012 Matthews et al. Apr 1986
4580016 Williamson Apr 1986
4581486 Matthews et al. Apr 1986
4584434 Hashimoto Apr 1986
4585906 Matthes et al. Apr 1986
4587379 Masuda May 1986
4591664 Freeman May 1986
4595983 Gehalo et al. Jun 1986
4598179 Clark et al. Jul 1986
4601064 Shipley Jul 1986
4602129 Matthews et al. Jul 1986
4604499 Hughes Aug 1986
4607144 Carmon et al. Aug 1986
4608458 Hashimoto Aug 1986
4608460 Carter et al. Aug 1986
4611094 Asmuth et al. Sep 1986
4611096 Asmuth et al. Sep 1986
4611098 Giorgio et al. Sep 1986
4613730 Fechalos et al. Sep 1986
4618860 Mori Oct 1986
4625081 Lotito et al. Nov 1986
4625276 Benton et al. Nov 1986
4626630 Waldman Dec 1986
4640991 Metthews et al. Feb 1987
4642425 Guinn, Jr. et al. Feb 1987
4644351 Zabarsky et al. Feb 1987
4645879 Simmons Feb 1987
4649385 Aires et al. Mar 1987
4652700 Matthews et al. Mar 1987
4658416 Tanaka Apr 1987
4661972 Kai Apr 1987
4670628 Boratagis et al. Jun 1987
4672660 Curtin Jun 1987
4674115 Kaleita et al. Jun 1987
4677654 Lagin et al. Jun 1987
4677657 Nagata et al. Jun 1987
4677663 Szlam Jun 1987
4680785 Akiyama et al. Jul 1987
4696028 Morganstein et al. Sep 1987
4707592 Ware Nov 1987
4713808 Gaskill et al. Dec 1987
4736405 Akiyama Apr 1988
4737976 Borth et al. Apr 1988
4740788 Konneker Apr 1988
4747122 Bhagat et al. May 1988
4747124 Ladd May 1988
4748655 Thrower et al. May 1988
4752951 Konneker Jun 1988
4757267 Riskin Jul 1988
4757525 Matthews et al. Jul 1988
4761807 Matthews et al. Aug 1988
4775999 Williams Oct 1988
4783796 Ladd Nov 1988
4788718 McNabb et al. Nov 1988
4802209 Hasegawa Jan 1989
4809321 Morganstein et al. Feb 1989
4814763 Nelson et al. Mar 1989
4821308 Hashimoto Apr 1989
4823123 Siwiak Apr 1989
4825193 Siwiak et al. Apr 1989
4829554 Barnes et al. May 1989
4845739 Katz Jul 1989
4845743 Lutz Jul 1989
4847890 Solomon et al. Jul 1989
4860347 Costello Aug 1989
4868560 Oliwa et al. Sep 1989
4875038 Siwiak et al. Oct 1989
4878239 Solomon et al. Oct 1989
4878240 Lin et al. Oct 1989
4879743 Burke et al. Nov 1989
4881271 Yamauchi et al. Nov 1989
4882579 Siwiak Nov 1989
4890317 Hird et al. Dec 1989
4893329 O'Brien Jan 1990
4893335 Fuller Jan 1990
4896346 Belfield et al. Jan 1990
4899358 Blakley Feb 1990
4899373 Lee et al. Feb 1990
4918725 Takahashi Apr 1990
4920562 Hird et al. Apr 1990
4922490 Blakley May 1990
4926462 Ladd et al. May 1990
4932042 Baral et al. Jun 1990
4933965 Hird et al. Jun 1990
4935956 Hellwarth et al. Jun 1990
4935958 Morganstein et al. Jun 1990
4940963 Gutman et al. Jul 1990
4941203 Patsiokas et al. Jul 1990
4942598 Davis Jul 1990
4947421 Toy et al. Aug 1990
4953198 Daly et al. Aug 1990
4955047 Morganstein et al. Sep 1990
4961216 Baehr et al. Oct 1990
4989230 Gillig et al. Jan 1991
5007076 Blakley Apr 1991
5020095 Morganstein et al. May 1991
5023868 Davidson et al. Jun 1991
5027384 Morganstein Jun 1991
5029196 Morganstein Jul 1991
5033079 Catron et al. Jul 1991
5036535 Gechter et al. Jul 1991
5042064 Chung et al. Aug 1991
5058152 Solomon et al. Oct 1991
5060255 Brown Oct 1991
5063588 Patsiokas et al. Nov 1991
5077789 Clark, Jr. et al. Dec 1991
5090051 Muppidi et al. Feb 1992
5109405 Morganstein Apr 1992
5128981 Tsukamoto et al. Jul 1992
5151929 Wolf Sep 1992
5161181 Zwick Nov 1992
5164985 Nysen et al. Nov 1992
5175758 Levanto et al. Dec 1992
5177780 Kasper et al. Jan 1993
5181238 Medamana et al. Jan 1993
5193110 Jones et al. Mar 1993
5199062 Von Meister et al. Mar 1993
5206900 Callele Apr 1993
5206901 Harlow et al. Apr 1993
5222120 McLeod et al. Jun 1993
5222125 Creswell et al. Jun 1993
5224156 Fuller et al. Jun 1993
5235633 Dennison et al. Aug 1993
5235634 Oliver Aug 1993
5260986 Pershan Nov 1993
5263084 Chaput et al. Nov 1993
5276678 Hendrickson et al. Jan 1994
5276731 Arbel et al. Jan 1994
5289532 Isjikawa et al. Feb 1994
5307399 Dai et al. Apr 1994
5307400 Sawyer et al. Apr 1994
5309512 Blackmon et al. May 1994
5311570 Grimes et al. May 1994
5315636 Patel May 1994
5315637 Breeden et al. May 1994
5327480 Breeden Jul 1994
5327486 Wolff et al. Jul 1994
5327489 Anderson et al. Jul 1994
5333182 Aoki Jul 1994
5349636 Irribarren Sep 1994
5353331 Emery et al. Oct 1994
5375161 Fuller et al. Dec 1994
5384830 Ide Jan 1995
5384831 Creswell et al. Jan 1995
5388149 Lynn et al. Feb 1995
5394463 Fischell et al. Feb 1995
5408519 Pierce et al. Apr 1995
5410541 Hotto Apr 1995
5450479 Alesio et al. Sep 1995
5452099 Von Meister Sep 1995
5469496 Emery et al. Nov 1995
5471519 Howe et al. Nov 1995
5515426 Yacenda et al. May 1996
5525991 Nagura et al. Jun 1996
5557658 Gregorek et al. Sep 1996
5579535 Orlen et al. Nov 1996
5588037 Fuller et al. Dec 1996
5598458 Bales et al. Jan 1997
5608782 Carlsen et al. Mar 1997
5610970 Fuller et al. Mar 1997
5661790 Hsu Aug 1997
5673299 Fuller et al. Sep 1997
5694453 Fuller et al. Dec 1997
5703937 Saltzman Dec 1997
5751760 Fuller et al. May 1998
5752191 Fuller et al. May 1998
5825867 Epler et al. Oct 1998
5838779 Fuller et al. Nov 1998
5841837 Fuller et al. Nov 1998
5842112 Fuller et al. Nov 1998
5924016 Fuller et al. Jul 1999
Foreign Referenced Citations (6)
Number Date Country
0 152 908 Aug 1985 EPX
0 216 515 Sep 1985 EPX
0 216 381 Apr 1987 EPX
0 046 623 Feb 1989 EPX
0 330 441 Aug 1989 EPX
0 454 647 A2 Oct 1991 EPX
Divisions (1)
Number Date Country
Parent 210347 Mar 1994