U.S. patent application number 13/449609 was filed with the patent office on 2016-09-29 for apparatus and method for computer controlled call processing applications in packet switched telephone networks.
The applicant listed for this patent is Donald Finnie, Carl R. Strathmeyer. Invention is credited to Donald Finnie, Carl R. Strathmeyer.
Application Number | 20160285927 13/449609 |
Document ID | / |
Family ID | 25497419 |
Filed Date | 2016-09-29 |
United States Patent
Application |
20160285927 |
Kind Code |
A9 |
Strathmeyer; Carl R. ; et
al. |
September 29, 2016 |
APPARATUS AND METHOD FOR COMPUTER CONTROLLED CALL PROCESSING
APPLICATIONS IN PACKET SWITCHED TELEPHONE NETWORKS
Abstract
A method is presented comprising transmitting, from an
application computer communicably connected to a call controller
which is connected to a data network, packetized messages
indicative of telephone calls in progress at an endpoint of the
data network, or indicative of such endpoint, and transmitting,
from the call controller to the application computer, packetized
messages indicative of a variety of information contained in, or
relevant to, the telephone calls so as to process such information
for a variety of applications. Apparatus to implement the method is
also presented.
Inventors: |
Strathmeyer; Carl R.;
(Reading, MA) ; Finnie; Donald; (Reading,
GB) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Strathmeyer; Carl R.
Finnie; Donald |
Reading
Reading |
MA |
US
GB |
|
|
Prior
Publication: |
|
Document Identifier |
Publication Date |
|
US 20130100860 A1 |
April 25, 2013 |
|
|
Family ID: |
25497419 |
Appl. No.: |
13/449609 |
Filed: |
April 18, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11476425 |
Jun 27, 2006 |
8184557 |
|
|
13449609 |
|
|
|
|
09805501 |
Mar 13, 2001 |
7072308 |
|
|
11476425 |
|
|
|
|
08955834 |
Oct 21, 1997 |
6201805 |
|
|
09805501 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L 65/1026 20130101;
H04L 65/1069 20130101; H04M 7/0012 20130101; H04L 65/4007 20130101;
H04W 4/16 20130101; H04M 1/2535 20130101; H04M 7/006 20130101; H04L
65/1009 20130101; H04L 65/1036 20130101; H04L 65/103 20130101; H04L
65/1096 20130101; H04L 65/1006 20130101; H04L 65/104 20130101; H04M
2242/16 20130101; H04L 29/06027 20130101 |
International
Class: |
H04L 29/06 20060101
H04L029/06 |
Claims
1-12. (canceled)
13. A method of establishing a packetized telephony communications
session between at least two nodes of a packet data network, over a
packet switched data network, comprising: receiving, by a packet
network telephony call processing device, over said packet switched
data network, a packetized request message requesting a telephony
service from a first node to communicate with a second node; and
interfacing said packet network telephony call processing device
with an application program over said packet switched data network
using packetized messages to exchange session information and to
provide control to enable said requested telephony service, said
application program being located separately from one of said at
least two nodes.
14. The method of claim 13, wherein said first node comprises said
application program.
15. The method of claim 13, wherein said first node comprises a
different application program.
16. The method of claim 13, wherein said first node and said second
node comprise first and second packet telephony network end
points.
17. The method of claim 16, wherein said application program is
located on a computer external to both said first and second packet
telephony network end points.
18. The method of claim 13, wherein said first node comprises a
packet telephony network end point and said second node comprises a
different application program.
19. The method of claim 13, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said requested telephony service comprises a request to establish a
packetized telephone call over said packet switched data network
between said at least two packet telephony network end points, and
wherein said packetized messages exchanged between said packet
network telephony call processing device and said application
program indicate said packetized telephone call to be established
and enable said call between said end points.
20. The method of claim 13, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said requested telephony service comprises a request to disconnect
a packetized telephone call occurring over said packet switched
data network, and wherein said packetized messages exchanged
between said packet network telephony call processing device and
said application program indicate said packetized telephone call to
be disconnected and enable said disconnection of said packetized
telephone call.
21. The method of claim 13, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said requested telephony service comprises a request to divert a
packetized telephone call being presented to one of said at least
two packet telephony network end points to an alternative packet
telephony network end point, and wherein said packetized messages
exchanged between said packet network telephony call processing
device and said application program indicate said packetized
telephone call to be diverted and enable said diversion.
22. The method of claim 13, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said requested telephony service comprises a request to transfer a
packetized telephone call occurring over said packet switched data
network from one of said at least two packet telephony network end
points to another packet telephony network end point, and wherein
said packetized messages exchanged between said packet network
telephony call processing device and said application program
indicate said packetized telephone call to be transferred and
enable said transfer.
23. The method of claim 13, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said requested telephony service comprises a request to add another
packet telephony network end point to a packetized telephone call
occurring over said packet switched data network, and wherein said
packetized messages exchanged between said packet network telephony
call processing device and said application program indicate said
another packet telephony network end point to be added and enable
said addition of said another packet telephony network end
point.
24. The method of claim 13, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said requested telephony service comprises a request to disconnect
a single packet telephony network end point from a packetized
telephone call occurring over said packet switched data network,
and wherein said packetized messages exchanged between said packet
network telephony call processing device and said application
program indicate said single packet telephony network end point to
be disconnected and enable said disconnection of said single packet
telephony network end point.
25. The method of claim 13, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said requested telephony service comprises a request to place a
packetized telephone call on hold, said packetized telephone call
occurring over said packet switched data network between said at
least two packet telephony network end points, and wherein said
packetized messages exchanged between said packet network telephony
call processing device and said application program indicate said
packetized telephone call to be placed on said hold and enable said
hold.
26. The method of claim 13, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said requested telephony service comprises a request to restore a
packetized telephone call from holding status over said packet
switched data network, and wherein said packetized messages
exchanged between said packet network telephony call processing
device and said application program indicate said packetized
telephone call to be restored from said holding status and enable
said restoration.
27. An apparatus for establishing a packetized telephony
communications session, comprising: a packet network telephony call
processing device to receive a packetized request message
requesting a telephony service between at least two nodes over a
packet switched data network, wherein said packet network telephony
call processing device to interface with an application program
over said packet switched data network using packetized messages to
exchange session information and to provide control to enable said
requested telephony service, said application program being located
separately from one of said at least two nodes.
28. The apparatus of claim 27, wherein one of said at least two
nodes comprises said application program.
29. The apparatus of claim 27, wherein one of said at least two
nodes comprises a different application program.
30. The apparatus of claim 27, wherein said at least two nodes
comprise at least first and second packet telephony network end
points.
31. The apparatus of claim 30, wherein said application program is
located on a computer external to both said first and second packet
telephony network end points.
32. The apparatus of claim 27, wherein one of said at least two
nodes comprises a packet telephony network end point and another of
said at least two nodes comprises a different application
program.
33. The apparatus of claim 27, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said packetized request message comprises a request to establish a
packetized telephone call over said packet switched data network
between said at least two packet telephony network end points, and
wherein said packetized messages exchanged between said packet
network telephony call processing device and said application
program to indicate said packetized telephone call to be
established and to enable said call between said end points.
34. The apparatus of claim 27, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said packetized request message comprises a request to disconnect a
packetized telephone call occurring over said packet switched data
network, and wherein said packetized messages exchanged between
said packet network telephony call processing device and said
application program to indicate said packetized telephone call to
be disconnected and to enable said disconnection of said packetized
telephone call.
35. The apparatus of claim 27, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said packetized request message comprises a request to divert a
packetized telephone call being presented to one of said at least
two packet telephony network end points to an alternative packet
telephony network end point, and wherein said packetized messages
exchanged between said packet network telephony call processing
device and said application program to indicate said packetized
telephone call to be diverted and to enable said diversion.
36. The apparatus of claim 27, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said packetized request message comprises a request to transfer a
packetized telephone call occurring over said packet switched data
network from one of said at least two packet telephony network end
points to another packet telephony network end point, and wherein
said packetized messages exchanged between said packet network
telephony call processing device and said application program to
indicate said packetized telephone call to be transferred and to
enable said transfer.
37. The apparatus of claim 27, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said packetized request message comprises a request to add another
packet telephony network end point to a packetized telephone call
occurring over said packet switched data network, and wherein said
packetized messages exchanged between said packet network telephony
call processing device and said application program to indicate
said another packet telephony network end point to be added and to
enable said addition of said another packet telephony network end
point.
38. The apparatus of claim 27, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said packetized request message comprises a request to disconnect a
single packet telephony network end point from a packetized
telephone call occurring over said packet switched data network,
and wherein said packetized messages exchanged between said packet
network telephony call processing device and said application
program to indicate said single packet telephony network end point
to be disconnected and to enable said disconnection of said single
packet telephony network end point.
39. The apparatus of claim 27, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said packetized request message comprises a request to place a
packetized telephone call on hold, said packetized telephone call
occurring over said packet switched data network between said at
least two packet telephony network end points, and wherein said
packetized messages exchanged between said packet network telephony
call processing device and said application program to indicate
said packetized telephone call to be placed on said hold and to
enable said hold.
40. The apparatus of claim 27, wherein said at least two nodes
comprise at least two packet telephony network end points, wherein
said packetized request message comprises a request to restore a
packetized telephone call from holding status over said packet
switched data network, and wherein said packetized messages
exchanged between said packet network telephony call processing
device and said application program to indicate said packetized
telephone call to be restored from said holding status and to
enable said restoration.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part application of
U.S. patent application Ser. No. 08/955,834, filed on Oct. 21,
1997.
TECHNICAL FIELD
[0002] This invention relates to computer telephone integration
(CTI) and, more specifically, to an improved method and apparatus
for utilizing CTI techniques to process telephone calls using
various applications in a packet switched telephone network.
BACKGROUND OF THE INVENTION
[0003] Telephony over packet networks, particularly over wide area
networks such as the Internet, has received considerable attention
in recent months. Specifically, scientists have begun exploring the
possibility of sending voice and video information streams over
packet switched data networks. The transmission of such information
streams over packet switched networks can be more cost efficient
than traditional telephony, which requires a dedicated circuit
between the calling and called party.
[0004] Computer telephone integration has been widely applied to
traditional telephony methods and apparatus, but has not as yet
been successfully applied to the methods and apparatus used for
packet network telephony. This invention specifies novel apparatus
and methods, supplementary to known packet network telephony
apparatus and methods, which enable CTI capabilities in such an
environment, and use them to process telephone calls.
[0005] One possible set of methods and apparatus for completing
calls over a packet switched network, which calls can handle voice
and other information streams, is defined by ITU recommendation
H.323. The H.323 standard is available from the International
Telecommunication Union, of Geneva, Switzerland, and is hereby
incorporated herein by this reference. The H.323 standard defines
various protocols dealing with call control, call setup, call
termination, and other similar techniques known to those in the
packet network telephony art.
[0006] The H.323 standard defines a functional entity called a
gatekeeper. The gatekeeper handles network functions such as
bandwidth control, zone management, address translation, and
admissions control for a designated set of network terminals. While
all these functions are further defined in the previously
incorporated standard, we set forth two examples below.
[0007] Bandwidth control provides a protocol by which the
gatekeeper allocates a particular amount of network bandwidth to a
particular connection. The gatekeeper can be contacted by either
the calling or called party in order to change the amount of
bandwidth allocated to a particular call.
[0008] As another example, the gatekeeper performs zone management.
This function, as further defined in the H.323 standard, provides a
mechanism for allocating sets of different terminals and other
nodes in the network to a particular gateway. The H.323 standard
provides a mechanism for dynamically altering the allocation of
different network nodes to different gatekeepers.
[0009] The gatekeeper function provides services analogous to the
call processing function within a private branch exchange (PBX) in
conventional telephony. In traditional telephony, CTI features are
provided by creating an interface between external application
software and the call processing function within the PBX. By
contrast, in the known packet network telephony art, interfaces to
the gatekeeper are only defined from other gatekeepers, end points,
and other network entities.
SUMMARY OF THE INVENTION
[0010] The above and other problems of the prior art are overcome
and a technical advance is achieved in accordance with the present
invention which relates to a packet network telephony call
controller (e.g.; an H.323 gatekeeper) which is arranged to
interface with a plurality of external call processing applications
programs which may be located on one or more remote computers. In
accordance with the teachings of the present invention, a call
processing application computer is connected to a call controller
computer, via a data network or otherwise, and these two entities
exchange messages in the manner specified by the invention. The
call controller computer may be located with one of the terminals
or may be located on a separate computer.
[0011] As well, the processing application computer may be located
with the call controller computer, or remote from it.
[0012] The call controller computer and applications computer(s)
communicate with one another in order to perform various call
control and other call processing application functions over the
data network and to provide call information and control to a user
of the applications computer. As packet switched telephone
connections are set up between various terminals or other nodes,
the call controller communicates with one or more application
computers in order to provide the call information and call control
functions required by the computer telephony applications residing
on the application computers. Examples of these functions include
establishing and tearing down calls, transferring calls, call
conferencing, associating the applications computer with one or
more specific end points in the call controller zone for monitoring
and control, determining the state of calls at a given endpoint,
determining the length of calls in progress at a given endpoint,
determining the words exchanged in calls in progress at a given
endpoint, determining the originating IP address of calls in
progress at a given endpoint, routing unanswered new calls
terminating at a given endpoint to another to another endpoint, and
various other functions.
[0013] For illustrative purposes, the invention will be described
using systems based upon the H.323 standard as an example. It is
understood that the invention is intended to cover any and all
other protocols, now known or to be known in the art, which address
packet telephony, such as, for example, ITU H.248, also known as
MEGACO, Session Initiation Protocol ("SIP"), and Media Gateway
Control Protocl ("MGCP"). These protocols describe equivalent
modules which are responsible for call setup, and are thus
functionally equivalent, within the context of the invention, to
the gatekeeper of H.323. The names of these modules, of course,
vary with the given protocol. For example, in SIP the gatekeeper
functionality is accomplished by what is termed a "proxy", in
MEGACO by a "Media Gateway Controller", and in MGCP by a
"softswitch." Like the Shakespearean rose, a gatekeeper by any
other name is just as sweet.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] FIG. 1 shows a conceptual overview of an exemplary
embodiment of the present invention as incorporated into a packet
network telephony system;
[0015] FIG. 2 shows exemplary message flow between system elements
during the establishment of an inbound call that is detected by an
external software application using the packet network telephony
system as enhanced and extended by the present invention; and
[0016] FIG. 3 shows an exemplary message flow diagram utilizing the
invention to establish an outbound call requested by an external
software application in a similar environment.
[0017] FIG. 4 shows exemplary connections between the gatekeeper
computer and processing application computers controlling the
gatekeeper computer.
DETAIL DESCRIPTION OF THE PREFERRED EMBODIMENT
[0018] FIG. 1 illustrates an overview of the interconnection of the
gatekeeper computer 102 with the applications computer 103
according to the teachings of the present invention. To enable such
interconnection, gatekeeper computer 102 is enhanced and extended
by the addition of software whose functions are described below.
Communications path 105 may be any type of data communications
path.
[0019] The arrangement of FIG. 1 includes several external
telephony applications systems 104, typically implemented as
software, which may be located on applications computer 103 or on
separate computers connected via any communications network to
applications computer 103. Typically, the applications computer may
be collocated with one of the end points described below.
[0020] The arrangement of FIG. 1 also includes end points 106,
which may be personal computers, network computer devices (NCs), or
any other node capable of interconnection to the packet network
telephony environment.
[0021] In operation, a command is issued from an applications
computer 103 requesting certain telephony services which will be
described below. The message requesting such a service is
transmitted through path 105 to gatekeeper computer 102 for
processing. The message sent to gatekeeper 102 causes gatekeeper
102 to exchange appropriate signaling messages with other packet
network telephony environment nodes in a manner as described, for
example, in the incorporated H.323 standard. As a result of this
sequence of events, the combined system is able to implement the
call processing functionality requested by applications computer
103 on behalf of applications 104.
[0022] During operation, various call control functions requested
by applications computer 103 are performed by the gatekeeper 102.
Additionally, by making appropriate requests of gatekeeper 102,
applications computer 103 may monitor the outcome of various call
control functions and transmit such outcome to any of applications
104.
[0023] FIG. 2 shows an exemplary message flow diagram for detecting
an inbound call from a remote end point to a local end point
supervised by an external computer telephony application using the
present invention. The specific example shown in FIG. 2 is the
monitoring of an incoming call to end point 202 using packet
network telephony methods and apparatus as described in the H.323
standard, enhanced by the present invention to permit the
participation of an external software application 201. End points
202 and 204 represent audio terminals, for example, computer
systems equipped as H.323 compliant telephone devices. Gatekeeper
203 is as described, for example, in the H.323 standard and as
further enhanced by the present invention, and the external
application 201 may be present on a separate computer as previously
discussed.
[0024] In operation, the call initially proceeds according to the
methods of the packet network telephony environment. A bandwidth
request message 205 is sent to gatekeeper 203 and bandwidth is
granted by the gatekeeper at message 206. A call setup request,
message 207, is issued by the initiating end point 204, and
gatekeeper 203 causes call setup request message 208 to be
transmitted to receiving end point 202. A call proceeding message
209 is transmitted by the receiving end point back to gatekeeper
203 and relayed to initiating end point 210 as shown.
[0025] At approximately the same time gatekeeper 203 relays the
call proceeding indication to the initiating end point using
message 210, gatekeeper 203 also transmits to external application
201 a notification that an inbound call is being received by the
receiving end point 202. Gatekeeper 203 sends this message because
external application 201 has previously indicated that it requires
notification of telephony events occurring at receiving end point
202.
[0026] In order to connect the inbound call, receiving end point
202 requires network bandwidth, and such bandwidth is requested
from and allocated by the gatekeeper 203 using messages 212 and
213. Next, the terminal at monitored end point 202 rings to alert
the user to the arriving call, and an indication of such ringing is
transmitted through messages 214 and 215 to initiating end point
204 through the gatekeeper 203. When the call is connected at the
receiving end point 202 because of user action, end point 202
informs gatekeeper 203 via message 216.
[0027] At this point, gatekeeper 203 sends an answer notification
to the external application 201 via message 217.
[0028] At approximately the same time, gatekeeper 203 indicates to
the initiating end point 204 that the requested call has been
connected via message 218.
[0029] In accordance with the protocol described hereinbefore, the
detection of the call by an external application is accomplished
via a protocol of messages transmitted between the gatekeeper and
the end points to be connected, as well as between the gatekeeper
203 and the external application 201, thus enabling gatekeeper 203
to inform external application 201 regarding the progress of
relevant calls in the packet telephony network.
[0030] FIGS. 3A and 3B show another example of an external call
processing application requesting the establishment of an outbound
call from initiating end point 386 to receiving end point 390. Many
of the messages involved in this operation are substantially
similar to those previously set forth with respect to the
monitoring of the inbound call described in FIG. 2. New messages
not previously discussed in FIG. 2 are described below. As with the
discussion of FIG. 2, the external application 392 in FIGS. 3A and
3B is assumed to have previously communicated with gatekeeper 388
in accordance with other methods described by this invention to
indicate its intention to issue call control requests with respect
to initiating end point 386.
[0031] In FIGS. 3A and 3B, gatekeeper 388 also includes the
conference control point function as currently known to the packet
network telephony art. This function is used by the invention to
interconnect two call segments, namely the segment between the
initiating end point 386 and the conference control point; and
between the conference control point and the receiving end point
390. The invention connects the call in two stages in order to
overcome certain limitations of the known packet network telephony
art. For clarity of description, the combined gatekeeper and
conference control point apparatus is referred to as a gatekeeper
388.
[0032] The sequence of messages begins with a new message 301,
specified by the current invention, through which the external
application 392 makes a request that the first segment of the call
be established from gatekeeper 388 to initiating end point 386.
[0033] Next, according to known packet network telephony art,
messages 302 and 303 are exchanged between gatekeeper and
initiating end point 386 in order to set up that first leg of the
call.
[0034] Next, the gatekeeper 388 sends a new message 304 to external
application 392 to alert it that the call request has been received
and is being processed. Much of the remaining signaling, relating
to the establishment of that segment of the call between initiating
end point 386 and gatekeeper 388 in FIGS. 3a and 3b, is
substantially similar to that previously described with respect to
FIG. 2 and thus will not be repeated. Similarly, once the first leg
of the call has been set up, gatekeeper 388 proceeds in similar
fashion to set up the second leg of the call from itself to
receiving end point 390.
[0035] However, during the process depicted in FIGS. 3A and 3B
gatekeeper 388 sends new messages to the external application 392
at relevant stages of call processing, including: [0036] 1. Message
305 indicating that initiating end point 386 has acquired the
necessary network bandwidth to place the call; [0037] 2. Message
306 indicating that receiving end point 390 is processing the
request for the call; [0038] 3. Message 310 indicating that
receiving end point 390 is alerting its user to the arriving call;
and [0039] 4. Message 312 indicating that receiving end point 390
has answered the call and a connection has been established.
[0040] FIG. 4 shows various possible connections for the gatekeeper
computer-processing application computer link. A gatekeeper
computer 410 facilitates calls between the various H323 or
equivalent endpoints 406. As an example, these endpoints can be
connected to telephones 420 via PSTNs 421. Alternatively, the
endpoints can be connected to other computers or devices, such as
PBXs 481, which then interface to, as an example, cellular networks
480.
[0041] The processing application computers (AC) 430 are connected
to the gatekeeper computer (GK) 410 in a variety of ways, some of
which are shown as examples in FIG. 4. The gatekeeper computer sets
up and controls call sessions between the various H.323 or
equivalent endpoints 406.
[0042] One or more ACs 430 can be connected to the GK 410 via a LAN
473, a generic data network 472, or via interprocess software
communication 471, where both the GK and AC are software modules on
the same physical computing device, shown via the dotted line box
490 drawn around these components connected via the interprocess
software communication 471.
[0043] Alternatively, the AC 4301 and GK 410 can be themselves
connected via the Internet 450, or other computer communications
network. Or, the GK 410 could write to a file, stored, and then
itself transmitted to an AC 430, via a variety of data transmission
channels, as described above, or as is otherwise known in the
art.
[0044] The ACs 430, communicating with the GK in an analogous
fashion as described above, can implement, via a variety of
applications programs, applications and services such as voice
recognition of the words exchanged in the call, rerouting the call
if unanswered after a determined number of rings, measurement of
the length of the call, and storing the word content of calls as
determined by the above described voice recognizer and writing such
content to a file for analysis by another program, to list a few.
As described above these applications are usually implemented in
software, but could be implemented, wholly or partially, in
dedicated hardware as well, especially in complex applications
requiring a lot of processing.
[0045] The method of the invention relates to software functional
modules, and holds constant no matter what the physical arrangement
of those modules might be. For example, two modules as described
above (for example, the Application Computer and the Gatekeeper)
might reside on separate computing systems or may reside on a
common system; they nonetheless remain separate modules and
communicate with each other in a similar fashion. Thus, the
invention is intended to include any such rearrangement of software
modules on a convenient set of computing systems.
[0046] The communication methods described above are as well
intended to includea wide variety of possible implementations.
Thus, for example, two modules residing in a common computing
system will exchange messages, but may not do so over a physical
"data network" in the sense of signals travelling over external
wires.
[0047] There are various methods by which an application (running
on the application system) actually requests the services available
over the CSTA-like link (CSTA being the standard abbreviation for
Computer Supported Telecommunication Applications). One common
method is to provide a standard software library on the application
machine that offers a telephony Application Programming Interface
("API") to the application program. Within the context of the
invention, this API can be any API that includes call-control
functions. Two such APIs known to the industry are, for example,
Microsoft's TAPI ("Telephony API") and Sun's JTAPI ("Java Telephony
API"). The APIs are used to provide convenient access by the
application program to the services delivered by the invention.
There are many possible applications that could make use of the
capabilities of the invention. These applications are well known
and for the sake of brevity will not be exhaustively described
herein. Some of the more likely applications are the following:
[0048] Call Routing. When a request to handle an incoming call is
presented to the call controller (or "gatekeeper" in H.323
parlance), the gatekeeper sends a message to the application
requesting routing instructions. The application uses any
convenient business logic to decide how the call should be routed,
and responds to the gatekeeper with appropriate instructions. The
gatekeeper then routes the call to a destination based on those
instructions. Several examples of such business logic would
include, as examples, follow me services, load balancing, skill
based routing, screen pop, universal queueing and unified
messaging, each of which is summarily described in what
follows.
[0049] Follow-me services. A telephone subscriber leaves forwarding
instructions with the application specifying the telephone endpoint
or series of endpoints to which calls should be forwarded, and
optionally some rules that govern that forwarding. For example,
"calls arriving between certain times of day should be forwarded to
this number"; or "I am in my car now; send all calls to my cell
phone", or "Forward all calls to my voicemail except calls from my
boss and my children".
[0050] Load balancing. When a call is made to an enterprise and it
is determined that any of several individuals, offices or work
groups could handle such a call (for example, a call to a customer
service number), the application can choose which individual, work
group or office should receive to call based on its assessment of
the current workload at each potential destination.
[0051] Skill-based routing. When a call is made to an enterprise
and it is determined that any of several individuals, offices or
work groups could handle such a call (for example, a call to a
customer service number), the application can choose which
individual, work group or office should receive the call based on
its assessment of the capabilities required by the caller (for
example, knowledge of a particular product or account type, or
ability to speak a certain language).
[0052] Screen pop. When a call is directed to a particular
endpoint, the gatekeeper simultaneously alerts the application so
that the application can retrieve business information
corresponding to the call (for example, customer or account
information) and display it for the user at that endpoint.
[0053] Universal Queueing. When an application manages multiple
forms of communications for a user (for example, traditional or
packet telephone calls, electronic mail messages, facsimile
documents, communication requests from parties viewing web pages,
text chat sessions) by sequencing those communications so that they
are served in an equitable and/or efficient fashion, that
application can use the invention to acquire the necessary
information about packet telephony calls and to direct the holding
and release of such calls as may be required to implement the
desired sequencing.
[0054] Unified Messaging. When an application manages multiple
forms of store-and-forward communications for a user (for example,
electronic mail messages, voice mail messages, facsimile documents)
by storing these communications, presenting an inventory of those
communications to the user, and presenting specific selected
messages to the user as directed by that user, that application can
use the invention to create packet telephony connections between
the message repository and the user for the purposes of presenting
said inventory to the user, allowing the user to give said
direction, and presenting the selected messages.
[0055] The above describes the preferred embodiments of the
invention. It will be appreciated however that various other
modifications or additions will be apparent to those of ordinary
skill in the art.
* * * * *