In an Internet Protocol (IP) communications network, any of a plurality of communications devices may be configured to communicate data to and from other communications devices. Users of the communications devices, network administrators, and/or third parties may desire to record these communications. Currently, networks are configured to provide a recorder to passively record such communications. While such a solution may accommodate some recording needs, many networks lack the ability to facilitate recording of communications between endpoints across a wide area network.
Included are methods for facilitating routing of control data associated with a communication to a plurality of recorders. One such method, among others, includes receiving control data related to a communication and routing the received control data to at least one recorder via a layer 3 protocol.
Also included are embodiments of a Internet protocol (IP) analyzer configured to facilitate recording of at least one communication. One embodiment of an IP analyzer includes logic configured to receive control data related to a communication and logic configured to route, via a layer 2 protocol, the received control data to a recorder.
Additionally included are embodiments of a system for routing communication data to a plurality of recorders. One embodiment of a system includes an Internet Protocol (IP) analyzer coupled to a plurality of recorders, the IP analyzer configured to select at least one load balancer that is configured to receive communication data related to the communication and route control data to the selected at least one load balancer.
Other systems, methods, features, and advantages of this disclosure will be or become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description and be within the scope of the present disclosure.
Many aspects of the disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views. While several embodiments are described in connection with these drawings, there is no intent to limit the disclosure to the embodiment or embodiments disclosed herein. On the contrary, the intent is to cover all alternatives, modifications, and equivalents.
Included in this description are systems and methods that may be configured for recording communications utilizing call control forwarding, intelligent call control distribution, and/or other functions. In at least one nonlimiting example, a network can be configured where the point of interception of control data is remote from a desired recorder. In such a configuration, the recorder may not be supplied with mirrored control data. A component, such as an Internet Protocol (IP) analyzer may be configured to forward received control data, such as across a TCP/IP connection. Other embodiments can provide an IP analyzer that is configured to determine which recorder (or recorder group) is configured to record for a predetermined gateway or endpoint. The IP analyzer can also be configured to only forward control data to recorders that are configured to receive communication data related to a particular communication.
Load Balancer
As a nonlimiting example, system designers can analyze network traffic through ports or Virtual Local Area Networks (VLANs) by using a System Port Analyzer (SPAN) to send a copy of the communication traffic (mirrored data) to another port on the switch that has been connected to a Remote Monitoring (RMON) probe. In operation, a copy of the data communicated between communications devices 102 may be directed to recorder 104a. Recorder 104a, however, is not a party to the communication and the communications devices 102 do not generally have information related to the presence and operation of recorder 104a.
Also included in the nonlimiting example of
One should note that while communications devices 102a, 102b, and 102c are directly coupled together and communications devices 102a, 102e, and 102f are coupled directly together, this is a nonlimiting example. As one of ordinary skill in the art will understand, any configuration for providing communications services between communications devices may be implemented. Such a configuration may also be represented with a plurality of communications devices independently coupled to the network 100, however, this too is a nonlimiting example.
While the configuration from
As a nonlimiting example, in operation, a user on communications device 102a can initiate a communication with a user on communications device 102d. One of the users, a system administrator, and/or a third party may desire that the communication be recorded. To facilitate the recording, data is communicated to the load balancer 206 during the communication. The load balancer 206 can be configured to receive the data for recording and route the received data to one or more of the recorders 104d, 104e, and 104f. As data from different communications (and/or different streams of the same communication) is received, the load balancer 206 can determine to which recorder that data is routed. This determination can be made based on a balancing algorithm, such as a round robin algorithm, weighted round robin algorithm, a source-destination algorithm, or other algorithm, as discussed below.
Using a round robin algorithm with three recorders as illustrated in
As illustrated, as communications are received at the load balancer, the round robin algorithm can automatically route calls to a recorder in a manner that provides a substantially balanced workload to each recorder. More specifically, the round robin algorithm can be configured to allocate calls based on past recorder utilization. In other words, the round robin algorithm can be configured to route the most recently received call to recorders in a continuously repeating sequence. While the round robin algorithm may be desirable in certain configurations, a weighted round robin algorithm may be used to route recording traffic in other configurations.
The call distribution in Table 2 shows that the weighted round robin algorithm considers the load on each of the recorders before routing the communication data (e.g., real time packet (RTP)) flow to the recorders. In other words, the algorithm can be configured to determine the recorder(s) that are currently utilized less than other recorders. This can result in providing a substantially balanced distribution of calls across the recorders, in that the least utilized recorder receives the call. If there are two (or more) recorders with equal current utilization, the weighted round robin algorithm can route the newly received call to the recorder next in the sequence (similar to the round robin algorithm discussed above). This means that, depending on the particular configuration, hard-disk space for storing recording data (e.g., at data storage 208) can be utilized in a roughly even manner
While the above described round robin algorithm and weighted round robin algorithm can be utilized for many recording environments, when call data is received at the load balancer in different data streams (i.e., the communication data sent from a communications device is received in a different data stream than the communication data received at the communications device), a source-destination algorithm may be used. More specifically, if the endpoint of a VoIP call (e.g., communications device 102) receives and sends the communications data (e.g., RTP data) on different port numbers, the source-destination load balancing algorithm may be used. The source destination algorithm can more easily handle recording in such an environment, as call streams from the same communication can be sent to different recorders and provide a roughly even distribution of calls for the recorders.
Additionally, while the fail-over recorder can be kept idle when there is no recorder malfunction, this is a nonlimiting example. More specifically, other embodiments can utilize at least a portion of the fail-over recorder's functionality when the fail-over recorder 106g is not otherwise in use. Additionally, while
Additionally, one should note that fail-over protection can be utilized in response to the load balancer 206 detecting a malfunction with a recorder (e.g., dead network cable). Other embodiments can include logic related to the recorder 104 for sending a signal to the load balancer 206 indicating that the recorder is to be taken out of service. Still other embodiments include logic related to the recorder 104 being configured to disable the connection with the load balancer 206 such that the load balancer 206 can detect that the link to that recorder 104 is dead.
Additional elements to the above described network configuration can include health checking logic (and/or watchdogs), where failure of one or more logic components (e.g., software) may be used to signal to the load balancer 206 to take that recorder out of service. Still other embodiments include using redundant recorders to smooth the load of data (e.g., receiving roughly equal amounts of data at each recorder) even when no recorder has failed. This can provide an increased use of available resources and ensure that all recorders are functional. In such a configuration, no one recorder is the “fail-over recorder,” as any and/or all of the recorders can provide the desired fail-over protection. This can provide more redundant capacity into the network and provide greater performance since normal operational traffic is spread evenly across the available resources.
One should also note that in at least one embodiment call data can be preserved when a call is transferred from a first recorder to a second recorder. As a nonlimiting example, recorder 104f can be configured to record a communication between communications device 102a and communications device 102f. If a determination is made that it is more preferable that recorder 104g record the communication (e.g., recorder 104f fails, bandwidth issues with recorder 104f, etc.) the load balancer can be configured to send subsequently received data to recorder 104g. As one of ordinary skill in the art will understand, recorder 104f recorded a portion of the communication and recorder 104g recorded a portion of the communication. As such, the configuration of
The processor 482 can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the load balancer 206, a semiconductor based microprocessor (in the form of a microchip or chip set), a macroprocessor, or generally any device for executing software instructions. Examples of suitable commercially available microprocessors are as follows: a PA-RISC series microprocessor from Hewlett-Packard® Company, an 80×86 or Pentium® series microprocessor from Intel® Corporation, a PowerPC® microprocessor from IBM®, a Sparc® microprocessor from Sun Microsystems®, Inc, or a 68xxx series microprocessor from Motorola® Corporation.
The volatile and nonvolatile memory 484 can include any one or combination of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)) and nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, etc.). Moreover, the memory 484 may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that the volatile and nonvolatile memory 484 can have a distributed architecture, where various components are situated remote from one another, but can be accessed by the processor 482. Additionally volatile and nonvolatile memory 484 can also include an first routing software 486, second routing software 487 and/or third routing software 499. Additionally, the volatile and nonvolatile memory can include an operating system (not shown), depending on the particular configuration.
A nonexhaustive list of examples of suitable commercially available operating systems is as follows: (a) a Windows® operating system available from Microsoft® Corporation; (b) a Netware® operating system available from Novell®, Inc.; (c) a Macintosh® operating system available from Apple® Computer, Inc.; (d) a UNIX operating system, which is available for purchase from many vendors, such as the Hewlett-Packard® Company, Sun Microsystems®, Inc., and AT&T® Corporation; (e) a LINUX operating system, which is freeware that is readily available on the Internet 100; (f) a run time Vxworks® operating system from WindRiver® Systems, Inc.; or (g) an appliance-based operating system, such as that implemented in handheld computers or personal data assistants (PDAs) (e.g., PalmOS® available from Palm® Computing, Inc., and Windows CE® available from Microsoft® Corporation). The operating system can be configured to control the execution of other computer programs and provides scheduling, input-output control, file and data management, memory management, and communication control and related services.
A system component embodied as software may also be construed as a source program, executable program (object code), script, or any other entity comprising a set of instructions to be performed. When constructed as a source program, the program is translated via a compiler, assembler, interpreter, or the like, which may or may not be included within the volatile and nonvolatile memory 484, so as to operate properly in connection with the Operating System.
The Input/Output devices that may be coupled to system I/O Interface(s) 496 may include input devices, for example but not limited to, network interfaces, a keyboard, mouse, scanner, microphone, etc. Further, the Input/Output devices may also include output devices, for example but not limited to, network interfaces, a printer, display, etc. Finally, the Input/Output devices may further include devices that communicate both as inputs and outputs, for instance but not limited to, a modulator/demodulator (modem; for accessing another device, system, or network), a radio frequency (RF) or other transceiver, a telephonic interface, a bridge, a router, etc. Additionally, a display interface (not shown) may facilitate connection to a display monitor or other display device.
If the load balancer 206 includes a personal computer, workstation, or the like, the software in the volatile and nonvolatile memory 484 may further include a basic input output system (BIOS) (omitted for simplicity). The BIOS is a set of software routines that initialize and test hardware at startup, start the Operating System, and support the transfer of data among the hardware devices. The BIOS is stored in ROM so that the BIOS can be executed when the load balancer 206 is activated.
When the load balancer 206 is in operation, the processor 482 is configured to execute software stored within the volatile and nonvolatile memory 484, to communicate data to and from the volatile and nonvolatile memory 484, and to generally control operations of the load balancer 206 pursuant to the software. Software in memory, in whole or in part, are read by the processor 482, perhaps buffered within the processor 482, and then executed.
Additionally, as stated above, while reference in
The load balancer 206 can then receive communication data from a communication (block 532), as discussed above. Upon receiving the control data from any of a plurality of communications that may be taking place in the network, (as illustrated in block 530), the load balancer 206 can be configured to provide one or more of the recorders 104 with the control data. In at least one embodiment the load balancer 206 provides all recorders 104d, 104e, and 104f with the control data (block 534). The load balancer 206 can then determine to which recorder 104 the communication data is to be routed (block 536). As discussed above, depending on the particular embodiment, any of a plurality of routing algorithms can be used, including but not limited to the round robin algorithm, the weighted round robin algorithm, and the source-destination algorithm. Once the recorder is determined, the load balancer 206 can route the communication data to the determined recorder.
The load balancer 206 can then provide the recorders with the received control data (block 638). The load balancer 206 can then determine to which recorder the first communication stream data is to be routed (block 640) and determine to which recorder the second communication stream is to be routed (block 642). The load balancer 206 can then route the first communication stream to the first determined recorder (block 644) and route the second communication stream to the second determined recorder (block 646).
One should also note, that while the load balancer can be configured to detect errors in recorders, at least one embodiment can include a recorder with logic to self detect errors with the recorder. As a nonlimiting example, a recorder can be configured with logic for monitoring various hardware and/or software components using Intelligent Platform Management Interface (IPMI) and/or other protocol.
Link Protector
The configuration from
In operation, a call is initiated between communications device 102c and communications device 102d. This communication can be facilitated by switch 912a (depending on the particular configuration 912 may also facilitate the communication). Link protector 810b receives communication data and sends the received communication data to load balancer 206b (which is the primary load balancer for switch 912a). Similarly, link protector 810c receives control data and sends this data to load balancer 206b.
With respect to the configuration of
Regardless of the status of links between load balancers 206 and link protectors 810, the load balancers 206 can receive data from the link protectors 810 and distribute this data to recorders 104 according to any of a plurality of algorithms, as indicated above. Also as indicated above, a data storage unit (not shown) can be coupled to recorders 104.
In addition to detecting a hardware malfunction (such as a severed link), link protectors 810 can be configured to “heartbeat” those components coupled to link protectors 810. More specifically, link protector 810b can be configured with logic for determining whether load balancers 206, as well as recorders 104 are functioning. As a nonlimiting example, link protector 810b can be configured to routinely and/or continuously send a status request signal (“heartbeat”) to load balancers 206b and 206c. The status request signal can be configured to determine whether the logic in the load balancers 206 is operating properly. Upon receiving an indication of the status of load balancers 206, the link protector 810b can determine whether the load balancers 206 are operating as desired. Similarly, functionality data related to recorders 104 can be determined in a similar fashion. If the link protector determines that a load balancer 206 and/or a recorder 104 are not operating properly, the link protector can route subsequently received data to those components that are operating properly. More specifically, in at least one embodiment, the link protector can be configured to identify a hardware, software, and/or communications issue with a recorder and/or load balancer. As a nonlimiting example, the link protector can be configured with logic, such as (but not limited to) IPMI for determining various issues.
While the flowchart with respect to
As illustrated in
IP Analyzer
In operation, if a caller initiates a communication from communications device 102w to communications device 102s (which is external to the network of
While such a configuration may enable recording of communications between two communications devices being serviced by the same gateway, problems may occur for recording across a plurality of gateways. More specifically, if a user on communications device 102w desires to communicate with a user on communications device 102t (which is external to the network of
However, in recording the communication, load balancer 206z receives mirrored data sent from gateway 1216z. A problem can occur in sending the control data to the load balancer 206z, in that the call control engine 1218z (from which the load balancer 206z generally receives mirrored control data) may not receive the control data (due, at least in part, by a lack of layer 2 connectivity between gateways). As data ports for mirrored data from switch 912z (and 912y) may be limited, recording difficulties may result.
More specifically, in at least one nonlimiting example, if a user on communications device 102w desires to initiate a communication with a user on communications device 102t, control data associated with the communication can be sent to IP analyzer 1320y. The IP analyzer 1320y can be configured to send the received control data to load balancer 206z. Additionally, as discussed above, the mirrored communications data can be sent to load balancer 206z. With both the control data and the communication data, the load balancer can facilitate recording of the communication via one or more of the recorders 104x, 104y, and 104z.
One should note that depending on the particular embodiment, the IP analyzer 1320 can be configured for call control forwarding and/or intelligent call control distribution. More specifically, with respect to call control forwarding, the recorders 104x, 104y, and 104z are generally unable to receive mirrored data from call control engine 1218y due to the lack of layer 2 network connectivity between the two components. The IP analyzer 1320y can be configured to receive mirrored control data from call control engine 1218y. The IP analyzer 1320y can receive and forward control data to one or more of the recorders 104x, 104y, and 104z across a TCP/IP connection or other medium. Additionally, the IP analyzer 1320y can also be configured to send the control data to recorders 104u, 104v, and 104w with little or no concept of the geographic location of the recorders. During call control forwarding, the IP analyzer can be configured to forward all control data to all recorders communicatively coupled to the IP analyzer 1320y.
With respect to intelligent call control distribution, the IP analyzer 1320y can be configured to intelligently distribute control data to recorders based on a predetermined address for each recorder (or recorder bank). More specifically, if a communication commences between communications device 102w and 102s, load balancer 206z (and thus recorders 104x, 104y, and 104z) will generally not receive communication data related to this communication. As such, with intelligent call control distribution, IP analyzer 1320y can be configured to send control data only to the load balancer that facilitates recording of the call (in this nonlimiting example load balancer 206y), which has a known address (e.g., IP address and Media Access Control (MAC) address). Other load balancers (and thus recorders) that are not configured to receive communication data related to this particular communication will not receive control data related to the communication.
Additionally, while one IP analyzer 1320 can be utilized for predetermined network traffic, in at least one configuration, a plurality of IP analyzers can be utilized for fail-over protection. Additionally, depending on the particular configuration, one or more link protectors and/or load balancers may be coupled to the IP analyzer 1320.
Similarly, load balancer 206m is passively coupled between gateway 1216k and switch 912m. Load balancer is also coupled to recorders 104n, 104o, and 104p. Switch 912m is coupled to call control engine 1218m. Call control engine 1218m is coupled to communications devices 102m and 102n, as well as IP analyzer 1320m.
Additionally, in attempting to record the communication data related to the communication, the first step is for communications device 1 (component 102w) to send data to switch 1 (component 912y), as illustrated in step 1538. Switch 1 (component 912y) then sends the received communication data to recording cluster 1 (component 206y).
Similarly, in attempting to record control data in this nonlimiting example, communications device 1 (component 102w) sends control data to call control engine 1 (component 1218y), as illustrated in step 1542. Call control engine 1 (component 1218y) then sends at least a portion of the received control data to recording cluster 1 (component 206y), as illustrated in step 1546.
With respect to the communication data for recording, communications device 1 (component 102w) sends communications data to WAN (component 100), as illustrated in step 1638. WAN (component 100) sends at least a portion of the received data to gateway 2 (component 1218z), as illustrated in step 1640. Gateway 2 (component 1218z) sends at least a portion of that data to recording cluster 2 (component 206z), as illustrated in step 1642.
With respect to the control data for recording, communications device 1 (component 102w) sends the control data to call control engine 1 (component 1218y), as illustrated in step 1644. Call control engine sends at least a portion of the received control data to recording cluster 1 (component 206y), as illustrated in step 1646. As demonstrated in this nonlimiting example, the control data is received at recording cluster 1 (component 206y), while the communication data is received at recording cluster 2 (component 206z). For at least the reason, that in some configurations, layer 2 connectivity may not exist between gateways, recording of communications that traverse a plurality of gateways without an IP analyzer may be difficult.
To record communications data in this nonlimiting example, communications device 1 (component 102w) sends communications data to switch (component 912y), as illustrated in step 1734. Switch (component 912y) then sends at least a portion of the received data to recording cluster (component 206y), as illustrated in step 1736.
To record control data, communications device 1 (component 102w) sends at least a portion of the control data for the communication to call control engine (component 1218y), as illustrated in step 1738. Call control engine (component 1218y) sends at least a portion of the received data to IP analyzer (component 1320y), as illustrated in step 1740. IP analyzer (component 1320y) then sends at least a portion of the control data to the recording cluster (component 206y), as illustrated in step 1742. As discussed above, by utilizing an IP analyzer, both the control data and the communications data can be sent to the desired load balancer for recording.
In sending communications data for recording, communications device 1 (component 102k) sends data to gateway (component 1216k), as illustrated in step 1836. Gateway (component 1216k) then sends the received data to switch 912m), as illustrated in step 1840. Recording cluster 2 (206m) then receives mirrored data from switch 2 (912m), as illustrated in step 1842.
In communicating control data for recording, communications device 1 (component 102k) sends control data to call control engine 1 (component 1218k), as illustrated in step 1844. Call control engine 1 (component 1218k) then sends data to IP analyzer 1 (component 1320k), as illustrated in step 1846. IP analyzer (component 1320k) then sends at least a portion of the received control data to load balancer 206m), as illustrated in step 1848.
Similar to the discussion above, the IP analyzer in this nonlimiting example enables a desired load balancer 206m to receive both control data and communications data related to the call. The load balancer 206m can be configured to then send the received data to one or more of the recorders 104n, 104o, and/or 104p coupled to the load balancer 206m.
In sending communication data for recording communications device 1 (component 102w) sends communication data to WAN (component 100), as illustrated in step 1938. WAN (component 100), then sends the received data to gateway 2 (component 1216z), as illustrated in step 1940. Recording cluster 2 (component 206z) then receives mirrored data from gateway 2 (component 1216z), as illustrated in step 1942.
In sending control data for recording, communications device 1 (component 102w) sends control data to call control engine 1 (component 1218y), as illustrated in step 1944. Call control engine 1 (component 1218y) then sends the received data to IP analyzer 1 (component 1320y), as illustrated in step 1946. IP analyzer 1 (component 1320y) then sends at least a portion of the received data to recording cluster 2 (component 206z) for recording, as illustrated in 1948. As discussed above, the nonlimiting example of
One should also note that depending on the particular configuration the IP analyzer can be configured to receive control data interpret the received control data. Additionally, depending on the particular embodiment, the IP analyzer can issue a start record command, a stop record command, and/or other commands one or more recorders.
As one of ordinary skill in the art will understand, while the flowcharts and sequence diagrams discussed in this disclosure are illustrated as occurring in a particular order, this is a nonlimiting example. The steps in this disclosure can occur in any of a plurality of different orders, and may include more or fewer steps than illustrated herein. Additionally, while the steps in
One should note that the flowcharts and sequence diagrams included herein show the architecture, functionality, and/or operation of a possible implementation of logic. In this regard, each block can be interpreted to represent a hardware component, a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
One should also note that any of the programs listed herein, which can include an ordered listing of executable instructions for implementing logical functions, can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions. In the context of this document, a “computer-readable medium” can be any means that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer readable medium can be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. More specific examples (a nonexhaustive list) of the computer-readable medium could include an electrical connection (electronic) having one or more wires, a portable computer diskette (magnetic), a random access memory (RAM) (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM or Flash memory) (electronic), an optical fiber (optical), and a portable compact disc read-only memory (CDROM) (optical). In addition, the scope of the certain embodiments of this disclosure can include embodying the functionality described in logic embodied in hardware or software-configured mediums.
It should be emphasized that the above-described embodiments are merely possible examples of implementations, merely set forth for a clear understanding of the principles of this disclosure. Many variations and modifications may be made to the above-described embodiments without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure.
The present application is a continuation of U.S. patent application Ser. No. 11/394,411, filed on Mar. 31, 2006, and entitled “Internet Protocol Analyzing,” the contents of which are expressly incorporated herein by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
3594919 | De Bell et al. | Jul 1971 | A |
3705271 | De Bell et al. | Dec 1972 | A |
4510351 | Costello et al. | Apr 1985 | A |
4684349 | Ferguson et al. | Aug 1987 | A |
4694483 | Cheung | Sep 1987 | A |
4763353 | Canale et al. | Aug 1988 | A |
4815120 | Kosich | Mar 1989 | A |
4924488 | Kosich | May 1990 | A |
4953159 | Hayden et al. | Aug 1990 | A |
5016272 | Stubbs et al. | May 1991 | A |
5101402 | Chiu et al. | Mar 1992 | A |
5117225 | Wang | May 1992 | A |
5210789 | Jeffus et al. | May 1993 | A |
5239460 | LaRoche | Aug 1993 | A |
5241625 | Epard et al. | Aug 1993 | A |
5267865 | Lee et al. | Dec 1993 | A |
5299260 | Shaio | Mar 1994 | A |
5311422 | Loftin et al. | May 1994 | A |
5315711 | Barone et al. | May 1994 | A |
5317628 | Misholi et al. | May 1994 | A |
5347306 | Nitta | Sep 1994 | A |
5388252 | Dreste et al. | Feb 1995 | A |
5396371 | Henits et al. | Mar 1995 | A |
5432715 | Shigematsu et al. | Jul 1995 | A |
5465286 | Clare et al. | Nov 1995 | A |
5475625 | Glaschick | Dec 1995 | A |
5485569 | Goldman et al. | Jan 1996 | A |
5491780 | Fyles et al. | Feb 1996 | A |
5499291 | Kepley | Mar 1996 | A |
5535256 | Maloney et al. | Jul 1996 | A |
5572652 | Robusto et al. | Nov 1996 | A |
5577112 | Cambray et al. | Nov 1996 | A |
5590171 | Howe et al. | Dec 1996 | A |
5597312 | Bloom et al. | Jan 1997 | A |
5619183 | Ziegra et al. | Apr 1997 | A |
5696906 | Peters et al. | Dec 1997 | A |
5717879 | Moran et al. | Feb 1998 | A |
5721842 | Beasley et al. | Feb 1998 | A |
5742670 | Bennett | Apr 1998 | A |
5748499 | Trueblood | May 1998 | A |
5778182 | Cathey et al. | Jul 1998 | A |
5784452 | Carney | Jul 1998 | A |
5790798 | Beckett, II et al. | Aug 1998 | A |
5796952 | Davis et al. | Aug 1998 | A |
5809247 | Richardson et al. | Sep 1998 | A |
5809250 | Kisor | Sep 1998 | A |
5825869 | Brooks et al. | Oct 1998 | A |
5835572 | Richardson, Jr. et al. | Nov 1998 | A |
5862330 | Anupam et al. | Jan 1999 | A |
5864772 | Alvarado et al. | Jan 1999 | A |
5884032 | Bateman et al. | Mar 1999 | A |
5907680 | Nielsen | May 1999 | A |
5918214 | Perkowski | Jun 1999 | A |
5923746 | Baker et al. | Jul 1999 | A |
5933811 | Angles et al. | Aug 1999 | A |
5944791 | Scherpbier | Aug 1999 | A |
5948061 | Merriman et al. | Sep 1999 | A |
5958016 | Chang et al. | Sep 1999 | A |
5964836 | Rowe et al. | Oct 1999 | A |
5978648 | George et al. | Nov 1999 | A |
5982857 | Brady | Nov 1999 | A |
5987466 | Greer et al. | Nov 1999 | A |
5990852 | Szamrej | Nov 1999 | A |
5991373 | Pattison et al. | Nov 1999 | A |
5991796 | Anupam et al. | Nov 1999 | A |
6005932 | Bloom | Dec 1999 | A |
6009429 | Greer et al. | Dec 1999 | A |
6014134 | Bell et al. | Jan 2000 | A |
6014647 | Nizzari et al. | Jan 2000 | A |
6018619 | Allard et al. | Jan 2000 | A |
6035332 | Ingrassia et al. | Mar 2000 | A |
6038544 | Machin et al. | Mar 2000 | A |
6039575 | L'Allier et al. | Mar 2000 | A |
6057841 | Thurlow et al. | May 2000 | A |
6058163 | Pattison et al. | May 2000 | A |
6061798 | Coley et al. | May 2000 | A |
6072860 | Kek et al. | Jun 2000 | A |
6076099 | Chen et al. | Jun 2000 | A |
6078894 | Clawson et al. | Jun 2000 | A |
6091712 | Pope et al. | Jul 2000 | A |
6108711 | Beck et al. | Aug 2000 | A |
6122665 | Bar et al. | Sep 2000 | A |
6122668 | Teng et al. | Sep 2000 | A |
6130668 | Stein | Oct 2000 | A |
6138139 | Beck et al. | Oct 2000 | A |
6144991 | England | Nov 2000 | A |
6146148 | Stuppy | Nov 2000 | A |
6151622 | Fraenkel et al. | Nov 2000 | A |
6154771 | Rangan et al. | Nov 2000 | A |
6157808 | Hollingsworth | Dec 2000 | A |
6171109 | Ohsuga | Jan 2001 | B1 |
6182094 | Humpleman et al. | Jan 2001 | B1 |
6195679 | Bauersfeld et al. | Feb 2001 | B1 |
6201948 | Cook et al. | Mar 2001 | B1 |
6211451 | Tohgi et al. | Apr 2001 | B1 |
6225993 | Lindblad et al. | May 2001 | B1 |
6230197 | Beck et al. | May 2001 | B1 |
6236977 | Verba et al. | May 2001 | B1 |
6244758 | Solymar et al. | Jun 2001 | B1 |
6282548 | Burner et al. | Aug 2001 | B1 |
6286030 | Wenig et al. | Sep 2001 | B1 |
6286046 | Bryant | Sep 2001 | B1 |
6288753 | DeNicola et al. | Sep 2001 | B1 |
6289340 | Purnam et al. | Sep 2001 | B1 |
6301462 | Freeman et al. | Oct 2001 | B1 |
6301573 | McIlwaine et al. | Oct 2001 | B1 |
6324282 | McIlwaine et al. | Nov 2001 | B1 |
6347374 | Drake et al. | Feb 2002 | B1 |
6351467 | Dillon | Feb 2002 | B1 |
6353851 | Anupam et al. | Mar 2002 | B1 |
6360250 | Anupam et al. | Mar 2002 | B1 |
6370547 | House et al. | Apr 2002 | B1 |
6404857 | Blair et al. | Jun 2002 | B1 |
6411989 | Anupam et al. | Jun 2002 | B1 |
6418471 | Shelton et al. | Jul 2002 | B1 |
6459787 | McIlwaine et al. | Oct 2002 | B2 |
6487195 | Choung et al. | Nov 2002 | B1 |
6493758 | McLain | Dec 2002 | B1 |
6502131 | Vaid et al. | Dec 2002 | B1 |
6510220 | Beckett, II et al. | Jan 2003 | B1 |
6535909 | Rust | Mar 2003 | B1 |
6542602 | Elazer | Apr 2003 | B1 |
6546405 | Gupta et al. | Apr 2003 | B2 |
6560328 | Bondarenko et al. | May 2003 | B1 |
6583806 | Ludwig et al. | Jun 2003 | B2 |
6606657 | Zilberstein et al. | Aug 2003 | B1 |
6665644 | Kanevsky et al. | Dec 2003 | B1 |
6674447 | Chiang et al. | Jan 2004 | B1 |
6683633 | Holtzblatt et al. | Jan 2004 | B2 |
6697858 | Ezerzer et al. | Feb 2004 | B1 |
6724887 | Eilbacher et al. | Apr 2004 | B1 |
6738456 | Wrona et al. | May 2004 | B2 |
6757361 | Blair et al. | Jun 2004 | B2 |
6772396 | Cronin et al. | Aug 2004 | B1 |
6775377 | McIlwaine et al. | Aug 2004 | B2 |
6792575 | Samaniego et al. | Sep 2004 | B1 |
6810414 | Brittain | Oct 2004 | B1 |
6820083 | Nagy et al. | Nov 2004 | B1 |
6823384 | Wilson et al. | Nov 2004 | B1 |
6870916 | Henrikson et al. | Mar 2005 | B2 |
6901438 | Davis et al. | May 2005 | B1 |
6959078 | Eilbacher et al. | Oct 2005 | B1 |
6965886 | Govrin et al. | Nov 2005 | B2 |
7379628 | Nagaya et al. | May 2008 | B2 |
7412531 | Lango et al. | Aug 2008 | B1 |
7483379 | Kan et al. | Jan 2009 | B2 |
7701972 | Williams et al. | Apr 2010 | B1 |
20010000962 | Rajan | May 2001 | A1 |
20010032335 | Jones | Oct 2001 | A1 |
20010043697 | Cox et al. | Nov 2001 | A1 |
20020038363 | MacLean | Mar 2002 | A1 |
20020052948 | Baudu et al. | May 2002 | A1 |
20020065911 | Von Klopp et al. | May 2002 | A1 |
20020065912 | Catchpole et al. | May 2002 | A1 |
20020128925 | Angeles | Sep 2002 | A1 |
20020143925 | Pricer et al. | Oct 2002 | A1 |
20020165954 | Eshghi et al. | Nov 2002 | A1 |
20030055883 | Wiles et al. | Mar 2003 | A1 |
20030079020 | Gourraud et al. | Apr 2003 | A1 |
20030144900 | Whitmer | Jul 2003 | A1 |
20030154240 | Nygren et al. | Aug 2003 | A1 |
20040100507 | Hayner et al. | May 2004 | A1 |
20040165717 | McIlwaine et al. | Aug 2004 | A1 |
20050135617 | Lee et al. | Jun 2005 | A1 |
Number | Date | Country |
---|---|---|
0453128 | Oct 1991 | EP |
0773687 | May 1997 | EP |
0989720 | Mar 2000 | EP |
2369263 | May 2002 | GB |
WO9843380 | Nov 1998 | WO |
WO0016207 | Mar 2000 | WO |
Entry |
---|
Kane, AOL-Tivo: You've Got Interactive TV, ZDNN, Aug. 17, 1999. |
Kay, “E-Mail in Your Kitchen”, PC World Online, Mar. 28, 1996. |
Kenny, “TV Meets Internet”, PC World Online, Mar. 28, 1996. |
Linderholm, “Avatar Debuts Home Theater PC”, PC World Online, Dec. 1, 1999. |
Mendoza, “Order Pizza While You Watch”, ABCNews.com. |
Moody, “WebTV: What the Big Deal?”, ABCNews.com. |
Murdorf et al., “Interactive Television—Is There Life After the Internet?”, Interactive TV News. |
Needle, “PC, TV or Both?”, PC World Online. |
Interview with Steve Perlman, CEO of Web-TV Networks, PC World Online. |
Press, Two Cultures, The Internet and Interactive TV, Universite de Montreal. |
Reuters, “Will TV Take Over Your PC?”, PC World Online. |
Rohde, “Gates Touts Interactive TV”, InfoWorld, Oct. 14, 1999. |
Ross, “Broadcasters Use TV Signals to Send Data”, PC World, Oct. 1996. |
Schlisserman, “Is Web TV a Lethal Weapon?”, PC World Online. |
Stewart, “Interactive Television at Home: Television Meets the Internet”, Aug. 1998. |
Swedlow, “Computer TV Shows: Ready for Prime Time?”, PC World Online. |
Wilson, “U.S. West Revisits Interactive TV”, Interactive Week, Nov. 28, 1999. |
Weinschenk, “Performance Specifications as Change Agents,” Technical Training pp. 12-15 (Oct. 1997). |
Witness Systems promotional brochure for eQuality entitled “Bringing eQuality to eBusiness.” |
Witness Systems promotional brochure for eQuality entitled “Building Customer Loyalty Through Business-Driven Recording of Multimedia Interactions in your Contact Center” (2000). |
U.S. Official Action dated Oct. 14, 2011 in U.S. Appl. No. 11/394,408. |
Minton-Eversole, “IBT Training Truths Behind the Hype,” Technical Skills and Training pp. 15-19 (Jan. 1997). |
Mizoguchi, “Intelligent Tutoring Systems: The Current State of the Art,” Trans. IEICE E73(3):297-307 (Mar. 1990). |
Mostow and Aist, “The Sounds of Silence: Towards Automated Evaluation of Student Learning a Reading Tutor that Listens” American Association for Artificial Intelligence, Web page, unknown date Aug. 1997. |
Mullier et al., “A Web base Intelligent Tutoring System,” pp. 1-6, Web page, unverified print date of May 2, 2002. |
Nash, Database Marketing, 1993, pp. 158-165, 172-185, McGraw Hill, Inc., USA. |
Nelson et al., “The Assessment of End-User Training Needs,” Communications ACM 38(7):27-39 (Jul. 1995). |
O'Herron, “CenterForce Technologies' CenterForce Analyzer,” Web page, unverified print date of Mar. 20, 2002, unverified cover date of Jun. 1, 1999. |
O'Roark, “Basic Skills Get a Boost,” Technical Training pp. 10-13 (Jul./Aug. 1998). |
Pamphlet, “On Evaluating Educational Innovations,” authored by Alan Lesgold, unverified cover date of Mar. 5, 1998. |
Papa et al., “A Differential Diagnostic Skills Assessment and Tutorial Tool,” Computer Education 18(1-3):45-50 (1992). |
PCT International Search Report, International Application No. PCT/US03/02541, mailed May 12, 2003. |
Phaup, “New Software Puts Computerized Tests on the Internet: Presence Corporation announces breakthrough Question Mark Web product,” Web page, unverified print date of Apr. 1, 2002. |
Phaup, “QM Perception Links with Integrity Training's WBT Manager to Provide Enhanced Assessments for Web-Based Courses,” Web page, unverified print date of Apr. 1, 2002, unverified cover date of Mar. 25, 1999. |
Phaup, “Question Mark Introduces Access Export Software,” Web page, unverified print date of Apr. 2, 2002, unverified cover date of Mar. 5, 1998. |
Phaup, “Question Mark Offers Instant Online Feedback for Web Quizzes and Questionnaires: University of California assist with Beta Testing, Server scripts now available to high-volume users,” Web page, unverified print date of Apr. 1, 2002, unverified cover date of May 6, 1996. |
Piskurich, “Now-You-See-'Em, Now-You-Don't Learning Centers,” Technical Training pp. 18-21 (Jan./Feb. 1999). |
Read, “Sharpening Agents' Skills,” pp. 1-15, Web page, unverified print date of Mar. 20, 2002, unverified cover date of Oct. 1, 1999. |
Reid, “On Target: Assessing Technical Skills,” Technical Skills and Training pp. 6-8 (May/Jun. 1995). |
Stormes, “Case Study: Restructuring Technical Training Using ISD,” Technical Skills and Training pp. 23-26 (Feb./Mar. 1997). |
Tennyson, “Artificial Intelligence Methods in Computer-Based Instructional Design,” Journal of Instruction Development 7(3):17-22 (1984). |
The Editors, Call Center, “The Most Innovative Call Center Products We Saw in 1999,” Web page, unverified print date of Mar. 20, 2002, unverified cover date of Feb. 1, 2000. |
Tinoco et al., “Online Evaluation in WWW-based Courseware,” ACM pp. 194-198 (1997). |
Uiterwijk et al., “The virtual classroom,” InfoWorld 20(47):6467 (Nov. 23, 1998). |
Unknown Author, “Long-distance learning,” InfoWorld 20(36):7276 (1998). |
Untitled, 10th Mediterranean Electrotechnical Conference vol. 1 pp. 124-126 (2000). |
Watson and Belland, “Use of Learner Data in Selecting Instructional Content for Continuing Education,” Journal of Instructional Development 8(4):29-33 (1985). |
Witness Systems promotional brochure for eQuality entitled “Bringing eQuality to eBusiness.”. |
Aspect Call Center Product Specification, “Release 2.0”, Aspect Telecommunications Corporation, May 23, 1998, 798. |
Metheus X Window Record and Playback, XRP Features and Benefits, 2 pages, Sep. 1994 LPRs. |
“Keeping an Eye on Your Agents,” Call Center Magazine, pp. 32-34, Feb. 1993 LPRs & 798. |
Anderson: Interactive TVs New Approach, The Standard, Oct. 1, 1999. |
Ante, “Everything You Ever Wanted to Know About Cryptography Legislation . . . (But Were too Sensible to Ask)”, PC World Online, Dec. 14, 1999. |
Berst, “It's Baa-aack. How Interactive TV is Sneaking Into Your Living Room”, The AnchorDesk, May 10, 1999. |
Berst, “Why Interactive TV Won't Turn You on (Yet)”, The AnchorDesk, Jul. 13, 1999. |
Borland and Davis, “US West Plans Web Services on TV”, CNETNews.com, Nov. 22, 1999. |
Brown, “Let PC Technology Be Your TV Guide”, PC Magazine, Jun. 7, 1999. |
Brown, “Interactive TV: The Sequel”, NewMedia, Feb. 10, 1998. |
Cline, “Deja vu—Will Interactive TV Make It This Time Around?”, DevHead, Jul. 9, 1999. |
Crouch, “TV Channels on the Web”, PC World, Sep. 15, 1999. |
D'Amico, “Interactive TV Gets $99 set-top box”, IDG.net, Oct. 6, 1999. |
Davis, “Satellite Systems Gear Up for Interactive TV Fight”, CNETNews.com, Sep. 30, 1999. |
Diederich, “Web TV Data Gathering Raises Privacy Concerns”, ComputerWorld, Oct. 13, 1998. |
Digital Broadcasting, Interactive TV News. |
EchoStar, “MediaX Mix Interactive Multimedia With Interactive Television”, PRNews Wire, Jan. 11, 1999. |
Furger, “The Internet Meets the Couch Potato”, PCWorld, Oct. 1996. |
“Hong Kong Comes First with Interactive TV”, SCI-TECH, Dec. 4, 1997. |
“Interactive TV Overview TimeLine”, Interactive TV News. |
“Interactive TV Wars Heat Up”, Industry Standard. |
Needle, “Will the Net Kill Network TV?” PC World Online, Mar. 10, 1999. |
“Customer Spotlight: Navistar International,” Web page, unverified print date of Apr. 1, 2002. |
DKSystems Integrates QM Perception with OnTrack for Training, Web page, unverified print date of Apr. 1, 2002, unverified cover date of Jun. 15, 1999. |
“OnTrack Online Delivers New Web Functionality,” Web page, unverified print date of Apr. 2, 2002, unverified cover date of Oct. 5, 1999. |
“Price Waterhouse Coopers Case Study: The Business Challenge,” Web page, unverified cover date of 2000. |
Abstract, net.working: “An Online Webliography,” Technical Training pp. 4-5 (Nov./Dec. 1998). |
Adams et al., “Our Turn-of-the-Century Trend Watch” Technical Training, pp. 46-47 (Nov./Dec. 1998). |
Barron, “The Road to Performance: Three Vignettes,” Technical Skills and Training, pp. 12-14 (Jan. 1997). |
Bauer, “Technology Tools: Just-in-Time Desktop Training is Quick, Easy, and Affordable,” Technical Training, pp. 8-11 (May/Jun. 1998). |
Beck et al., “Applications of AI in Education,” AMC Crossroads vol. 1:1-13 (Fall 1996), Web page, unverified print date of Apr. 12, 2002. |
Benson and Cheney, “Best Practices in Training Delivery,” Technical Training pp. 14-17 (Oct. 1996). |
Bental and Cawsey, “Personalized and Adaptive Systems for Medical Consumer Applications,” Communications ACM 45(5):62-63 (May 2002). |
Benyon and Murray, “Adaptive Systems: from intelligent tutoring to autonomous agents,” pp. 1-52, Web page, unknown date. |
Blumenthal et al., “Reducing Development Costs with Intelligent Tutoring System Shells,” pp. 1-5, Web page, unverified print date of Apr. 9, 2002, unverified cover date of Jun. 10, 1996. |
Brusilovsky et al., “Distributed intelligent tutoring on the Web,” Proceedings of the 8th World Conference of the AIED Society, Kobe, Japan, Aug. 18-22, pp. 1-9 Web page, unverified print date of Apr. 12, 2002, unverified cover date of Aug 18-22, 1997. |
Brusilovsky and Pesin, ISIS-Tutor: An Intelligent Learning Environment for CD/ISIS Users, @pp. 1-15 Web page, unverified print date of May 2, 2002. |
Brusilovsky, “Adaptive Educational Systems on the World-Wide-Web: A Review of Available Technologies,” pp. 1-10, Web Page, unverified print date of Apr. 12, 2002. |
Byrnes et al., “The Development of a Multiple-Choice and True-False Testing Environment on the Web,” pp. 1-8, Web page, unverified print date Apr. 12, 2002, unverified cover date of 1995. |
Calvi and De Bra, “Improving the Usability of Hypertext Courseware through Adaptive Linking,” ACM, unknown page numbers (1997). |
Coffey, “Are Performance Objectives Really Necessary?” Technical Skills and Training pp. 25-27 (Oct. 1995). |
Cohen, “Knowledge Management's Killer App,” pp. 1-11, Web page, unverified print date of Apr. 12, 2002, unverified cover date of 2001. |
Cole-Gomolski, “New ways to manage E-Classes,” Computerworld 32(48):4344 (Nov. 30, 1998). |
Cross, “Sun Microsystems—the SunTAN Story,” Internet Time Group 8 (2001). |
Cybulski and Linden, “Teaching Systems Analysis and Design Using Multimedia and Patterns,” unknown date, unknown source. |
De Bra et al., “Adaptive Hypermedia: From Systems to Framework,” ACM (2000). |
De Bra, “Adaptive Educational Hypermedia on the Web,” Communications ACM 45(5):60-61 (May 2002). |
Dennis and Gruner, “Computer Managed Instruction at Arthur Andersen & Company: A Status Report,” Educational Technical, pp. 7-16 (Mar. 1992). |
Diessel et al., “Individualized Course Generation: A Marriage Between CAL and ICAL,” Computers Educational 22(1/2) 57-64 (1994). |
Dyreson, “An Experiment in Class Management Using the World-Wide Web,” pp. 1-12, Web page, unverified print date of Apr. 12, 2002. |
E Learning Community, “Excellence in Practice Award: Electronic Learning Technologies,” Personal Learning Network pp. 1-11, Web page, unverified print date of Apr. 12, 2002. |
Eklund and Brusilovsky, “The Value of Adaptivity in Hypermedia Learning Environments: A Short Review of Empirical Evidence,” pp. 1-8, Web page, unverified print date of May 2, 2002. |
e-Learning the future of learning, THINQ Limited, London, Version 1.0 (2000). |
Eline, “A Trainer's Guide to Skill Building,” Technical Training pp. 34-41 (Sep./Oct. 1998). |
Eline, “Case Study: Bridging the Gap in Canada's IT Skills,” Technical Skills and Training pp. 23-25 (Jul. 1997). |
Eline, “Case Study: IBT's Place in the Sun,” Technical Training pp. 12-17 (Aug./Sep. 1997). |
Fritz, “CB templates for productivity: Authoring system templates for trainers,” Emedia Professional 10(8):6876 (Aug. 1997). |
Fritz, “ToolBook II: Asymetrix's updated authoring software tackles the Web,” Emedia Professional 10(2):102106 (Feb. 1997). |
Gibson et al., “A Comparative Analysis of Web-Based Testing and Evaluation Systems,” pp. 1-8, Web page, unverified print date of Apr. 11, 2002. |
Hallberg and DeFlore, “Curving Toward Performance: Following a Hierarchy of Steps Toward a Performance Orientation,” Technical Skills and Training pp. 9-11 (Jan. 1997). |
Harsha, “Online Training “Sprints” Ahead,” Technical Training pp. 27-29 (Jan./Feb. 1999). |
Heideman, “Training Technicians for a High-Tech Future: These six steps can help develop technician training for high-tech work,” pp. 11-14 (Feb./Mar. 1995). |
Heideman, “Writing Performance Objectives Simple as A-B-C (and D),” Technical Skills and Training pp. 5-7 (May/Jun. 1996). |
Hollman, “Train Without Pain: The Benefits of Computer-Based Training Tools,” pp. 1-11, Web page, unverified print date of Mar. 20, 2002, unverified cover date of Jan. 1, 2000. |
Koonce, “Where Technology and Training Meet,” Technical Training pp. 10-15 (Nov./Dec. 1998). |
Kursh, “Going the distance with Web-based training,” Training and Development 52(3):5053 (Mar. 1998). |
Larson, “Enhancing Performance Through Customized Online Learning Support,” Technical Skills and Training pp. 25-27 (May/Jun. 1997). |
Linton et al., “OWL: A Recommender System for Organization-Wide Learning,” Educational Technical Society 3 (1):62-76 (2000). |
Lucadamo and Cheney, “Best Practices in Technical Training,” Technical Training pp. 21-26 (Oct. 1997). |
McNamara, “Monitoring Solutions: Quality Must Be Seen and Heard,” Inbound/Outbound pp. 66-67 (Dec. 1989). |
Merrill, “The New Component Design Theory: Instruction design for courseware authoring,” Instructional Science 16:19-34 (1987). |
Phaup, “Question Mark Introduces Access Export Software,” Web page, unverified print date of Apr. 2, 2002, unverified cover date of Mar. 1, 1997. |
Phaup, “Question Mark Offers Instant Online Feedback for Web Quizzes and Questionnaires: University of California assist with Beta Testing, Server scripts now available to high-volume users,” Web page, unverified print date of Apr. 1, 2002 unverified cover date of May 6, 1996. |
Number | Date | Country | |
---|---|---|---|
20100202461 A1 | Aug 2010 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11394411 | Mar 2006 | US |
Child | 12762402 | US |