Abstract:
Increased reliability for intelligent call processing systems is provided by collecting information from communications between the network database, the subscriber database, and the network switch. Message transfers between these network elements are monitored and correlated to identify those messages corresponding to a particular call. The messages for the call are analyzed to determine which database generated the instructions for routing the call. In particular, by comparing the routing number returned to the interexchange switch with the routing instruction information supplied by the subscriber&#39;s database, it can be determined whether the call was routed according to instructions from the subscriber&#39;s database.

Description:
TECHNICAL FIELD 
     The invention relates to systems for routing telephone calls in which a dialed telephone number is translated into a routing number and, more particularly, to systems in which the translation of the dialed number is performed according to instructions from a database maintained by a telephone subscriber. 
     BACKGROUND OF THE INVENTION 
     Telephone systems which translate a dialed telephone number into a routing number for routing a telephone call are well known in the art. For example, toll-free or &#34;800&#34; number calls involve translating a dialed 800 number into a number for routing calls to an 800 number subscriber. The translation is performed by querying a database maintained by the telephone service provider, such as an 800 number database of an interexchange carrier, to determine a routing number for routing the call. 
     Recent advances in processing telephone calls in which the dialed number is translated into a routing number for call routing have enabled the translation process to be controlled in part by the subscriber. In such systems, referred to herein as &#34;Intelligent Call Processing&#34; (ICP) systems, the subscriber maintains its own database to store routing instructions for selected special service calls. The subscriber&#39;s database is queried by a processor (also referred to herein as a &#34;Network Control Point&#34; or &#34;NCP&#34;) in the communication system, at an appropriate point in call processing, to return routing instructions. The subscriber&#39;s database returns routing instruction information to the NCP, which in turn, provides call routing instructions to telephone switches within the communication system. 
     Intelligent Call Processing systems provide a subscriber with improved call handling ability and increased flexibility. However, sometimes calls cannot be processed and routed according to instructions from the subscriber&#39;s database, and the subscriber does not have sufficient information to determine when, how often, or why this occurs. For example, if the subscriber&#39;s database does not respond to a query for instructions within a prescribed time period, the call is routed according to default routing instructions that are stored within the NCP. Similarly, default routing instructions are used when instructions returned by the subscriber&#39;s database in response to a query are not in a format recognizable to the NCP. Under these circumstances, the subscriber has no way to verify whether calls are being routed as the subscriber intends, and thus cannot determine how well the system is working. 
     SUMMARY OF THE INVENTION 
     Increased reliability for intelligent call processing systems is provided by collecting information from communications between the NCP, the subscriber&#39;s database, and the network switch that will route the call. Message transfers between these network components are monitored and correlated to identify those messages corresponding to a particular call. The messages for the call are analyzed to determine which database (i.e., the NCP or the subscriber&#39;s database) generated the final instructions for routing the call. In particular, by comparing the routing number returned to the interexchange switch with the routing instruction information supplied by the subscriber&#39;s database, it can be determined whether the call was routed according to instructions from the subscriber&#39;s database. 
     In an exemplary embodiment of the invention, communications are monitored between an interexchange switch and an NCP, and between the NCP and a subscriber&#39;s database. The communications between these network components are correlated to identify those communications which correspond to a particular call. Selected information from the identified communications is collected and assembled into a call record. The call record indicates, among other things, whether the interexchange switch routed the call according to information from the subscriber&#39;s database or according to preselected default routing instructions stored within the NCP. For calls routed according to the default instructions, the call record also identifies the reason that instructions from the subscriber&#39;s database were not used to route the call. Several call records are assembled in a convenient format for access by the subscriber. 
     In another exemplary embodiment of the invention, messages transferred to and from the NCP are collected and correlated within the NCP. Message correlation can be accomplished, for example, on the basis of identifiers within the messages which uniquely identify a call. Information is extracted directly from the messages that pass between the NCP and each of the interexchange switch and subscriber database, thereby eliminating the need to capture messages as they pass between the system components. The NCP assembles selected data for each call into a single call record. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     In the drawings: 
     FIG. 1 is a simplified block diagram of a communications network configured to monitor message transfers between network elements in accordance with the principles of the invention; 
     FIG. 2 shows the structure of an exemplary call record which stores information passed along message paths 1 and 4 of FIG. 1; 
     FIG. 3 shows the structure of an exemplary call record which stores information passed along message paths 2 and 3 of FIG. 1; 
     FIG. 4 shows the structure of an exemplary traffic summary record constructed in accordance with the invention; 
     FIG. 5 is a simplified block diagram of an alternative embodiment of the network of FIG. 1; and 
     FIG. 6 shows the structure of an exemplary call record which stores information passed along message paths 1 through 4 of FIG. 5. 
    
    
     DETAILED DESCRIPTION 
     FIG. 1 shows a diagram of a communications network, having ICP capabilities, constructed in accordance with the principles of the invention. The communications network includes a telephone station 100, a local exchange carrier (LEC) switch 102, interexchange carrier (IXC) switches 104 and 112, a switching transfer point (STP) 106, an NCP 108, and a subscriber database 110. Although STP 106 is shown in the figure as a single network element, it is to be understood that communications between IXC switch 104, NCP 108 and subscriber database 110 are routed through a network of switching transfer points. The communications network routes calls to an automatic call distributor (ACD) 114 and a telephone station 118 at a subscriber&#39;s premises 116. The network also includes a message capture means 120, a message collector 122, and a central data processor 124, which collectively provide information about a subscriber&#39;s ICP service to a workstation 126 at subscriber premises 116. 
     The communications network of FIG. 1 routes telephone calls by first translating a dialed number into a different number (a &#34;routing number&#34;) which is used to route the call. Telephone calls involving such dialed number translations are referred to generally herein as &#34;special service&#34; calls. Special service calls include, for example, 800 calls and premium service calls (calls for which the caller typically pays at least a portion of the telephone charges and often an additional premium). 
     Before describing the novel aspects of the present invention, it will be useful to describe the operation of an ICP system. As mentioned above, an ICP system routes calls by translating a dialed number into a routing number on the basis of information contained in a subscriber database. An example of one such system is described in commonly-owned, U.S. Pat. No. 4,611,094, issued Sep. 9, 1986, entitled &#34;Method for Customer Definable Telephone Capability,&#34; which is hereby incorporated by reference. 
     The ICP system works as follows. A caller at telephone station 100 of FIG. 1 places a special service call, for example, by dialing an 800 number. The call is extended to LEC switch 102, which switches the call to IXC switch 104. IXC switch 104 sends a message through STP 106 to query a network database, such as NCP 108, for routing instructions. NCP 108 processes the query from IXC switch 104 and, where appropriate, accesses the ICP capabilities of the network by querying a subscriber database 110 to obtain call routing instructions established by the subscriber. Whether a given call is to be routed using ICP may be determined, for example, from a conventional 800 number routing plan used by NCP 108 to determine call routing. The path of the query from IXC switch 104 to NCP 108 (referred to as the &#34;message path&#34;) is indicated by the dashed line labeled by reference number 1. NCP 108 queries subscriber database 110 by sending a message (along a message path 2) to database 110 via STP 106. Subscriber database 110 responds to NCP 108 by sending a message (along a message path 3) containing routing instructions through STP 106. The routing instructions typically include a &#34;routing label,&#34; which NCP 108 uses to identify a corresponding, unique routing number. When NCP 108 receives suitable instructions from subscriber database 110, or after some predetermined timeout period, NCP 108 returns a routing number to IXC switch 104. NCP 108 provides this information to IXC switch 104 in a message transmitted along a message path 4. IXC switch 104 then routes the call according to the routing number, for example, to IXC switch 112. IXC switch 112 routes the call to ACD 114 at the subscriber premises 116. ACD 114 switches the call to a telephone station 118 at the subscriber premises. 
     The network components described above and the signaling techniques for communicating between those network components are well known by those skilled in the art. For example, LEC switch 102 illustratively is a 5ESS® switch manufactured by American Telephone &amp; Telegraph Co., Inc. (AT&amp;T). IXC switch 104 illustratively is a 4ESS™ switch manufactured by AT&amp;T, but alternatively could be a local exchange switch. NCP 108 illustratively includes an INWATS database NCP and a Direct Services Dialing NCP, both commercially available from AT&amp;T. Exemplary message formats for messages transmitted on message paths 2 and 3 are described in TR54022, AT&amp;T Intelligent Call Processing (ICP) Service Signaling System No. 7 Network Interface Specification, May 1, 1993, which is publicly available and hereby incorporated by reference. 
     The system described above enables a subscriber to customize and maintain its own database for routing calls. The subscriber is able to quickly change call routing and to implement specialized features which are otherwise unavailable through service provided by the interexchange carrier. However, various factors affecting the network may prevent NCP 108 from utilizing instructions provided by subscriber database 110 for routing the call. For example, the response from subscriber database 110 may contain errors or may be in a form not recognizable by NCP 108. Also, subscriber database 110 may not provide a timely response to NCP 108. In such cases NCP 108 will respond to the query from IXC switch 104 (message path 1) by supplying a default routing number (via message path 4). 
     Current ICP systems do not provide a mechanism for reporting to the subscriber whether calls are being routed by IXC switch 104 in accordance with the routing instructions provided by subscriber database 110. In particular, the subscriber cannot determine which calls are being routed according to instructions from subscriber database 110 and which calls are being routed according to default routing instructions provided by NCP 108. Moreover, the subscriber lacks a mechanism for diagnosing the problems which cause NCP 108 to supply default routing instructions to IXC switch 104. 
     In accordance with the invention, a method is provided for the subscriber to verify that a call is being routed according to routing instructions provided by subscriber database 110. Messages transferred between IXC switch 104 and NCP 108, and messages transferred between NCP 108 and subscriber database 110, are captured and correlated to identify all messages corresponding to a particular call. Selected information from the messages transferred between NCP 108 and IXC switch 104 for the call is compared with selected information from the messages transferred between NCP 108 and subscriber database 110 for the same call to determine whether the call was routed according to the subscriber&#39;s instructions. 
     In an exemplary embodiment of the invention, message collector 122 stores a mapping of routing numbers to routing labels and uses this information to determine whether a given call was routed according to routing instructions from subscriber database 110. The routing number is extracted from messages that were transmitted between NCP 108 and IXC switch 104. The routing label is extracted from messages that were transmitted between subscriber database 110 and NCP 108 and compared with the routing number. A determination that the extracted routing number does not map to the extracted routing label causes message collector 122 to generate an indication that the call was routed using a default routing number rather than according to routing instructions from subscriber database 110. 
     In an alternative embodiment, message collector 122 does not contain a mapping of routing numbers to routing labels, but instead analyzes other data collected from the messages transferred between IXC 104, NCP 108, and subscriber database 110 to determine whether a default routing number was used. For example, call billing record information which identifies to whom and at what rate the call is to be billed can be used to determine whether a default routing number was used. Call billing record information, such as a special billing code which indicates that default routing was used, typically is sent from NCP 108 to IXC switch 104 (via message path 4). By detecting this special billing code, message collector 122 determines, indirectly, that a default routing number was used. 
     Referring again to FIG. 1, messages on each of the four message paths (paths 1-4) are captured by message capture means 120. Message capture means 120 is interposed in the trunks between STP 106 and NCP 108. Message capture means 120 copies the messages passing between NCP 108 and STP 106, and outputs the copied messages to message collector 122. Message capture means 120 illustratively is an Enhanced Message Sampling Board (Ver. 2) available from AT&amp;T, but could be any device which monitors and copies selected messages from message paths 1 through 4. Suitable monitoring apparatus for implementing message capture means 120 also is disclosed in U.S. Pat. No. 4,788,718, which is hereby incorporated by reference. 
     As described in greater detail below, message collector 122 correlates the messages on message paths 1 through 4 to identify all those messages associated with a particular call. For each call, message collector 122 generates two &#34;call&#34; records 200 and 300 (shown in FIGS. 2 and 3). Call record 200 contains data copied from the messages on message paths 1 and 4. Call record 300 contains data copied from the messages on message paths 2 and 3. A unique identifier preferably is assigned for each call to facilitate correlating the call records 200 and 300 which correspond to each call. Message collector 122 may be implemented, for example, using a workstation commercially available from Sun Microsystems, Inc. A separate message collector 122 is provided for each NCP 108 in the communications network. Alternatively, multiple NCPs (not shown) are coupled to a single message collector 122. 
     Message collector 122 outputs call records 200 and 300 to central data processor 124. Central data processor 124 aggregates call records received from message collector 122 and compiles the data in those records to produce a &#34;traffic summary&#34; record 400 (see FIG. 4). A exemplary traffic summary record 400 would include, for example, a summary of the data for all telephone calls placed to a particular dialed number over a selected time period. The subscriber is given the ability to access the traffic summary records by accessing central data processor 124, or the traffic summary records are automatically downloaded to a workstation 126. 
     As its name suggests, central data processor 124 is implemented in a centralized location and is configured to receive information from each of the individual message collectors 122 deployed within the communications network. Central data processor 124 illustratively is implemented as a mainframe computer, but one skilled in the art will appreciate that any computer means having sufficient processing power could be used. 
     FIG. 2 shows the content and format of an exemplary call record 200 generated by message collector 122. Call record 200 includes several fields, each of which includes information about a particular call. The first field in call record 200 is a &#34;Dialed Number&#34; field 202. Dialed Number field 202 stores the telephone number that was dialed by the caller at telephone station 100 (FIG. 1). Dialed Number field 202 serves as an identifier for the call record so that the call record can be compiled by central data processor 124 with other call records for the same dialed number. 
     Two other key data fields in call record 200 are the &#34;Routing Number&#34; field 204 and the &#34;Call Identifier&#34; field 206. Routing Number field 204 contains information which identifies the destination to which the call actually was routed (as specified by NCP 108). Call Identifier field 206 stores a unique call identifier, such as a number, for each call. The call identifier from field 206 is used to facilitate correlating messages for a given call passing on message paths 1 through 4. 
     Call record 200 preferably includes a field containing information which indicates, for those calls routed according to default routing instructions, the reason that the subscriber-prescribed routing was not used. This field is shown in FIG. 2 as the &#34;Reason for Default Routing&#34; field 208. Field 208 contains flags representing the following &#34;error&#34; messages: (1) NCP 108 does not contain a mapping of the routing label to the routing number; (2) NCP 108 cannot read the message it received from subscriber database 110 (on message path 3); (3) the routing label in the subscriber database response message (on message path 3) is not in a format recognizable by NCP 108; (4) NCP 108 did not receive a timely response to its query of subscriber database 110; (5) the subscriber database response message indicated that subscriber database 110 could not process the query message from NCP 108 (on message path for example, because the message was garbled in transmission or because subscriber database 110 did not recognize the dialed number; or (6) no query was sent from NCP 108 to subscriber database 110 due to network management reasons, for example, because sending the message would have caused subscriber database 110 to become overloaded. 
     The information used to populate field 208 typically is generated by NCP 108. For example, a timer is set in NCP 108 when the NCP sends a query (via message path 2) to subscriber database 110. If NCP 108 does not receive a response to the query (along message path 3) before a predetermined time-out period expires, the NCP indicates that a response was not received from subscriber database 110 in time to be used for routing. In a second example, if the routing label does not match the format required by NCP 108 or does not correspond to a routing number stored within the NCP, NCP 108 generates an appropriate message/flag signaling the reason for default routing. 
     Referring again to FIG. 2, other information may be included in call record 200, if desirable. For example, call record 200 may include a &#34;Subscriber Database Query&#34; field 210 to indicate whether NCP 108 queried subscriber database 110 (i.e., whether the call was a regular 800 service call or an ICP call involving a translation based on information from subscriber database 110). Record 200 also may include a &#34;Caller&#39;s Area Code&#34; field 212 or &#34;Automatic Number Identifier&#34; field (not shown). Call record 200 may include a &#34;Routing Result&#34; field 214 to indicate whether the call was either routed to the destination identified by the routing label, routed to a default location, or not routed at all by NCP 108 for network management reasons (e.g., too many calls were made to this 800 number within a predetermined time interval). A &#34;Time of Call&#34; field 216 may be provided as a convenient means for organizing call records into a traffic summary record according to preselected time intervals. A &#34;Call Disposition&#34; field 218 stores the disposition status (e.g., busy, answered, ring-no answer) of the call as determined by a message returned from switch 112 to switch 104. 
     NCP 108 can be configured to measure and report the elapsed time between querying subscriber database 110 and receiving a response from subscriber database 110 at NCP 108. NCP 108 begins timing when a query is sent to the subscriber database via message path 2, and stops timing when a response is received via message path 3. The elapsed time is recorded in a field (not shown) in call record 200 for delivery to the subscriber as part of a traffic summary record. 
     FIG. 3 shows the content and format of an exemplary call record 300 for storing information passing between NCP 108 and subscriber database 110. Call record 300 includes a &#34;Dialed Number&#34; field 302, a &#34;Routing Label&#34; field 304, a &#34;Call Identifier&#34; field 306, a &#34;Caller&#39;s Area Code&#34; field 308, and a &#34;Time of Call&#34; field 310. Routing Label field 304 contains the routing label specified by subscriber database 110. The remaining fields store the same information as their counterparts of the same name in call record 200. Additionally, a &#34;Caller-Specific Data&#34; field 312 is provided to hold data returned by subscriber database 110 that is specific to the caller. This caller-specific data could be passed to IXC switch 104 for routing with the call to subscriber premises 116, and could be retrieved from subscriber database 110, for example, on the basis of the caller&#39;s ANI. 
     FIG. 4 shows an exemplary traffic summary record 400. As described above, the traffic summary record is a compilation of information from many call records, including information from both call record 200 and call record 300. Traffic summary record 400 typically is organized according to the dialed number. Traffic summary record 400 includes fields such as the &#34;Dialed Number&#34; field 402, &#34;Routing Label&#34; field 404, and &#34;Routing Number&#34; field 406. Traffic summary record 400 also includes fields which provide a tally of: the number of calls routed according to the routing label returned by subscriber database 110 (field 408), the number of calls routed according to a default routing number stored within NCP 108 (field 410), and the number of calls not routed for reasons of network management expediency (field 412). A &#34;Reasons for Default Routing&#34; field 414 provides a count of the number of calls which were routed using default routing instructions for each of the &#34;errors&#34; described with respect to field 208 of call record 200. Traffic summary record 400 also may include a &#34;Caller-Specific Data&#34; field 416, which includes caller-specific data sent from subscriber database 110 to be included in the call (e.g., caller&#39;s Social Security number) and a field which stores a summary of call dispositions (field 418). One skilled in the art will appreciate that other fields can be provided without departing from the scope of the invention, such as fields to report the number of regular 800 service calls (for which no ICP query was sent to subscriber database 110) and the number of ICP queries sent to subscriber database 110. 
     FIG. 5 shows an alternative embodiment of the ICP monitoring system of the present invention. In the embodiment of FIG. 5, messages transferred to and from NCP 108 are collected and correlated within NCP 108. Message correlation can be accomplished, for example, on the basis of identifiers within the messages which uniquely identify a call. Information is extracted from the messages that pass on message paths 1 through 4 by NCP 108 directly, thereby eliminating the need to monitor messages using message capture means 120 and message collector 122 of FIG. 1. NCP 108 assembles predetermined data for each call into a single data record 600 (see FIG. 6). NCP 108 outputs the data records to central data processor 124 via line 500. Central data processor 124 compiles the data records received from NCP 108 into traffic summary records 400 in the manner described above with respect to FIG. 1. Central data processor 124 makes the traffic summary records available to the subscriber via a computer means 126 at the subscriber&#39;s premises. 
     FIG. 6 shows an exemplary call record 600 that is generated by NCP 108 for each call. Call record 600 includes a &#34;Dialed Number&#34; field 602, a &#34;Routing Number&#34; field 604, a &#34;Routing Label&#34; field 606, a &#34;Call Identifier&#34; field 608, a &#34;Reason for Default Routing&#34; field 610, a &#34;Subscriber Database Query&#34; field 612, a &#34;Caller&#39;s Area Code&#34; field 614, a &#34;Time of Call&#34; field 616, and a &#34;Call Disposition&#34; field 618. Each of these fields store the same information as their counterparts of the same name in call records 200 and 300, described above. However, because all of the information used to populate record 600 is obtained from NCP 108 directly in the embodiment of FIG. 5, a single record is used to store this information (rather than the two records of FIGS. 2 and 3). 
     It will be apparent to one skilled in the art that other modifications can be made to the described embodiments without departing from the scope of the invention. For example, the system could be modified to capture specific information (e.g., a personal identification number or &#34;PIN,&#34; &#34;frequent flyer&#34; identification number, or account number) passed from the subscriber database and to forward the captured information with the call. Similarly, the described embodiments could be modified to use selected non-routing information (such as a caller&#39;s account number, social security number, or PIN) as the basis for determining whether calls placed by a particular caller are being routed according to routing instructions retrieved from subscriber database 110. For example, a subscriber database could maintain a record of a particular account representative preferred by an individual customer and automatically route calls from that customer to the preferred representative. The principles of the invention could then be utilized to report to the subscriber, on a customer-by-customer basis, whether calls from a given customer were routed according to the instructions stored within subscriber database 110. The monitoring system also could be used as a general maintenance tool to monitor the subscriber database performance.