A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosures, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
The invention disclosed herein relates generally to generating reports in a communications network. More particularly, the present invention relates to generating reports associated with packet-switched communications, such as Voice over Internet Protocol (“VoIP”) calls, to provide aggregate call detail information which can be used for quality of service (“QoS”) monitoring, network usage tracking, and other similar purposes.
Communications between network endpoints in packet-switched networks are generally facilitated and managed by call mediators and enterprise gatekeepers. Traditionally, a VoIP network endpoint is associated with a call mediator that is responsible for processing calls to and from the VoIP network endpoint. For example, in certain commercial applications, a call mediator is often responsible for processing calls at a particular enterprise site such as a branch office. When routing calls beyond a particular site, the call mediator generally uses H.323 signaling techniques or other protocols to communicate with an enterprise gatekeeper that is responsible for routing calls between call mediators and other network components in the enterprise.
One problem associated with this architecture is related to providing aggregate call detail information for areas of the network beyond the site associated with the call mediator such as the number of calls made between network sites, the number of calls completed, the number of calls dropped, the bandwidth utilized by these calls, etc. Often, network administrators and other users wish to obtain such information in order to perform network diagnostics, QoS testing, and other similar activities. Sites in a service provider network sometimes include gateways to the PSTN for inbound and outbound calls or multi-vendor-platform sites.
According to VoIP networks known in the art, aggregate call detail information is not readily available. Individual call mediators generally track call detail information only for the sites they manage, and this information is not shared with other network components that might, for example, seek to collect aggregate data for aspects of the network. Furthermore, companies frequently use network components made by a number of different manufacturers. These disparate components often store information in different formats and capture varying kinds of information according to manufacturer making the task of aggregating network information even more difficult.
Until now, network administrators seeking to aggregate call detail information had to rely on custom solutions built for a specific network implementation or employ only components of a single manufacturer. For example, one solution employed by network administrators managing networks comprising heterogeneous components has been to program a custom application to query individual call mediators to aggregate call detail information. One disadvantage associated with this solution is the need to program a different application for each type of network implementation. For example, the application would need to be programmed differently to obtain call detail information from Cisco components as opposed to Nortel components. This approach is inefficient and not well-suited to general implementation.
Another solution employed by network administrators is to rely on the components of a single manufacturer. For example, some VoIP component manufacturers, such as Nortel, have designed their network components to interoperate and provide certain aggregate call detail information. One major disadvantage with this solution, however, is that only the components of a given manufacturer can be used since they do not provide the desired functionality when interoperating with components from other manufacturers. This approach thus lacks flexibility desired by many network administrators and locks a customer in to one specific manufacturer's technology.
There is thus a need for systems and methods that provide improved aggregate call detail information in VoIP networks. There is also a need to provide systems and methods offering aggregate call detail information in VoIP networks comprised of heterogeneous components.
The present invention addresses, among other things, the problems discussed above generating reports in a packet-switched network.
In accordance with some aspects of the present invention, computerized methods are provided for generating reports in a packet switched network, the method comprising: processing a communication at an enterprise gatekeeper; storing, in memory accessible to the enterprise gatekeeper, information associated with the communication; parsing the information associated with the communication; and providing an indication of the parsed information. In some embodiments, the communication comprises a VoIP communication.
In some embodiments, the information associated with the communication comprises a network identifier associated with a network endpoint, an identifier associated with a geographic site such as a business establishment, signaling information such as H.323 signaling information, or a termination cause code.
In some embodiments, the information is parsed to normalize values associated with the information. In some embodiments, the information comprises values parsed from a communication header.
In some embodiments, the indication comprises generating a report containing information associated with the parsed information. For example, in some embodiments, the system generates a report containing information associated with VoIP call details.
In some embodiments, a reporting server or a log poller are also employed to generate reports. For example, in some embodiments a log poller retrieves information associated with the communication from memory accessible to the enterprise gatekeeper at regular intervals or according to a user preference. In some embodiments, the reporting server parses the information associated with the communication.
The invention is illustrated in the figures of the accompanying drawings which are meant to be exemplary and not limiting, in which like references are intended to refer to like or corresponding parts, and in which:
With reference to
A VoIP network endpoint 100 is generally a network node comprising a network device suitable for conducting communications in a VoIP network, such as, a VoIP-enabled telephone handset, facsimile machine, video conferencing terminal, or other similar devices known in the art. In some embodiments, a VoIP network endpoint 100 may comprise a general-purpose computer with audio input and output capabilities suitable for conducting VoIP communications a VoIP endpoint may also be a digital phone attached to a PBX. In some embodiments, the VoIP network 115 (in terms of IP traffic) does not actually extend to reach an endpoint 100, however, the endpoint 100 is still the other end of the call. For example, the VoIP call generally terminates at the call mediator 105 (or a gateway), and the call mediator then translates the VoIP call into a digital call to the endpoint 100 or to an analog phone or analog fax machine (not shown) attached directly to the call mediator 105.
VoIP endpoints 100 generally maintain and execute client software to facilitate VoIP, as well as other types of communications. For example, according to one embodiment of the invention, VoIP endpoints 100 maintain and execute client software that adheres to the H.323 standard, which provides a foundation for audio, video, and data communications across IP-based networks 115. The H.323 standard and its related annexes, available from the H.323 Forum at www.h323forum.org and at the International Telecommunication Union at www.itu.int, is hereby incorporated herein by reference in its entirety. Additionally, H.323 is an umbrella standard that describes the architecture of the conferencing system and refers to a set of other standards (H.245, H.225.0, Q.931, and others) to describe its actual protocol. Alternatively, the system may be implemented using H.323 analogous signaling techniques and other methods associated with Session Initiation Protocol (“SIP”), Media Gateway Control Protocol (“MGCP”), or other well-known protocols for transporting voice and other related data over communications networks.
Each VoIP endpoint 100 is associated with one or more identifying network addresses. For example, in some embodiments a VoIP endpoints 100 is associated with an E.164 address as defined in the International Telecommunication Union's international public telecommunication numbering plan, available at http://www.itu.int/ITU-T/publications/index.html and hereby incorporated herein by reference in its entirety. Alternatively, in other embodiments, VoIP endpoints 100 are associated with IP addresses, H.323 IDs, SIP URLs, MGCP endpoint names, and other network address identifiers known in the art. In some embodiments, for example where a PBX is fronted by a VoIP gateway, endpoints may comprise digital or analog phones associated with E.164 addresses and other network address identifiers known in the art.
Communications between VoIP endpoints 100 and other endpoints, such as PSTN endpoints 127, are handled and routed by other components within the system. For example, VoIP endpoints 100 are connected to a call mediator 105. The call mediator 105 is generally a software or hardware module, such as an IP-PBX, a PBX with a VoIP interface, a PBX fronted by a gateway, or other similar device that is generally responsible for handling intra-network communications. For example, the call mediator 105 generally handles calls between two endpoints 100 at the same enterprise site. The call mediator 105 is also generally responsible for presenting or otherwise delivering calls to other network elements in a private dialing plan (“PDP”) format, in the PSTN-based format such as E.164 or prefixed-national, or other format suitable for routing through the VoIP network 115.
The call mediator 105 is connected to a circuit-switched network 125, such as the PSTN, via an overflow gateway 120. In some embodiments, such as with TDM PBX's and other PBXs, call mediators 105 and other system components may be connected directly to the PSTN without requiring an overflow gateway 120. The overflow gateway 120 routes calls directly to the PSTN 125 and to PSTN endpoints 127 and bypasses the VoIP network 115. PSTN endpoints 127 generally comprise but are not limited to traditional (non-VoIP) telephones, facsimile machines, and other similar devices known in the art. In some embodiments, PSTN endpoints 127 also comprise PBXs and IP PBXs, such as a call mediator 105 or other similar device connected to the PSTN 125 via its own overflow gateway 120. Gateways, as described herein, generally function as an entrance or an exit to another network. Gateways, for example, translate IP-based communications to PSTN-based communications, or vice-versa, and serve as a bridge between these different network types. A gateway typically has a PSTN interface connected to the PSTN 125 and an IP interface connected a VoIP network 115.
The call mediator 105 is connected to a packet-switched network 115, such as a VoIP network, via a router 110. Communications from call mediators 105 to the VoIP network 115 are passed from the router 110 to the enterprise gatekeeper 130 for further processing.
The enterprise gatekeeper 130 functions as a central management component for the system and, among other things, is generally responsible for providing communication routing and control decisions to various elements of the system such as call mediators 105, translation gatekeepers 135, inbound gatekeepers 140, inbound gateways 145, outbound gatekeepers 150, outbound gateways 155, inbound directory gatekeepers 160, outbound directory gatekeepers 165, reporting servers 170, and other devices or software modules. According to embodiments of the invention, the enterprise gatekeeper 130 also functions in conjunction with various elements of the system such as call mediators 105, translation gatekeepers 135, inbound gatekeepers 140, inbound gateways 145, outbound gatekeepers 150, outbound gateways 155, inbound directory gatekeepers 160, outbound directory gatekeepers 165, and other devices or software modules to process and route communications between network endpoints as further described in application Ser. No. ______, titled SYSTEM AND METHOD FOR PROVIDING ALTERNATE ROUTING IN A NETWORK, filed concurrently herewith, and in application Ser. No. 09/452,915, titled MULTISERVICE NETWORK, filed Dec. 1, 1999, attorney docket number GTE-99-302, both of which are hereby incorporated by reference in their entirety.
The enterprise gatekeeper 130 is also in communication with a reporting server 170. As further described herein, the reporting server 170 generally comprises hardware and software modules directed, among other things, to processing communication details recorded by the enterprise gatekeeper and generating indications of network usage and status based on the communication details. For example, in some embodiments, the enterprise gatekeeper 130 processes calls between endpoints in a first customer site 175, such as a branch office, and a second customer site 180, such as another branch office. The reporting server 170 processes communication details recorded by the enterprise gatekeeper 130 about these calls to generate indications and other information about the traffic between the two customer sites 175 and 180, such as the network bandwidth utilized, the total number of calls, the number of dropped calls, and other similar information.
The enterprise gatekeeper 130 contains a logging engine 195 generally directed, among other things, to recording communication details and other information associated with communications processed by the enterprise gatekeeper 130. According to some embodiments, the logging engine 195 records communication details and information when the enterprise gatekeeper processes a H.323 registration request (“RRQ”), a registration confirm (“RCF”), a registration request (“RRJ”), an admission request (“ARQ”), an admission confirm (“ACF”), an admission reject (“ARJ”), a location request (“LRQ”), a location confirm (“LCF”), a location reject (“LRJ”), a disconnect request (“DRQ”), and other similar signaling information. The logging engine 195 also records other communication details such as information which is contained in message headers, E.G., the IP address or other network identifying address of endpoints, call mediators, or customer sites associated with a communication. In some embodiments, the logging engine 195 records communication details such as the duration or the amount of bandwidth used by a communication. In other embodiments, the logging engine 195 records a termination cause code or other information contained in a DRQ or other message header as further described in application Ser. No. ______, SYSTEM AND METHOD FOR MONITORING COMMUNICATIONS IN A NETWORK, filed concurrently herewith, which is hereby incorporated herein by reference in its entirety.
The enterprise gatekeeper 130 also includes a communication logging data store 200. The communication logging data 200 store generally comprises a database or other data structure stored in memory accessible to the enterprise gatekeeper 130 that contains log files comprising the communication details and information associated with the communication details captured by the logging engine 195. In some embodiments, the communication logging data store 200 contains information about communications processed by the enterprise gatekeeper 130 including call counts such as call attempts, calls dropped, calls completed, and other information. In some embodiments, the communication logging data store 200 contains unprocessed communication details and other associated information captured by the logging engine 195. For example, the logging engine 195 may capture and store the full message headers of communications processed by the enterprise gatekeeper 130 without performing any preprocessing or other manipulation of the headers to normalize the data of values they contain.
In communication with the enterprise gatekeeper 130 is a reporting server 170 that contains a log poller 205. The log poller 205 is in communication with the communication logging data store 200 and is generally responsible for retrieving log file data, such as communication details and other associated information, stored in the communication logging data store 200. In some embodiments, the log poller 205 retrieves log file data from logging data stores 200 of enterprise gatekeepers 130 and other system devices manufactured by different companies. Log file data in a heterogeneous network is thus collected and aggregated for processing as further described herein.
In some embodiments, the enterprise gatekeeper 130 sends or “pushes” information from the communication logging data store 200 to the log poller 205. In other embodiments, the log poller 205 retrieves the information from the communication logging data store 200 by making a request for or “pulling” the information. In some embodiments of the invention, information passes from the communication logging data store 200 to the log poller 205 at regular or specified intervals. In other embodiments, information passes from the communication logging data store 200 to the log poller 205 in response to a user request or preference. Alternatively, the logging engine 195 sends captured information directly to the log poller 205 and bypasses storing the information in the communication logging data store 200.
Information received by the log poller 205 is generally passed to the log parser 210 for further processing. The log parser 210 is generally responsible for processing, parsing, and otherwise normalizing the data received from the log poller 205.
Information processed by the log parser 210 is stored in a reporting data store 215. The reporting data store 215 generally comprises a database or other data structure stored in memory and accessible to the reporting server 170 that contains normalized data and other information processed by the log parser 210. In some embodiments, information, such as communication details, retrieved by the log poller 205 is first stored in the reporting data store 215, retrieved by the log parser 210 for processing, and then the results are returned to the reporting data store 215.
The reporting server 170 also contains a reporting engine 220. The reporting engine 220 is generally responsible, among other things, for retrieving information from the reporting data store 215, and processing the information retrieved to generate reports or other indications of information associated with calls in the network. For example, the reporting engine 220 may retrieve and process aggregate data associated with calls processed by the enterprise gatekeeper 130 to report or otherwise indicate, for various time periods, the number of calls completed, the number of concurrent calls handled by various customer sites, the number of dropped calls, the number of calls routed to alternate networks, the average bandwidth per call, the average hold time per call, the average call time, and other similar information.
The reporting server 170 is in communication with one or more reporting clients 225. A reporting client 225 is generally a computer terminal or software module directed to providing an interface, such as a graphical user interface (“GUI”), for a user to interact with the reporting server 170. The reporting engine 220 retrieves and processes information from the reporting data store 215 according to requests received from reporting clients 225 or from other system processes. The reports and other indications generated by the reporting engine 220 according to these requests are communicated to the reporting clients 225 as further described herein.
The enterprise gatekeeper captures and logs communication details and other associated information processed by the enterprise gatekeeper, step 235. In some embodiments, the enterprise gatekeeper captures raw or unprocessed information such as message headers, H.323 signaling requests, and other similar information. In other embodiments, the enterprise gatekeeper captures and extracts only specified communication details from the communications it processes, such as call counts, network addresses, call times, payload information, and other similar information.
The communication details are parsed, step 240. In some embodiments, the communications details are parsed to provide normalized values. In other embodiments, the communication details are parsed to include only a subset of the communication details. The system generates an indication, such as a report, from the parsed details according to a user request or other request received, such as a request from a system process, step 245.
The system captures the communication details or other information associated with the communication at the enterprise gatekeeper, step 255. In some embodiments, the communications details are captured by a logging engine associated with the enterprise gatekeeper. For example, the system may capture a message header associated with a communication, or the system may add to a call count stored in a communication logging data store or other data store indicating a call attempt, an ARQ received, or other count.
The communication details or other associated information captured at the enterprise gatekeeper are stored in a communication logging data store, step 260. Table A below provides a set of exemplary communication details recorded in the communication logging data store according to an embodiment of the invention. For example, as shown, the system records the average bandwidth per call, the total bandwidth used by all calls, as well as the total number of ACF's, ARJ's, and LRQ's. This information is later used, among other things, to generate reports and provide other system indicia as further described herein.
The system continues processing communications at the enterprise gatekeeper and recording communication details until a request is received from a log poller associated with a reporting server, step 265. If a request is received from the log poller, the system transfers the communication details from the communication logging data store to the log poller, step 270.
The log poller generally issues requests at regular intervals. For example, in some embodiments, the log poller requests data associated with concurrent connections every 30 minutes and data associated with signaling requests, such as H.323 signaling requests, every 5 minutes. As previously described herein, in some alternate embodiments, the system “pushes” communication details to the log poller at specified intervals or according to user input or as directed by another system process.
The communication details and other associated information from the communication logging data store is parsed, step 275, and stored in the reporting data store, step 280. As previously described herein, in some alternate embodiments, the communication details and other associated information from the communication logging data store is first stored in the reporting data store and then parsed. According to embodiments of the invention, parsing includes performing lexical analysis, semantic parsing, subdividing, processing, normalizing, or otherwise manipulating data retrieved from the communication logging data store.
In some embodiments, the communication details and other associated information is parsed by a log parser. For example, in some embodiments, the logging engine captures raw header information from call mediators or other system components. A header generated by one manufacturer's gatekeeper or call mediator may be formatted somewhat differently than that generated by another manufacturer. Additionally, in some embodiments, it may only be desirable to store certain information extracted from the headers and discard other information. For example, the time of a communication or call count of a signaling request or type of device might be of interest, but the actual IP address of a translation gateway processing the communication might not be relevant.
The system continues processing communications, storing communication details, retrieving communication details, and parsing the communication details until a report request is received, step 285. A report request may be issued by a user at a reporting client or by a system process or other software application according to embodiments of the invention. Report requests generally include information specifying the type of data to be displayed in the report or otherwise calculated, as well as a time period the report should cover. For example, a report request might request information such as the total number of dropped calls in the previous 10 minutes, the total bandwidth used by a particular enterprise site on a given day of the week sorted by device type or network node, aggregate call detail information for a week, and other similar types of information. Exemplary reports according to embodiments of the invention are shown in
The information required to generate the report or other indicia are retrieved from the reporting data store, step 290, and processed to generate the requested report, step 295. In some embodiments, a reporting engine retrieves the information from the reporting data store and processes the retrieved information to generate the report. For example, by retrieving and calculating the number of LRQ's recorded in a given time period (indicating the number of times a remote host lookup/locate was performed for an off-net communication), the system produces a report to indicate the number of off-net calls made during that time period. Table B below provides a set of exemplary report items and calculations that can be performed according to data stored in the reporting data store:
The report interface section 390 is directed, among other things, to providing an interface through which users can update report criteria and generate new reports or other indicia. As shown, the report interface includes a date selection interface 405, a number of days (of data to report) selection interface 410, a site(s) (from which data will be reported) selection interface 415, an output type selection interface 420, an output destination (such as an e-mail address) input field 415, and a message or comments input field 430. When a selection interface or other element of the report interface section 390 changes the criteria against which the report is generated, the report section 385 updates the information displayed to reflect the change.
Systems and modules described herein may comprise software, firmware, hardware, or any combination(s) of software, firmware, or hardware suitable for the purposes described herein. Software and other modules may reside on servers, workstations, personal computers, computerized tablets, PDAs, and other devices suitable for the purposes described herein. Software and other modules may be accessible via local memory, via a network, via a browser or other application in an ASP context, or via other means suitable for the purposes described herein. Data structures described herein may comprise computer files, variables, programming arrays, programming structures, or any electronic information storage schemes or methods, or any combinations thereof, suitable for the purposes described herein. User interface elements described herein may comprise elements from graphical user interfaces, command line interfaces, and other interfaces suitable for the purposes described herein. Screenshots presented and described herein can be displayed differently as known in the art to input, access, change, manipulate, modify, alter, and work with information.
While the embodiments of the invention have been described and illustrated in connection with preferred embodiments, many variations and modifications as will be evident to those skilled in this art may be made without departing from the spirit and scope of the invention, and the invention is thus not to be limited to the precise details of methodology or construction set forth above as such variations and modification are intended to be included within the scope of the invention.
This application is related to the following commonly owned patents and pending applications, each of which is hereby incorporated herein by reference in its entirety: application Ser. No. 09/827,352, titled ALTERNATE ROUTING OF VOICE COMMUNICATIONS IN A PACKET-BASED NETWORK, filed Apr. 6, 2001; application Ser. No. ______, titled SYSTEM AND METHOD FOR PROVIDING ALTERNATE ROUTING IN A NETWORK, filed concurrently herewith, Attorney Docket No. 5630/6; and application Ser. No. ______, titled SYSTEM AND METHOD FOR MONITORING COMMUNICATIONS IN A NETWORK, filed concurrently herewith, Attorney Docket No. 5630/7.