CA2282633C - Call-forwarding system using adaptive model of user behavior - Google Patents
Call-forwarding system using adaptive model of user behavior Download PDFInfo
- Publication number
- CA2282633C CA2282633C CA002282633A CA2282633A CA2282633C CA 2282633 C CA2282633 C CA 2282633C CA 002282633 A CA002282633 A CA 002282633A CA 2282633 A CA2282633 A CA 2282633A CA 2282633 C CA2282633 C CA 2282633C
- Authority
- CA
- Canada
- Prior art keywords
- subscriber
- call
- behavior
- telephone numbers
- telephone
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/26—Devices for calling a subscriber
- H04M1/27—Devices whereby a plurality of signals may be stored simultaneously
- H04M1/271—Devices whereby a plurality of signals may be stored simultaneously controlled by voice recognition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/42204—Arrangements at the exchange for service or number selection by voice
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/42229—Personal communication services, i.e. services related to one subscriber independent of his terminal and/or location
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/46—Arrangements for calling a number of substations in a predetermined sequence until an answer is obtained
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/487—Arrangements for providing information services, e.g. recorded voice services or time announcements
- H04M3/493—Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
- H04M3/4931—Directory assistance systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/22—Arrangements for supervision, monitoring or testing
- H04M3/2218—Call detail recording
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/54—Arrangements for diverting calls for one subscriber to another predetermined subscriber
Abstract
Subscribers to a personal telephone number service can receive calls placed to telephone numbers associated with an individual rather than a physical location or telephone line. A subscriber predefines a set of telephone numbers for telephones at locations frequented by the subscriber. When a call to a subscriber's personal telephone number is received, a method forwarding a telephone call allows to predict the likelihood of the subscriber being at locations, corresponding to stored telephone numbers by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior.
Description
Description CALL-FORWARDING SYSTEM USING
ADAPTIVE MODEL OF USER BEHAVIOR
Related Applications This is a continuation-in-part application under 37 C.F.R. ~ 1.60 of U.S.
application serial no. 081726,604, filed October 7, 1996, entitled "VOICE-DIALING
SYSTEM USING ADAPTIVE MODEL OF CALLING BEHAVIOR."
Technical Field This invention relates generally to systems for telephonic communications and, more particularly. to a method and apparatus for determining an optimum sequence of telephone numbers to forward calls that have been made to a personal telephone number.
The invention further relates to systems based on artificial intelligence techniques, particularly those using knowledge processing. and especially to adaptive or trainable systems that create sets of rules and use parallel distributed processing components.
Background Art Telecommunication service companies have begun to experiment with systems that employ "personal telephone numbers." Personal telephone numbers are assigned to individuals rather than to specific physical telephone instruments. When a call is made to an individual's personal telephone number, the call is forwarded to a telephone instrument at one of a number of locations depending upon the whereabouts of the individual at a particular time. The primary difficulty in effectively implementing personal telephone numbers involves accurately determining to which physical telephone instrument to forward calls.
Several approaches have been suggested for addressing this problem. These approaches can be categorized into the "fmd me" and "follow me" methodologies.
Systems employing the "find me" approach typically forward calls to a personal telephone number to telephone instruments according to a preset sequence and until the subscriber is located. The "follow me" systems forward calls to a personal telephone number to telephone instruments according to recent activity of the subscriber.
ADAPTIVE MODEL OF USER BEHAVIOR
Related Applications This is a continuation-in-part application under 37 C.F.R. ~ 1.60 of U.S.
application serial no. 081726,604, filed October 7, 1996, entitled "VOICE-DIALING
SYSTEM USING ADAPTIVE MODEL OF CALLING BEHAVIOR."
Technical Field This invention relates generally to systems for telephonic communications and, more particularly. to a method and apparatus for determining an optimum sequence of telephone numbers to forward calls that have been made to a personal telephone number.
The invention further relates to systems based on artificial intelligence techniques, particularly those using knowledge processing. and especially to adaptive or trainable systems that create sets of rules and use parallel distributed processing components.
Background Art Telecommunication service companies have begun to experiment with systems that employ "personal telephone numbers." Personal telephone numbers are assigned to individuals rather than to specific physical telephone instruments. When a call is made to an individual's personal telephone number, the call is forwarded to a telephone instrument at one of a number of locations depending upon the whereabouts of the individual at a particular time. The primary difficulty in effectively implementing personal telephone numbers involves accurately determining to which physical telephone instrument to forward calls.
Several approaches have been suggested for addressing this problem. These approaches can be categorized into the "fmd me" and "follow me" methodologies.
Systems employing the "find me" approach typically forward calls to a personal telephone number to telephone instruments according to a preset sequence and until the subscriber is located. The "follow me" systems forward calls to a personal telephone number to telephone instruments according to recent activity of the subscriber.
For example, Jordan et al. (U. S. Pat. No. 4,313,035) proposes a system for keeping track of the location of the individual and routing calls to the telephone where the individual can be found at a particular time, or indicating to the caller that the individual is in transit between locations. One significant problem with this system is that it requires the individual to make a call to update a system database whenever he changes location.
Bissell et al. suggests another solution in U. S. Pat. No. 5,243,645. This patent discloses a system that forwards calls made to a personal telephone number (or to an ordinary number) based on information obtained when an individual subscriber engages in an activity, such as credit card calls, credit card transactions. or automated teller transactions, that indicates his location. When such an activity is performed, the location of the individual, potentially including the telephone number, is recorded in a database that tracks the location of the subscriber. Calls can then be forwarded to the specific telephone number associated with the last known location of the subscriber, or to the telephone number in the subscriber's defined list of calls that is nearest to the last known location as indicated by the area code, cellular region, paging area, etc.
One problem with this solution is that it provides a forwarding location for calls to a personal telephone number that may be available for only a limited time. The new number is valid only as long as the subscriber stays at the location where he performed that activity.
There are also many difficulties in building such a system, including problems of integrating and coordinating databases and communications systems built for different purposes. For example, systems managing credit card transactions must notify the call-forwarding system of a subscriber's whereabouts when the subscriber engages in a transaction using his credit card. This requires the credit card system to store information of call-forwarding subscribers and notify the call-forwarding service when the credit card transaction takes place.
Another way to resolve the call-forwarding dilemma is proposed by Brennan et al.
in U.S. Pat. No. 5,329,578. This patent discloses a system that routes calls to a personal telephone number to physical locations of telephone instruments according to information r , . , ...
WO 98/38781 PCTlUS98/03626 in a "service profile" set up by the subscriber. The subscriber defines a sequence of numbers to locate the subscriber. Call routing thus depends on a schedule specified by the subscriber, i.e., the day and time of a call. In addition, the system described in this patent can route calls according to the calling line identification (e.~., refusinfi to take calls from certain numbers) and according to the urgency of the call (e.~., playing a prerecorded announcement indicating that only emergency calls are being taken.
and asking if the call is an emergency and routing accordingly).
One drawback to the "service profile" approach is the difficulty in entering the data, especially from a telephone, which requires a complex interactive voice reaponse interface. While a customer sen~ice representative can help create the sen~ice profile.
perhaps using a desktop workstation and graphical user interface, use of a rcpresentativr for this task is inefficient. Also, this approach is inflexible. requiring changes to the sen~ice profile should the subscriber change his or her pattern of activity either permanently or temporarily. '~1oreover, many subscribers are not sufficiently aware of their ow pattern of activity to create an accurate schedule.
V~.'hile the approach of having the system try a sequence of calls, i.c.. the "find me" approach, is often effective, it is typically inefficient because it requires the caller to wait while the system rings three or four times at each number in the sequence. It is thus very desirable to have a method for using the "find me" approach that is both easy to set up and maintain and that can determine a sequence of numbers to call at a given time that minimizes the number of calls necessary to reach the subscriber.
Disclosure of the Invention Call-forwarding can be improved by systems and methods consistent with this invention that use a model of a subscriber's behavior to determine sequences of telephone instruments to forward calls. The sequences may vary according to the time of the day and the day of the week.
Systems and methods consistent with this invention employ the following steps to forward telephone calls: (a) receiving a call to a telephone number associated with a subscriber; (b) predicting, based on a model of the subscriber's behavior, likelihoods of i. . I I i the subscriber being located at sites corresponding to stored telephone numbers; and (c) determining a sequence of the stored telephone numbers according to the predicted likelihoods. The received call can then be forwarded to at least one of the stored telephone numbers according to the sequence.
The model of the subscriber's behavior may include weights determined from data representing previous calls connecting the subscriber when located at a site corresponding to at least one of the stored telephone.
numbers. The weights are used to order the stored telephone numbers according to the predicted likelihoods.
The model of the subscriber's behavior may be comprised of an abstract representation based on the subscriber's environment and actions with respect to receiving telephone calls. In this configuration, the model is examined for indications that the subscriber is located at the site corresponding to a particular telephone number.
The model of the subscriber's behavior may be comprised of a neural network. In this case the network is activated to determine indications that the subscriber is located at the site corresponding to a particular telephone number.
w The model of the subscriber's behavior may be trained with data indicating previous calls connecting a caller successfully with the subscriber at each of the stored telephone numbers.
A first broad aspect provides a method forwarding a telephone call comprising the steps of: receiving a call to a telephone number associated with a subscriber;
~i ll i I
- 4a -predicting, based on a model of the subscribers calling behavior, likelihoods of the subscriber being at locations corresponding to stored telephone numbers by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior; and determining a sequence of the stored telephone numbers according to the predicted likelihoods.
A second broad aspect provides a system for forwarding a telephone call comprising: means for receiving a call to a telephone number associated with a subscriber;
means for predicting, based on a model of the subscribers calling behavior, likelihoods of the subscriber being at locations corresponding to stored telephone numbers by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior; and means for determining a sequence of the stored telephone numbers according to the predicted likelihoods.
A third broad aspect provides a method for forwarding a telephone call comprising the steps of:
receiving a telephone call to a subscriber; predicting, likelihoods of the subscriber being at locations corresponding to schedule-independent telephone numbers ~5 based on a predictive model of the subscriber's behavior based on the subscriber's environment and actions by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior; and forwarding the telephone call to at least one of the schedule-independent telephone numbers according to the predicted likelihoods.
,~
- 4b -Brief Description of the Drav~ings The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate preferred embodiments of the invention and, together with the description, explain the goals, advantages and principles of the invention. In the drawings, FIG. 1 is an illustration used to explain a preferred embodiment of a call-forwarding system consistent with the present invention;
FIG. 2 is a functional flowchart of the process steps used to forward telephone calls to personal telephone numbers in the preferred embodiment of a call-forwarding system consistent with the present invention;
Bissell et al. suggests another solution in U. S. Pat. No. 5,243,645. This patent discloses a system that forwards calls made to a personal telephone number (or to an ordinary number) based on information obtained when an individual subscriber engages in an activity, such as credit card calls, credit card transactions. or automated teller transactions, that indicates his location. When such an activity is performed, the location of the individual, potentially including the telephone number, is recorded in a database that tracks the location of the subscriber. Calls can then be forwarded to the specific telephone number associated with the last known location of the subscriber, or to the telephone number in the subscriber's defined list of calls that is nearest to the last known location as indicated by the area code, cellular region, paging area, etc.
One problem with this solution is that it provides a forwarding location for calls to a personal telephone number that may be available for only a limited time. The new number is valid only as long as the subscriber stays at the location where he performed that activity.
There are also many difficulties in building such a system, including problems of integrating and coordinating databases and communications systems built for different purposes. For example, systems managing credit card transactions must notify the call-forwarding system of a subscriber's whereabouts when the subscriber engages in a transaction using his credit card. This requires the credit card system to store information of call-forwarding subscribers and notify the call-forwarding service when the credit card transaction takes place.
Another way to resolve the call-forwarding dilemma is proposed by Brennan et al.
in U.S. Pat. No. 5,329,578. This patent discloses a system that routes calls to a personal telephone number to physical locations of telephone instruments according to information r , . , ...
WO 98/38781 PCTlUS98/03626 in a "service profile" set up by the subscriber. The subscriber defines a sequence of numbers to locate the subscriber. Call routing thus depends on a schedule specified by the subscriber, i.e., the day and time of a call. In addition, the system described in this patent can route calls according to the calling line identification (e.~., refusinfi to take calls from certain numbers) and according to the urgency of the call (e.~., playing a prerecorded announcement indicating that only emergency calls are being taken.
and asking if the call is an emergency and routing accordingly).
One drawback to the "service profile" approach is the difficulty in entering the data, especially from a telephone, which requires a complex interactive voice reaponse interface. While a customer sen~ice representative can help create the sen~ice profile.
perhaps using a desktop workstation and graphical user interface, use of a rcpresentativr for this task is inefficient. Also, this approach is inflexible. requiring changes to the sen~ice profile should the subscriber change his or her pattern of activity either permanently or temporarily. '~1oreover, many subscribers are not sufficiently aware of their ow pattern of activity to create an accurate schedule.
V~.'hile the approach of having the system try a sequence of calls, i.c.. the "find me" approach, is often effective, it is typically inefficient because it requires the caller to wait while the system rings three or four times at each number in the sequence. It is thus very desirable to have a method for using the "find me" approach that is both easy to set up and maintain and that can determine a sequence of numbers to call at a given time that minimizes the number of calls necessary to reach the subscriber.
Disclosure of the Invention Call-forwarding can be improved by systems and methods consistent with this invention that use a model of a subscriber's behavior to determine sequences of telephone instruments to forward calls. The sequences may vary according to the time of the day and the day of the week.
Systems and methods consistent with this invention employ the following steps to forward telephone calls: (a) receiving a call to a telephone number associated with a subscriber; (b) predicting, based on a model of the subscriber's behavior, likelihoods of i. . I I i the subscriber being located at sites corresponding to stored telephone numbers; and (c) determining a sequence of the stored telephone numbers according to the predicted likelihoods. The received call can then be forwarded to at least one of the stored telephone numbers according to the sequence.
The model of the subscriber's behavior may include weights determined from data representing previous calls connecting the subscriber when located at a site corresponding to at least one of the stored telephone.
numbers. The weights are used to order the stored telephone numbers according to the predicted likelihoods.
The model of the subscriber's behavior may be comprised of an abstract representation based on the subscriber's environment and actions with respect to receiving telephone calls. In this configuration, the model is examined for indications that the subscriber is located at the site corresponding to a particular telephone number.
The model of the subscriber's behavior may be comprised of a neural network. In this case the network is activated to determine indications that the subscriber is located at the site corresponding to a particular telephone number.
w The model of the subscriber's behavior may be trained with data indicating previous calls connecting a caller successfully with the subscriber at each of the stored telephone numbers.
A first broad aspect provides a method forwarding a telephone call comprising the steps of: receiving a call to a telephone number associated with a subscriber;
~i ll i I
- 4a -predicting, based on a model of the subscribers calling behavior, likelihoods of the subscriber being at locations corresponding to stored telephone numbers by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior; and determining a sequence of the stored telephone numbers according to the predicted likelihoods.
A second broad aspect provides a system for forwarding a telephone call comprising: means for receiving a call to a telephone number associated with a subscriber;
means for predicting, based on a model of the subscribers calling behavior, likelihoods of the subscriber being at locations corresponding to stored telephone numbers by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior; and means for determining a sequence of the stored telephone numbers according to the predicted likelihoods.
A third broad aspect provides a method for forwarding a telephone call comprising the steps of:
receiving a telephone call to a subscriber; predicting, likelihoods of the subscriber being at locations corresponding to schedule-independent telephone numbers ~5 based on a predictive model of the subscriber's behavior based on the subscriber's environment and actions by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior; and forwarding the telephone call to at least one of the schedule-independent telephone numbers according to the predicted likelihoods.
,~
- 4b -Brief Description of the Drav~ings The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate preferred embodiments of the invention and, together with the description, explain the goals, advantages and principles of the invention. In the drawings, FIG. 1 is an illustration used to explain a preferred embodiment of a call-forwarding system consistent with the present invention;
FIG. 2 is a functional flowchart of the process steps used to forward telephone calls to personal telephone numbers in the preferred embodiment of a call-forwarding system consistent with the present invention;
FIG. 3 is a block diagram of the software components of the preferred embodiment of a call-forwarding system consistent with the present invention;
FIG. 4 is a diagram used to explain the architecture of a neural network that models the subscriber's behavior in the preferred embodiment of a call-forwarding system consistent with the present invention;
FIG. 5 shows the data structure of historical call information used for training the subscriber's behavior neural network in the preferred embodiment of a call-for,~~arding system consistent with the present invention;
FIG. 6 is a flowchart of the steps performed by the system training control ler in the preferred embodiment of a call-forwarding system consistent with the present invention; and FIG. 7 is a flowchart of the steps used when the preferred embodiment of thr call-forwarding system of the present invention trains the subscriber's hehavior neural network.
Best Mode for Carrying Out the Invention Reference will now be made in detail to the preferred implementation of the present invention as illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings and the following description to refer to the same or like parts.
Overview Systems and methods consistent with this invention attempt to place telephone numbers in an order that minimizes the delay a caller experiences when a telephone call is forwarded, and minimizes the number of conversations the caller must have to learn that the subscriber is not available at a particular location. Systems and methods consistent with this invention do so by using an adaptive model, such as a neural network, trained to associate days of the week and times of the day during which a subscriber is at certain locations having telephone instruments reachable by calling specific telephone numbers.
From this information, the system predicts the likelihood of the individual being at different locations given a day of the week and time of day.
WO 98!38781 PCT/US98/03626 Systems and methods consistent with this invention preferably obtain data to train the network from occurrences when a caller successfully locates the subscriber. The duration of the call typically affects the strength of training because the longer the call the more likely it is that the recipient is actually the person called, with calls below a certain threshold duration (e.g., 30 seconds) deemed to be especially unreliable data points. The system can also obtain data when the subscriber calls in to check voice-mail or performs other telephonic activities from a location corresponding to one of the forwarding telephone numbers.
Telephone Network Figure I illustrates a telephone network 100 using a call-forwarding system consistent with the present invention. Network 100 includes multiple telephones I 1 ().
120, 130, and 140 connected by a telephone network server 105. Telephone nem~c~rk sen~er 105 includes processor I50 and call-forwarding system 160, and is typically operated by a telephony sewice provider such as ATB.T, MCI, Sprint. or a Rel:ional I3cll Operating Company (R13OC).
Processor 150 not only performs standard network operations. for example.
connecting calls, but it also performs operations for call-forwarding system 160. Such operations include forwarding calls to personal telephone numbers as described below.
Telephone network 100 shows a simplified abstraction, and an actual system typically includes a large number of telephones and servers configured in a complex network.
Call-forwarding Operation Figure 2 is a flowchart of a procedure 200 used by call-forwarding system 160 to process calls to personal telephone numbers and forward those calls to actual telephone numbers. The steps of procedure 200 are preferably implemented in software that is executed by processor 150.
Procedure 200 assumes that a subscriber with a personal telephone number has previously created a database of actual telephone numbers. The database may be managed by server 105 and stored in memory (not shown) of server 105. The database can be created using a variety of different approaches. For example, the subscriber can .. .
_'7_ call a special telephone number for setting up and modifying his database.
When the subscriber calls the special telephone number, the system uses a voice synthesizer to tell the subscriber: "You have entered four numbers to forward calls to. Press I to hear a list of the numbers, press 2 to delete all numbers." If the subscriber then presses 1 on the telephone keypad, the system's voice synthesizer responds with "The first number is 408 565-7912. Press 1 for the next number, press 2 to delete this number, press 3 to enter a new number just after this number, press 4 to return to the previous menu." If the subscriber presses 3 in response to the second menu, the system responds with the message "Enter a new number now by keying it, followed by the pound sign."
Vv'hen the number is entered the system confirms it with the voice response "The new number entered is 202 408-4023. Press 1 to verify this is correct, or 2 if it is in error."
Alternatively-, a more sophisticated voice recognition systems can be used to modifw the database of numbers using a similar approach.
Call-forwarding system 160 monitors all incoming calls and determines whether a call is to a subscriber's personal telephone number (step ~ 10). All calls not to subscribers' personal telephone numbers are ignored. ~l.~hen determining that a received call is in fact to a specific subscriber's personal telephone number, system I
60 activates a model of the subscriber's behavior (step 215). The model is a neural network used to predict the likelihood that a subscriber is at the location corresponding to each of the actual telephone numbers in the database. The likelihood is based on the history of subscriber's behavior encoded in the model and the current time of the day and day of the week when the call to the subscriber's personal telephone number is received.
The actual telephone numbers from the database are then ordered in a sequence corresponding to the predicted likelihood that each corresponds to the subscriber's current location on the day and time that the call to his personal telephone number was received (step 220).
Telephone network server 105 then connects the call to the subscriber's personal telephone number to the actual telephone number in the sequence (step 225). If the subscriber is at the location for the first actual telephone number in the sequence (step 230), then call-forwarding system 160 monitors the call to determine when the call is _g_ completed (step 245). When the call is completed, i. e., when the subscriber hangs up, system 160 records information for a training database that is used to train the model of the subscriber's behavior (step 250), and returns to monitoring incoming calls.
The determination that the subscriber has been located (step 230) can take place several ways. For example, system 160 can allow the telephone to ring for a predetermined number of rings and conclude that the subscriber is not present if the call has not been answered during this period. Alternatively, if the length of the call is greater than a predetermined time period then the system 160 concludes that the subscriber is present. Those skilled in the art will be familiar with other methods for determining the presence of a subscriber at the receiving end of a call.
Additionally, system 16U may require that the length of a call be for at least a specific amount of time (e.g., 30 seconds) before saving a record in the training database.
This avoids storing histon~ records that do not assist in training the network.
If the subscriber was not located at the first telephone number tried (step ?30), then system 160 determines whether there are any other telephone numbers in the sequence remain that have not yet been tried (step 235). If so, system 160 tries the next number in the sequence (step 225), which would be the next most likely telephone number. The system 160 repeats this process (steps 225, 230, and 23S) until the subscriber is located or no numbers in the sequence remain. At that time, system 160 informs the caller that it is unable to locate the subscriber by using a voice synthesizer (or recorded voice) to play an appropriate message such as "UNABLE TO LOCATE YOUR
PARTY" (step 240). The system also notifies the caller that he may leave a voice mail message if he so desires and transfers the call to a voice mail system if the caller remains on the line (not shown). In this manner, system 160 forwards calls to each subscriber's personal telephone number using a computational model of the subscriber's behavior.
Software Components Figure 3 is a block diagram of a preferred implementation of call-forwarding system 160. System 160 consists of four components: a model of the subscriber's . . , ... ~.
behavior 310, call-forwarding controller 315, historical training data 320, and system training controller 340.
Subscriber behavior model 310 preferably includes a neural network. When a caller dials the personal telephone number of a subscriber, this activates the network model 310 associated with that subscriber. Using information on the time of day and day of week, network model 310 produces a sequence of actual telephone numbers arranged in decreasing order of the likelihood of the individual being available at the location of a telephone corresponding to each telephone number. Each number is then tried in turn b_v call-forwarding controller 315 until the individual is located or the last number is tried unsuccessfully.
Historical training data 320 contains data to train the neural network when appropriate. System training controller 340 trains the network model s 10 using historical training data 32U. System training controller 340 is described in detail brlow with reference to FIGS. S-7.
Subscriber's Behavior Model Figure 4 shows the architecture of an exemplary neural network 400 for model 310 of the call-forwarding system 160. Network 400 is shown as a three-layer feedforward neural network, and consists of an input layer 410, a hidden layer 420, and an output layer 430. Such a network architecture is described in detail in the paper by D.
E. Rumelhart, G. E. Hinton, and R. J. Williams, "Learning internal representations by error propagation," which is published in the book entitled "Parallel Distributed Processing: Explorations in the Microstructure of Cognition," J. E.
McCleIland, D. E.
Rumelhart, and the PDP Research Group, Editors, Cambridge, MA: MIT Press, 1986, Vol. l, pp. 318-362. This paper contains certain equations that describe the computation of the activity level of a unit from its inputs, the role of the weights of connections in such computations, and how the weights of connections are modified to allow the network to learn, as do textbooks on neural network architectures and applications.
Network 400 is preferably implemented by software, and input values are set to 0.0 for false and 1.0 for true. The software to simulate network 400 may be implemented in the C++ programming language using the Microsoft Visual C++O programming environment, including Microsoft Developer Studio~ and Microsoft Foundation Class, all running under the Windows 95~ or Windows NT~ operating systems.
A neural network consists of "units," or artificial neurons, that receive inputs through "connections" from other units that are essentially artificial resistors. Each such connection has a value known as a "weight" that can be considered analogous to the resistance of a resistor. Each unit sums the input signal values received from its inputs after being weighted by the connection, and then applies a nonlinear mathematical function to determine a value known as the "activity level" for that unit.
After processing it through an output function, the result is applied, through the weighted connections, to units in the next highest layer. For example. the outputs of layer 410 are inputs to layer 420.
Input layer 410, with its input units, is actually a dummy layer in which the activity level for each input unit is simply set to the analog value provided as input to each unit. The output of each input unit is connected to the input of even' unit in hidden layer 420. The large arrow 425 represents such full connections.
There are approximately as many units in the hidden layer 420 as there are telephone numbers that the subscriber can be reached at. Units in layer 420 are called "hidden units" because their values are not directly observable, unlike the units of input layer 410 and output layer 430. The output of each unit in hidden layer 420 is connected to the input of every unit in output layer 430.
The output of each output unit is provided to the rest of the system as the output of neural network 400. In a feedforward network, the flow of information in network 400 is in one direction only, from input layer 410 to hidden layer 420 and from hidden layer 420 to output layer 430, as arrows 425 and 435 show.
When information is applied to the input of network 400, it propagates to hidden layer 420 and then to output layer 430. The value of each output unit, each corresponding to a different number for reaching the subscriber, represents the likelihood that the subscriber can be reached at that number.
.. . _. _. . _ ,...... . _ .. . r Input layer 410 consists of two groups of inputs 4I 3 and 416. First group 413 encodes the current day of the week and consists of seven units, one for each day of the week. Second group 416 encodes the current time of day and consists of seven units, each indicating a time within one of the following seven categories: midnight-Gam, 6-gam, 9- I 2 am, 12- I , 1-4 pm, 4-6 pm, and 6-12 pm.
Network 400 first determines the current day and time by means of the appropriate system call, such as GetLocalTime, a calling program in C++, and then codes this information by setting input values to the appropriate inputs.
The day of week and time of day inputs are not necessarily the most significant effects on calling behavior network 400 that result in an output. In many cases, network 400's most significant predictive capability comes from biasing toward or against specific numbers for subscribers without set schedules, such as sales persons making calls or those with flexible schedules. Day and time inputs hecome significant primarily when strong patterns occur involving these parameters, such as when people are reachable only at home on weekends, always stay late at the office on a particular night, or always make sales calls via automobile on a particular day or at particular times.
Alternatively, neural network 400 may include two layers of hidden units. The additional hidden layer requires an additional set of connections and weights.
Each of the two layers has approximately the same number of hidden units, which approximates the number of telephone numbers the user can be reached at. The advantages of the additional layer are to allow the capture of more subtle interactions among specific numbers, times, and days, than is possible with a single hidden layer. The disadvantages includes additional processing capacity and memory required to implement the network, longer training times, and possibly less stable training.
There are two possible methods for training neural network 400: complete and incremental. Complete training is preferred. The high computational requirements for this type of training, however, prevent it from being used more than once per day. If network 400 is not immediately updated for calls received during each day, there may be a drop off in accuracy. To compensate for this problem, calls received on a particular day may be kept in memory of server 105, with the predicted probability of reaching the subscriber at a given telephone number calculated by a simple procedural algorithm.
Calculation of the likelihood of a telephone number corresponding to a call in the server's memory may be done by simply setting the likelihood to 0.9 if the call has just been received and dropping the probability as a function of the time since the last successful call to the given number, and either ignoring the prediction made by the network 400 or adding the output of the procedural algorithm to that of the network.
Otherwise. the prediction made by the network 400 would be used.
Incremental training is done after each call whenever it appears that the computer is not being heavily used and computational capacity is available, and consists of that additional training necessary to update network 40U to the just completed call or calls.
Training Data For Subscriber's Behavior Model Figure 5 shows a data structure 500 of historical call information saved for use in training behavior neural network 400. The columns 510, 520, 530, 540, and 550 show data recorded for each call. A record 560 includes for each call:
I ) a date of the call;
2) a day of the week (0-6 records Monday through Sunday, respectively);
3} a time of day (0 if midnight-Gam, 1 if 6-gam, 2 if 9-12 am, 3 if 12-1, 4 if 1-4 pm, 5 if 4-6 pm, and 6 if 6-12 pm.);
4) a telephone number (i. e., the stored number where the subscriber was reached); and 5) call duration (preferably measured in seconds).
Training Routine for Subscriber's Behavior Model Figure 6 shows a flowchart of a procedure 600 used by call-forwarding system 160 to train neural network 400. The procedure 600 is part of system training controller 340 and is implemented in software.
When an individual subscribes to a service having the functions of call-forwarding system 160, the subscriber (or network operator) sets a parameter in system training controller 340 to indicate a daily time (e.g., 2 a.m.) that system training controller _._._.........f...., _". .". , 340 trains neural network 400. This time should be chosen to avoid periods when processor 150 is in use. When the appropriate time is reached, controller 340 makes a copy of the weights of the network in case an incoming call requires the network to be activated while the network is being trained. Once training has been successfully completed, the copy is deleted and the new weights recorded as the network for use for the given subscriber. If network 400 is available for training, controller 340 configures the network architecture for the behavior network (step 610). This is done by determining the number of actual telephone numbers in the database, and constructing a network with the appropriate number of hidden units, output units, and connections between the input layer and hidden layer and between the hidden layer and output layer.
The exact number of hidden units can be adjusted to yield the best generalization performance. Rules based on these adjustments are encoded in the architecture configuration and seaming part of the eventual product. The number of hidden units must be substantially less than the number of combinations of telephone numbers crossed with the alternative times, etc., so as to force the network to generalize.
Next, controller 340 trains the behavior network (step 620).
Figure 7 shows a flowchart describing the steps for training subscriber's behavior network 400 (see step 620 of FIG. 6). When initiated, controller 340 first builds a training set from historical training data shown in FIG. 5 (step 710). This historical training data is stored in a database file. Each record in the historical database is converted to an example for training.
The following fields are preferably defined in the set of training examples:
day, time, telephone number, selection probability, and the number of records for the given telephone number. The day and time are provided to the network input layer when training, and the telephone number is provided at the output layer of the network 400 for use by the learning algorithm. The selection probability is a parameter that defines the probability that the example will, at any given cycle through the training procedure, be selected as a training example. It has a value between 0.002 to 1.00. The number of records, and thus examples for the given telephone number, is needed to determine the extent to which the inputs are set to random values, rather than the actual day of the week and time of day. This setting of inputs to random values is necessary when relatively few records exist for a given telephone number, preventing the network from generalizing sufficiently to output the given telephone number if the input values are different from those for the existing records.
For example, if a single record exists of a call to a number at 12 noon on Tuesday, the network, if trained with only this data, would have a substantial output value for the given telephone number only if the input specified noon on Tuesday. Such behavior of the network is unreasonable given such a small amount of data. If 50 records existed for the same number at diverse times and days, a reasonable output value would be likely for that number with inputs at nearly any time and day. If 50 records existed for the same number, all at noon on Tuesday. the network would again be responsive for the given number only at that time and da~~, but quite legitimately so, given the history of calls.
The selection probability is computed as follows:
~sclection Xage hdurauon~
where Xase ranges from 0.01 to 1.0 and Xduration rages from 0.20 to 1.00.
Psclecuon thus has possible values from 0.002 to 1.00.
Rage specifies the number of days between the call being made and the network being trained. The values are assigned as follows: 0.01 if the call was made over a year ago, 0.02 if the call was made 181-365 days ago, 0.04 if the call was made 91-180 days ago, 0.08 if the call was made 31-90 days ago, 0.15 if the call was made 10-30 days ago, 0.30 if the call was made 4-9 days ago, 0.60 if the call was made 2-3 days ago, and 1.0 if the call was made yesterday.
The value of Xd"~tion depends on both the circumstances of the call and the actual duration. For calls that locate the subscriber, Xduration is assigned as follows: 1.0 if duration > 60 minutes; 0.8 if 11-60 minutes, 0.6 if 2-IO minutes, 0.4 if 30-119 seconds, and 0.20 if 15-30 seconds. If the call duration is less than 15 seconds, the record is discarded as unreliable.
..
WO 98/38'781 PCTIUS98/03626 After the training set has been constructed (step 710}, the set of weights for the connections between units of the network is then set to random values to initialize the network 400 {step 720). A training example is then obtained from the training set (step 730). This training example is the first in the set if the weights have just been initialized.
Otherwise, the next example in the set is selected. If there are no more examples in the set {as the result of the previous training example being the last in the set), the first example in the set is selected.
A calculation is then made to determine whether the exampie just selected is actually used to train the network on the current pass (step 74U). The selection probabiliy for the example is retrieved, and a random number from (I to 1.() is generated and compared with the selection probability. Only if the number is less than or equal tc~
the selection probability is the example used.
for example. if the selection probabiliy is 0.5, then the example is only used when the random number generated is from U to 0.~, or 50°0 of the time.
If the selection probabiliy is 0.1, then the example is only used when the random number is from () to 0.1, or 10°ro of the time. If the example is not used, control is passed to obtain another training example (step 730).
Otherwise, the network 400 is trained with the example and the accumulated error saved (step 750). This is done by first providing the input of the network 40U
with the appropriate input signals. These can be either the actual inputs for the example or, as suggested above, randomized inputs.
When training begins, a parameter known as the input randomization probability cutoff, P~"toa., is calculated according to the following formula:
Pcutoff Nrecords ~ Ncombinations~
where Nre~oras is the number of records for this number in the historical database, and N~ombinarion5 is the number of input combinations, which equals the number of levels of the day of week multiplied by the number of levels of the time of day input. For the network shown, N~ombi~ation5 = 7 x 7 = 49.
A random number from 0 to 1 is generated for each example and compared with the input randomization probability cutoff, P~"~orr. If the number is less than P~utoff~ a random number from 1 to 7 is generated to input to the time of day units, and a separate random number from 1 to 7 is generated to input to the day of week units. If the random number is equal to or greater than P~",o~, the actual inputs from the example are fed to the input units of the network.
Thus, for example, if only 1 record was available, P~~~o~. would be I /49, or about U.0?, and the network 400 would be trained with a random date and time for 98%
of the training trials (on average). For 49 available records, P~~,o~ would be 49/49=1.0, and the network 400 would be trained with the actual date and time essentially all of the time.
Training is done by applying the example to the appropriate inputs and outputs of the network 400. then using the backward propagation (earning algorithm to modify the values of the weights of the connections in the network 400. Details of the backward propagation algorithm are described in the Rumelhart, Iiinton, and Vv%illiams paper. which was referred to above. In this training, a set of data is used that includes both input and output data.
Thus, for example, a particular piece of data might consist of the day of the week and the time of day for inputs and a telephone number as output. The input data to the input layer are entered by setting the input unit matching the output from the example to 1.0, or "true," and setting all other input units to 0.0, or "false." Thus, in the case of the day of the week "Tuesday", the input unit corresponding to "Tuesday" is set to 1.0, while the other 6 input units are set to 0Ø
The telephone number for each trial is then effectively applied to the output units using the following steps. First, information is applied to the inputs of the network and then allowed to propagate through the network to the output units. Next, a calculation is made of the "error" of the network for each output unit by subtracting the actual output (activity level) of each unit from either I .0, if the unit corresponds to the telephone number associated with the given trial, or 0Ø This error value is then "propagated backward" through the earlier layers of the network 400, by systematically changing the r ., , ., .
WO 98/38781 PCT/LJ598/t13626 values of the weights according to the backward propagation learning algorithm in such a manner as to reduce the error. A given set of data is applied repeatedly to a network 400 until overall error is reduced to the point that the network 400 is considered trained.
The ''accumulated error" is determined by summing the error for all output units across all training examples. The error for each unit is equal to the desired output value minus the actual output value. After training the network 400 with an example.
a test is made of the result of the training thus far (step 760). The backward propagation learning algorithm is a "hill-climbing" algorithm. It uses a computation based on local information to seek a global minimum of error.
Such an algorithm can become "stuck," however. Networks may oscillate.
continuing to learn for a short period but then falling back. The accumulated error utter training is tested against a threshold level below which the network 40U is considered fully trained. If the error is shove the threshold and the number of training trials is helm a maximum. the network 400 needs more training. If the error is above the threshold anti the maximum allowed number of training trials have been reached, the nework .10() is considered "stuck." In general. the complexity of the problem is low and it is unlikely that the network 400 will become stuck. Because certain sets of random weight values can cause a network to become stuck even with problems of low complexity, it is necessary to test for this condition and respond to it.
If network 400 needs more training (step 760), control returns to obtain another training example (step 730). If the network 400 is "stuck," control passes to initialize the weights and begin the training process from the beginning (step 720). If the network 400 has its accumulated error below the threshold, then the training is completed.
Conclusion Systems consistent with the present invention thus improve the accuracy of call-forwarding for personal telephone ntunbers using adaptive models such as neural networks of behavior of individuals corresponding to the assigned personal telephone numbers. When a call to an assigned personal telephone number is received, the call is forwarded to a telephone at a specific location by translating the personal telephone number into the actual telephone number for the telephone at that location.
This "translation" process includes using the model of the behavior of the party being called (i.e., the individual with the personal telephone number) to determine the likelihood that the individual is currently at the location for the telephone with the actual telephone number. The present invention may also be used in a more conventional call-forwarding system in which the number called is that of a physical telephone line rather than a personal telephone number.
The foregoing description of a preferred embodiment of the invention has been presented for purposes of illustration and description. It is not intended to he exhaustive or to limit the invention to the precise form disclosed. For example, the technique is also applicable to call-forwarding systems in which a user has created a set of telephone numbers for a call to be forwarded to. This is initiated either by the user choosing a "Send All Calls" function, or by the user setting up a procedure in which his or her usual telephone number is rung a certain number of times. after which the call is forwarded if the call is not answered. The technique can also be used in a call-forwarding system that is integrated with a multipurpose telephony application that makes use of automatic speech recognition to perform such tasks as voice activated dialing, call management. and other services, in which users are likely to call into a central number to activate these services. Such users can then control call-forwarding, including selecting forwarding by means of the predictive neural network, with the system determining (by caller ID) the location of the user whenever a call is made into the central number.
Alternatively, the call-forwarding technique according to the present invention may be implemented by a PBX system, such as the Nortel Meridian 1 PBX system. In this alternative, for example, a call to an individual's telephone connected by the PBX systems is forwarded to other connected telephones based on the individual's behavior. Other modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. The scope of the invention is defined by the claims and their equivalents.
~_ ..__..... _._._. .._.___.~___ ~. r ~ .,. . .,. .
FIG. 4 is a diagram used to explain the architecture of a neural network that models the subscriber's behavior in the preferred embodiment of a call-forwarding system consistent with the present invention;
FIG. 5 shows the data structure of historical call information used for training the subscriber's behavior neural network in the preferred embodiment of a call-for,~~arding system consistent with the present invention;
FIG. 6 is a flowchart of the steps performed by the system training control ler in the preferred embodiment of a call-forwarding system consistent with the present invention; and FIG. 7 is a flowchart of the steps used when the preferred embodiment of thr call-forwarding system of the present invention trains the subscriber's hehavior neural network.
Best Mode for Carrying Out the Invention Reference will now be made in detail to the preferred implementation of the present invention as illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings and the following description to refer to the same or like parts.
Overview Systems and methods consistent with this invention attempt to place telephone numbers in an order that minimizes the delay a caller experiences when a telephone call is forwarded, and minimizes the number of conversations the caller must have to learn that the subscriber is not available at a particular location. Systems and methods consistent with this invention do so by using an adaptive model, such as a neural network, trained to associate days of the week and times of the day during which a subscriber is at certain locations having telephone instruments reachable by calling specific telephone numbers.
From this information, the system predicts the likelihood of the individual being at different locations given a day of the week and time of day.
WO 98!38781 PCT/US98/03626 Systems and methods consistent with this invention preferably obtain data to train the network from occurrences when a caller successfully locates the subscriber. The duration of the call typically affects the strength of training because the longer the call the more likely it is that the recipient is actually the person called, with calls below a certain threshold duration (e.g., 30 seconds) deemed to be especially unreliable data points. The system can also obtain data when the subscriber calls in to check voice-mail or performs other telephonic activities from a location corresponding to one of the forwarding telephone numbers.
Telephone Network Figure I illustrates a telephone network 100 using a call-forwarding system consistent with the present invention. Network 100 includes multiple telephones I 1 ().
120, 130, and 140 connected by a telephone network server 105. Telephone nem~c~rk sen~er 105 includes processor I50 and call-forwarding system 160, and is typically operated by a telephony sewice provider such as ATB.T, MCI, Sprint. or a Rel:ional I3cll Operating Company (R13OC).
Processor 150 not only performs standard network operations. for example.
connecting calls, but it also performs operations for call-forwarding system 160. Such operations include forwarding calls to personal telephone numbers as described below.
Telephone network 100 shows a simplified abstraction, and an actual system typically includes a large number of telephones and servers configured in a complex network.
Call-forwarding Operation Figure 2 is a flowchart of a procedure 200 used by call-forwarding system 160 to process calls to personal telephone numbers and forward those calls to actual telephone numbers. The steps of procedure 200 are preferably implemented in software that is executed by processor 150.
Procedure 200 assumes that a subscriber with a personal telephone number has previously created a database of actual telephone numbers. The database may be managed by server 105 and stored in memory (not shown) of server 105. The database can be created using a variety of different approaches. For example, the subscriber can .. .
_'7_ call a special telephone number for setting up and modifying his database.
When the subscriber calls the special telephone number, the system uses a voice synthesizer to tell the subscriber: "You have entered four numbers to forward calls to. Press I to hear a list of the numbers, press 2 to delete all numbers." If the subscriber then presses 1 on the telephone keypad, the system's voice synthesizer responds with "The first number is 408 565-7912. Press 1 for the next number, press 2 to delete this number, press 3 to enter a new number just after this number, press 4 to return to the previous menu." If the subscriber presses 3 in response to the second menu, the system responds with the message "Enter a new number now by keying it, followed by the pound sign."
Vv'hen the number is entered the system confirms it with the voice response "The new number entered is 202 408-4023. Press 1 to verify this is correct, or 2 if it is in error."
Alternatively-, a more sophisticated voice recognition systems can be used to modifw the database of numbers using a similar approach.
Call-forwarding system 160 monitors all incoming calls and determines whether a call is to a subscriber's personal telephone number (step ~ 10). All calls not to subscribers' personal telephone numbers are ignored. ~l.~hen determining that a received call is in fact to a specific subscriber's personal telephone number, system I
60 activates a model of the subscriber's behavior (step 215). The model is a neural network used to predict the likelihood that a subscriber is at the location corresponding to each of the actual telephone numbers in the database. The likelihood is based on the history of subscriber's behavior encoded in the model and the current time of the day and day of the week when the call to the subscriber's personal telephone number is received.
The actual telephone numbers from the database are then ordered in a sequence corresponding to the predicted likelihood that each corresponds to the subscriber's current location on the day and time that the call to his personal telephone number was received (step 220).
Telephone network server 105 then connects the call to the subscriber's personal telephone number to the actual telephone number in the sequence (step 225). If the subscriber is at the location for the first actual telephone number in the sequence (step 230), then call-forwarding system 160 monitors the call to determine when the call is _g_ completed (step 245). When the call is completed, i. e., when the subscriber hangs up, system 160 records information for a training database that is used to train the model of the subscriber's behavior (step 250), and returns to monitoring incoming calls.
The determination that the subscriber has been located (step 230) can take place several ways. For example, system 160 can allow the telephone to ring for a predetermined number of rings and conclude that the subscriber is not present if the call has not been answered during this period. Alternatively, if the length of the call is greater than a predetermined time period then the system 160 concludes that the subscriber is present. Those skilled in the art will be familiar with other methods for determining the presence of a subscriber at the receiving end of a call.
Additionally, system 16U may require that the length of a call be for at least a specific amount of time (e.g., 30 seconds) before saving a record in the training database.
This avoids storing histon~ records that do not assist in training the network.
If the subscriber was not located at the first telephone number tried (step ?30), then system 160 determines whether there are any other telephone numbers in the sequence remain that have not yet been tried (step 235). If so, system 160 tries the next number in the sequence (step 225), which would be the next most likely telephone number. The system 160 repeats this process (steps 225, 230, and 23S) until the subscriber is located or no numbers in the sequence remain. At that time, system 160 informs the caller that it is unable to locate the subscriber by using a voice synthesizer (or recorded voice) to play an appropriate message such as "UNABLE TO LOCATE YOUR
PARTY" (step 240). The system also notifies the caller that he may leave a voice mail message if he so desires and transfers the call to a voice mail system if the caller remains on the line (not shown). In this manner, system 160 forwards calls to each subscriber's personal telephone number using a computational model of the subscriber's behavior.
Software Components Figure 3 is a block diagram of a preferred implementation of call-forwarding system 160. System 160 consists of four components: a model of the subscriber's . . , ... ~.
behavior 310, call-forwarding controller 315, historical training data 320, and system training controller 340.
Subscriber behavior model 310 preferably includes a neural network. When a caller dials the personal telephone number of a subscriber, this activates the network model 310 associated with that subscriber. Using information on the time of day and day of week, network model 310 produces a sequence of actual telephone numbers arranged in decreasing order of the likelihood of the individual being available at the location of a telephone corresponding to each telephone number. Each number is then tried in turn b_v call-forwarding controller 315 until the individual is located or the last number is tried unsuccessfully.
Historical training data 320 contains data to train the neural network when appropriate. System training controller 340 trains the network model s 10 using historical training data 32U. System training controller 340 is described in detail brlow with reference to FIGS. S-7.
Subscriber's Behavior Model Figure 4 shows the architecture of an exemplary neural network 400 for model 310 of the call-forwarding system 160. Network 400 is shown as a three-layer feedforward neural network, and consists of an input layer 410, a hidden layer 420, and an output layer 430. Such a network architecture is described in detail in the paper by D.
E. Rumelhart, G. E. Hinton, and R. J. Williams, "Learning internal representations by error propagation," which is published in the book entitled "Parallel Distributed Processing: Explorations in the Microstructure of Cognition," J. E.
McCleIland, D. E.
Rumelhart, and the PDP Research Group, Editors, Cambridge, MA: MIT Press, 1986, Vol. l, pp. 318-362. This paper contains certain equations that describe the computation of the activity level of a unit from its inputs, the role of the weights of connections in such computations, and how the weights of connections are modified to allow the network to learn, as do textbooks on neural network architectures and applications.
Network 400 is preferably implemented by software, and input values are set to 0.0 for false and 1.0 for true. The software to simulate network 400 may be implemented in the C++ programming language using the Microsoft Visual C++O programming environment, including Microsoft Developer Studio~ and Microsoft Foundation Class, all running under the Windows 95~ or Windows NT~ operating systems.
A neural network consists of "units," or artificial neurons, that receive inputs through "connections" from other units that are essentially artificial resistors. Each such connection has a value known as a "weight" that can be considered analogous to the resistance of a resistor. Each unit sums the input signal values received from its inputs after being weighted by the connection, and then applies a nonlinear mathematical function to determine a value known as the "activity level" for that unit.
After processing it through an output function, the result is applied, through the weighted connections, to units in the next highest layer. For example. the outputs of layer 410 are inputs to layer 420.
Input layer 410, with its input units, is actually a dummy layer in which the activity level for each input unit is simply set to the analog value provided as input to each unit. The output of each input unit is connected to the input of even' unit in hidden layer 420. The large arrow 425 represents such full connections.
There are approximately as many units in the hidden layer 420 as there are telephone numbers that the subscriber can be reached at. Units in layer 420 are called "hidden units" because their values are not directly observable, unlike the units of input layer 410 and output layer 430. The output of each unit in hidden layer 420 is connected to the input of every unit in output layer 430.
The output of each output unit is provided to the rest of the system as the output of neural network 400. In a feedforward network, the flow of information in network 400 is in one direction only, from input layer 410 to hidden layer 420 and from hidden layer 420 to output layer 430, as arrows 425 and 435 show.
When information is applied to the input of network 400, it propagates to hidden layer 420 and then to output layer 430. The value of each output unit, each corresponding to a different number for reaching the subscriber, represents the likelihood that the subscriber can be reached at that number.
.. . _. _. . _ ,...... . _ .. . r Input layer 410 consists of two groups of inputs 4I 3 and 416. First group 413 encodes the current day of the week and consists of seven units, one for each day of the week. Second group 416 encodes the current time of day and consists of seven units, each indicating a time within one of the following seven categories: midnight-Gam, 6-gam, 9- I 2 am, 12- I , 1-4 pm, 4-6 pm, and 6-12 pm.
Network 400 first determines the current day and time by means of the appropriate system call, such as GetLocalTime, a calling program in C++, and then codes this information by setting input values to the appropriate inputs.
The day of week and time of day inputs are not necessarily the most significant effects on calling behavior network 400 that result in an output. In many cases, network 400's most significant predictive capability comes from biasing toward or against specific numbers for subscribers without set schedules, such as sales persons making calls or those with flexible schedules. Day and time inputs hecome significant primarily when strong patterns occur involving these parameters, such as when people are reachable only at home on weekends, always stay late at the office on a particular night, or always make sales calls via automobile on a particular day or at particular times.
Alternatively, neural network 400 may include two layers of hidden units. The additional hidden layer requires an additional set of connections and weights.
Each of the two layers has approximately the same number of hidden units, which approximates the number of telephone numbers the user can be reached at. The advantages of the additional layer are to allow the capture of more subtle interactions among specific numbers, times, and days, than is possible with a single hidden layer. The disadvantages includes additional processing capacity and memory required to implement the network, longer training times, and possibly less stable training.
There are two possible methods for training neural network 400: complete and incremental. Complete training is preferred. The high computational requirements for this type of training, however, prevent it from being used more than once per day. If network 400 is not immediately updated for calls received during each day, there may be a drop off in accuracy. To compensate for this problem, calls received on a particular day may be kept in memory of server 105, with the predicted probability of reaching the subscriber at a given telephone number calculated by a simple procedural algorithm.
Calculation of the likelihood of a telephone number corresponding to a call in the server's memory may be done by simply setting the likelihood to 0.9 if the call has just been received and dropping the probability as a function of the time since the last successful call to the given number, and either ignoring the prediction made by the network 400 or adding the output of the procedural algorithm to that of the network.
Otherwise. the prediction made by the network 400 would be used.
Incremental training is done after each call whenever it appears that the computer is not being heavily used and computational capacity is available, and consists of that additional training necessary to update network 40U to the just completed call or calls.
Training Data For Subscriber's Behavior Model Figure 5 shows a data structure 500 of historical call information saved for use in training behavior neural network 400. The columns 510, 520, 530, 540, and 550 show data recorded for each call. A record 560 includes for each call:
I ) a date of the call;
2) a day of the week (0-6 records Monday through Sunday, respectively);
3} a time of day (0 if midnight-Gam, 1 if 6-gam, 2 if 9-12 am, 3 if 12-1, 4 if 1-4 pm, 5 if 4-6 pm, and 6 if 6-12 pm.);
4) a telephone number (i. e., the stored number where the subscriber was reached); and 5) call duration (preferably measured in seconds).
Training Routine for Subscriber's Behavior Model Figure 6 shows a flowchart of a procedure 600 used by call-forwarding system 160 to train neural network 400. The procedure 600 is part of system training controller 340 and is implemented in software.
When an individual subscribes to a service having the functions of call-forwarding system 160, the subscriber (or network operator) sets a parameter in system training controller 340 to indicate a daily time (e.g., 2 a.m.) that system training controller _._._.........f...., _". .". , 340 trains neural network 400. This time should be chosen to avoid periods when processor 150 is in use. When the appropriate time is reached, controller 340 makes a copy of the weights of the network in case an incoming call requires the network to be activated while the network is being trained. Once training has been successfully completed, the copy is deleted and the new weights recorded as the network for use for the given subscriber. If network 400 is available for training, controller 340 configures the network architecture for the behavior network (step 610). This is done by determining the number of actual telephone numbers in the database, and constructing a network with the appropriate number of hidden units, output units, and connections between the input layer and hidden layer and between the hidden layer and output layer.
The exact number of hidden units can be adjusted to yield the best generalization performance. Rules based on these adjustments are encoded in the architecture configuration and seaming part of the eventual product. The number of hidden units must be substantially less than the number of combinations of telephone numbers crossed with the alternative times, etc., so as to force the network to generalize.
Next, controller 340 trains the behavior network (step 620).
Figure 7 shows a flowchart describing the steps for training subscriber's behavior network 400 (see step 620 of FIG. 6). When initiated, controller 340 first builds a training set from historical training data shown in FIG. 5 (step 710). This historical training data is stored in a database file. Each record in the historical database is converted to an example for training.
The following fields are preferably defined in the set of training examples:
day, time, telephone number, selection probability, and the number of records for the given telephone number. The day and time are provided to the network input layer when training, and the telephone number is provided at the output layer of the network 400 for use by the learning algorithm. The selection probability is a parameter that defines the probability that the example will, at any given cycle through the training procedure, be selected as a training example. It has a value between 0.002 to 1.00. The number of records, and thus examples for the given telephone number, is needed to determine the extent to which the inputs are set to random values, rather than the actual day of the week and time of day. This setting of inputs to random values is necessary when relatively few records exist for a given telephone number, preventing the network from generalizing sufficiently to output the given telephone number if the input values are different from those for the existing records.
For example, if a single record exists of a call to a number at 12 noon on Tuesday, the network, if trained with only this data, would have a substantial output value for the given telephone number only if the input specified noon on Tuesday. Such behavior of the network is unreasonable given such a small amount of data. If 50 records existed for the same number at diverse times and days, a reasonable output value would be likely for that number with inputs at nearly any time and day. If 50 records existed for the same number, all at noon on Tuesday. the network would again be responsive for the given number only at that time and da~~, but quite legitimately so, given the history of calls.
The selection probability is computed as follows:
~sclection Xage hdurauon~
where Xase ranges from 0.01 to 1.0 and Xduration rages from 0.20 to 1.00.
Psclecuon thus has possible values from 0.002 to 1.00.
Rage specifies the number of days between the call being made and the network being trained. The values are assigned as follows: 0.01 if the call was made over a year ago, 0.02 if the call was made 181-365 days ago, 0.04 if the call was made 91-180 days ago, 0.08 if the call was made 31-90 days ago, 0.15 if the call was made 10-30 days ago, 0.30 if the call was made 4-9 days ago, 0.60 if the call was made 2-3 days ago, and 1.0 if the call was made yesterday.
The value of Xd"~tion depends on both the circumstances of the call and the actual duration. For calls that locate the subscriber, Xduration is assigned as follows: 1.0 if duration > 60 minutes; 0.8 if 11-60 minutes, 0.6 if 2-IO minutes, 0.4 if 30-119 seconds, and 0.20 if 15-30 seconds. If the call duration is less than 15 seconds, the record is discarded as unreliable.
..
WO 98/38'781 PCTIUS98/03626 After the training set has been constructed (step 710}, the set of weights for the connections between units of the network is then set to random values to initialize the network 400 {step 720). A training example is then obtained from the training set (step 730). This training example is the first in the set if the weights have just been initialized.
Otherwise, the next example in the set is selected. If there are no more examples in the set {as the result of the previous training example being the last in the set), the first example in the set is selected.
A calculation is then made to determine whether the exampie just selected is actually used to train the network on the current pass (step 74U). The selection probabiliy for the example is retrieved, and a random number from (I to 1.() is generated and compared with the selection probability. Only if the number is less than or equal tc~
the selection probability is the example used.
for example. if the selection probabiliy is 0.5, then the example is only used when the random number generated is from U to 0.~, or 50°0 of the time.
If the selection probabiliy is 0.1, then the example is only used when the random number is from () to 0.1, or 10°ro of the time. If the example is not used, control is passed to obtain another training example (step 730).
Otherwise, the network 400 is trained with the example and the accumulated error saved (step 750). This is done by first providing the input of the network 40U
with the appropriate input signals. These can be either the actual inputs for the example or, as suggested above, randomized inputs.
When training begins, a parameter known as the input randomization probability cutoff, P~"toa., is calculated according to the following formula:
Pcutoff Nrecords ~ Ncombinations~
where Nre~oras is the number of records for this number in the historical database, and N~ombinarion5 is the number of input combinations, which equals the number of levels of the day of week multiplied by the number of levels of the time of day input. For the network shown, N~ombi~ation5 = 7 x 7 = 49.
A random number from 0 to 1 is generated for each example and compared with the input randomization probability cutoff, P~"~orr. If the number is less than P~utoff~ a random number from 1 to 7 is generated to input to the time of day units, and a separate random number from 1 to 7 is generated to input to the day of week units. If the random number is equal to or greater than P~",o~, the actual inputs from the example are fed to the input units of the network.
Thus, for example, if only 1 record was available, P~~~o~. would be I /49, or about U.0?, and the network 400 would be trained with a random date and time for 98%
of the training trials (on average). For 49 available records, P~~,o~ would be 49/49=1.0, and the network 400 would be trained with the actual date and time essentially all of the time.
Training is done by applying the example to the appropriate inputs and outputs of the network 400. then using the backward propagation (earning algorithm to modify the values of the weights of the connections in the network 400. Details of the backward propagation algorithm are described in the Rumelhart, Iiinton, and Vv%illiams paper. which was referred to above. In this training, a set of data is used that includes both input and output data.
Thus, for example, a particular piece of data might consist of the day of the week and the time of day for inputs and a telephone number as output. The input data to the input layer are entered by setting the input unit matching the output from the example to 1.0, or "true," and setting all other input units to 0.0, or "false." Thus, in the case of the day of the week "Tuesday", the input unit corresponding to "Tuesday" is set to 1.0, while the other 6 input units are set to 0Ø
The telephone number for each trial is then effectively applied to the output units using the following steps. First, information is applied to the inputs of the network and then allowed to propagate through the network to the output units. Next, a calculation is made of the "error" of the network for each output unit by subtracting the actual output (activity level) of each unit from either I .0, if the unit corresponds to the telephone number associated with the given trial, or 0Ø This error value is then "propagated backward" through the earlier layers of the network 400, by systematically changing the r ., , ., .
WO 98/38781 PCT/LJ598/t13626 values of the weights according to the backward propagation learning algorithm in such a manner as to reduce the error. A given set of data is applied repeatedly to a network 400 until overall error is reduced to the point that the network 400 is considered trained.
The ''accumulated error" is determined by summing the error for all output units across all training examples. The error for each unit is equal to the desired output value minus the actual output value. After training the network 400 with an example.
a test is made of the result of the training thus far (step 760). The backward propagation learning algorithm is a "hill-climbing" algorithm. It uses a computation based on local information to seek a global minimum of error.
Such an algorithm can become "stuck," however. Networks may oscillate.
continuing to learn for a short period but then falling back. The accumulated error utter training is tested against a threshold level below which the network 40U is considered fully trained. If the error is shove the threshold and the number of training trials is helm a maximum. the network 400 needs more training. If the error is above the threshold anti the maximum allowed number of training trials have been reached, the nework .10() is considered "stuck." In general. the complexity of the problem is low and it is unlikely that the network 400 will become stuck. Because certain sets of random weight values can cause a network to become stuck even with problems of low complexity, it is necessary to test for this condition and respond to it.
If network 400 needs more training (step 760), control returns to obtain another training example (step 730). If the network 400 is "stuck," control passes to initialize the weights and begin the training process from the beginning (step 720). If the network 400 has its accumulated error below the threshold, then the training is completed.
Conclusion Systems consistent with the present invention thus improve the accuracy of call-forwarding for personal telephone ntunbers using adaptive models such as neural networks of behavior of individuals corresponding to the assigned personal telephone numbers. When a call to an assigned personal telephone number is received, the call is forwarded to a telephone at a specific location by translating the personal telephone number into the actual telephone number for the telephone at that location.
This "translation" process includes using the model of the behavior of the party being called (i.e., the individual with the personal telephone number) to determine the likelihood that the individual is currently at the location for the telephone with the actual telephone number. The present invention may also be used in a more conventional call-forwarding system in which the number called is that of a physical telephone line rather than a personal telephone number.
The foregoing description of a preferred embodiment of the invention has been presented for purposes of illustration and description. It is not intended to he exhaustive or to limit the invention to the precise form disclosed. For example, the technique is also applicable to call-forwarding systems in which a user has created a set of telephone numbers for a call to be forwarded to. This is initiated either by the user choosing a "Send All Calls" function, or by the user setting up a procedure in which his or her usual telephone number is rung a certain number of times. after which the call is forwarded if the call is not answered. The technique can also be used in a call-forwarding system that is integrated with a multipurpose telephony application that makes use of automatic speech recognition to perform such tasks as voice activated dialing, call management. and other services, in which users are likely to call into a central number to activate these services. Such users can then control call-forwarding, including selecting forwarding by means of the predictive neural network, with the system determining (by caller ID) the location of the user whenever a call is made into the central number.
Alternatively, the call-forwarding technique according to the present invention may be implemented by a PBX system, such as the Nortel Meridian 1 PBX system. In this alternative, for example, a call to an individual's telephone connected by the PBX systems is forwarded to other connected telephones based on the individual's behavior. Other modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. The scope of the invention is defined by the claims and their equivalents.
~_ ..__..... _._._. .._.___.~___ ~. r ~ .,. . .,. .
Claims (27)
1. A method forwarding a telephone call comprising the steps of:
receiving a call to a telephone number associated with a subscriber;
predicting, based on a model of the subscribers calling behavior, likelihoods of the subscriber being at locations corresponding to stored telephone numbers by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior; and determining a sequence of the stored telephone numbers according to the predicted likelihoods.
receiving a call to a telephone number associated with a subscriber;
predicting, based on a model of the subscribers calling behavior, likelihoods of the subscriber being at locations corresponding to stored telephone numbers by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior; and determining a sequence of the stored telephone numbers according to the predicted likelihoods.
2. The method of claim 1 further comprising the step of:
forwarding the received call to at least one of the stored telephone numbers according to the sequence.
forwarding the received call to at least one of the stored telephone numbers according to the sequence.
3. The method of claim 1, wherein the model of the subscriber's behavior includes weights determined from data representing previous calls connecting the subscriber when located at a location corresponding to at least one of the stored telephone numbers, and wherein the determining step includes the substep of:
applying the weights to order the stored telephone numbers according to the predicted likelihoods.
applying the weights to order the stored telephone numbers according to the predicted likelihoods.
4. The method of claim 1, wherein the model of the subscriber's behavior comprises a representation based on the subscriber's environment and actions with respect to receiving telephone calls, and wherein the predicting step includes the substep of:
examining the abstract representation for indications that the subscriber is located at the location corresponding to a particular telephone number.
examining the abstract representation for indications that the subscriber is located at the location corresponding to a particular telephone number.
5. The method of claim 1, wherein the model of the subscriber's behavior comprises a neural network and wherein the predicting step includes the substep of:
activating the neural network to determine indications that the subscriber is located at the location corresponding to a particular telephone number.
activating the neural network to determine indications that the subscriber is located at the location corresponding to a particular telephone number.
6. The method of claim 1, further comprising the step of:
training the model of the subscriber's behavior with data indicating previous calls connecting a caller successfully with each of the stored telephone numbers.
training the model of the subscriber's behavior with data indicating previous calls connecting a caller successfully with each of the stored telephone numbers.
7. The method of claim 1, further comprising the steps of:
creating a training set including information related to at last one previous received call; and modifying the model of the subscriber's behavior in accordance with the training set.
creating a training set including information related to at last one previous received call; and modifying the model of the subscriber's behavior in accordance with the training set.
8. The method of claim 7, wherein the model of the subscriber's behavior includes weights determined from data representing previous calls connecting the subscriber when located at a location corresponding to al least one of the stored telephone numbers, and wherein the modifying step includes the substep of:
altering the weights of the subscriber's behavior model to reflect the information related to the previous call.
altering the weights of the subscriber's behavior model to reflect the information related to the previous call.
9. The method of claim 1 further comprising the step of:
forwarding the received call to each of the stored telephone numbers according to the sequence.
forwarding the received call to each of the stored telephone numbers according to the sequence.
10. The method of claim 9, wherein the forwarding step includes the substep of:
determining whether the subscriber is located at a location associated with the telephone number to which the received call was forwarded.
determining whether the subscriber is located at a location associated with the telephone number to which the received call was forwarded.
11. The method of claim 1, wherein the determining step includes the substep of:
deleting telephone numbers from the sequence that are below a threshold predicted likelihood.
deleting telephone numbers from the sequence that are below a threshold predicted likelihood.
12. the method of claim 11 further comprising the step of:
forwarding the received call to each of the stored telephone numbers according to the sequence.
forwarding the received call to each of the stored telephone numbers according to the sequence.
13. The method of claim 12, wherein the forwarding step includes the substep of:
determining whether the subscriber is located at a location associated with the telephone number to which the received call was forwarded.
determining whether the subscriber is located at a location associated with the telephone number to which the received call was forwarded.
14. A system for forwarding a telephone call comprising:
means for receiving a call to a telephone number associated with a subscriber;
means for predicting, based on a model of the subscribers calling behavior, likelihoods of the subscriber being at locations corresponding to stored telephone numbers by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior; and means for determining a sequence of the stared telephone numbers according to the predicted likelihoods.
means for receiving a call to a telephone number associated with a subscriber;
means for predicting, based on a model of the subscribers calling behavior, likelihoods of the subscriber being at locations corresponding to stored telephone numbers by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior; and means for determining a sequence of the stared telephone numbers according to the predicted likelihoods.
15. The system of claim 14 further comprising:
means for forwarding the received call to at least one of the stored telephone numbers according to the sequence.
means for forwarding the received call to at least one of the stored telephone numbers according to the sequence.
16. The system of claim 14, wherein the model of the subscribers behavior includes weights determined from data representing previous calls connecting the subscriber when located at a location corresponding to at least one of the stored telephone numbers, and wherein the determining means includes:
means for applying the weights to order the stored telephone numbers according to the predicted likelihoods.
means for applying the weights to order the stored telephone numbers according to the predicted likelihoods.
17. The system of claim 14, wherein the model of the subscriber's behavior comprises a representation based on the subscriber's environment and actions with respect to receiving telephone calls, and wherein the predicting means includes:
means for examining the abstract representation for indications that the subscriber is located at the location corresponding to a particular telephone number.
means for examining the abstract representation for indications that the subscriber is located at the location corresponding to a particular telephone number.
18. The system of claim 14, wherein the model of the subscriber's behavior comprises a neural network and wherein the predicting means includes:
means for activating the neural network to determine indications that the subscriber is located at the location corresponding to a particular telephone number.
means for activating the neural network to determine indications that the subscriber is located at the location corresponding to a particular telephone number.
19. The system of claim 14, further comprising:
means for training the model of the subscriber's behavior with data indicating previous calls connecting a caller successfully with each of the stored telephone numbers.
means for training the model of the subscriber's behavior with data indicating previous calls connecting a caller successfully with each of the stored telephone numbers.
20. The system of claim 14, further comprising:
means for creating a training set including information related to at least one previous received call; and means for modifying the model of the subscriber's behavior in accordance with the training set.
means for creating a training set including information related to at least one previous received call; and means for modifying the model of the subscriber's behavior in accordance with the training set.
21. The system of claim 20, wherein the model of the subscriber's behavior includes weights determined from data representing previous calls connecting the subscriber when located at a location corresponding to at least one of the stored telephone numbers, and wherein the codifying means includes:
means for altering the weights of the subscriber's behavior model to reflect the information related to the previous call.
means for altering the weights of the subscriber's behavior model to reflect the information related to the previous call.
22. The system of claim 14 further comprising:
means for forwarding the received call to each of the stored telephone numbers according to the sequence.
means for forwarding the received call to each of the stored telephone numbers according to the sequence.
23. The system of claim 22, wherein the forwarding means includes:
means for determining whether the subscriber is located at a location associated with the telephone number to which the received call was forwarded.
means for determining whether the subscriber is located at a location associated with the telephone number to which the received call was forwarded.
24. The system of claim 14, wherein the determining means include:
mans for deleting telephone numbers from the sequence that are below a threshold predicted likelihood.
mans for deleting telephone numbers from the sequence that are below a threshold predicted likelihood.
25. The system of claim 24 further comprising:
means for forwarding the received call to each of the stored telephone numbers according to the sequence.
means for forwarding the received call to each of the stored telephone numbers according to the sequence.
26. The system of claim 25, wherein the forwarding means includes:
means for determining whether the subscriber is located at a location associated with the telephone number to which the received call was forwarded.
means for determining whether the subscriber is located at a location associated with the telephone number to which the received call was forwarded.
27. A method for forwarding a telephone call comprising the steps of:
receiving a telephone call to a subscriber;
predicting, likelihoods of the subscriber being at locations corresponding to schedule-independent telephone numbers based on a predictive model of the subscriber's behavior based on the subscriber's environment and actions by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior; and forwarding the telephone call to at least one of the schedule-independent telephone numbers according to the predicted likelihoods.
receiving a telephone call to a subscriber;
predicting, likelihoods of the subscriber being at locations corresponding to schedule-independent telephone numbers based on a predictive model of the subscriber's behavior based on the subscriber's environment and actions by applying weights associated with the telephone numbers such that recent subscriber behavior is favored over previous subscriber behavior; and forwarding the telephone call to at least one of the schedule-independent telephone numbers according to the predicted likelihoods.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/806,861 | 1997-02-26 | ||
US08/806,861 US5905789A (en) | 1996-10-07 | 1997-02-26 | Call-forwarding system using adaptive model of user behavior |
PCT/US1998/003626 WO1998038781A1 (en) | 1997-02-26 | 1998-02-25 | Call-forwarding system using adaptive model of user behavior |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2282633A1 CA2282633A1 (en) | 1998-09-03 |
CA2282633C true CA2282633C (en) | 2003-05-13 |
Family
ID=25194998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002282633A Expired - Fee Related CA2282633C (en) | 1997-02-26 | 1998-02-25 | Call-forwarding system using adaptive model of user behavior |
Country Status (6)
Country | Link |
---|---|
US (1) | US5905789A (en) |
EP (1) | EP0962088B1 (en) |
AU (1) | AU6337598A (en) |
CA (1) | CA2282633C (en) |
DE (1) | DE69823810T2 (en) |
WO (1) | WO1998038781A1 (en) |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7260203B2 (en) * | 1992-08-26 | 2007-08-21 | Bellsouth Intellectual Property Corporation | Method and apparatus for routing calls based on identification of the calling party or calling line |
DE19548190A1 (en) * | 1995-12-22 | 1997-06-26 | Sel Alcatel Ag | Method for deciding whether to accept or not to accept a call, as well as a circuit unit, telecommunications terminal, portable device unit and network component for a telecommunications network |
CA2180684C (en) * | 1996-07-08 | 2001-08-21 | Paul Erb | Automatic call forwarding |
DE19637859A1 (en) * | 1996-09-17 | 1998-03-19 | Philips Patentverwaltung | Telecommunication system with call forwarding |
US6208713B1 (en) | 1996-12-05 | 2001-03-27 | Nortel Networks Limited | Method and apparatus for locating a desired record in a plurality of records in an input recognizing telephone directory |
US6477374B1 (en) * | 1997-01-03 | 2002-11-05 | Siemens Information And Communication Networks, Inc. | Apparatus and method for calendar based call routing |
US6119006A (en) | 1997-01-03 | 2000-09-12 | Siemens Information And Communication Systems, Inc. | System and method for calendar-based cellular smart switching |
JPH1117796A (en) * | 1997-06-19 | 1999-01-22 | Matsushita Electric Ind Co Ltd | Voice recognition telephony equipment |
US6636733B1 (en) | 1997-09-19 | 2003-10-21 | Thompson Trust | Wireless messaging method |
US6084954A (en) * | 1997-09-30 | 2000-07-04 | Lucent Technologies Inc. | System and method for correlating incoming and outgoing telephone calls using predictive logic |
US6104799A (en) * | 1997-10-24 | 2000-08-15 | At&T Corp. | Customer defined call setup |
US6301349B1 (en) * | 1998-06-04 | 2001-10-09 | Bellsouth Intellectual Property Corporation | Method and system to connect an unanswered forwarded communication directly to a voice mail service |
US9038193B2 (en) * | 1998-08-14 | 2015-05-19 | Azos Al, Llc | System and method of data cognition incorporating autonomous security protection |
US20020128033A1 (en) * | 1998-11-30 | 2002-09-12 | Burgess Shelia Jean | Communications control method and apparatus |
US20080139167A1 (en) * | 1999-04-16 | 2008-06-12 | Shelia Jean Burgess | Communications Control Method And Apparatus |
DE19843201A1 (en) * | 1998-09-14 | 1999-08-12 | Mannesmann Ag | Setting-up telecommunication between caller and called subscriber |
US7110526B1 (en) * | 1998-10-14 | 2006-09-19 | Rockwell Electronic Commerce Technologies, Llc | Neural network for controlling calls in a telephone switch |
JP3839605B2 (en) * | 1998-12-22 | 2006-11-01 | 株式会社湘南合成樹脂製作所 | Manhole lining material |
DE19906347A1 (en) * | 1999-02-17 | 2000-08-31 | Mannesmann O Tel O Gmbh | Process for forwarding calls and / or addressed files that are sent electronically over local or global networks |
EP1037453A3 (en) * | 1999-03-18 | 2004-03-03 | Siemens Aktiengesellschaft | Procedure for distributing information to a selection of users in a telecommunications network |
DE19916359A1 (en) * | 1999-04-12 | 2000-10-26 | Ericsson Telefon Ab L M | PCS communication system server Method for controlling a PCS personal communication system server |
FR2795900B1 (en) * | 1999-06-29 | 2004-09-24 | Sigma B V B A | ADAPTIVE CALL CENTER |
US6678366B1 (en) * | 1999-08-31 | 2004-01-13 | Ulysses Esd, Inc. | System and method for locating subscribers using a best guess location algorithm |
US6898274B1 (en) | 1999-09-21 | 2005-05-24 | Nortel Networks Limited | Method and apparatus for adaptive time-based call routing in a communications system |
US6714636B1 (en) * | 1999-09-24 | 2004-03-30 | Lucent Technologies Inc. | Apparatus, method and system for subscriber control of timed and regional membership in multiple member termination groups for multiple leg telecommunication sessions |
GB2355888A (en) * | 1999-10-27 | 2001-05-02 | Motorola Ltd | Configuring grade of service for mobile based on historical patterns of movement or environmental factors |
US7184533B1 (en) | 1999-12-07 | 2007-02-27 | Siemens Communications, Inc. | Method and apparatus for mixed media contact notification service |
US6771761B1 (en) | 1999-12-29 | 2004-08-03 | Bellsouth Intellectual Property Corporation | System and method for caller-selectable call routing from a single telephone number |
US6876738B1 (en) * | 2000-06-09 | 2005-04-05 | Lucent Technologies Inc. | Apparatus, method and system for intelligent tandeming of incoming calls to application nodes in telecommunication systems |
US6956939B1 (en) * | 2000-06-09 | 2005-10-18 | Lucent Technologies Inc. | Apparatus, method and system for message-based intelligent tandeming of incoming calls to application nodes in telecommunication systems |
US7415516B1 (en) | 2000-08-08 | 2008-08-19 | Cisco Technology, Inc. | Net lurkers |
US7143182B1 (en) | 2000-08-08 | 2006-11-28 | Cisco Technology, Inc. | Smart secretary for routing call objects in a telephony network |
US7246145B1 (en) | 2000-08-08 | 2007-07-17 | Cisco Technology, Inc. | Fully distributed, scalable infrastructure, communication system |
US7219058B1 (en) * | 2000-10-13 | 2007-05-15 | At&T Corp. | System and method for processing speech recognition results |
DE10065744B4 (en) * | 2000-12-29 | 2006-06-01 | Siemens Ag | Method for operating a system for the determination of planning data for the personnel and / or resource planning of a call center |
US7133909B2 (en) | 2001-01-12 | 2006-11-07 | Microsoft Corporation | Systems and methods for locating mobile computer users in a wireless network |
WO2002063486A1 (en) * | 2001-02-05 | 2002-08-15 | Personity, Inc. | A method and device for displaying contact information in a presence and availability management system |
US6950650B2 (en) * | 2001-02-12 | 2005-09-27 | Siemens Ag | System and method for call forwarding synchronization in a communication system |
US7330895B1 (en) * | 2001-03-15 | 2008-02-12 | Microsoft Corporation | Representation, decision models, and user interface for encoding managing preferences, and performing automated decision making about the timing and modalities of interpersonal communications |
US7356137B1 (en) * | 2001-05-07 | 2008-04-08 | At&T Mobility Ii Llc | Method and system for signaling presence of users in a multi-networked environment |
US20020173297A1 (en) * | 2001-05-18 | 2002-11-21 | Phillips Alexander Lynn | Call forwarding features in mobile wireless communication devices and methods therefor |
US7260077B2 (en) * | 2001-06-18 | 2007-08-21 | Nortel Networks Limited | Adaptive scheduling for multi-carrier systems |
US7194080B2 (en) * | 2001-06-29 | 2007-03-20 | Bellsouth Intellectual Property Corporation | Automatically sequentially ringing alternative telephone numbers |
US7113775B2 (en) * | 2001-07-06 | 2006-09-26 | Siemens Communications, Inc. | Self-learning intelligent call routing gatekeeper |
EP1280080A1 (en) * | 2001-07-26 | 2003-01-29 | BRITISH TELECOMMUNICATIONS public limited company | Method and apparatus for modelling user behaviour |
US7099453B2 (en) * | 2001-09-26 | 2006-08-29 | Sbc Properties, L.P. | Method and apparatus for enhanced call routing in a telecommunication system |
GB0130596D0 (en) * | 2001-12-20 | 2002-02-06 | Nokia Corp | Call handling logic |
US7949713B2 (en) * | 2002-02-13 | 2011-05-24 | Panasonic Corporation | Information providing apparatus, provided information presenting apparatus, and information providing method |
US7206388B2 (en) * | 2002-03-18 | 2007-04-17 | Openwave Systems Inc. | System and method for providing voice-activated presence information |
US20040147258A1 (en) * | 2002-08-21 | 2004-07-29 | Lg Electronics Inc. | Call pick-up system and method in a mobile communication network |
US6999573B2 (en) * | 2002-11-07 | 2006-02-14 | International Business Machines Corporation | Locale based call forwarding with automated creation of new locales |
US20040107128A1 (en) * | 2002-11-07 | 2004-06-03 | International Business Machines Corporation | Behavior based life support services |
US7082192B2 (en) * | 2002-11-07 | 2006-07-25 | International Business Machines Corporation | Locale based call forwarding |
US7401057B2 (en) | 2002-12-10 | 2008-07-15 | Asset Trust, Inc. | Entity centric computer system |
US20040116781A1 (en) * | 2002-12-17 | 2004-06-17 | International Business Machines Corporation | Behavior based life support generating new behavior patterns from historical behavior indicators |
US20040116782A1 (en) * | 2002-12-17 | 2004-06-17 | International Business Machines Corporation | Behavior based life support with abstract behavior patterns |
US20040116783A1 (en) * | 2002-12-17 | 2004-06-17 | International Business Machines Corporation | Behavior based life support generating new behavior patterns from behavior indicators for a user |
US20040143453A1 (en) * | 2002-12-17 | 2004-07-22 | International Business Machines Corporation | Behavior based life support with default behavior patterns |
HK1059191A2 (en) * | 2003-02-26 | 2004-05-28 | Intexact Technologies Ltd | A telephony system and a method of operating same |
HK1052830A2 (en) * | 2003-02-26 | 2003-09-05 | Intexact Technologies Ltd | An integrated programmable system for controlling the operation of electrical and/or electronic appliances of a premises |
US20040174975A1 (en) * | 2003-03-05 | 2004-09-09 | Nortel Networks Limited | Common call routing for multiple telephony devices |
US7035390B2 (en) * | 2003-03-07 | 2006-04-25 | Nortel Networks Limited | User controlled call routing for multiple telephony devices |
US20040192270A1 (en) * | 2003-03-28 | 2004-09-30 | Kreitzer Stuart S. | Hotlist system and method for communication devices |
US6978003B1 (en) * | 2003-05-22 | 2005-12-20 | Nortel Networks Limited | Adaptive call routing for multiple telephony terminals |
JP4718767B2 (en) * | 2003-06-24 | 2011-07-06 | Necインフロンティア株式会社 | Communication switch |
FR2859062A1 (en) * | 2003-08-21 | 2005-02-25 | France Telecom | METHOD AND SYSTEM FOR INTELLIGENT ROUTING OF TELEPHONE CALLS |
US20050047575A1 (en) * | 2003-08-29 | 2005-03-03 | Stephen Parker | Secure valet telephone system |
CA2483123A1 (en) * | 2003-09-30 | 2005-03-30 | At&T Corp. | Enhanced call notification service |
US7664249B2 (en) * | 2004-06-30 | 2010-02-16 | Microsoft Corporation | Methods and interfaces for probing and understanding behaviors of alerting and filtering systems based on models and simulation from logs |
US7194257B2 (en) * | 2004-12-27 | 2007-03-20 | Sony Ericsson Mobile Communications Ab | Automatic dialing for a wireless communications device |
US8713025B2 (en) | 2005-03-31 | 2014-04-29 | Square Halt Solutions, Limited Liability Company | Complete context search system |
US7869799B2 (en) * | 2005-07-28 | 2011-01-11 | Research In Motion Limited | Method and system for forwarding calls placed to a telecommunications destination |
US8295851B2 (en) | 2005-08-03 | 2012-10-23 | Michael Edward Finnegan | Realtime, interactive and geographically defined computerized personal matching systems and methods |
US8880047B2 (en) | 2005-08-03 | 2014-11-04 | Jeffrey C. Konicek | Realtime, location-based cell phone enhancements, uses, and applications |
US20070127652A1 (en) * | 2005-12-01 | 2007-06-07 | Divine Abha S | Method and system for processing calls |
US7697503B2 (en) * | 2005-12-16 | 2010-04-13 | Qwest Communications International Inc. | Dynamic speed-dial list |
US7933612B2 (en) * | 2006-02-28 | 2011-04-26 | Microsoft Corporation | Determining physical location based upon received signals |
US20070206747A1 (en) * | 2006-03-01 | 2007-09-06 | Carol Gruchala | System and method for performing call screening |
DE102006039664A1 (en) * | 2006-08-24 | 2008-03-13 | Deutsche Telekom Ag | Method and system for carrying out communication in a telecommunication network |
US20080281760A1 (en) * | 2007-04-30 | 2008-11-13 | Bellsouth Intellectual Property Corporation | Service Negotiation |
WO2009046169A1 (en) * | 2007-10-02 | 2009-04-09 | Ascendent Telecommunications, Inc. | Method, apparatus and system for intelligent call routing |
US20100046731A1 (en) * | 2007-10-02 | 2010-02-25 | Douglas Gisby | Method, apparatus and system for use of presence and location information in intelligent call routing |
EP2222067B1 (en) * | 2009-02-20 | 2018-12-19 | BlackBerry Limited | Call routing based on user profile generated according to membership of groups |
US9332121B2 (en) * | 2009-02-20 | 2016-05-03 | Blackberry Limited | Method for implementing user-specific calling preferences |
US8761746B2 (en) * | 2009-04-16 | 2014-06-24 | Mitel Networks Corporation | Extended cascaded ringing |
US8463257B1 (en) | 2010-01-14 | 2013-06-11 | Michael Shaoul | System for redirecting cellular phone calls to conventional landline handsets |
GB2481992A (en) * | 2010-07-13 | 2012-01-18 | Sony Europe Ltd | Updating text-to-speech converter for broadcast signal receiver |
US9189729B2 (en) | 2012-07-30 | 2015-11-17 | International Business Machines Corporation | Scalable neural hardware for the noisy-OR model of Bayesian networks |
US9805718B2 (en) * | 2013-04-19 | 2017-10-31 | Sri Internaitonal | Clarifying natural language input using targeted questions |
US10110737B2 (en) * | 2014-09-29 | 2018-10-23 | Qualcomm Incorporated | Intelligent options in redial screens of communication devices |
CN110692048B (en) * | 2017-03-20 | 2023-08-15 | 电子湾有限公司 | Detection of task changes in sessions |
US10681209B2 (en) * | 2018-11-06 | 2020-06-09 | Microsoft Technology Licensing, Llc | Sequenced device alerting |
US10951770B2 (en) * | 2019-04-16 | 2021-03-16 | Verizon Patent And Licensing Inc. | Systems and methods for utilizing machine learning to detect and determine whether call forwarding is authorized |
Family Cites Families (95)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3742143A (en) * | 1971-03-01 | 1973-06-26 | Bell Telephone Labor Inc | Limited vocabulary speech recognition circuit for machine and telephone control |
US4313035A (en) * | 1980-01-18 | 1982-01-26 | Bell Telephone Laboratories, Incorporated | Method of providing person locator service |
US4348550A (en) * | 1980-06-09 | 1982-09-07 | Bell Telephone Laboratories, Incorporated | Spoken word controlled automatic dialer |
US4593157A (en) * | 1984-09-04 | 1986-06-03 | Usdan Myron S | Directory interface and dialer |
FR2571191B1 (en) * | 1984-10-02 | 1986-12-26 | Renault | RADIOTELEPHONE SYSTEM, PARTICULARLY FOR MOTOR VEHICLE |
US4737976A (en) * | 1985-09-03 | 1988-04-12 | Motorola, Inc. | Hands-free control system for a radiotelephone |
US5182765A (en) * | 1985-11-26 | 1993-01-26 | Kabushiki Kaisha Toshiba | Speech recognition system with an accurate recognition function |
US4959855A (en) * | 1986-10-08 | 1990-09-25 | At&T Bell Laboratories | Directory assistance call processing and calling customer remote signal monitoring arrangements |
US4829576A (en) * | 1986-10-21 | 1989-05-09 | Dragon Systems, Inc. | Voice recognition system |
JP2584249B2 (en) * | 1986-10-31 | 1997-02-26 | 三洋電機株式会社 | Voice recognition phone |
US4862498A (en) * | 1986-11-28 | 1989-08-29 | At&T Information Systems, Inc. | Method and apparatus for automatically selecting system commands for display |
US4827500A (en) * | 1987-01-30 | 1989-05-02 | American Telephone And Telegraph Company, At&T Bell Laboratories | Automatic speech recognition to select among call destinations |
US4959850A (en) * | 1987-05-29 | 1990-09-25 | Kabushiki Kaisha Toshiba | Radio telephone apparatus |
EP0293259A3 (en) * | 1987-05-29 | 1990-03-07 | Kabushiki Kaisha Toshiba | Voice recognition system used in telephone apparatus |
DE3819538C3 (en) * | 1987-06-08 | 1996-08-14 | Ricoh Kk | Voice activated dialer |
US4979206A (en) * | 1987-07-10 | 1990-12-18 | At&T Bell Laboratories | Directory assistance systems |
US4754951A (en) * | 1987-08-14 | 1988-07-05 | Union Carbide Corporation | Tuyere assembly and positioning method |
DE3885683T2 (en) * | 1987-09-11 | 1994-03-10 | Toshiba Kawasaki Kk | Telephone. |
DE3851113T3 (en) * | 1987-10-08 | 1997-09-25 | Nec Corp | Voice-activated dialer with memories for full dialing for all users and speed dialing for authorized users. |
US4928302A (en) * | 1987-11-06 | 1990-05-22 | Ricoh Company, Ltd. | Voice actuated dialing apparatus |
JPH01167898A (en) * | 1987-12-04 | 1989-07-03 | Internatl Business Mach Corp <Ibm> | Voice recognition equipment |
US4924496A (en) * | 1988-05-12 | 1990-05-08 | Romek Figa D/B/A Abraham & Sons | Automatic incoming telephone call originating number and party display system |
US5007081A (en) * | 1989-01-05 | 1991-04-09 | Origin Technology, Inc. | Speech activated telephone |
JPH02209055A (en) * | 1989-02-09 | 1990-08-20 | Toshiba Corp | Telephone set |
US5301227A (en) * | 1989-04-17 | 1994-04-05 | Sanyo Electic Co., Ltd. | Automatic dial telephone |
JP2927891B2 (en) * | 1989-06-19 | 1999-07-28 | 日本電気株式会社 | Voice dialing device |
CA2020859C (en) * | 1989-07-13 | 1996-04-30 | Morihiro Katsurada | Communication unit comprising caller identification function and caller identifying method in a digital communication network |
JP3045510B2 (en) * | 1989-12-06 | 2000-05-29 | 富士通株式会社 | Speech recognition processor |
JPH03270453A (en) * | 1990-03-20 | 1991-12-02 | Fujitsu Ltd | Automatic follow-up telephony device |
US5187735A (en) * | 1990-05-01 | 1993-02-16 | Tele Guia Talking Yellow Pages, Inc. | Integrated voice-mail based voice and information processing system |
US5168548A (en) * | 1990-05-17 | 1992-12-01 | Kurzweil Applied Intelligence, Inc. | Integrated voice controlled report generating and communicating system |
US5313516A (en) * | 1990-05-31 | 1994-05-17 | Phonemate Inc. | Telephone answering device with automatic function |
FI89652C (en) * | 1990-09-27 | 1993-10-25 | Nokia Mobile Phones Ltd | Procedure for speed dialing on a telephone set |
US5165095A (en) * | 1990-09-28 | 1992-11-17 | Texas Instruments Incorporated | Voice telephone dialing |
US5181237A (en) * | 1990-10-12 | 1993-01-19 | At&T Bell Laboratories | Automation of telephone operator assistance calls |
US5185781A (en) * | 1990-10-12 | 1993-02-09 | At&T Bell Laboratories | Automation of telephone operator assistance calls |
US5243645A (en) * | 1990-11-01 | 1993-09-07 | At&T Bell Laboratories | Automatic system for forwarding of calls |
US5163081A (en) * | 1990-11-05 | 1992-11-10 | At&T Bell Laboratories | Automated dual-party-relay telephone system |
US5204894A (en) * | 1990-11-09 | 1993-04-20 | Bell Atlantic Network Services, Inc. | Personal electronic directory |
JPH04207341A (en) * | 1990-11-30 | 1992-07-29 | Sony Corp | Radio telephone system |
US5155763A (en) * | 1990-12-11 | 1992-10-13 | International Business Machines Corp. | Look ahead method and apparatus for predictive dialing using a neural network |
US5553125A (en) * | 1991-01-11 | 1996-09-03 | Nokia Mobile Phones (U.K.) Limited | Telephone apparatus with calling line identification |
GB2251763B (en) * | 1991-01-11 | 1995-06-21 | Technophone Ltd | Telephone apparatus with calling line identification |
JP2707854B2 (en) * | 1991-02-06 | 1998-02-04 | 日本電気株式会社 | Mobile phone |
US5369685A (en) * | 1991-03-07 | 1994-11-29 | Sprint Communications Company L.P. | Voice-activated telephone directory and call placement system |
US5230017A (en) * | 1991-11-08 | 1993-07-20 | British Technology Group Usa | Communication line monitoring system |
DE69232407T2 (en) * | 1991-11-18 | 2002-09-12 | Toshiba Kawasaki Kk | Speech dialogue system to facilitate computer-human interaction |
JP3064627B2 (en) * | 1992-01-28 | 2000-07-12 | 富士通株式会社 | Service control device |
US5371779A (en) * | 1992-03-13 | 1994-12-06 | Nec Corporation | Call initiating system for mobile telephone units |
US5315649A (en) * | 1992-04-15 | 1994-05-24 | Vcs Industries, Inc. | Toll call telephone service center |
US5333184A (en) * | 1992-05-06 | 1994-07-26 | At&T Bell Laboratories | Call message recording for telephone systems |
US5329578A (en) * | 1992-05-26 | 1994-07-12 | Northern Telecom Limited | Personal communication service with mobility manager |
JPH0614098A (en) * | 1992-06-26 | 1994-01-21 | Sharp Corp | Telephone set with abbreviation dial list generation aid tool |
US5274699A (en) * | 1992-07-24 | 1993-12-28 | Motorola, Inc. | Method for providing caller identification to a call recipient |
US5325421A (en) * | 1992-08-24 | 1994-06-28 | At&T Bell Laboratories | Voice directed communications system platform |
US5353336A (en) * | 1992-08-24 | 1994-10-04 | At&T Bell Laboratories | Voice directed communications system archetecture |
CA2078045C (en) * | 1992-09-11 | 1999-11-16 | Mark R. Sestak | Global management of telephone directory |
JPH06121014A (en) * | 1992-10-06 | 1994-04-28 | Kyocera Corp | Communication terminal equipment |
US5452397A (en) * | 1992-12-11 | 1995-09-19 | Texas Instruments Incorporated | Method and system for preventing entry of confusingly similar phases in a voice recognition system vocabulary list |
US5465401A (en) * | 1992-12-15 | 1995-11-07 | Texas Instruments Incorporated | Communication system and methods for enhanced information transfer |
WO1994014270A1 (en) * | 1992-12-17 | 1994-06-23 | Bell Atlantic Network Services, Inc. | Mechanized directory assistance |
US5717738A (en) * | 1993-01-11 | 1998-02-10 | Texas Instruments Incorporated | Method and device for generating user defined spoken speed dial directories |
US5483579A (en) * | 1993-02-25 | 1996-01-09 | Digital Acoustics, Inc. | Voice recognition dialing system |
US5430791A (en) * | 1993-02-26 | 1995-07-04 | At&T Corp. | Technique for administering personal telephone numbers |
CA2091658A1 (en) * | 1993-03-15 | 1994-09-16 | Matthew Lennig | Method and apparatus for automation of directory assistance using speech recognition |
US5452340A (en) * | 1993-04-01 | 1995-09-19 | Us West Advanced Technologies, Inc. | Method of voice activated telephone dialing |
JPH08506710A (en) * | 1993-06-11 | 1996-07-16 | ノーザン・テレコム・リミテッド | User-controlled call management service method and apparatus |
US5487111A (en) * | 1993-07-29 | 1996-01-23 | At&T Ipm Corp. | Telecommunications system sequence calling |
JPH0795279A (en) * | 1993-09-20 | 1995-04-07 | Fujitsu Ltd | Memory dialing control system |
US5371781A (en) * | 1993-09-30 | 1994-12-06 | At&T Corp. | System and method for identifying the incoming directory number when multiple directory numbers are assigned to one wireless device |
US5392342A (en) * | 1993-10-27 | 1995-02-21 | At&T Corp. | Technique for use in sequentially routing personal telephone calls |
CA2136796C (en) * | 1993-11-29 | 1998-11-24 | Shinichi Urasaka | Cordless telephone apparatus |
US5394464A (en) * | 1994-03-01 | 1995-02-28 | At&T Corp. | Progressive automatic activation and automatic resetting of call coverage |
JPH07283858A (en) * | 1994-04-06 | 1995-10-27 | Nippon Telegr & Teleph Corp <Ntt> | Talking opposite party automatic registration type voice dialer |
JPH07282203A (en) * | 1994-04-07 | 1995-10-27 | Hitachi Ltd | Character input device |
US5488652A (en) * | 1994-04-14 | 1996-01-30 | Northern Telecom Limited | Method and apparatus for training speech recognition algorithms for directory assistance applications |
US5642411A (en) * | 1994-04-25 | 1997-06-24 | Illinois Technology Transfer Llc | Anticipatory call distributor |
JPH07320001A (en) * | 1994-05-24 | 1995-12-08 | Toshiba Corp | Character recognition device and method for referring to recognition dictionary |
US5509103A (en) * | 1994-06-03 | 1996-04-16 | Motorola, Inc. | Method of training neural networks used for speech recognition |
JPH07336426A (en) * | 1994-06-08 | 1995-12-22 | Sanyo Electric Co Ltd | Communication equipment |
JP2776400B2 (en) * | 1994-08-04 | 1998-07-16 | 日本電気株式会社 | Phone number display |
US5600704A (en) * | 1994-08-30 | 1997-02-04 | Ericsson Inc. | Systems and methods for prioritized routing of telephone calls to a subscriber |
CA2132610C (en) * | 1994-09-21 | 1998-04-28 | Deborah L. Pinard | Delayed seizure on associated devices |
US5568546A (en) * | 1994-10-31 | 1996-10-22 | Lucent Technologies, Inc. | Method and apparatus for dynamic abbreviated dialing assignment |
US5479489A (en) * | 1994-11-28 | 1995-12-26 | At&T Corp. | Voice telephone dialing architecture |
US5706339A (en) * | 1994-11-30 | 1998-01-06 | At&T | Technique for use in processing personal telephone calls |
US5724411A (en) * | 1995-03-22 | 1998-03-03 | At&T Corp. | Method for selectively alerting multiple telephones of an incoming call |
US5524145A (en) * | 1995-04-06 | 1996-06-04 | Bell Atlantic Network Services, Inc. | Incoming call completion threshold restriction |
US5583564A (en) * | 1995-04-24 | 1996-12-10 | Lucent Technologies Inc. | Intelligent call forwarding with videophone display of forwarding destination |
WO1996038971A1 (en) * | 1995-06-01 | 1996-12-05 | Harris Corporation | Computer calling method and system |
US5712957A (en) * | 1995-09-08 | 1998-01-27 | Carnegie Mellon University | Locating and correcting erroneously recognized portions of utterances by rescoring based on two n-best lists |
US5742674A (en) * | 1995-12-22 | 1998-04-21 | At&T Corp. | Automatic call-back system and method using data indicating best time to call |
US5719921A (en) * | 1996-02-29 | 1998-02-17 | Nynex Science & Technology | Methods and apparatus for activating telephone services in response to speech |
DE69729189T2 (en) * | 1996-03-29 | 2005-05-04 | British Telecommunications P.L.C. | Anrufleitweglenkung |
CA2180684C (en) * | 1996-07-08 | 2001-08-21 | Paul Erb | Automatic call forwarding |
-
1997
- 1997-02-26 US US08/806,861 patent/US5905789A/en not_active Expired - Lifetime
-
1998
- 1998-02-25 DE DE69823810T patent/DE69823810T2/en not_active Expired - Lifetime
- 1998-02-25 CA CA002282633A patent/CA2282633C/en not_active Expired - Fee Related
- 1998-02-25 WO PCT/US1998/003626 patent/WO1998038781A1/en active IP Right Grant
- 1998-02-25 EP EP98907613A patent/EP0962088B1/en not_active Expired - Lifetime
- 1998-02-25 AU AU63375/98A patent/AU6337598A/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
DE69823810D1 (en) | 2004-06-17 |
DE69823810T2 (en) | 2005-05-12 |
CA2282633A1 (en) | 1998-09-03 |
EP0962088B1 (en) | 2004-05-12 |
AU6337598A (en) | 1998-09-18 |
WO1998038781A1 (en) | 1998-09-03 |
EP0962088A1 (en) | 1999-12-08 |
US5905789A (en) | 1999-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2282633C (en) | Call-forwarding system using adaptive model of user behavior | |
US6167117A (en) | Voice-dialing system using model of calling behavior | |
US5917891A (en) | Voice-dialing system using adaptive model of calling behavior | |
CA2441195C (en) | Voice response system | |
US8661112B2 (en) | Customized interactive voice response menus | |
US5155763A (en) | Look ahead method and apparatus for predictive dialing using a neural network | |
KR100318147B1 (en) | Callee Control Method for Telecommunication Network Service | |
US5724481A (en) | Method for automatic speech recognition of arbitrary spoken words | |
CA2412950C (en) | Method of providing a user interface for audio telecommunications systems | |
US7167547B2 (en) | Personal calendaring, schedules, and notification using directory data | |
EP0943203B1 (en) | Method and apparatus for locating a desired record in a telephone directory | |
US6195417B1 (en) | Automated system for accessing speech-based information | |
US8712821B2 (en) | Separate matching models based on type of phone associated with a caller | |
US20040066401A1 (en) | System and method for selection of a voice user interface dialogue | |
JPH09505710A (en) | Automatic telephone number guidance method and device | |
US20040003048A1 (en) | Outbound notification using customer profile information | |
CA2256119C (en) | Time slot based call pacing method and apparatus | |
CN111986651B (en) | Man-machine interaction method and device and intelligent interaction terminal | |
EP1761015A1 (en) | Self-adaptive user interface for dialogue systems | |
US7602889B2 (en) | Dynamically alerting callers of changes to menu structures in a telephone prompting system | |
US6795537B1 (en) | Method for updating a database using a telephone | |
US20030174821A1 (en) | Method and apparatus for calling card callbacks | |
Gorin et al. | Spoken language acquisition for automated call routing | |
CN101502083B (en) | Systems and methods for providing answering services | |
US20070127653A1 (en) | System and methods for disclosing call destination characteristic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKLA | Lapsed |
Effective date: 20170227 |