Embodiments of the present invention generally relate to systems and methods for managing call routing over a network, and more specifically to tracing a voice communications session across a network.
Troubleshooting a voice communications session, such as a web call or voice over Internet protocol (“VOIP”) session, may require inspecting devices along a call route, or path through a network over which the voice communications session sends data. Typically, information from each voice equipment and/or router along the call route is obtained by accessing the equipment manually. Furthermore, identifying each device may require step by step inspection of the call path in order to determine a next hop from one device to the next across the entire call route. As a result, troubleshooting the various equipment of a call route through a network can be tedious, expensive, and slow.
It is with these observations in mind, among others, that aspects of the present disclosure were concerned and developed.
In a first embodiment of the invention, a method for tracing a path of a voice communication transmission over a network includes receiving a first call detail record (“CDR”) from a first voice equipment, the first voice equipment issuing a voice communication transmission to a network, receiving voice equipment operating information from the first voice equipment, receiving first router operating information from a first router, the first router indicated by the first CDR, and generating an interface including the first voice equipment operating information and the first router operating information.
In another embodiment, the method further includes receiving a next hop information from the first router, and receiving second router operating information from a second router based on the next hop information from the first router, wherein the interface further includes the next hop information and the second router operating information.
In another embodiment, wherein the second router is associated with a second voice equipment, the method further includes receiving, from the second voice equipment a second CDR and a second voice equipment operating information, wherein the interface further includes the second voice equipment information.
In another embodiment, the method further includes receiving multiple router information from respective multiple routers, the multiple routers being hops between the first router and the second router within the network, wherein the interface further includes the multiple router information.
In another embodiment, the network includes one or more of a client network, an Internet service provider (“ISP”) network, or a voice network.
In another embodiment, the first voice equipment is identified based on a database storing call information associated with voice equipment identifiers.
In another embodiment, the method further includes receiving a filter selection for one of particular information or particular devices, wherein the interface includes information based on the received filter selection.
Aspects of the present disclosure involve systems, methods, computer program products, and the like, for tracing a path of a voice communication session between each terminal of the session. A path may include many devices, beginning with, for example, a computer terminal that initiates a call and being routed by routers within various networks and connected to voice equipment for managing a call transmission to another computer terminal receiving the call. In general, the process allows for all or some subset of devices used in the call path to be identified. More particularly, a user interface can be automatically generated and may enable a user of the interface to retrieve performance information from each identified device along the call path.
Manually tracing a voice communication path through a network can be a tedious and slow process. Oftentimes, a technician must have significant understanding of one or more network infrastructures in order to correctly execute the sequence of commands necessary for proper tracing. In particular, it can be exceedingly difficult to manually trace a voice communication path in real time or even within a short time window following a session. An automated process for tracing a voice communication path and for rendering the result of the trace may provide an input into a downstream service (e.g., via user interface, application programming interface (API), microservice integration, etc.) that can identify and/or correct issues with devices along the path, as well as provide information from which a technician may diagnose and rectify network errors.
Terminal 102 can initiate a voice communication session, for example, through a software application such as Level 3® Wholesale Voice Services, Microsoft® Skype®, and the like. The communications may be routed through a network 110 and via routers 112A on the network 110. The network 110 may be any type of communications network, including but not limited to, a client network, a private network, a university network, a virtual network, and the like, and may also include the Internet,. Moreover, a call may traverse different networks (such as voice network 108 and Internet Service Provider (ISP) network 106) and, in some examples, call paths may be directional. In other words, transmissions from terminal 102 to terminal 104 may follow a different path across the various networks (in some cases, including different networks altogether) than transmissions within the same call from terminal 104 to terminal 102.
The voice communication session may exit the client network 110 and enter into a voice network 108 or other type of communications network. The voice network 108 may include routers 112B that operate similarly to the client network 112A routers discussed above. Further, the voice network 108 can include voice devices 114A-B (e.g., provider edge devices, media gateways, etc.) for managing voice transmissions. The voice devices 114A-B may each peer with an in-network router 112B as well as a router 112A or 112C located outside the voice network 108 in a neighboring or connected network.
An ISP network 106 or other type of network may receive a communications session from the voice network 108 in order to pass the session along to the responding terminal 104. As above, the ISP network 106 can include multiple ISP network routers 112C for managing communications traversing the network.
Further, as depicted by
The user interface 200 can be generated after or while a session has completed by the system 300 accessing a call detail record (“CDR”) on a voice device, retrieving origination and destination information from the CDR, identifying a peering router connected to the voice device, and traversing across one or more networks from the peering router and to either or both the call origination point or the call destination point. A routing table, or forwarding table, may be stored on the peering router and used to identify a next point (e.g., another router receiving traffic from the peering router) along the call path through the network environment 100, which may in turn hold another routing table which can be used to identify another point along the call path, and so on.
A CDR may be stored on, or otherwise associated with, voice equipment such as voice devices 114A-B, for routing and processing voice communication sessions and may be located within a network 316 (e.g., voice network 108). The CDR can contain, among other information, a device of origin identification, a call (e.g., a voice communication session) identification, a source Internet Protocol (“IP”) address, a destination IP address, and the like. An application device 302 (e.g., server 116) can execute a software application 304 in order to trace a call or other voice communication session, and generate the user interface 200. The application device 302 may access the network 316 via any network access mechanism (e.g., direct link, landline, cable connection, wireless, mobile network, and the like) and connect to specified routers and voice equipment deployed within the network 316.
The software application 304 may receive a call identification and/or call origination or destination information, which can be used to query a voice equipment database 314 for identification of voice equipment containing an appropriate CDR. For example, individual origination values (e.g., a dialing phone number) may be associated, within the voice equipment database 314, with particular voice devices 114A-B. The software application 304 can interact with the identified voice equipment using a voice equipment interface 306. The voice equipment interface 306 can include protocols and rules for interfacing with a variety of different voice equipment and may select an appropriate protocol or rule based on the voice device identified by the voice equipment database 314. In some examples, the appropriate protocol or rule may be stored in the voice equipment database 314 and passed back to the software application 304 along with an identification of the voice device of the network 316 having an appropriate CDR for processing.
The voice equipment interface 306 can also retrieve identification of peering routers linked to a particular voice device. Each voice device may be connected with one or more peered routers as depicted in
The software application 304 may identify a call origination as being on a client virtual private network (“VPN”) or may identify a router IP address passed to the router interface 306 as belonging to a client VPN. In such a case, the user interface 200 may provide a labeled section of the call path client VPN 202. Further, in some examples, routers along the call path on the client network may be identified and displayed within the user interface 200. In
In some examples, routers can be identified as connected to particular voice devices. The voice device may be on the same network or on an altogether different network and may be indicated as so by the interface 200.
For example, as depicted in
The interface 200 can display a call trace path to an alternate router 212 (e.g., a forked path) which may receive the transmission via a third party MPLS network 210. While the single alternate router 212 is discussed here, it is understood that multiple other routers may carry a call through one or more other networks before it enters or reenters the voice network 214.
The router 212 may then process the voice communication session transmission on linked voice device 217. In comparison to voice device 216, voice device 217 forwards the voice communication session transmission to a router 218 on the voice network 214. In sequence, the router 218 can forward the voice communication session transmission through a MPLS network 220 and on to another router 222 with an associated voice device 224 of voice network 214.
The voice device 224 of voice network 214 may further transmit the voice communication session transmission into yet another network, such as dedicated Internet access (DIA), virtual private network (VPN), public switched telephone network (PSTN) 226, and the like. As with the preceding networks, the DIA/VPN/PSTN network 226 may include a router 228 transmitting the call to a router 232 over a MPLS network 230. In some examples, the DIA/VPN/PSTN network 226 may be rendered by the interface 200 as a generic “other” network. In other examples, a particular type of network may be indicated, such as a public switched telephone network (“PSTN”) network, a VPN network, an ISP network, and the like.
In some instances, the interface 200 may group related components into respective network identifiers. For example, the client VPN 202 may be rendered (by the interface rendered 312) to include the client network 201, routers 205, 206, and 208, and MPLS network 204. In some examples, different network types may include different interface functionality that may be linked to availability of information from the targeted network for ease of technician review or a result of an applied filter, and the like.
The DIA/VPN/PSTN network 226 may further transmit the voice communication session transmission into a network labeled as “other ISP” 234 via an entry point router 236 or labeled as some other network identifier. In some cases, this may be the extent of the transmission path sought. For example, a terminal endpoint of the voice communication transmission may continue through one or more other networks; however, a technician seeking to troubleshoot only a limited leg of the transmission path (e.g., a portion that travels along the technician network) such that the rendered path may terminate at a particular component or network along the call path.
The user interface 200 can include additional functionality, such as indicating an IP address for each router (not depicted) or color-coding router operational health (not depicted). In some examples, route path segments may include a color coding as well to indicate, for example and without limitation, speed of data over the path segment or quality of transmission and the like.
Call information such as a calling number, a called number, and a call time may be received through, for example, an input interface (operation 402). The input interface may include fields for the calling number, called number, and/or call time. In some examples, a technician may input the call information into the fields of the input interface to generate receiving the call information. In other examples, the call information can automatically be entered when a voice communication session is initiated or when certain triggering criteria are met.
The received call information may be used to retrieve a CDR (operation 404). The CDR can be retrieved directly from voice equipment which initiated a voice communication session, from voice equipment utilized in the call path, or from voice equipment associated with the call path. In one example, the initiating voice equipment may be indicated by the call information and can be retrieved by the server 106.
The CDR can then be processed to determine whether it is associated with a VPN, DIA, or an internal network (operation 406). In some examples, a CDR from a VPN can be further processed, as depicted by
The voice equipment used to perform the voice communication session may be identified by the CDR and used to retrieve an associated router (operation 502). The CDR or the voice equipment can include an outbound route which may include a network router through which the voice communication session propagates. In some examples, this may be a unique router identification or an IP address.
Nevertheless, the router identification may then be used to trace a route to a remote IP address (operation 504). For example, the server 116 may query the indicated router for an exit point from the network and an entry point into the next network. In some examples, the remote IP address may be associated with voice equipment or the like.
In some examples, operating information may then be retrieved from voice equipment connected to the remote IP address (operation 506). The operating information can include various diagnostic information such as response times, failure rates, and the like. Further, a CDR can be included in the operating information and may include details of voice communications transmissions inbound to the voice equipment, as well as an outbound path.
Logs stored by the connected voice equipment can be used to identify a unique, or non-duplicate, destination IP address for a call (operation 508). The logs may be a part of the CDR or may be in addition to the CDR and may be provided to the requesting device for determining the call path through the corresponding network.
A route table associated with the unique IP address may be used to identify a next hop based on prefix information included in the unique IP address (operation 510). The route table may define the next hop based on the destination address associated with the voice communications transmission being traced. Based on the destination address, a particular next hop can be defined, for example, in the control plane of a network in which the router is located and the definition may be stored within the route table.
Returning to
Operating information may further be retrieved from the router (operation 410). In addition, operating information such as connectivity and speed data can be obtained from the router. Furthermore, where the queried router is associated with voice equipment, the associated voice equipment may provide another CDR and the process may repeat itself. A sequence of identifying a router and/or associated voice equipment, obtaining operating information, and obtaining a next position along the voice communication session path through the network may be repeated as needed in order to fully map out a path through the network. In some examples, a large number of routers and associated voice equipment may undergo method 400 until a complete path is mapped. In other examples, only specific network segments, such as LVLT, may be mapped in this way.
Having retrieved router operating information, selected filters can be applied to the retrieved information and the retrieved information can be merged with any previously retrieved information (e.g., retrieved from preceding hops along the voice communication transmission path) (operation 412). Filters may include parent networks, speed, whether an associated voice equipment succeeded in propagating the voice communication transmission, and others as will be understood by a person having ordinary skill in the art. For example, a parent network filter may be selected to display only information related to call paths originating from a particular network in order to identify pathing issues associated with a particular edge network or the like.
The collected information can then be used to generate a network flow interface based on the filtered and merged information (operation 414). For example, the network flow interface may be rendered as depicted in
I/O device 640 may also include an input device (not shown), such as an alphanumeric input device, including alphanumeric and other keys for communicating information and/or command selections to the processors 602-606. Another type of user input device includes cursor control, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to the processors 602-606 and for controlling cursor movement on the display device.
System 600 may include a dynamic storage device, referred to as main memory 616, or a random access memory (RAM) or other computer-readable devices coupled to the processor bus 612 for storing information and instructions to be executed by the processors 602-606. Main memory 616 also may be used for storing temporary variables or other intermediate information during execution of instructions by the processors 602-606. System 600 may include a read only memory (ROM) and/or other static storage device coupled to the processor bus 612 for storing static information and instructions for the processors 602-606. The system set forth in
According to one embodiment, the above techniques may be performed by computer system 600 in response to processor 604 executing one or more sequences of one or more instructions contained in main memory 616. These instructions may be read into main memory 616 from another machine-readable medium, such as a storage device. Execution of the sequences of instructions contained in main memory 616 may cause processors 602-606 to perform the process steps described herein. In alternative embodiments, circuitry may be used in place of or in combination with the software instructions. Thus, embodiments of the present disclosure may include both hardware and software components.
A machine readable medium includes any mechanism for storing or transmitting information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). Such media may take the form of, but is not limited to, non-volatile media and volatile media. Non-volatile media includes optical or magnetic disks. Volatile media includes dynamic memory, such as main memory 616. Common forms of machine-readable medium may include, but is not limited to, magnetic storage medium (e.g., floppy diskette); optical storage medium (e.g., CD-ROM); magneto-optical storage medium; read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of medium suitable for storing electronic instructions.
Embodiments of the present disclosure include various steps, which are described in this specification. The steps may be performed by hardware components or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special purpose processor programmed with the instructions to perform the steps. Alternatively, the steps may be performed by a combination of hardware, software and/or firmware.
Various modifications and additions can be made to the exemplary embodiments discussed without departing from the scope of the present invention. For example, while the embodiments described above refer to particular features, the scope of this invention also includes embodiments having different combinations of features and embodiments that do not include all of the described features. Accordingly, the scope of the present invention is intended to embrace all such alternatives, modifications, and variations together with all equivalents thereof.
This application is related to and claims priority under 35 U.S.C. § 119(e) from U.S. Patent Application No. 62/670,376, filed May 11, 2018 entitled “System and Method for Tracing a Communications Path Over a Network,” the entire contents of which is incorporated herein by reference for all purposes.
Number | Date | Country | |
---|---|---|---|
62670376 | May 2018 | US |