SYSTEM AND METHOD FOR ADDING SERVICES TO COMPUTER TELEPHONE SYSTEMS
BACKGROUND OF THE INVENTION
Technical Field of the Invention
The present invention relates, in general terms, to a system and method for adding a new service to a computer-based telephone integration system, and in particular to a system and method of self-registering objects for creating telephone services within a computer telephony system.
Background and Objects of the Invention
Current computer telephony integration (CTI) systems provide various telephone services to a caller based upon information pertaining thereto. For instance, the telephone service provided to a caller may vary depending upon the time or date of the call, the direct inward dialing (DID) number, or the automatic number identification (AM) . One challenge in providing a number of different telephone services pertains to the fact that occasionally new or updated telephone services need to be added to the CTI system. For one type of CTI system, definitions for all of the telephone services are maintained in a single executable file. Consequently, the CTI system must be temporarily shut down in order to substitute a new executable file (having new or updated telephone services) for the old executable file.
A second type of CTI system maintains the behavior of services in a storage medium which contains a file for each behavior in a non-procedural language. Although this system may be updated more easily than the first type of telephone service, this second type of telephone service is noticeably slower than systems which employ service description modules written in a procedural language. As a result, there is a need for efficiently operating a computer-based telephone integration system to which new or updated services may be easily added.
It is an object of the present invention to provide a CTI system in which new or updated telephone services may be added without temporarily shutting down the CTI
system.
It is another object of the present invention to provide such a CTI system which employs object inheritance and late binding in adding new telephone services.
SUMMARY OF THE INVENTION
The present invention overcomes the shortcomings in existing computer-based telephone integration systems and satisfies a significant need for a computer-based telephone integration system in which service performance during service updates is substantially seamless. According to a preferred embodiment of the present invention, there is provided a computer-based telephone integration system having a control module or object which provides the basic call handling routines and a plurality of service modules or objects. A configuration database is included to identify in which of a plurality of dynamic link libraries (DLLs) the appropriate service object is located. To locate and execute a service obj ect for performing a particular telephone service, the control object utilizes information pertaining to an incoming call, such as the direct inward dialing (DID) telephone number and/or the automatic number identification (A ), to query the configuration database. In response thereto, the configuration database identifies in which DLL the appropriate service object is located. The control object thereafter performs a call function on the DLL and obtains a pointer to the appropriate service object therewithin. The service object is then executed to create the desired service.
By utilizing the concepts of polymorphism and late binding of the service object to create and provide the desired service, the control object can call functions which are defined by thereby but are implemented in a service obj ect . As a result, new obj ects may be added to the present CTI system without having to first shut the present CTI system down.
4
BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the system and method of the present invention may be obtained by reference to the following Detailed Description when taken in conjunction with the accompanying Drawings wherein:
Figure 1 is a block diagram of the present invention;
Figure 2 is a flow chart illustrating the operation of the present invention; and
Figure 3 is a flow chart illustrating the adding of a new telephone service to the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EXEMPLARY EMBODIMENTS
The present invention will now be described more fully hereinafter with reference to the accompanying drawings in which a preferred embodiment of the invention is shown. This invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiment set forth herein. Rather, the embodiment is provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.
Referring to Figures 1 and 2, there is shown a computer-based telephone integration or CTI system 1 according to a preferred embodiment of the present invention. CTI system
1 includes a processing unit 10 and memory 11. Processing unit 10 is coupled to telephone lines 12 over which telephone calls are received. Memory 11 preferably stores system software which is used in conjunction with processing unit 10 to provide telephone-related services to callers of CTI system 1. System software of CTI system 1 is preferably object-oriented software, including a control module or object 2 which forms an abstract base class for actual service objects. Control object 2 defines telephone services in very general terms without defining the specific operations which are carried out in performing the telephone services. Control object 2 cooperates with processing unit 10 in monitoring inbound telephone lines 12 for a call and determining various characteristics thereof so that the appropriate telephone
service is provided to the caller. For example, control object 2 may determine the DID, AM, the time of day of the incoming call, the day of the week of the incoming call, etc. These determined call characteristics are utilized to identify the appropriate telephone service to perform for the caller. CTI system 1 preferably further includes a plurality of service modules or objects
3, each of which defines the behavior of a distinct telephone service. Service objects 3 preferably form derived or service classes of objects which are derived from the abstract call control module. A selected service object 3 preferably inherits the characteristics and operation of control object 2. Control object 2 and service objects 3 form a dynamic or late binding system in which particular service objects 3 are not identified for execution until a telephone service is needed to be performed.
Each service obj ect 3 preferably resides in a dynamic link library (DLL) 4. A DLL 4 is utilized to link control object 2 with a suitable service object 3 in order to perform a specific telephone service. A DLL 4, in addition to including a service object 3 , is capable of providing an entry point thereto for accessing service object 3 by control object 2.
Although a plurality of service objects 3 may reside in the same DLL 4, a DLL 4 is described below as having a single service object 3 for reasons of simplicity.
The present CTI system 1 preferably includes a table for identifying the DLL 4 having the appropriate service object 3 for performing a particular telephone service. Configuration database 5 preferably identifies a DLL 4 containing the appropriate service object 3 based upon information pertaining to the incoming call for which a telephone service is to be performed. Upon determining the characteristics of the incoming telephone call, such as the DID, AM and/or the time and date of the incoming call, control obj ect 2 preferably queries configuration database 5 using the determined telephone call characteristics. In response to the query, control object 2 is provided the DLL 4 containing the appropriate service object 3, together with the string name corresponding thereto.
The operation of the present invention in providing a telephone-related service will be described with reference to Figure 2. When an incoming telephone call is received by
CTI system 1, control object 2 determines call information pertaining to the incoming telephone call at step 21 for use in determining the appropriate telephone service to provide
to the caller. Next, control object 2 queries configuration database 5 at step 22 for attributes of the telephone service, such as identification of the particular DLL 4 having the appropriate service object 3 to perform the telephone service, using the determined telephone call information corresponding to the incoming telephone call . Upon reception of the DLL identification and the particular service object name therewithin, control object
2 loads the identified DLL 4 at step 23.
Next, control object 2 invokes a function on the loaded DLL 4 at step 24 which results in a pointer to the appropriate service object 3 within DLL 4 being provided to control obj ect 2. The invoked function, an obj ect factory, is the standard interface for all DLLs 4 which contain a service object 3 and is necessary due to the late binding characteristic of the present invention. In response, the appropriate service object 3 is provided to control object 2. Thereafter, the service object 3 is executed by invoking the
RUN [] method thereof, resulting in the telephone service being provided to the caller.
The present CTI system 1 utilizes late or dynamic binding of control object 2 to an appropriate service object 3 so that new DLLs 4 and/or service objects 3 may be added to CTI system 1 while CTI system 1 is in operation. Figure 3 illustrates the operation of adding a new DLL 4 to CTI system 1. While CTI system 1 is operating to provide various telephone services, the behavior of the new telephone service to be added is defined in a service object 3 in step 30 and added to a new or existing DLL 4 at step 31. Thereafter, the table information in configuration database 5 is updated at step 32 to reflect the addition.
Subsequent queries to configuration database 5 by control object 2 is capable of identifying the newly-defined service object 3 for execution of the corresponding new telephone service.
The invention being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.