WO1996028923A1 - Routing incoming calls to a pbx in response to route requests from a host computer - Google Patents

Routing incoming calls to a pbx in response to route requests from a host computer Download PDF

Info

Publication number
WO1996028923A1
WO1996028923A1 PCT/US1996/001855 US9601855W WO9628923A1 WO 1996028923 A1 WO1996028923 A1 WO 1996028923A1 US 9601855 W US9601855 W US 9601855W WO 9628923 A1 WO9628923 A1 WO 9628923A1
Authority
WO
WIPO (PCT)
Prior art keywords
route request
call
routing
vrd
pbx
Prior art date
Application number
PCT/US1996/001855
Other languages
French (fr)
Inventor
Thomas C. Keeler
Loanne P. Dang
Chuck S. Kelly
Original Assignee
Siemens Business Communication Systems, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Business Communication Systems, Inc. filed Critical Siemens Business Communication Systems, Inc.
Priority to DE69621128T priority Critical patent/DE69621128T2/en
Priority to EP96906375A priority patent/EP0815679B1/en
Publication of WO1996028923A1 publication Critical patent/WO1996028923A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/58Arrangements providing connection between main exchange and sub-exchange or satellite
    • H04Q3/62Arrangements providing connection between main exchange and sub-exchange or satellite for connecting to private branch exchanges
    • H04Q3/625Arrangements in the private branch exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/523Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/009Arrangements for interconnection between switching centres in systems involving PBX or KTS networks

Definitions

  • the present invention relates to the field of telecommunications, and more particularly, to a method for routing incoming calls through a private branch exchange PBX) .
  • a private branch exchange is a telephone communications system generally used by large businesses for interconnecting all classes of trunk lines, station lines and other lines.
  • the PBX concentrates signals on the trunk lines for subsequent transmission to a network of private stations.
  • a conventional PBX includes a switching unit (SWU) which is comprised of call processing software (CP) .
  • the CP typically includes call handling and device handling software modules which monitor and interconnect incoming calls and devices.
  • the CP of a conventional PBX typically includesautomatic call distribution software (ACD) and ACD Routing Tables, which ACD software automatically routes incoming calls to preassigned destinations in order to maximize call-answering productivity.
  • ACD automatic call distribution software
  • ACD Routing Tables which ACD software automatically routes incoming calls to preassigned destinations in order to maximize call-answering productivity.
  • many modem PBXs further comprise one or more server processors which are coupled to the CP of the PBX SWU.
  • the server processors provide a link for communication between the CP and host computers which are external to the PBX.
  • the link to the external host computers enables a host computer, such as an IBM PC, to monitor the operation of one or more PBXs (i.e. by monitoring call routing and call status information) through the execution of host-specific software applications.
  • a host-specific software application provides limited routing of an incoming call by the host computer during a short time interval which starts when the incoming call is received and ends when the incoming call is handled in accordance with conventional ACD call handling techniques (ACDCHT) . This is useful in that it provides the flexibility of routing an incoming call (under control of the CP) to an ACD of another PBX when the ACD of the first PBX is too congested.
  • ACDCHT ACD call handling techniques
  • the CP in the conventional PBX delays incoming calls for a predetermined amount of time (delay interval) before it requests routing to the ACD software.
  • the resulting delay interval provides a window of inactivity during which a host computer which monitors the first PBX can determine whether the incoming call should be routed to another PBX based on the current call status information the host computer has received from the PBX. If the incoming call is not routed elsewhere, it is handled in accordance with conventional ACD call handling techniques.
  • While the prior art method of routing incoming calls to an ACD on an alternate PBX in response to commands from an external host computer is useful in reducing ACD congestion, a significant drawback with the prior art method is that the host computer is permitted to route the incoming call only during the short time interval described above. After the time interval ends, subsequent routing of the incoming call is determined solely in accordance with the ACDCHT, which ACDCHT includes use of ACD Routing Tables. As is well known, reconfiguration of the ACD Routing Tables is static, i.e., it can be performed manually at predetermined times and cannot be performed individually for each incoming call so that the incoming call is routed to an optimal destination.
  • a major disadvantage with the prior art routing method is that a host computer may not be able to make a timely decision concerning the proper routing destination for an incoming call before it is transferred to the ACDCHT. This may occur when, for example, the network rules do not provide the host computer with sufficient time to make an optimal routing decision and to transmit the associated commands to the PBX.
  • One result of this is that if the ACD at the PBX is congested, the incoming call may be connected to a recording for a prolonged period of time, thereby causing the caller to terminate the call.
  • an embodiment of the present invention provides a method for dynamically routing incoming calls through a private branch exchange (PBX) .
  • PBX private branch exchange
  • Embodiments of the present invention are advantageous in that they provide the host computer with sufficient time to monitor the progress of incoming calls and to make routing decisions that will optimize operation of the PBX.
  • An embodiment of the present invention is a method for dynamically routing incoming calls through a private branch exchange (PBX) , which method comprises the steps of:
  • FIG. 1 shows a block diagram of a PBX which operates in accordance with the present invention.
  • FIG. 1 shows a block diagram of private branch exchange 1000 (PBX 1000) which operates in accordance with the present invention.
  • PBX 1000 comprises switching unit 10 (SWU 10) which includes call processing software 20 (CP 20) and call processing database 110 (CPDB 110)
  • SWU 10 switching unit 10
  • CP 20 is software which monitors incoming calls and controls switching of lines between incoming calls, outgoing calls and devices such as a recording device.
  • CPDB 110 is a database that supports the activities of CP 20.
  • An incoming call received by PBX 1000 is connected to device bus 180.
  • Information related to the incoming call is forwarded from device bus 180 by a software module of CP 20, denoted as device handler 40, to a software module of CP 20, denoted as call handler 30.
  • Call handler 30 forwards the incoming call to a software module of CP 20, denoted as virtual routing device 170 (VRD 170) , whenever call handler 30 determines that the called number, for example, the dialed number identification service (DNIS) information, specifies an ACD application.
  • CPDB 110 comprises call processing tables 140 which are used by call handlers 30 to store status information on the progress of active calls and the readiness of internal destination devices.
  • VRD 170 places the incoming call into VRD call queue 120 of CPDB 110 and transmits a call-received event message to software module ACD Route Manager 160 (ARM 160) .
  • ARM 160 obtains routing information for the incoming call and sends a route request to VRD 170. Note that this isdifferent from the prior art which includes a delay in call processing to provide an opportunity for a host routing application running on host processors 80 to provide another route request.
  • VRD call queue 120 queues incoming calls which are waiting to be routed to a final destination.
  • ARM 160 determines routing information for incoming calls placed in VRD call queue 120 of CPDB 110 in a manner which is well known by using predetermined routing commands or steps stored in ACD routing tables 130 of CPDB 110.
  • ACD routing tables 130 are comprised of sequential routing commands or steps which determine the routing of incoming calls for the ACD application.
  • VRD 170 generates connections between incoming calls and both internal and external destinations in response to the routing information received along with the route request from ARM 160 in a manner which is well known to those of ordinary skill in the prior art.
  • a destination to which an incoming call may be routed is a temporary destination such as a music or announcement device, or a final destination such as an internal extension, an external extension or an agent (i.e., an attendant, a voice mail system, etc.).
  • CP 20 further comprises a software module referred to as application connectivity link 150 (ACL 150) .
  • ACL 150 application connectivity link 150
  • VRD 170 performs several reporting functions by transmitting the following types of information to the host routing applications through ACL 150: (a) call status information from one or more of the software modules of CP 20, including ARM 160, and (b) routing decisions made by VRD 170.
  • ACL 150 performs several reporting functions by transmitting information from the host routing applications to one or more of the software modules of CF 20, including route requests which are generated by the host routing applications running on host computers 80 and are transmitted to VRD 170.
  • ACL 150 transmits the call status information to external host computers 80 through processor bus 60, server processors 50, and gateway interfaces 70.
  • host routing applications generate route requests.
  • the routing requests are transmitted to ACL 150 through gateway interfaces 70, server processors 50, and processor bus 60.
  • the route requests can also be generated by server processors 50 serving in the capacity of an external host computer.
  • PBX 1000 comprises a 9006 PBX system sold by Siemens Rolm Communications Inc. of Santa Clara, California, and host computers 80 preferably comprise a computer system having call monitoring and routing software (otherwise referred to as host-specific applications) stored within their memory.
  • call monitoring and routing software otherwise referred to as host-specific applications
  • gateway interface 70 under the control of a host manager software module (not shown) of server processors 50.
  • the host manager software module places received messages into a proper communications format for the receiving agents (either ACL 150 or host computers 80) in accordance with a well-known CSTA protocol communications standard.
  • VRD call queue 120 comprises table locations to which each incoming call is assigned along with the following information: (a) a table index for identifying table entries; (b) a status field which contains information on the current state of the incoming call; (c) a route requester identification field which identifies either ARM 160 or a host routing application running on one of host computers 80; and (d) a temporary destination field which identifies any temporary connection for the incoming call.
  • the call-received event message transmitted to ARM 160 by VRD 170 comprises: (a) an index number of a table entry in VRD call queue 120 which identifies the incoming call; (b) a route control grcup number (RCG number) for the incoming call which is an index to determine a routing table in ACD routing tables 130; and (c) a timestamp indicating the time the incoming call was received by VRD 170.
  • RCG number route control grcup number
  • ARM 160 Upon receipt of the call-received event message from VRD 170, ARM 160 determines routing information for the incoming call based on predetermined routing steps (i.e. an algorithm of routing commands) stored in ACD routing tables 130. As is well known in the art, ARM 160 does this by using the RCG number of the incoming call to locate the sequential routing steps within ACD routing tables 130. As this is being done, VRD 170 waits for a route request from either or both of ARM 160 and a host routing application running on host computers 80. Note that in accordance with the present invention, route requests may be received from more than one host routing application. Also note that, in this context, the term host routing application includes routing applications which could also be run on server processors 50.
  • predetermined routing steps i.e. an algorithm of routing commands
  • ACL 150 performs several checks: (a) it validates the request (for example, has the proper format, relates to an existing incoming call, and so forth) and (b) it determines whether the corresponding incoming call is in a state that can be routed. If one of these checks fails, ACL 150 stops processing the route request and sends a message with an appropriate negative acknowledgment back to the host routing application. If all checks are completed successfully, ACL 150 reformats and transmits the route request to VRD 170. The route request causes VRD 170 to initiate a connection between the incoming call and the destination specified in the route request.
  • route requests from host routing applications are generated in response to monitoring information received from VRD 170, which monitoring information was sent to VRD 170 from ARM 160 and call handlers 30, whereas route requests from ARM 160 are generated in response to call-received event messages received from VRD 170.
  • Each route request transmitted to VRD 170 comprises the following information: (a) the table index of the incoming call to be routed; (b) the route destination requested; and (c) a requester identification number identifying the source of the request (ARM 160 or a host routing application) .
  • a route request received from a host route application is compared against any potentially active route request received from ARM 160 (to either a temporary or final destination) to determine which requesting source has priority.
  • a priority scheme is utilized. The priority scheme gives priority to route requests received from ARM 160 for a final destination. Thus, if a route request is received from the host routing application after a route request is received from ARM 160, the route request from ARM 160 will prevail.
  • a route request from ARM 160 is received after a route request is received from a host routing application, the route request from ARM 160 will prevail unless the route request from the host routing application was completed to a final destination.
  • a route is considered to be complete when the destination device acknowledges the call.
  • both route requests will be handled simultaneously (regardless of which route request was first received) until the incoming call is routed to a final destination specified either by the pending route request from the host routing application or a subsequently received route request received from ARM 160.
  • a route request from ARM 160 for a final destination is received by VRD 170 during a routing attempt for a final destination specified by a route request from a host routing application, the route request from the host routing application will be aborted and processing of the route request from ARM 160 will begin.
  • both route requests will be processed simultaneously until the final destination specified by the route request from the host routing application accepts the call made by VRD 170, at which time, the incoming call will be transferred from its temporary destination to the final destination specified by the route request from the host routing application. If a route request is found by VRD 170 not to have priority over another pending route request, the requesting source is informed by VRD 170 that the route request has been rejected. To process a route request, VRD 170 instructs call handlers 30 to connect the incoming call to the destination specified in the route request.
  • Call handlers 30 can either reject the connection request immediately or can accept the connection request (a connection request may be rejected, for example, because the device has initiated a call) . According to the preferred embodiment of the present invention, if a connection request based on a route request from ARM 160 is accepted by call handlers 30, no response is sent to ARM 160. However, if the connection request based on a route request from ARM 160 is not accepted by call handlers 30, VRD 170 sends a negative acknowledgment response to ARM 160.
  • VRD 170 sends a positive acknowledgment response to ARM 160.
  • the positive acknowledgment response indicates that the incoming call was successfully completed status and that the incoming call was released from VRD call queue 120. Call processing for the incoming call is now complete.
  • VRD 170 sends a negative acknowledgment response to ARM 160 which indicates the reasons for the failure. In this case, ARM 160 will proceed with alternative routing.
  • VRD 170 if a connection request based on a route request from a host routing application is accepted or rejected by call handlers 30, VRD 170 sends a positive or a negative acknowledgment response, respectively, to the host routing application. If the connection request based on a route request from a host routing application is accepted by call handlers 30, VRD 170 sends no acknowledgment response to the host routing application. The host routing application will later be informed of the completion status, successful or not, of the route request in an event monitoring message transmitted to the host routing application during normal event monitoring. If a connection request based on a route request from a host routing application is successfully completed,VRD 170 sends a message to ARM 160 to cause ARM 160 to abandon routing attempts.
  • Embodiments of the present invention will be described with respect to the following scenarios of route transactions to provide a better understanding of the present invention. For simplicity, the operation of ACL 150 is not described in the examples below.
  • a first route transaction scenario an incoming call is received by VRD 170 and entered into VRD call queue 120 of CPDB 110.
  • VRD 170 sends a call-received event message to ARM 160.
  • ARM 160 sends a route request for a temporary destination, an announcement.
  • VRD 170 makes a connection request to call handlers 30.
  • Call handlers 30 accepts the connection request and connects the incoming call to the temporary destination. As was described above, once the incoming call has been connected to the temporary destination, VRD 170 sends a positive acknowledgment response to ARM 160. At some later time, ARM 160 sends a route request to VRD 170 to route the incoming call to a final destination Dl in accordance with predetermined steps in ACD Routing Tables 130. VRD 170 makes a connection request to call handlers 30. Call handlers 30 attempts to make a connection to the final destination Dl. As was described above, once the incoming call has been connected to the final destination Dl, VRD 170 sends a positive acknowledgment response to ARM 160 and removes the incoming call from VRD call queue 120.
  • call handlers 30 sends, through VRD 170 and ACL 150, an event monitoring message to the host routing application.
  • the event monitoring message contains information regarding the processing and completion status of the route request.
  • Such event monitoring messages are sent to the host routing application for all calls, regardless of whether the route request is generated by ARM 160 or the host application.
  • the monitoring information sent to the host routing application for the route transaction described above comprises information regarding the routing actions undertaken, the event type (in this case, that it was a request to route an incoming call) , the host routing application ID identifying the specific requesting source, a time stamp indicating the time at which the incoming call was entered into VRD call queue 120, The RCG number of the call, the calling party (or incoming caller) ID, the destination to which the incoming call was routed (or attempted) , and the number of the routing step of ACD Routing Tables 130 last acted upon by ARM 160. In the case of a routing request from a host routing application, the routing step is set to zero.
  • a host routing application issues a route request to route the incoming call to a final destination D2 after VRD 170 receives a route request from ARM 160 to route the call to the final destination Dl.
  • VRD 170 gives priority to the route request from ARM 160 and rejects the route request from the host routing application. Then, VRD 170 sends a negative acknowledgment response to the host routing application to inform it that its request has been rejected.
  • an incoming call is received by VRD 170 and entered into VRD call queue 120 of CPDB 110.
  • VRD 170 sends a call-received event message to ARM 160.
  • ARM 160 sends a route request for a temporary destination, an announcement.
  • VRD 170 makes a connetion request to call handlers 30.
  • Call handlers 30 accepts the connection request and connects the incoming call to the temporary destination. As was described above, once the incoming call has been connected to the temponary destination,VRD 170 sends a positive acknowledgment response to ARM 160. After the incoming call has been connected to the temporary destination, a route request to route the incoming call to a final destination Dl is sent to VRD 170 from the host routing application. Upon receipt of the route request from the host routing application,VRD 170 makes a connection request to call handlers 30 and call handlers 30 accepts the connection request. VRD 170 then sends a positive acknowledgment response to the host routing application. Upon acceptance of. the connection by the final destination Dl, call handlers 30 informs VRD 170 thereof. In response, VRD 170 dequeues the incoming call from VRD call queue 120 and sends a message to ARM 160 to inform it that the incoming call has been connected (this last step prevents ARM 160 from further processing the incoming call) .
  • an incoming call is received by VRD 170 and entered into VRD call queue 120 of CPDB 110.
  • VRD 170 sends a call-received event message to ARM 160.
  • ARM 160 sends a route request for a temporary destination, an announcement.
  • VRD 170 makes a connection request to call handlers 30.
  • Call handlers 30 accepts the connection request and connects the incoming call to the temporary destination.
  • VRD 170 sends a positive acknowledgment response to ARM 160.
  • a route request to route the incoming call to a final destination Dl is sent to VRD 170 from the host routing application.
  • VRD 170 makes a connection request to call handlers 30 and call handlers 30 accepts the connection request.
  • VRD 170 then sends a positive acknowledgment response to the host routing application.
  • ARM 160 sends a route request to VRD 170 to route the incoming call to another final destination D2.
  • VRD 170 immediately checks its priority logic and determines that the route request by ARM 160 is of a higher priority, and aborts the connection request to final destination Dl and makes a connection request to final destination D2.
  • VRD 170 sends a positive acknowledgment response to ARM 160.
  • the host routing application is not made aware of the cancellation of the route request to final destination Dl.

Abstract

An embodiment of the present invention is a method for dynamically routing incoming calls through a private branch exchange (PBX) in response to commands issued by a host computer and, in particular, for routing incoming calls after routing information has been obtained from conventional ACD call handling techniques. In particular, an embodiment of the present invention is a method for dynamically routing incoming calls through a private branch exchange (PBX), which method comprises the steps of: (a) receiving an incoming call; (b) requesting a route request from a call processing module of the PBX, the route request being referred to as an internal route request; (c) receiving a route request for the incoming call from an alternate source, the route request being referred to as an external route request; and (d) rejecting the internal or the external route request on the basis of a priority scheme.

Description

ROOTING INCOMING CALLS TO A PBX IN RESPONSE TO ROUTE REOUEST8 FROM A HOST COMPUTER
Technical Field of the Invention
The present invention relates to the field of telecommunications, and more particularly, to a method for routing incoming calls through a private branch exchange PBX) .
Background of the Invention
A private branch exchange (PBX) is a telephone communications system generally used by large businesses for interconnecting all classes of trunk lines, station lines and other lines. The PBX concentrates signals on the trunk lines for subsequent transmission to a network of private stations. A conventional PBX includes a switching unit (SWU) which is comprised of call processing software (CP) . The CP typically includes call handling and device handling software modules which monitor and interconnect incoming calls and devices. The CP of a conventional PBX typically includesautomatic call distribution software (ACD) and ACD Routing Tables, which ACD software automatically routes incoming calls to preassigned destinations in order to maximize call-answering productivity. To provide greater versatility and functionality, many modem PBXs further comprise one or more server processors which are coupled to the CP of the PBX SWU. The server processors provide a link for communication between the CP and host computers which are external to the PBX. In particular, the link to the external host computers enables a host computer, such as an IBM PC, to monitor the operation of one or more PBXs (i.e. by monitoring call routing and call status information) through the execution of host-specific software applications. In some modern PBXs, a host-specific software application provides limited routing of an incoming call by the host computer during a short time interval which starts when the incoming call is received and ends when the incoming call is handled in accordance with conventional ACD call handling techniques (ACDCHT) . This is useful in that it provides the flexibility of routing an incoming call (under control of the CP) to an ACD of another PBX when the ACD of the first PBX is too congested.
To provide the above-described flexibility of routing an incoming call by a host computer in a conventional PBX, the CP in the conventional PBX delays incoming calls for a predetermined amount of time (delay interval) before it requests routing to the ACD software. The resulting delay interval provides a window of inactivity during which a host computer which monitors the first PBX can determine whether the incoming call should be routed to another PBX based on the current call status information the host computer has received from the PBX. If the incoming call is not routed elsewhere, it is handled in accordance with conventional ACD call handling techniques.
While the prior art method of routing incoming calls to an ACD on an alternate PBX in response to commands from an external host computer is useful in reducing ACD congestion, a significant drawback with the prior art method is that the host computer is permitted to route the incoming call only during the short time interval described above. After the time interval ends, subsequent routing of the incoming call is determined solely in accordance with the ACDCHT, which ACDCHT includes use of ACD Routing Tables. As is well known, reconfiguration of the ACD Routing Tables is static, i.e., it can be performed manually at predetermined times and cannot be performed individually for each incoming call so that the incoming call is routed to an optimal destination. As one can readily appreciate from the above, a major disadvantage with the prior art routing method is that a host computer may not be able to make a timely decision concerning the proper routing destination for an incoming call before it is transferred to the ACDCHT. This may occur when, for example, the network rules do not provide the host computer with sufficient time to make an optimal routing decision and to transmit the associated commands to the PBX. One result of this is that if the ACD at the PBX is congested, the incoming call may be connected to a recording for a prolonged period of time, thereby causing the caller to terminate the call.
In light of the above, there is a need for a method for dynamically routing incoming calls to a PBX in response to commands issued by a host computer and, in particular, for routing incoming calls after a routing request has been obtained from the ACDCHT.
Summary of the Invention
Advantageously, an embodiment of the present invention provides a method for dynamically routing incoming calls through a private branch exchange (PBX) . Embodiments of the present invention are advantageous in that they provide the host computer with sufficient time to monitor the progress of incoming calls and to make routing decisions that will optimize operation of the PBX.
An embodiment of the present invention is a method for dynamically routing incoming calls through a private branch exchange (PBX) , which method comprises the steps of:
(a) receiving an incoming call; (b) requesting a route request from a call processing module of the PBX, the route request being referred to as an internal route request; (c) receiving a route request for the incoming call from an alternate source, the route request being referred to as an external route request; and (d) rejecting the internal or the external route request on the basis of a priority scheme.
Brief Description of the Figure
FIG. 1 shows a block diagram of a PBX which operates in accordance with the present invention.
Detailed Description
FIG. 1 shows a block diagram of private branch exchange 1000 (PBX 1000) which operates in accordance with the present invention. As shown in FIG. 1, PBX 1000 comprises switching unit 10 (SWU 10) which includes call processing software 20 (CP 20) and call processing database 110 (CPDB 110) , CP 20 is software which monitors incoming calls and controls switching of lines between incoming calls, outgoing calls and devices such as a recording device. CPDB 110 is a database that supports the activities of CP 20.
An incoming call received by PBX 1000 is connected to device bus 180. Information related to the incoming call is forwarded from device bus 180 by a software module of CP 20, denoted as device handler 40, to a software module of CP 20, denoted as call handler 30. Call handler 30 forwards the incoming call to a software module of CP 20, denoted as virtual routing device 170 (VRD 170) , whenever call handler 30 determines that the called number, for example, the dialed number identification service (DNIS) information, specifies an ACD application. CPDB 110 comprises call processing tables 140 which are used by call handlers 30 to store status information on the progress of active calls and the readiness of internal destination devices. At that time, VRD 170 places the incoming call into VRD call queue 120 of CPDB 110 and transmits a call-received event message to software module ACD Route Manager 160 (ARM 160) . In response to the call-received event message, ARM 160 obtains routing information for the incoming call and sends a route request to VRD 170. Note that this isdifferent from the prior art which includes a delay in call processing to provide an opportunity for a host routing application running on host processors 80 to provide another route request. VRD call queue 120 queues incoming calls which are waiting to be routed to a final destination. ARM 160 determines routing information for incoming calls placed in VRD call queue 120 of CPDB 110 in a manner which is well known by using predetermined routing commands or steps stored in ACD routing tables 130 of CPDB 110. ACD routing tables 130 are comprised of sequential routing commands or steps which determine the routing of incoming calls for the ACD application. VRD 170 generates connections between incoming calls and both internal and external destinations in response to the routing information received along with the route request from ARM 160 in a manner which is well known to those of ordinary skill in the prior art. As is well known, a destination to which an incoming call may be routed is a temporary destination such as a music or announcement device, or a final destination such as an internal extension, an external extension or an agent (i.e., an attendant, a voice mail system, etc.). As shown in FIG. 1, CP 20 further comprises a software module referred to as application connectivity link 150 (ACL 150) . VRD 170 performs several reporting functions by transmitting the following types of information to the host routing applications through ACL 150: (a) call status information from one or more of the software modules of CP 20, including ARM 160, and (b) routing decisions made by VRD 170.
ACL 150, on the other hand, performs several reporting functions by transmitting information from the host routing applications to one or more of the software modules of CF 20, including route requests which are generated by the host routing applications running on host computers 80 and are transmitted to VRD 170. As is known in the art, ACL 150 transmits the call status information to external host computers 80 through processor bus 60, server processors 50, and gateway interfaces 70. In response to the call status information, among other things, host routing applications generate route requests.
The routing requests are transmitted to ACL 150 through gateway interfaces 70, server processors 50, and processor bus 60. Of course, as is known in the art, the route requests can also be generated by server processors 50 serving in the capacity of an external host computer.
In a preferred embodiment of the present invention, PBX 1000 comprises a 9006 PBX system sold by Siemens Rolm Communications Inc. of Santa Clara, California, and host computers 80 preferably comprise a computer system having call monitoring and routing software (otherwise referred to as host-specific applications) stored within their memory. In the embodiment shown in FIG. 1, communication between host computers 80 and processor bus 60 is performed by gateway interface 70 under the control of a host manager software module (not shown) of server processors 50. The host manager software module places received messages into a proper communications format for the receiving agents (either ACL 150 or host computers 80) in accordance with a well-known CSTA protocol communications standard. In accordance with the preferred embodiment of the present invention, VRD call queue 120 comprises table locations to which each incoming call is assigned along with the following information: (a) a table index for identifying table entries; (b) a status field which contains information on the current state of the incoming call; (c) a route requester identification field which identifies either ARM 160 or a host routing application running on one of host computers 80; and (d) a temporary destination field which identifies any temporary connection for the incoming call. In accordance with a preferred embodiment of the present invention, the call-received event message transmitted to ARM 160 by VRD 170 comprises: (a) an index number of a table entry in VRD call queue 120 which identifies the incoming call; (b) a route control grcup number (RCG number) for the incoming call which is an index to determine a routing table in ACD routing tables 130; and (c) a timestamp indicating the time the incoming call was received by VRD 170.
Upon receipt of the call-received event message from VRD 170, ARM 160 determines routing information for the incoming call based on predetermined routing steps (i.e. an algorithm of routing commands) stored in ACD routing tables 130. As is well known in the art, ARM 160 does this by using the RCG number of the incoming call to locate the sequential routing steps within ACD routing tables 130. As this is being done, VRD 170 waits for a route request from either or both of ARM 160 and a host routing application running on host computers 80. Note that in accordance with the present invention, route requests may be received from more than one host routing application. Also note that, in this context, the term host routing application includes routing applications which could also be run on server processors 50.
In accordance with the present invention, whenever a route request generated by a host routing application is received by ACL 150, ACL 150 performs several checks: (a) it validates the request (for example, has the proper format, relates to an existing incoming call, and so forth) and (b) it determines whether the corresponding incoming call is in a state that can be routed. If one of these checks fails, ACL 150 stops processing the route request and sends a message with an appropriate negative acknowledgment back to the host routing application. If all checks are completed successfully, ACL 150 reformats and transmits the route request to VRD 170. The route request causes VRD 170 to initiate a connection between the incoming call and the destination specified in the route request. As one can appreciate from the above, route requests from host routing applications are generated in response to monitoring information received from VRD 170, which monitoring information was sent to VRD 170 from ARM 160 and call handlers 30, whereas route requests from ARM 160 are generated in response to call-received event messages received from VRD 170. Each route request transmitted to VRD 170 (whether from ARM 160 or host routing applications) comprises the following information: (a) the table index of the incoming call to be routed; (b) the route destination requested; and (c) a requester identification number identifying the source of the request (ARM 160 or a host routing application) .
Once received by VRD 170, a route request received from a host route application is compared against any potentially active route request received from ARM 160 (to either a temporary or final destination) to determine which requesting source has priority. In order to prevent contention over which destination the incoming call should be transferred to when multiple route requests are received by VRD 170, in accordance with the present invention, a priority scheme is utilized. The priority scheme gives priority to route requests received from ARM 160 for a final destination. Thus, if a route request is received from the host routing application after a route request is received from ARM 160, the route request from ARM 160 will prevail. In addition, if a route request from ARM 160 is received after a route request is received from a host routing application, the route request from ARM 160 will prevail unless the route request from the host routing application was completed to a final destination. In accordance with the present invention, a route is considered to be complete when the destination device acknowledges the call. However, if the route request from ARM 160 is only for a temporary destination and the route request from a host routing application is for a final destination, both route requests will be handled simultaneously (regardless of which route request was first received) until the incoming call is routed to a final destination specified either by the pending route request from the host routing application or a subsequently received route request received from ARM 160. For example, if a route request from ARM 160 for a final destination is received by VRD 170 during a routing attempt for a final destination specified by a route request from a host routing application, the route request from the host routing application will be aborted and processing of the route request from ARM 160 will begin.
However, if the route request from ARM 160 is only for a temporary destination such as an announcement or music, both route requests will be processed simultaneously until the final destination specified by the route request from the host routing application accepts the call made by VRD 170, at which time, the incoming call will be transferred from its temporary destination to the final destination specified by the route request from the host routing application. If a route request is found by VRD 170 not to have priority over another pending route request, the requesting source is informed by VRD 170 that the route request has been rejected. To process a route request, VRD 170 instructs call handlers 30 to connect the incoming call to the destination specified in the route request. Call handlers 30 can either reject the connection request immediately or can accept the connection request (a connection request may be rejected, for example, because the device has initiated a call) . According to the preferred embodiment of the present invention, if a connection request based on a route request from ARM 160 is accepted by call handlers 30, no response is sent to ARM 160. However, if the connection request based on a route request from ARM 160 is not accepted by call handlers 30, VRD 170 sends a negative acknowledgment response to ARM 160. If the connection request based on a route request from ARM 160 is accepted by call handlers 30 and the connection is successfully completed (i.e., the final destination device accepts the outgoing call and it is connected with its corresponding incoming call) , VRD 170 sends a positive acknowledgment response to ARM 160. The positive acknowledgment response indicates that the incoming call was successfully completed status and that the incoming call was released from VRD call queue 120. Call processing for the incoming call is now complete. If the connection request based on a route request from ARM 160 is accepted by call handlers 30 and the connection is not successfully completed, VRD 170 sends a negative acknowledgment response to ARM 160 which indicates the reasons for the failure. In this case, ARM 160 will proceed with alternative routing.
According to the preferred embodiment of the present invention, if a connection request based on a route request from a host routing application is accepted or rejected by call handlers 30, VRD 170 sends a positive or a negative acknowledgment response, respectively, to the host routing application. If the connection request based on a route request from a host routing application is accepted by call handlers 30, VRD 170 sends no acknowledgment response to the host routing application. The host routing application will later be informed of the completion status, successful or not, of the route request in an event monitoring message transmitted to the host routing application during normal event monitoring. If a connection request based on a route request from a host routing application is successfully completed,VRD 170 sends a message to ARM 160 to cause ARM 160 to abandon routing attempts.
Embodiments of the present invention will be described with respect to the following scenarios of route transactions to provide a better understanding of the present invention. For simplicity, the operation of ACL 150 is not described in the examples below. In a first route transaction scenario, an incoming call is received by VRD 170 and entered into VRD call queue 120 of CPDB 110. VRD 170 sends a call-received event message to ARM 160. ARM 160 sends a route request for a temporary destination, an announcement. In response,VRD 170 makes a connection request to call handlers 30.
Call handlers 30 accepts the connection request and connects the incoming call to the temporary destination. As was described above, once the incoming call has been connected to the temporary destination, VRD 170 sends a positive acknowledgment response to ARM 160. At some later time, ARM 160 sends a route request to VRD 170 to route the incoming call to a final destination Dl in accordance with predetermined steps in ACD Routing Tables 130. VRD 170 makes a connection request to call handlers 30. Call handlers 30 attempts to make a connection to the final destination Dl. As was described above, once the incoming call has been connected to the final destination Dl, VRD 170 sends a positive acknowledgment response to ARM 160 and removes the incoming call from VRD call queue 120.
After the incoming call is connected to the final destination Dl, call handlers 30 sends, through VRD 170 and ACL 150, an event monitoring message to the host routing application. The event monitoring message contains information regarding the processing and completion status of the route request. Such event monitoring messages are sent to the host routing application for all calls, regardless of whether the route request is generated by ARM 160 or the host application. The monitoring information sent to the host routing application for the route transaction described above comprises information regarding the routing actions undertaken, the event type (in this case, that it was a request to route an incoming call) , the host routing application ID identifying the specific requesting source, a time stamp indicating the time at which the incoming call was entered into VRD call queue 120, The RCG number of the call, the calling party (or incoming caller) ID, the destination to which the incoming call was routed (or attempted) , and the number of the routing step of ACD Routing Tables 130 last acted upon by ARM 160. In the case of a routing request from a host routing application, the routing step is set to zero.
In a second route transaction scenario, we have the same routing transaction scenario described above except that here a host routing application issues a route request to route the incoming call to a final destination D2 after VRD 170 receives a route request from ARM 160 to route the call to the final destination Dl. Under these circumstances, VRD 170 gives priority to the route request from ARM 160 and rejects the route request from the host routing application. Then, VRD 170 sends a negative acknowledgment response to the host routing application to inform it that its request has been rejected.
In a third route transaction scenario, an incoming call is received by VRD 170 and entered into VRD call queue 120 of CPDB 110. VRD 170 sends a call-received event message to ARM 160. ARM 160 sends a route request for a temporary destination, an announcement. In response,VRD 170 makes a connetion request to call handlers 30.
Call handlers 30 accepts the connection request and connects the incoming call to the temporary destination. As was described above, once the incoming call has been connected to the temponary destination,VRD 170 sends a positive acknowledgment response to ARM 160. After the incoming call has been connected to the temporary destination, a route request to route the incoming call to a final destination Dl is sent to VRD 170 from the host routing application. Upon receipt of the route request from the host routing application,VRD 170 makes a connection request to call handlers 30 and call handlers 30 accepts the connection request. VRD 170 then sends a positive acknowledgment response to the host routing application. Upon acceptance of. the connection by the final destination Dl, call handlers 30 informs VRD 170 thereof. In response, VRD 170 dequeues the incoming call from VRD call queue 120 and sends a message to ARM 160 to inform it that the incoming call has been connected (this last step prevents ARM 160 from further processing the incoming call) .
In a fourth route transaction scenario, an incoming call is received by VRD 170 and entered into VRD call queue 120 of CPDB 110. VRD 170 sends a call-received event message to ARM 160. ARM 160 sends a route request for a temporary destination, an announcement. In response,VRD 170 makes a connection request to call handlers 30.
Call handlers 30 accepts the connection request and connects the incoming call to the temporary destination. As was described above, once the incoming call has been connected to the temporary destination,VRD 170 sends a positive acknowledgment response to ARM 160. After the incoming call has been connected to the temporary destination, a route request to route the incoming call to a final destination Dl is sent to VRD 170 from the host routing application. Upon receipt of the route request from the host routing application, VRD 170 makes a connection request to call handlers 30 and call handlers 30 accepts the connection request. VRD 170 then sends a positive acknowledgment response to the host routing application. However, before the final destination Dl is able to accept the connection, ARM 160 sends a route request to VRD 170 to route the incoming call to another final destination D2. Under these circumstances, VRD 170 immediately checks its priority logic and determines that the route request by ARM 160 is of a higher priority, and aborts the connection request to final destination Dl and makes a connection request to final destination D2. Once the connection request has been accepted by final destination D2, VRD 170 sends a positive acknowledgment response to ARM 160. In this scenario, the host routing application is not made aware of the cancellation of the route request to final destination Dl. Subsequent event monitoring messages sent by call handlers 30 and/or VRD 170 to the host routing application will cause the host routing application to update the completion status of the incoming call. Those skilled in the art will recognize that the foregoing description has been presented for the sake of illustration and description only. As such, it is not intended to be exhaustive or to limit the invention to the precise form disclosed. For example, it should be understood that the present invention is not limited to the particular priority scheme described in detail above and that alternate priority schemes may be used as well.

Claims

What Is Claimed Is:
1. A method for dynamically routing incoming calls through a private branch exchange (PBX) , which method comprises the steps of receiving an incoming call; requesting a route request from a call processing module of the PBX, the route request being referred to as an internal route request; receiving a route request for the incoming call from an alternate source, the route request being referred to as an external route request; and rejecting the internal or the external route request on the basis of a priority scheme.
2. The method of claim 1 wherein the call processing module is an automatic call distribution routing module.
3. The method of claim 2 wherein the alternate source comprises at least one external host computer.
4. The method of claim 2 wherein the alternate source comprises a server processor associated with the PBX.
5. The method of claim 1 wherein the priority scheme allows resolution of a conflict between an internal and an external route request before the incoming call is connected to a final destination.
6. The method of claim 5 wherein the priority scheme assigns a higher priority to an internal route request than it assigns to an external route request.
7. The method of claim 5 wherein the priority scheme allows the incoming call to be connected to one or more temporary destinations without consideration of a conflict between an internal and an external route request to the final destinations.
PCT/US1996/001855 1995-03-13 1996-02-12 Routing incoming calls to a pbx in response to route requests from a host computer WO1996028923A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE69621128T DE69621128T2 (en) 1995-03-13 1996-02-12 Routing incoming calls to a private branch exchange in response to routing requests from a main computer
EP96906375A EP0815679B1 (en) 1995-03-13 1996-02-12 Routing incoming calls to a pbx in response to route requests from a host computer

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/402,686 1995-03-13
US08/402,686 US5568544A (en) 1995-03-13 1995-03-13 Routing incoming calls to a PBX in response to route requests from a host computer

Publications (1)

Publication Number Publication Date
WO1996028923A1 true WO1996028923A1 (en) 1996-09-19

Family

ID=23592947

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1996/001855 WO1996028923A1 (en) 1995-03-13 1996-02-12 Routing incoming calls to a pbx in response to route requests from a host computer

Country Status (4)

Country Link
US (1) US5568544A (en)
EP (1) EP0815679B1 (en)
DE (1) DE69621128T2 (en)
WO (1) WO1996028923A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19948826A1 (en) * 1999-10-06 2001-04-19 Lesswire Ag Information communication system e.g. for city guide information, compares information received from communication device with data bank information for selecting information fed back via base station

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546452A (en) 1995-03-02 1996-08-13 Geotel Communications Corp. Communications system using a central controller to control at least one network and agent system
DE19534755C1 (en) * 1995-09-19 1997-01-30 Siemens Ag Method for switching narrowband trunk groups between communication systems via an ATM communication network
US5875234A (en) 1996-02-14 1999-02-23 Netphone, Inc. Computer integrated PBX system
US5923746A (en) * 1996-09-18 1999-07-13 Rockwell International Corp. Call recording system and method for use with a telephonic switch
US5923745A (en) * 1997-02-28 1999-07-13 Teknekron Infoswitch Corporation Routing calls to call centers
US6298047B1 (en) 1998-05-20 2001-10-02 Steelcase Development Inc. Method and apparatus for establishing a data link between a portable data communications device and an interface circuit
US6359711B1 (en) 1998-05-20 2002-03-19 Steelcase Development Corporation System and method for supporting a worker in a distributed work environment
US6337856B1 (en) 1998-05-20 2002-01-08 Steelcase Development Corporation Multimedia data communications system
US7245607B1 (en) * 1998-11-09 2007-07-17 Siemens Communications, Inc. Apparatus and method for telephony feature access and gatekeeper policy interaction on combined ToL/PBX systems
US6731609B1 (en) * 1998-12-31 2004-05-04 Aspect Communications Corp. Telephony system for conducting multimedia telephonic conferences over a packet-based network
AUPQ090499A0 (en) 1999-06-10 1999-07-01 Peters, William S Heart assist device and system
US6775378B1 (en) 1999-10-25 2004-08-10 Concerto Software, Inc Blended agent contact center
US6832203B1 (en) 1999-11-05 2004-12-14 Cim, Ltd. Skills based contact routing
US7230927B1 (en) 1999-12-07 2007-06-12 Aspect Software, Inc. Non-blocking expandable call center architecture
US6707906B1 (en) 2000-03-13 2004-03-16 Concerto Software, Inc. Outbound calling system in a contact center
US6665393B1 (en) 2000-06-16 2003-12-16 Cisco Technology, Inc. Call routing control using call routing scripts
US6766011B1 (en) 2000-06-16 2004-07-20 Concerto Software, Inc. Method and apparatus for controlling a contact center
US6778951B1 (en) 2000-08-09 2004-08-17 Concerto Software, Inc. Information retrieval method with natural language interface
US6819754B1 (en) 2000-08-29 2004-11-16 Cisco Technology, Inc. Generation of communication system control scripts
US7606909B1 (en) 2001-02-20 2009-10-20 Michael Ely Method and apparatus for a business contact center
US6778660B2 (en) 2001-04-06 2004-08-17 Concerto Software, Inc. Customer interaction system
AU2003253373A1 (en) * 2003-08-01 2005-02-25 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for routing a service request
US7887478B2 (en) 2003-10-31 2011-02-15 Sunshine Heart Company Pty Ltd Percutaneous gas-line
US7955248B2 (en) 2003-11-11 2011-06-07 Sunshine Heart Company Pty Ltd Actuator for a heart assist device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0376527A2 (en) * 1988-12-30 1990-07-04 AT&T Corp. Remote agent operation for automatic call distributors
EP0526103A2 (en) * 1991-07-30 1993-02-03 AT&T Corp. ACD multiflow network call distribution
GB2270233A (en) * 1992-08-11 1994-03-02 Rockwell International Corp Automatic call distributor with prioritization
EP0610625A2 (en) * 1992-12-29 1994-08-17 AT&T Corp. Dynamic network automatic call distribution

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5249223A (en) * 1991-01-03 1993-09-28 At&T Bell Laboratories Call-load-control arrangement for an emergency-call-answering center

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0376527A2 (en) * 1988-12-30 1990-07-04 AT&T Corp. Remote agent operation for automatic call distributors
EP0526103A2 (en) * 1991-07-30 1993-02-03 AT&T Corp. ACD multiflow network call distribution
GB2270233A (en) * 1992-08-11 1994-03-02 Rockwell International Corp Automatic call distributor with prioritization
EP0610625A2 (en) * 1992-12-29 1994-08-17 AT&T Corp. Dynamic network automatic call distribution

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19948826A1 (en) * 1999-10-06 2001-04-19 Lesswire Ag Information communication system e.g. for city guide information, compares information received from communication device with data bank information for selecting information fed back via base station

Also Published As

Publication number Publication date
EP0815679B1 (en) 2002-05-08
EP0815679A1 (en) 1998-01-07
US5568544A (en) 1996-10-22
DE69621128D1 (en) 2002-06-13
DE69621128T2 (en) 2002-10-31

Similar Documents

Publication Publication Date Title
EP0815679B1 (en) Routing incoming calls to a pbx in response to route requests from a host computer
US5901215A (en) Apparatus and method for identifying records of overflowed ACD calls
JP3058450B2 (en) Network-based telephone system for integrated voice and data delivery
JP2947709B2 (en) Method and apparatus for providing automatic call distribution service at home
US5920621A (en) System and method for distributing calls to customer service operators based on automatic determination of operator availability
EP0177218A2 (en) Method and apparatus for sharing operators among assistance systems
EP1080588B1 (en) Method and system for controlling communications network resource usage when executing redirection services
JPH0576817B2 (en)
JPH1051549A (en) Work for home automatic call distribution substituting person network with cooperated control
JPS6298846A (en) Call load balancing of automatic call distribution telephoneservice
US20020164011A1 (en) Methods and apparatus for controlling call pullback by an automatic call distribution (ACD) system from an interactive voice response (IVR) system and for allowing an ACD caller to complete a critical transaction while connected to the IVR
JP3360648B2 (en) Extension telephone exchange system
US5907611A (en) Apparatus and method for identifying records of overflowed ACD calls
US5636268A (en) Communication system with queues
JPH03101551A (en) Apparatus and method for controlling resource allocation and apparatus and method for controlling trunk resource allocation
US20030204642A1 (en) System and method for creating a communication connection
US5761274A (en) Method for regurating call congestion and ISDN exchanger for performing the same
JP3710555B2 (en) Telecommunications network
KR970002753B1 (en) Selecting controlling method for switch
JP2983369B2 (en) Representative number connection method in packet switching network
EP1120952A2 (en) Agent log-on for an automatic call distribution system
KR100273819B1 (en) Call data processing methode of full electronic telephone exchange having operator position system
KR950012311B1 (en) Processing method of subscribers waiting call in the electronic switching system
JP3287380B2 (en) Private branch exchange
KR960013278B1 (en) Full electronic exchanger

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1996906375

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1996906375

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1996906375

Country of ref document: EP